Configure revision 0c27b3fe77ac1d5094ba3521e8142d9e7973133f
21d2ebd23d1ff59d0c081baeab1a97aae1baf4a4Mark Andrews#!/usr/bin/perl
21d2ebd23d1ff59d0c081baeab1a97aae1baf4a4Mark Andrews#
21d2ebd23d1ff59d0c081baeab1a97aae1baf4a4Mark Andrews# Copyright (C) 2013-2016 Internet Systems Consortium, Inc. ("ISC")
21d2ebd23d1ff59d0c081baeab1a97aae1baf4a4Mark Andrews#
9baab4b1a8a5a54c04e47742c7b48311d5575a87Mark Andrews# This Source Code Form is subject to the terms of the Mozilla Public
c5826852e6c789f59b301f8197e65a1dd4e09a44Mark Andrews# License, v. 2.0. If a copy of the MPL was not distributed with this
c5826852e6c789f59b301f8197e65a1dd4e09a44Mark Andrews# file, You can obtain one at http://mozilla.org/MPL/2.0/.
c0d2891f6e08fcf5379dfb9a1bf8fbbb63f1952aMark Andrews
c0d2891f6e08fcf5379dfb9a1bf8fbbb63f1952aMark Andrews# Configure
c426fddf168a3cdfc1c4c162365d440c89148ae4Mark Andrews#
c426fddf168a3cdfc1c4c162365d440c89148ae4Mark Andrews# This script builds nmake and visual studio build files
cb75f7ce19e11e3dfedee5a50a331bf53cd2c36bMark Andrews#
1a6204b6f26677cad76ea5644dc0624aac49b451Mark Andrews
1a6204b6f26677cad76ea5644dc0624aac49b451Mark Andrewsrequire 5.000;
1a6204b6f26677cad76ea5644dc0624aac49b451Mark Andrewsuse strict;
9f7d51ee3290e2a064d71016a6bd555b47134a7cMark Andrewsuse File::Spec;
9f7d51ee3290e2a064d71016a6bd555b47134a7cMark Andrewsuse Cwd;
d8c2b1787119de43dd6b7e3927ff193ed5df682fMark Andrews
d8c2b1787119de43dd6b7e3927ff193ed5df682fMark Andrews# files to configure
8bcfe7952124a7aab5ae9fbb9420417b5be12721Mark Andrews
8bcfe7952124a7aab5ae9fbb9420417b5be12721Mark Andrewsmy $configfilein = "..\\config.h.win32";
8bcfe7952124a7aab5ae9fbb9420417b5be12721Mark Andrewsmy $configfileout = ">..\\config.h";
351696ef9e44e31e200afc0b019f24af6b597471Rob Austeinmy $platformfile = "..\\lib\\isc\\win32\\include\\isc\\platform.h";
fbdadf789f3057a5c90ebc026dbf2d174022bd28Rob Austein
e9f33cdca0565d049941117d30e4c37ab3c5e990Mark Andrewsmy @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
e9f33cdca0565d049941117d30e4c37ab3c5e990Mark Andrews "..\\bin\\check\\win32\\checkconf.dsp",
cf6b36171770dc14b6572003b4e8aeaa22536dd4Mark Andrews "..\\bin\\check\\win32\\checkconf.mak",
cf6b36171770dc14b6572003b4e8aeaa22536dd4Mark Andrews "..\\bin\\check\\win32\\checkzone.dsp",
9105a6a730bfb8472c48230629c5a0aebb88c422Mark Andrews "..\\bin\\check\\win32\\checkzone.mak",
9105a6a730bfb8472c48230629c5a0aebb88c422Mark Andrews "..\\bin\\confgen\\win32\\confgentool.dsp",
c5a84548b24ffac37d0154d8f2f4fea36a3aeb23Mark Andrews "..\\bin\\confgen\\win32\\ddnsconfgen.dsp",
9aa7706900e2451fcd6e44ffe4a45b042ec34cf3Mark Andrews "..\\bin\\confgen\\win32\\ddnsconfgen.mak",
9aa7706900e2451fcd6e44ffe4a45b042ec34cf3Mark Andrews "..\\bin\\confgen\\win32\\rndcconfgen.dsp",
7b78f6665635ed85118352c97ff5a25f5bb242f7Mark Andrews "..\\bin\\confgen\\win32\\rndcconfgen.mak",
c4f9e613e12f03795bee18cf2ca8e6a9d39d6468Mark Andrews "..\\bin\\delv\\win32\\delv.dsp",
3b2032121d6e8ae1f4ad24b31a69e1a4b33c91a0Mark Andrews "..\\bin\\delv\\win32\\delv.mak",
e30e7913c9f0978ae60b4e4572034a4b9ffb46deMark Andrews "..\\bin\\dig\\win32\\dig.dsp",
e30e7913c9f0978ae60b4e4572034a4b9ffb46deMark Andrews "..\\bin\\dig\\win32\\dig.mak",
e30e7913c9f0978ae60b4e4572034a4b9ffb46deMark Andrews "..\\bin\\dig\\win32\\dighost.dsp",
65356eb978747c5e68d4c6b3909642cebb8479f8Mark Andrews "..\\bin\\dig\\win32\\host.dsp",
e8346a529a2777d1867e0bbb3440279cbddbd808Mark Andrews "..\\bin\\dig\\win32\\host.mak",
e8346a529a2777d1867e0bbb3440279cbddbd808Mark Andrews "..\\bin\\dig\\win32\\nslookup.dsp",
7de69feda2f66658ce66a8700d64ffb88d47bb6aMark Andrews "..\\bin\\dig\\win32\\nslookup.mak",
7de69feda2f66658ce66a8700d64ffb88d47bb6aMark Andrews "..\\bin\\dnssec\\win32\\dnssectool.dsp",
bb3e43000807197e776407fd8d524a87dcc17a10Mark Andrews "..\\bin\\dnssec\\win32\\dsfromkey.dsp",
bb3e43000807197e776407fd8d524a87dcc17a10Mark Andrews "..\\bin\\dnssec\\win32\\dsfromkey.mak",
5b4a9ac6bfba91acd3ba976e75b14ee065d6f95eMark Andrews "..\\bin\\dnssec\\win32\\importkey.dsp",
5b4a9ac6bfba91acd3ba976e75b14ee065d6f95eMark Andrews "..\\bin\\dnssec\\win32\\importkey.mak",
5b4a9ac6bfba91acd3ba976e75b14ee065d6f95eMark Andrews "..\\bin\\dnssec\\win32\\keyfromlabel.dsp",
b0196673ab41b4f17e1c45fba160f3ea2623a06fMark Andrews "..\\bin\\dnssec\\win32\\keyfromlabel.mak",
b0196673ab41b4f17e1c45fba160f3ea2623a06fMark Andrews "..\\bin\\dnssec\\win32\\keygen.dsp",
b0196673ab41b4f17e1c45fba160f3ea2623a06fMark Andrews "..\\bin\\dnssec\\win32\\keygen.mak",
40fe5e7ac29b695438528c190140fec27d8d1018Mark Andrews "..\\bin\\dnssec\\win32\\revoke.dsp",
40fe5e7ac29b695438528c190140fec27d8d1018Mark Andrews "..\\bin\\dnssec\\win32\\revoke.mak",
40fe5e7ac29b695438528c190140fec27d8d1018Mark Andrews "..\\bin\\dnssec\\win32\\settime.dsp",
d562cb04df022606af43c7bee3111e4d17cbe4b2Mark Andrews "..\\bin\\dnssec\\win32\\settime.mak",
1d8abe0521c8e084dfcdd821173c10e0b416aeb3Mark Andrews "..\\bin\\dnssec\\win32\\signzone.dsp",
1d8abe0521c8e084dfcdd821173c10e0b416aeb3Mark Andrews "..\\bin\\dnssec\\win32\\signzone.mak",
1d8abe0521c8e084dfcdd821173c10e0b416aeb3Mark Andrews "..\\bin\\dnssec\\win32\\verify.dsp",
1d8abe0521c8e084dfcdd821173c10e0b416aeb3Mark Andrews "..\\bin\\dnssec\\win32\\verify.mak",
1bf8f4b77df1e1f8c1ce8326679ab02bac235c09Mark Andrews "..\\bin\\named\\win32\\named.dsp",
18afcb70285f2204b1586c351dd4af0a01d33f75Mark Andrews "..\\bin\\named\\win32\\named.mak",
18afcb70285f2204b1586c351dd4af0a01d33f75Mark Andrews "..\\bin\\nsupdate\\win32\\nsupdate.dsp",
18afcb70285f2204b1586c351dd4af0a01d33f75Mark Andrews "..\\bin\\nsupdate\\win32\\nsupdate.mak",
18afcb70285f2204b1586c351dd4af0a01d33f75Mark Andrews "..\\bin\\pkcs11\\win32\\pk11destroy.dsp",
18afcb70285f2204b1586c351dd4af0a01d33f75Mark Andrews "..\\bin\\pkcs11\\win32\\pk11destroy.mak",
32c7aa3dd18d57979990574ddb008437b59c2428Rob Austein "..\\bin\\pkcs11\\win32\\pk11keygen.dsp",
32c7aa3dd18d57979990574ddb008437b59c2428Rob Austein "..\\bin\\pkcs11\\win32\\pk11keygen.mak",
358043e40fd0c1fe312e25c28a771aafc3bd7b79Mark Andrews "..\\bin\\pkcs11\\win32\\pk11list.dsp",
358043e40fd0c1fe312e25c28a771aafc3bd7b79Mark Andrews "..\\bin\\pkcs11\\win32\\pk11list.mak",
7389e8330d62a059b8923fb8ca6f933caeb559d9Mark Andrews "..\\bin\\pkcs11\\win32\\pk11tokens.dsp",
7389e8330d62a059b8923fb8ca6f933caeb559d9Mark Andrews "..\\bin\\pkcs11\\win32\\pk11tokens.mak",
bb50eb10edbfa31f53699304d6838716d700b85bMark Andrews "..\\bin\\python\\dnssec-checkds.py",
7389e8330d62a059b8923fb8ca6f933caeb559d9Mark Andrews "..\\bin\\python\\dnssec-coverage.py",
7389e8330d62a059b8923fb8ca6f933caeb559d9Mark Andrews "..\\bin\\python\\dnssec-keymgr.py",
bb50eb10edbfa31f53699304d6838716d700b85bMark Andrews "..\\bin\\python\\isc\\utils.py",
a5e055b9d8bc42b0e29d88960ed2a5c531fa5acbRob Austein "..\\bin\\rndc\\win32\\rndc.dsp",
a5e055b9d8bc42b0e29d88960ed2a5c531fa5acbRob Austein "..\\bin\\rndc\\win32\\rndc.mak",
3d8dfd44a3be708f00380064411c16b2fa28303aMark Andrews "..\\bin\\rndc\\win32\\rndcutil.dsp",
a46445468bb39318ad2a4291ace371a8c4ff9ac6Mark Andrews "..\\bin\\tools\\win32\\arpaname.dsp",
e794f1ef072b4453c4af64717429729bcf3a6a69Mark Andrews "..\\bin\\tools\\win32\\arpaname.mak",
e794f1ef072b4453c4af64717429729bcf3a6a69Mark Andrews "..\\bin\\tools\\win32\\genrandom.dsp",
5f059eef4360bc6c35a38241deb2561884dd9001Mark Andrews "..\\bin\\tools\\win32\\genrandom.mak",
e180037bc15a98cac0b91ffcf464e9c96918294bMark Andrews "..\\bin\\tools\\win32\\ischmacfixup.dsp",
e180037bc15a98cac0b91ffcf464e9c96918294bMark Andrews "..\\bin\\tools\\win32\\ischmacfixup.mak",
eeac8cfcd3ad738b435ad82fcd5c6387da643f90Mark Andrews "..\\bin\\tools\\win32\\journalprint.dsp",
99ba7fc5ff50823248155f4f2954ece0271b4354Mark Andrews "..\\bin\\tools\\win32\\journalprint.mak",
99ba7fc5ff50823248155f4f2954ece0271b4354Mark Andrews "..\\bin\\tools\\win32\\mdig.dsp",
d1ef96c5fb81b1edbede4228480848b58e48799eMark Andrews "..\\bin\\tools\\win32\\mdig.mak",
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews "..\\bin\\tools\\win32\\nsec3hash.dsp",
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews "..\\bin\\tools\\win32\\nsec3hash.mak",
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews "..\\bin\\tools\\win32\\rrchecker.dsp",
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews "..\\bin\\tools\\win32\\rrchecker.mak",
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews "..\\bin\\tests\\atomic\\win32\\t_atomic.dsp",
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews "..\\bin\\tests\\atomic\\win32\\t_atomic.mak",
cc3aafe737334d444781f8a34ffaf459e075bb9aMark Andrews "..\\bin\\tests\\db\\win32\\t_db.dsp",
68fb0934fd5e2f8f95a2f43e26b1208f7cbc4307Mark Andrews "..\\bin\\tests\\db\\win32\\t_db.mak",
68fb0934fd5e2f8f95a2f43e26b1208f7cbc4307Mark Andrews "..\\bin\\tests\\dst\\win32\\t_dst.dsp",
68fb0934fd5e2f8f95a2f43e26b1208f7cbc4307Mark Andrews "..\\bin\\tests\\dst\\win32\\t_dst.mak",
68fb0934fd5e2f8f95a2f43e26b1208f7cbc4307Mark Andrews "..\\bin\\tests\\master\\win32\\t_master.dsp",
68fb0934fd5e2f8f95a2f43e26b1208f7cbc4307Mark Andrews "..\\bin\\tests\\master\\win32\\t_master.mak",
3386e927950e1bacd2ae7bfdc03ee17885bd9993Mark Andrews "..\\bin\\tests\\mem\\win32\\t_mem.dsp",
3386e927950e1bacd2ae7bfdc03ee17885bd9993Mark Andrews "..\\bin\\tests\\mem\\win32\\t_mem.mak",
c80b5ef256d9c289c403bc90e0fbee3699552808Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.dsp",
23fdb6a5a3d3d0e427682b68eea9553d2d326ad4Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.mak",
23fdb6a5a3d3d0e427682b68eea9553d2d326ad4Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.dsp",
b8694095f0109e23d9aaa3e84f840829b014c417Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.mak",
23fdb6a5a3d3d0e427682b68eea9553d2d326ad4Mark Andrews "..\\bin\\tests\\rbt\\win32\\t_rbt.dsp",
23fdb6a5a3d3d0e427682b68eea9553d2d326ad4Mark Andrews "..\\bin\\tests\\rbt\\win32\\t_rbt.mak",
23fdb6a5a3d3d0e427682b68eea9553d2d326ad4Mark Andrews "..\\bin\\tests\\resolver\\win32\\t_resolver.dsp",
b8694095f0109e23d9aaa3e84f840829b014c417Mark Andrews "..\\bin\\tests\\resolver\\win32\\t_resolver.mak",
23fdb6a5a3d3d0e427682b68eea9553d2d326ad4Mark Andrews "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.dsp",
b8694095f0109e23d9aaa3e84f840829b014c417Mark Andrews "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.mak",
e6c95fe56b0491b533f2ca5a3ed8e8e9f74f4fd2Mark Andrews "..\\bin\\tests\\tasks\\win32\\t_tasks.dsp",
e6c95fe56b0491b533f2ca5a3ed8e8e9f74f4fd2Mark Andrews "..\\bin\\tests\\tasks\\win32\\t_tasks.mak",
e6c95fe56b0491b533f2ca5a3ed8e8e9f74f4fd2Mark Andrews "..\\bin\\tests\\timers\\win32\\t_timers.dsp",
e6c95fe56b0491b533f2ca5a3ed8e8e9f74f4fd2Mark Andrews "..\\bin\\tests\\timers\\win32\\t_timers.mak",
1c52f228e9e2d8784273b7af76794031e480e5e8Mark Andrews "..\\bin\\tests\\win32\\backtrace_test.dsp",
1c52f228e9e2d8784273b7af76794031e480e5e8Mark Andrews "..\\bin\\tests\\win32\\backtrace_test.mak",
ea0b0c283be744d8b5810927b9981a9afe2f900dMark Andrews "..\\bin\\tests\\win32\\inter_test.dsp",
c315e5cfead876251ee4ff5600ee67303b2729a4Mark Andrews "..\\bin\\tests\\win32\\inter_test.mak",
c315e5cfead876251ee4ff5600ee67303b2729a4Mark Andrews "..\\bin\\tests\\win32\\rwlock_test.dsp",
c315e5cfead876251ee4ff5600ee67303b2729a4Mark Andrews "..\\bin\\tests\\win32\\rwlock_test.mak",
c956fbfbbd536407a2f0ef8f138c27729d31744dMark Andrews "..\\bin\\tests\\win32\\shutdown_test.dsp",
e5477896ce19a38c3b45e93c144e075565b79e9cMark Andrews "..\\bin\\tests\\win32\\shutdown_test.mak",
e5477896ce19a38c3b45e93c144e075565b79e9cMark Andrews "..\\bin\\tests\\win32\\sock_test.dsp",
e5477896ce19a38c3b45e93c144e075565b79e9cMark Andrews "..\\bin\\tests\\win32\\sock_test.mak",
c52d94fa4b7eaf8b7be9dfda15f9fc2c01041d51Mark Andrews "..\\bin\\tests\\win32\\task_test.dsp",
f66cd386cf4d0cc65b28cbaeaf540353406393a8Mark Andrews "..\\bin\\tests\\win32\\task_test.mak",
f66cd386cf4d0cc65b28cbaeaf540353406393a8Mark Andrews "..\\bin\\tests\\win32\\timer_test.dsp",
e94cf7074d8ac30820a715211ae914387996cca9Mark Andrews "..\\bin\\tests\\win32\\timer_test.mak",
7e2c0c16d6e03058650f536a5b43cb21598ec91fMark Andrews "..\\bin\\tests\\win32\\inter_test.dsp",
7e2c0c16d6e03058650f536a5b43cb21598ec91fMark Andrews "..\\bin\\tests\\win32\\inter_test.mak",
7e2c0c16d6e03058650f536a5b43cb21598ec91fMark Andrews "..\\bin\\tests\\win32\\rwlock_test.dsp",
6ecbd11029fa201b5f273f4ef016617dc35206aeMark Andrews "..\\bin\\tests\\win32\\rwlock_test.mak",
6ecbd11029fa201b5f273f4ef016617dc35206aeMark Andrews "..\\bin\\tests\\win32\\shutdown_test.dsp",
738bffe2ee7dd6f3efeae8e2cca9017acc9c5f94Mark Andrews "..\\bin\\tests\\win32\\shutdown_test.mak",
8d5b4ce1eb7914205c6433d6575f6d11cd7a9509Mark Andrews "..\\bin\\tests\\win32\\sock_test.dsp",
8d5b4ce1eb7914205c6433d6575f6d11cd7a9509Mark Andrews "..\\bin\\tests\\win32\\sock_test.mak",
8d5b4ce1eb7914205c6433d6575f6d11cd7a9509Mark Andrews "..\\bin\\tests\\win32\\task_test.dsp",
c0707105f60934d59321c2fccbc254f9e31ff28aMark Andrews "..\\bin\\tests\\win32\\task_test.mak",
c0707105f60934d59321c2fccbc254f9e31ff28aMark Andrews "..\\bin\\tests\\win32\\timer_test.dsp",
c0707105f60934d59321c2fccbc254f9e31ff28aMark Andrews "..\\bin\\tests\\win32\\timer_test.mak",
50e45d74340656422b21a5513f2d7138dfe24b7aMark Andrews "..\\bin\\win32\\BINDInstall\\BINDInstall.dsp",
50e45d74340656422b21a5513f2d7138dfe24b7aMark Andrews "..\\bin\\win32\\BINDInstall\\BINDInstall.mak",
be00eb0795d2def3452de0da2adde74e7eda6982Mark Andrews "..\\lib\\bind9\\win32\\libbind9.dsp",
be00eb0795d2def3452de0da2adde74e7eda6982Mark Andrews "..\\lib\\bind9\\win32\\libbind9.mak",
be00eb0795d2def3452de0da2adde74e7eda6982Mark Andrews "..\\lib\\dns\\win32\\gen.dsp",
2cd8fa3ef9b168429dcf76603e7b95c58317dd28Mark Andrews "..\\lib\\dns\\win32\\gen.mak",
2cd8fa3ef9b168429dcf76603e7b95c58317dd28Mark Andrews "..\\lib\\dns\\win32\\libdns.def",
5ba04ba7a99371afcd4d988854ee71bffdb20df4Mark Andrews "..\\lib\\dns\\win32\\libdns.dsp",
5ba04ba7a99371afcd4d988854ee71bffdb20df4Mark Andrews "..\\lib\\dns\\win32\\libdns.mak",
5ba04ba7a99371afcd4d988854ee71bffdb20df4Mark Andrews "..\\lib\\irs\\win32\\libirs.dsp",
f6f0bf7d4bb135ba1a421520076a47a61b6870fcMark Andrews "..\\lib\\irs\\win32\\libirs.mak",
f6f0bf7d4bb135ba1a421520076a47a61b6870fcMark Andrews "..\\lib\\isc\\win32\\libisc.def",
4e681da26da4fff442b3ae24b0da2de1f240c43cMark Andrews "..\\lib\\isc\\win32\\libisc.dsp",
4e681da26da4fff442b3ae24b0da2de1f240c43cMark Andrews "..\\lib\\isc\\win32\\libisc.mak",
4e681da26da4fff442b3ae24b0da2de1f240c43cMark Andrews "..\\lib\\isccc\\win32\\libisccc.dsp",
4e681da26da4fff442b3ae24b0da2de1f240c43cMark Andrews "..\\lib\\isccc\\win32\\libisccc.mak",
4499c6cd5e376c59e06cd0be61f3620a1336bc5fMark Andrews "..\\lib\\isccfg\\win32\\libisccfg.dsp",
4499c6cd5e376c59e06cd0be61f3620a1336bc5fMark Andrews "..\\lib\\isccfg\\win32\\libisccfg.mak",
4a6f552617fe422ad90826e48c2a3446e3a2574bMark Andrews "..\\lib\\lwres\\win32\\liblwres.dsp",
4a6f552617fe422ad90826e48c2a3446e3a2574bMark Andrews "..\\lib\\lwres\\win32\\liblwres.mak",
1195e2e1f2853df56d7ec69d2e01a99d44e4d61dMark Andrews "..\\lib\\samples\\win32\\async.dsp",
392cd518b3aff35c0396f84884cd51680edd68a1Mark Andrews "..\\lib\\samples\\win32\\async.mak",
392cd518b3aff35c0396f84884cd51680edd68a1Mark Andrews "..\\lib\\samples\\win32\\gai.dsp",
392cd518b3aff35c0396f84884cd51680edd68a1Mark Andrews "..\\lib\\samples\\win32\\gai.mak",
74def1c9c1880480bb62eb881e8a7ce28f9f7a20Mark Andrews "..\\lib\\samples\\win32\\nsprobe.dsp",
5efa612be0471cc4e133b795db3dd3addf18ba6cMark Andrews "..\\lib\\samples\\win32\\nsprobe.mak",
5efa612be0471cc4e133b795db3dd3addf18ba6cMark Andrews "..\\lib\\samples\\win32\\request.dsp",
da059d6dd4035c1f4736e7978065c4d51893b136Mark Andrews "..\\lib\\samples\\win32\\request.mak",
78ef0ebab3a4039f8efc8afdb7ee4b936ffc34caMark Andrews "..\\lib\\samples\\win32\\resolve.dsp",
78ef0ebab3a4039f8efc8afdb7ee4b936ffc34caMark Andrews "..\\lib\\samples\\win32\\resolve.mak",
78ef0ebab3a4039f8efc8afdb7ee4b936ffc34caMark Andrews "..\\lib\\samples\\win32\\update.dsp",
f620c5e527746a2ec3d90a11d21abd8a114746dfTatuya JINMEI 神明達哉 "..\\lib\\samples\\win32\\update.mak",
d9147148dde80db2ce3390ded26333d106d3c10bTatuya JINMEI 神明達哉 "..\\lib\\tests\\win32\\libtests.dsp",
ec3f1d35170225c74d11c27bb184e250d150b209Tatuya JINMEI 神明達哉 "..\\lib\\tests\\win32\\libtests.mak",
ec3f1d35170225c74d11c27bb184e250d150b209Tatuya JINMEI 神明達哉 "..\\lib\\win32\\bindevt\\bindevt.dsp",
75654de87118c587629b5dc6882b6c1925d34983Tatuya JINMEI 神明達哉 "..\\lib\\win32\\bindevt\\bindevt.mak",
71839e2a424a904a60429a380ee7685464022e4bMark Andrews "legacy\\BINDBuild.dsw",
71839e2a424a904a60429a380ee7685464022e4bMark Andrews "legacy\\BuildAll.bat",
578f588228f5e04ccf648b6ae596f396ad6a22c9Mark Andrews "legacy\\BuildPost.bat",
578f588228f5e04ccf648b6ae596f396ad6a22c9Mark Andrews "legacy\\BuildSetup.bat");
578f588228f5e04ccf648b6ae596f396ad6a22c9Mark Andrews
e0199985cfe68e8556cf0060ad8f7effbcdc5628Mark Andrewsmy @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
e0199985cfe68e8556cf0060ad8f7effbcdc5628Mark Andrews "..\\bin\\check\\win32\\checkconf.vcxproj.filters",
38e8022ace865803bdd609c9763cd7d7ba2818dcMark Andrews "..\\bin\\check\\win32\\checktool.vcxproj",
38e8022ace865803bdd609c9763cd7d7ba2818dcMark Andrews "..\\bin\\check\\win32\\checktool.vcxproj.filters",
445acbbea8bd5143749e97a8ff247a808321aa6cMark Andrews "..\\bin\\check\\win32\\checkzone.vcxproj",
8407fbc61d73caa766c0689558525d0a76296c86Mark Andrews "..\\bin\\check\\win32\\checkzone.vcxproj.filters",
8407fbc61d73caa766c0689558525d0a76296c86Mark Andrews "..\\bin\\confgen\\win32\\confgentool.vcxproj",
08b40678f36df355db8e7b84fa4e74f726dd2b3eMark Andrews "..\\bin\\confgen\\win32\\confgentool.vcxproj.filters",
08b40678f36df355db8e7b84fa4e74f726dd2b3eMark Andrews "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj",
08b40678f36df355db8e7b84fa4e74f726dd2b3eMark Andrews "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj.filters",
b9625d9be5d89015b75cc7c25088a8d1a3bb7655Mark Andrews "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj",
cc32d38366fa680fc29f9fb17bd3ebe515835445Mark Andrews "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj.filters",
cc32d38366fa680fc29f9fb17bd3ebe515835445Mark Andrews "..\\bin\\delv\\win32\\delv.vcxproj",
267a22597fc1c5ffd81532ec1afad36b729f6cb4Tatuya JINMEI 神明達哉 "..\\bin\\delv\\win32\\delv.vcxproj.filters",
cc32d38366fa680fc29f9fb17bd3ebe515835445Mark Andrews "..\\bin\\dig\\win32\\dig.vcxproj",
cc32d38366fa680fc29f9fb17bd3ebe515835445Mark Andrews "..\\bin\\dig\\win32\\dig.vcxproj.filters",
267a22597fc1c5ffd81532ec1afad36b729f6cb4Tatuya JINMEI 神明達哉 "..\\bin\\dig\\win32\\dighost.vcxproj",
3dc3d557be91d59317b34fc5a9ae79b1925d5878Mark Andrews "..\\bin\\dig\\win32\\dighost.vcxproj.filters",
c5076a76f6562b5aa48e6a1c680c343b53846157Mark Andrews "..\\bin\\dig\\win32\\host.vcxproj",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dig\\win32\\host.vcxproj.filters",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dig\\win32\\nslookup.vcxproj",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dig\\win32\\nslookup.vcxproj.filters",
86548554f6180bbe051c8cd8f03c93fc9b6a7825Mark Andrews "..\\bin\\dnssec\\win32\\dnssectool.vcxproj",
86548554f6180bbe051c8cd8f03c93fc9b6a7825Mark Andrews "..\\bin\\dnssec\\win32\\dnssectool.vcxproj.filters",
86548554f6180bbe051c8cd8f03c93fc9b6a7825Mark Andrews "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj",
5ed76fa7ea83d3ce7a33d365aa3b84410c3b8773Mark Andrews "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj.filters",
5ed76fa7ea83d3ce7a33d365aa3b84410c3b8773Mark Andrews "..\\bin\\dnssec\\win32\\importkey.vcxproj",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dnssec\\win32\\importkey.vcxproj.filters",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj",
ad3b537a241f40bbb3fdc4de252881c42645021bMark Andrews "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj.filters",
b21b49a1d43dbc44d2b15674ce03a13562165566Mark Andrews "..\\bin\\dnssec\\win32\\keygen.vcxproj",
b21b49a1d43dbc44d2b15674ce03a13562165566Mark Andrews "..\\bin\\dnssec\\win32\\keygen.vcxproj.filters",
b21b49a1d43dbc44d2b15674ce03a13562165566Mark Andrews "..\\bin\\dnssec\\win32\\revoke.vcxproj",
ea38808b7dc1b2e760f18f2cc3ae07deaf15ba1aMark Andrews "..\\bin\\dnssec\\win32\\revoke.vcxproj.filters",
de6ceebf98bedee0b1e1e81d078befbd728b801cMark Andrews "..\\bin\\dnssec\\win32\\settime.vcxproj",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dnssec\\win32\\settime.vcxproj.filters",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dnssec\\win32\\signzone.vcxproj",
349f684cf175422918d10e91e7bee747c18ae840Mark Andrews "..\\bin\\dnssec\\win32\\signzone.vcxproj.filters",
ed6e3610e3e56aac554dc93cad461a0016e961f9Mark Andrews "..\\bin\\dnssec\\win32\\verify.vcxproj",
1cf54d1966b3de8f6593e9e80eae9a80a1c011adMark Andrews "..\\bin\\dnssec\\win32\\verify.vcxproj.filters",
1cf54d1966b3de8f6593e9e80eae9a80a1c011adMark Andrews "..\\bin\\named\\win32\\named.vcxproj",
c3c72c1033b9d085b1a1fe74a9e3efb6db724ce2Mark Andrews "..\\bin\\named\\win32\\named.vcxproj.filters",
b4fe7caac90b28629d207b40a77862e2535f925cMark Andrews "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj",
b4fe7caac90b28629d207b40a77862e2535f925cMark Andrews "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj.filters",
a0a19510c03e6004fd11ec278745d499751cd081Mark Andrews "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj",
c2ec022f5784a2ff844f7d062c2022197dc4ad09Mark Andrews "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj.filters",
c2ec022f5784a2ff844f7d062c2022197dc4ad09Mark Andrews "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj",
c2ec022f5784a2ff844f7d062c2022197dc4ad09Mark Andrews "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj.filters",
46ed893dd0c8096d2bcbf31e6dcf79b2786e7b7fMark Andrews "..\\bin\\pkcs11\\win32\\pk11list.vcxproj",
1ae75c1024eb0475c2be352b8707772e16332ad0Mark Andrews "..\\bin\\pkcs11\\win32\\pk11list.vcxproj.filters",
1ae75c1024eb0475c2be352b8707772e16332ad0Mark Andrews "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj",
1ae75c1024eb0475c2be352b8707772e16332ad0Mark Andrews "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj.filters",
ea17e969771f19485dc7ab2f731d641128a9ee3bMark Andrews "..\\bin\\rndc\\win32\\rndc.vcxproj",
ea17e969771f19485dc7ab2f731d641128a9ee3bMark Andrews "..\\bin\\rndc\\win32\\rndc.vcxproj.filters",
ea17e969771f19485dc7ab2f731d641128a9ee3bMark Andrews "..\\bin\\rndc\\win32\\rndcutil.vcxproj",
5eb0659963ec2aa5158425b39620ec1b30c83c7bMark Andrews "..\\bin\\rndc\\win32\\rndcutil.vcxproj.filters",
5eb0659963ec2aa5158425b39620ec1b30c83c7bMark Andrews "..\\bin\\tools\\win32\\arpaname.vcxproj",
5eb0659963ec2aa5158425b39620ec1b30c83c7bMark Andrews "..\\bin\\tools\\win32\\arpaname.vcxproj.filters",
7952b2b43e880b18e63613805f71fd3e8624bb44Mark Andrews "..\\bin\\tools\\win32\\genrandom.vcxproj",
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews "..\\bin\\tools\\win32\\genrandom.vcxproj.filters",
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews "..\\bin\\tools\\win32\\ischmacfixup.vcxproj",
e1f638a7141a4c1364e4ca45025241c9e2fecf74Mark Andrews "..\\bin\\tools\\win32\\ischmacfixup.vcxproj.filters",
4995dba770c1f5f421cf22a2e9e138586a153765Mark Andrews "..\\bin\\tools\\win32\\journalprint.vcxproj",
4995dba770c1f5f421cf22a2e9e138586a153765Mark Andrews "..\\bin\\tools\\win32\\journalprint.vcxproj.filters",
4995dba770c1f5f421cf22a2e9e138586a153765Mark Andrews "..\\bin\\tools\\win32\\mdig.vcxproj",
4995dba770c1f5f421cf22a2e9e138586a153765Mark Andrews "..\\bin\\tools\\win32\\mdig.vcxproj.filters",
b39213ce599dc433c6f99144c97ca3d562f40344Mark Andrews "..\\bin\\tools\\win32\\nsec3hash.vcxproj",
b39213ce599dc433c6f99144c97ca3d562f40344Mark Andrews "..\\bin\\tools\\win32\\nsec3hash.vcxproj.filters",
154bd87b5c9d603329dd691b822525c6885f21d4Mark Andrews "..\\bin\\tools\\win32\\rrchecker.vcxproj",
8862388bcb44f634cbfc3e69f11ff4cb76590a4bMark Andrews "..\\bin\\tools\\win32\\rrchecker.vcxproj.filters",
8862388bcb44f634cbfc3e69f11ff4cb76590a4bMark Andrews "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj",
6ec0f98cf6e88aeba1615763fdec253bf391f22eMark Andrews "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj.filters",
80cc19dc262cead5a8af41838ebfae5a6e587605Mark Andrews "..\\bin\\tests\\db\\win32\\t_db.vcxproj",
80cc19dc262cead5a8af41838ebfae5a6e587605Mark Andrews "..\\bin\\tests\\db\\win32\\t_db.vcxproj.filters",
80cc19dc262cead5a8af41838ebfae5a6e587605Mark Andrews "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj",
d4e1933abc4bfa3d42dcc2f093c81816a317dde6Mark Andrews "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj.filters",
8d414d155953f89a4eff40f16878438a8c9228f3Mark Andrews "..\\bin\\tests\\master\\win32\\t_master.vcxproj",
8d414d155953f89a4eff40f16878438a8c9228f3Mark Andrews "..\\bin\\tests\\master\\win32\\t_master.vcxproj.filters",
7c82b7ae3f3006e20d00529a15372d6cba133c20Mark Andrews "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj",
8d414d155953f89a4eff40f16878438a8c9228f3Mark Andrews "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj.filters",
7c82b7ae3f3006e20d00529a15372d6cba133c20Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj",
8d414d155953f89a4eff40f16878438a8c9228f3Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj.filters",
8d414d155953f89a4eff40f16878438a8c9228f3Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.vcxproj",
7c82b7ae3f3006e20d00529a15372d6cba133c20Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.vcxproj.filters",
39e5cab80a2abc95ca034ac79ea3f973fc66f5b3Mark Andrews "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj",
39e5cab80a2abc95ca034ac79ea3f973fc66f5b3Mark Andrews "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj.filters",
0b9af9eb37f624033652f6cc463262474ee13344Mark Andrews "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj",
85315eb5361d92ba034cecc26c3526e121392386Mark Andrews "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj.filters",
3b1fce680f1dbe9467cd3b0ab3138ea52d5a976fMark Andrews "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj",
3b1fce680f1dbe9467cd3b0ab3138ea52d5a976fMark Andrews "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj.filters",
ead4d2d676b12a856769d3750861c6efbb95f709Mark Andrews "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj",
0822cc50657c972c6a5ee29cba9506847c7ea7c2Mark Andrews "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj.filters",
0822cc50657c972c6a5ee29cba9506847c7ea7c2Mark Andrews "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj",
bdb609f5874056f6f1cd212ebf8700132e683fe5Mark Andrews "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj.filters",
c5cde9d5a70c921da901a23845e740ccc7a8c4e4Mark Andrews "..\\bin\\tests\\win32\\backtrace_test.vcxproj",
c5cde9d5a70c921da901a23845e740ccc7a8c4e4Mark Andrews "..\\bin\\tests\\win32\\backtrace_test.vcxproj.filters",
bae21f249ead77e442a025b9b18d90e21ebf72ceMark Andrews "..\\bin\\tests\\win32\\inter_test.vcxproj",
321df4df1972da49223fc8ee1180f94b88295568Mark Andrews "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
a3a09ca2497e925a9f0ba76f1525c6c60e5d5094Mark Andrews "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
7f5a3cea4e93ad683b13ebef8a6589afd97fb762Mark Andrews "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
7f5a3cea4e93ad683b13ebef8a6589afd97fb762Mark Andrews "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
9c3df90dd3767bcc14c4028fb3d81b26d056e821Mark Andrews "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
9c3df90dd3767bcc14c4028fb3d81b26d056e821Mark Andrews "..\\bin\\tests\\win32\\sock_test.vcxproj",
50105afc551903541608b11851d73278b23579a3Mark Andrews "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
50105afc551903541608b11851d73278b23579a3Mark Andrews "..\\bin\\tests\\win32\\task_test.vcxproj",
1285fa26e632e3b386435b730b47b5ff1a03e553Mark Andrews "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
1285fa26e632e3b386435b730b47b5ff1a03e553Mark Andrews "..\\bin\\tests\\win32\\timer_test.vcxproj",
5a680f4170ba77be1e31cf1fc40ab43856919078Mark Andrews "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
5a680f4170ba77be1e31cf1fc40ab43856919078Mark Andrews "..\\bin\\tests\\win32\\inter_test.vcxproj",
ad35e0aec9dae18ee31e760beab1602f7eb4ef05Mark Andrews "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "..\\bin\\tests\\win32\\rwlock_test.vcxproj",
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
8c5d451ea2898586c00932efeb5123b41afc9650Mark Andrews "..\\bin\\tests\\win32\\shutdown_test.vcxproj",
9c8fb5f756d99a4ecba95df9a00757384f3b71b7Mark Andrews "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "..\\bin\\tests\\win32\\sock_test.vcxproj",
fa7ee558e0536a94bfdb154a7c7ba298535459c4Mark Andrews "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
d81018ac98b287438248cd0e3a1c230eb40b0b55Mark Andrews "..\\bin\\tests\\win32\\task_test.vcxproj",
1d7cbe71b99ea0e883a4cf8af8a91bba04a3597eMark Andrews "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
1d7cbe71b99ea0e883a4cf8af8a91bba04a3597eMark Andrews "..\\bin\\tests\\win32\\timer_test.vcxproj",
7436bb66c610c039ca3dec12aac5024037898910Mark Andrews "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
c569a0e4d518bf30be1b2ba9cc3592fe470e9822Mark Andrews "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj",
c569a0e4d518bf30be1b2ba9cc3592fe470e9822Mark Andrews "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj.filters",
e9964e7db4467722300c0d7d52ec1d7a51a784c1Mark Andrews "..\\lib\\bind9\\win32\\libbind9.vcxproj",
89783da064f4f9bf2e82d2b3941ddeffe2a8c30dMark Andrews "..\\lib\\bind9\\win32\\libbind9.vcxproj.filters",
50105afc551903541608b11851d73278b23579a3Mark Andrews "..\\lib\\dns\\win32\\gen.vcxproj",
89783da064f4f9bf2e82d2b3941ddeffe2a8c30dMark Andrews "..\\lib\\dns\\win32\\gen.vcxproj.filters",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "..\\lib\\dns\\win32\\libdns.vcxproj",
a03848252fa85734ca75beae3d0b01bb503c0a8bMark Andrews "..\\lib\\dns\\win32\\libdns.vcxproj.filters",
d7282a5fe88699990943df5ee6a7a48ee7ee2f7bMark Andrews "..\\lib\\irs\\win32\\libirs.vcxproj",
a03848252fa85734ca75beae3d0b01bb503c0a8bMark Andrews "..\\lib\\irs\\win32\\libirs.vcxproj.filters",
d7282a5fe88699990943df5ee6a7a48ee7ee2f7bMark Andrews "..\\lib\\isc\\win32\\libisc.vcxproj",
22fa4e3206c2048cabaf75a3ae21132fd5542848Mark Andrews "..\\lib\\isc\\win32\\libisc.vcxproj.filters",
22fa4e3206c2048cabaf75a3ae21132fd5542848Mark Andrews "..\\lib\\isccc\\win32\\libisccc.vcxproj",
3ad4e307b64bcf8baa984e10a4e7549dbeaea31dMark Andrews "..\\lib\\isccc\\win32\\libisccc.vcxproj.filters",
3f08fb69eb3b5f6eaa3c57160dff0998e1569283Mark Andrews "..\\lib\\isccfg\\win32\\libisccfg.vcxproj",
3f08fb69eb3b5f6eaa3c57160dff0998e1569283Mark Andrews "..\\lib\\isccfg\\win32\\libisccfg.vcxproj.filters",
9ce4318edbab0b50f21df9ce28beb6fde71943ecMark Andrews "..\\lib\\lwres\\win32\\liblwres.vcxproj",
91c79af4755df2d892511512e0fc886639518a92Mark Andrews "..\\lib\\lwres\\win32\\liblwres.vcxproj.filters",
91c79af4755df2d892511512e0fc886639518a92Mark Andrews "..\\lib\\samples\\win32\\resolve.vcxproj",
bf74532c942054bccc3df5227009ce52063a9dafMark Andrews "..\\lib\\samples\\win32\\resolve.vcxproj.filters",
80c5a37ddcb42239f6b7d16b66ca0426ca6ffe2cMark Andrews "..\\lib\\samples\\win32\\async.vcxproj",
2558e3f25d4972a028c99141bd26d3f3087630d5Mark Andrews "..\\lib\\samples\\win32\\async.vcxproj.filters",
821644d49b73b49f2abc5463bc53a3132f612478Mark Andrews "..\\lib\\samples\\win32\\gai.vcxproj",
821644d49b73b49f2abc5463bc53a3132f612478Mark Andrews "..\\lib\\samples\\win32\\gai.vcxproj.filters",
821644d49b73b49f2abc5463bc53a3132f612478Mark Andrews "..\\lib\\samples\\win32\\update.vcxproj",
74cb99072c4b0ebd2ccafcfa284288fa760f7a1aMark Andrews "..\\lib\\samples\\win32\\update.vcxproj.filters",
74cb99072c4b0ebd2ccafcfa284288fa760f7a1aMark Andrews "..\\lib\\samples\\win32\\request.vcxproj",
74cb99072c4b0ebd2ccafcfa284288fa760f7a1aMark Andrews "..\\lib\\samples\\win32\\request.vcxproj.filters",
902aebfb5ad7c735f74f700da288dc4519b83123Mark Andrews "..\\lib\\samples\\win32\\nsprobe.vcxproj",
22cd704fca51434f7aba193fd94d3291cc94ba2bMark Andrews "..\\lib\\samples\\win32\\nsprobe.vcxproj.filters",
22cd704fca51434f7aba193fd94d3291cc94ba2bMark Andrews "..\\lib\\tests\\win32\\libtests.vcxproj",
0e4f7c9d4e1a4bb66f0702e9f9975c392a15918bMark Andrews "..\\lib\\tests\\win32\\libtests.vcxproj.filters",
7554feaef6057f5ea2926076900ac7634b911456Mark Andrews "..\\lib\\win32\\bindevt\\bindevt.vcxproj",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "..\\lib\\win32\\bindevt\\bindevt.vcxproj.filters",
dbc4666b1b153775001613af160541da986429b2Mark Andrews "bind9.sln");
aa20b1b625dc406e1d9c3ff95d2a4af432e119faMark Andrews
aa20b1b625dc406e1d9c3ff95d2a4af432e119faMark Andrews# for config.h
aa20b1b625dc406e1d9c3ff95d2a4af432e119faMark Andrews
54a8b1e6ede781e9f4059512530046db8c4de1ddMark Andrewsmy %configdefh;
c4b8c7555d4abcfa4706c0551b00d71554250936Mark Andrews
c4b8c7555d4abcfa4706c0551b00d71554250936Mark Andrewsmy @substdefh = ("AES_CC",
4b28ee17ca96def8c7e7a8a45af55da81545f20aMark Andrews "ALLOW_FILTER_AAAA",
c4b8c7555d4abcfa4706c0551b00d71554250936Mark Andrews "CONFIGARGS",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "DNS_RDATASET_FIXED",
4b28ee17ca96def8c7e7a8a45af55da81545f20aMark Andrews "ENABLE_RPZ_NSDNAME",
f7e94169a9814c8e7d2ac8ac62bf0ccafb5a2cb6Mark Andrews "ENABLE_RPZ_NSIP",
f7e94169a9814c8e7d2ac8ac62bf0ccafb5a2cb6Mark Andrews "HAVE_EVP_SHA256",
774c3a62d9adca187b44fe90919bb409a43a2f2aMark Andrews "HAVE_EVP_SHA384",
774c3a62d9adca187b44fe90919bb409a43a2f2aMark Andrews "HAVE_EVP_SHA512",
774c3a62d9adca187b44fe90919bb409a43a2f2aMark Andrews "HAVE_GEOIP",
774c3a62d9adca187b44fe90919bb409a43a2f2aMark Andrews "HAVE_GEOIP_CITY_V6",
807d4a4c54ab9a328afeb5f69dc680ffbcb384c8Tatuya JINMEI 神明達哉 "HAVE_GEOIP_V6",
1f058fb7d18d43e26ab0c9e8ce2ff6615740186aMark Andrews "HAVE_LIBXML2",
1f058fb7d18d43e26ab0c9e8ce2ff6615740186aMark Andrews "HAVE_OPENSSL_AES",
1f058fb7d18d43e26ab0c9e8ce2ff6615740186aMark Andrews "HAVE_OPENSSL_DSA",
6bd3b1fdb3915931ac158b2126fae35711bd0b26Mark Andrews "HAVE_OPENSSL_ECDSA",
f8dfdef682c54f61cacebfb31260f3d6ba4ea54aMark Andrews "HAVE_OPENSSL_EVP_AES",
f8dfdef682c54f61cacebfb31260f3d6ba4ea54aMark Andrews "HAVE_OPENSSL_GOST",
f8dfdef682c54f61cacebfb31260f3d6ba4ea54aMark Andrews "HAVE_PKCS11_ECDSA",
f8dfdef682c54f61cacebfb31260f3d6ba4ea54aMark Andrews "HAVE_PKCS11_GOST",
f8dfdef682c54f61cacebfb31260f3d6ba4ea54aMark Andrews "HAVE_READLINE",
b3d3e578410209d849efb59c9ea4925ca5c9ca68Mark Andrews "HAVE_ZLIB",
b3d3e578410209d849efb59c9ea4925ca5c9ca68Mark Andrews "HMAC_RETURN_INT",
ea40cebe2b51bd2b3c228ac6d08a3cfeca17960aMark Andrews "HMAC_SHA1_CC",
96c973a6a96f10c93ede4c66964ceae47535a07aMark Andrews "HMAC_SHA256_CC",
96c973a6a96f10c93ede4c66964ceae47535a07aMark Andrews "ISC_LIST_CHECKINIT",
96c973a6a96f10c93ede4c66964ceae47535a07aMark Andrews "PREFER_GOSTASN1",
9cf0970f43a41fe78a78d878f1d45c65f0b733d3Mark Andrews "TUNE_LARGE",
9cf0970f43a41fe78a78d878f1d45c65f0b733d3Mark Andrews "WANT_QUERYTRACE",
9cf0970f43a41fe78a78d878f1d45c65f0b733d3Mark Andrews "WITH_IDN");
ad430189fb0028e41ae722f6e3c465b4bdd47af1Mark Andrews
ad430189fb0028e41ae722f6e3c465b4bdd47af1Mark Andrews# for platform.h
ad430189fb0028e41ae722f6e3c465b4bdd47af1Mark Andrews
90c4900d5cf1a1b556ae4c1de6338b2e7475ee55Mark Andrewsmy %configdefp;
b857ba993de91a3863de92db6462afdbec47d993Mark Andrews
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrewsmy @substdefp = ("ISC_PLATFORM_BUSYWAITNOP",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_HAVEATOMICSTORE",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_HAVEATOMICSTOREQ",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_HAVECMPXCHG",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_HAVEXADD",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_HAVEXADDQ",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_NEEDSTRCASESTR",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_USEBACKTRACE",
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews "ISC_PLATFORM_WANTAES");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
029a79c8807a5378a31f0f92e9c600bd46be17c9Mark Andrews# includes
1f1b47a2ba565f96a97981e8447f80eba6854887Mark Andrews
6ec7bd9c691cf7b7a1d4f507e89f2b7cb22a12dcMark Andrewsmy %configinc;
61fb42c4ef45d88e115bd769c30c4f36b461870bMark Andrews
61fb42c4ef45d88e115bd769c30c4f36b461870bMark Andrewsmy @substinc = ("GSSAPI_INC",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "GEOIP_INC",
9cc75a3e5b0b54c5015e3f73a4a64d273560d5e3Mark Andrews "IDN_INC",
9cc75a3e5b0b54c5015e3f73a4a64d273560d5e3Mark Andrews "LIBXML2_INC",
c3f9bda20f0993bc7aa4c654e7e2082adfbaa47fMark Andrews "OPENSSL_INC",
94d1015e65882e0f0c527abb0e8f66a609f46cb8Mark Andrews "READLINE_INC",
c3f9bda20f0993bc7aa4c654e7e2082adfbaa47fMark Andrews "ZLIB_INC");
f0e57c23e01731ed9e7f2dae585e6c643e590111Mark Andrews
f0e57c23e01731ed9e7f2dae585e6c643e590111Mark Andrews# libraries
dbbcb98a7069e5b79c5100b3c9cc3f3e5704d14eMark Andrews
c52ae25dd70636c673d4a299859137a1c8ba611aMark Andrewsmy %configlib;
c52ae25dd70636c673d4a299859137a1c8ba611aMark Andrews
6286983c506433d642b23e64845c50be30f2a7f6Mark Andrewsmy @substlib = ("GSSAPI_LIB",
6286983c506433d642b23e64845c50be30f2a7f6Mark Andrews "GEOIP_LIB",
d0aebc5a55b6145297d94f8aee939852357c59fcMark Andrews "IDN_LIB",
d0aebc5a55b6145297d94f8aee939852357c59fcMark Andrews "KRB5_LIB",
d0aebc5a55b6145297d94f8aee939852357c59fcMark Andrews "LIBXML2_LIB",
f470686d921e6aa26726109226310a42ad8a44f3Mark Andrews "OPENSSL_LIB",
f470686d921e6aa26726109226310a42ad8a44f3Mark Andrews "READLINE_LIB",
f470686d921e6aa26726109226310a42ad8a44f3Mark Andrews "READLINE_LIBD",
fd447061627e77db3ccf2536e14134e50647b9beMark Andrews "ZLIB_LIB");
fd447061627e77db3ccf2536e14134e50647b9beMark Andrews
fd447061627e77db3ccf2536e14134e50647b9beMark Andrews# DLLs
9f1bca36e43f076ab49d8de51301cb3c2dc04995Mark Andrews
9f1bca36e43f076ab49d8de51301cb3c2dc04995Mark Andrewsmy %configdll;
9f1bca36e43f076ab49d8de51301cb3c2dc04995Mark Andrews
0e0d2891c08b70886f811d627bfb91a0c5e07dfcMark Andrewsmy @substdll = ("COMERR_DLL",
0e0d2891c08b70886f811d627bfb91a0c5e07dfcMark Andrews "GSSAPI_DLL",
0e0d2891c08b70886f811d627bfb91a0c5e07dfcMark Andrews "GEOIP_DLL",
0e0d2891c08b70886f811d627bfb91a0c5e07dfcMark Andrews "ICONV_DLL",
7052e191ce63fdf063a977695718ff426a27628eMark Andrews "IDN_DLL",
7052e191ce63fdf063a977695718ff426a27628eMark Andrews "KRB5_DLL",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "K5SPRT_DLL",
7052e191ce63fdf063a977695718ff426a27628eMark Andrews "LIBXML2_DLL",
6f3e68a8dbad508b815f42a0250122ca5e58972eMark Andrews "OPENSSL_DLL",
62bdc6103b8245b812eef9faabee8e644afcc25fMark Andrews "WSHELP_DLL",
62bdc6103b8245b812eef9faabee8e644afcc25fMark Andrews "ZLIB_DLL");
185fd227381269568e193147a98f292210a16f2cMark Andrews
fb31e2890814be0ac3c343d91144f89ce5e05784Mark Andrews# variables
d5ad558234adfef1b847b534dd7b4c6302cc5ea3Mark Andrews
d5ad558234adfef1b847b534dd7b4c6302cc5ea3Mark Andrewsmy %configvar;
ce75d8bec3e93ef9fbd4a235f14f99483b3f238fMark Andrews
62700b67eb8abb7d13f9c3c1bc4b60a1477d35d8Mark Andrewsmy @substvar = ("BIND9_VERSION",
62700b67eb8abb7d13f9c3c1bc4b60a1477d35d8Mark Andrews "BUILD_MACHINE",
f853c77478af94109291ea93f800444b949be558Mark Andrews "BUILD_PLATFORM",
cdb6532e86a8f3d3d563b6da8c333bdf377d51ddMark Andrews "COPTI",
cdb6532e86a8f3d3d563b6da8c333bdf377d51ddMark Andrews "COPTML",
7ad4d54f29c315cbcb241ca5fc12ba1e0744358bMark Andrews "COPTMLD",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "COPTX",
6fd711065f5878c526f88f2825ab8024e2296644Mark Andrews "COPTY",
5e41884b4a1871eb83e66f0d68ca4d04bbbc857eMark Andrews "expanded_sysconfdir",
5e41884b4a1871eb83e66f0d68ca4d04bbbc857eMark Andrews "INTRINSIC",
54a565b1409a0c259ee3b20791db1b4636addc5eMark Andrews "MACHINE",
93a90ddd6b588a381b6894974a2d48727f19d42bMark Andrews "OPENSSL_PATH",
93a90ddd6b588a381b6894974a2d48727f19d42bMark Andrews "PLATFORM",
37225662b64e44a3c59f92dd6156db37b52ca7a3Mark Andrews "PKCS11_TOOLS",
eabf7ff29a88c578619fdc0d307f9e0bad0d6ce8Mark Andrews "prefix",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "PYTHON",
30b89a5ad95b5775abf6cce8ecc84a061babf76dMark Andrews "VCREDIST_PATH"),
8f2b99738760449de3431b191c0c9c0ea08fdc2eMark Andrews
6342df69b05f2f62d060fd4affdf536e51504084Mark Andrews# defines
6342df69b05f2f62d060fd4affdf536e51504084Mark Andrews
6342df69b05f2f62d060fd4affdf536e51504084Mark Andrewsmy %configdefd;
5caf500beeb91b96a2bb2fd55080141569aead97Mark Andrews
881702c9c0079cd48a45054fd90d043f3a8b7e11Mark Andrewsmy @substdefd = ("CRYPTO",
6f808593181c16d5a7625cb527a5755872f9680cMark Andrews "PK11_LIB_LOCATION",
012dedf87438043ff00d4deec8b488eec2be2a1cMark Andrews "USE_GSSAPI",
6f808593181c16d5a7625cb527a5755872f9680cMark Andrews "USE_PKCS11",
6f808593181c16d5a7625cb527a5755872f9680cMark Andrews "USE_PYTHON",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "USE_ISC_SPNEGO");
1576cde466a8de10e84f9887ec073ebaf5973aefMark Andrews
1edbf336252ea6a94d58f3f1a135567e2956e8caMark Andrews# conditions
e407562a75eb93073bb72089cced150d7ffe4d4fTatuya JINMEI 神明達哉
e407562a75eb93073bb72089cced150d7ffe4d4fTatuya JINMEI 神明達哉my %configcond;
8cb1558ff82868e45e76aa64e2ff72986aeebce2Tatuya JINMEI 神明達哉
6da7c87a77ecfd9ccce36f96b4ccd20e1b9cccf1Tatuya JINMEI 神明達哉my @substcond = ("AES",
6da7c87a77ecfd9ccce36f96b4ccd20e1b9cccf1Tatuya JINMEI 神明達哉 "ATOMIC",
582b6dc68b2defc1d8795df8f1da31bd1825c30bTatuya JINMEI 神明達哉 "GSSAPI",
668767dc6471dfed4741869c8dd20af8e9ace3cdTatuya JINMEI 神明達哉 "GEOIP",
668767dc6471dfed4741869c8dd20af8e9ace3cdTatuya JINMEI 神明達哉 "IDNKIT",
bb030ee88e51488a464146dfce4db74d16e05a0cMark Andrews "LIBXML2",
bb030ee88e51488a464146dfce4db74d16e05a0cMark Andrews "OPENSSL",
634d053dfe806ee6a3d9ed5c2bda7f68ba410de4Tatuya JINMEI 神明達哉 "PKCS11",
e724512f2be8d3de5f2982ebba0b2cdaf8325702Mark Andrews "PYTHON",
b6d52ee5bea1b9d9074698e693b49ce96edff47bMark Andrews "SAMPLES",
b6d52ee5bea1b9d9074698e693b49ce96edff47bMark Andrews "TESTS",
b6d52ee5bea1b9d9074698e693b49ce96edff47bMark Andrews "XTESTS",
b657d7db3b73701430b7d1fa17e9c016fd859088Mark Andrews "ZLIB");
b657d7db3b73701430b7d1fa17e9c016fd859088Mark Andrews
8d42bb315ce6745e5631eda4eac59d3b981e58c6Mark Andrewsmy @allcond = (@substcond, "NOTYET", "NOLONGER");
8d42bb315ce6745e5631eda4eac59d3b981e58c6Mark Andrews
8d42bb315ce6745e5631eda4eac59d3b981e58c6Mark Andrews# arguments
4efe32b8bb512ac03a139b77f008600c5a3624eaMark Andrews
4efe32b8bb512ac03a139b77f008600c5a3624eaMark Andrews# enable-xxx/disable-xxx
4efe32b8bb512ac03a139b77f008600c5a3624eaMark Andrews
89639a5e13cace9166bf14931b9e1ce9dc8c47a3Mark Andrewsmy @enablelist = ("developer",
89639a5e13cace9166bf14931b9e1ce9dc8c47a3Mark Andrews "fixed-rrset",
94be8e357c37c843027e899bb277a314ea828a4cMark Andrews "intrinsics",
94be8e357c37c843027e899bb277a314ea828a4cMark Andrews "isc-spnego",
94be8e357c37c843027e899bb277a314ea828a4cMark Andrews "native-pkcs11",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "openssl-hash",
49fcdcd940274fedcb9cf943f0ee8144369527fdMark Andrews "filter-aaaa",
49fcdcd940274fedcb9cf943f0ee8144369527fdMark Andrews "querytrace",
49fcdcd940274fedcb9cf943f0ee8144369527fdMark Andrews "rpz-nsdname",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "rpz-nsip");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
93d6dfaf66258337985427c86181f01fc51f0bb4Mark Andrews# with-xxx/without-xxx
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
600cbd1fcea3c9cc9706dc1ff8fc0d0034ebdeacTatuya JINMEI 神明達哉my @withlist = ("aes",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "cross-compile",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "ecdsa",
1160ecfd146301ff0d053ed054e5276f33f28b4eMark Andrews "extra-tests",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "geoip",
d3fc633c344e15179480d887aeecf4a6263baeabMark Andrews "gost",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "iconv",
73d74334741756eab4a9afd8d3c4e7c08da9a844Mark Andrews "idn",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "openssl",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "libxml2",
baee883e378402698eeb7326538a7d432c8350d1Mark Andrews "pkcs11",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "python",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "readline",
0b1da8124c817270f5dfe46cd0211b993c931a91Mark Andrews "samples",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "cc-alg",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "tests",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "tuning",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "vcredist",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "zlib");
0b1da8124c817270f5dfe46cd0211b993c931a91Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# general arguments
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy @optionlist = ("help", "verbose", "legacy", "win32", "x64", "clean");
da34d92aeee25dedd6affd69623dc7d0aba2cc23Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# usage
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
da34d92aeee25dedd6affd69623dc7d0aba2cc23Mark Andrewsmy @usage = ("Usage: perl Configure help\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews " perl Configure options* win32|x64\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews " perl Configure clean\n");
da34d92aeee25dedd6affd69623dc7d0aba2cc23Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# help
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
20d90a37532b92b0471c56fb583d6b2ddc32caa6Mark Andrewsmy @help = (
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews"'Configure' configures BIND9 build files.\n\n",
fefe1106d96d3a89b21315f665b36a67cdea3840Mark Andrews@usage,
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews"\nGeneral Options and Commands:\n",
4607e7a9b8dfb1b41c70e51c2b603daaf22cf302Mark Andrews" verbose (options) print messages\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" help (command) print this help\n",
2f025ec6fe68421d942330afaf1980b7a4976e30Mark Andrews" legacy (options) process only files for legacy build\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" win32 (command) configure for Win32 platform\n",
c528ef03d9cdfd7eed4fe6b93563dd599bbb25b0Mark Andrews" x64 (command) configure for x64 platform\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" clean (command) clean up generated files\n",
f58233ec6c8b5866083bbaf5083ac9ade6bebe3aMark Andrews" <none> (command) print a summary of the configuration\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews"\nOptional Features:\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" enable-intrinsics enable instrinsic/atomic functions [default=yes]\n",
c282d16311ce06b6bcb594be716cde4ad5c40af9Mark Andrews" enable-native-pkcs11 use native PKCS#11 for all crypto [default=no]\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" enable-openssl-hash use OpenSSL for hash functions [default=yes]\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" enable-isc-spnego use SPNEGO from lib/dns [default=yes]\n",
1b5a72829324a0d2fa327a270caea8fd02ae8779Mark Andrews" enable-filter-aaaa enable filtering of AAAA records [default=no]\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" enable-fixed-rrset enable fixed rrset ordering [default=no]\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" enable-developer enable developer build settings [default=no]\n",
5e9f6125246cec57771bcdeefed03153d41c23fdMark Andrews" enable-querytrace enable very verbose query trace [default=no]\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" enable-rpz-nsip enable rpz-nsip rules [default=yes]\n",
0451757ad8f7c49a0d3dcdf7fbdd4ea64fcec298Mark Andrews" enable-rpz-nsdname enable rpz-nsdname rules [default=yes]\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews"\nOptional Packages:\n",
3184ff5e45c8f821e5165ea60d674bfb87faf5b8Mark Andrews" with-tests build with test suite\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-extra-tests build with extra test suite\n",
1e107b3d7b54de5022c3328423164e533afcc15eMark Andrews" with-samples build with sample programs\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-openssl[=PATH] build with OpenSSL yes|no|path\n",
cc6271e46c775592f39a1e8b4e2cb1ff457e2f89Mark Andrews" with-pkcs11[=PATH] build with PKCS#11 support yes|no|provider-path\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-ecdsa crypto ECDSA\n",
87c7b822b7bcdd8bec7ba1c01937286308b4847cMark Andrews" with-gost[=ENC] crypto GOST yes|no|raw|ans1\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-aes crypto AES\n",
17a14e451df80b3d82278e5c925682ade3263dbcMark Andrews" with-cc-alg choose the algorithm for cookies aes|sha1|sha256\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-gssapi[=PATH] build with MIT KfW GSSAPI yes|no|path\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-libxml2[=PATH] build with libxml2 library yes|no|path\n",
a4b3e51a8f1c9742c0f7d9f7d70f1ad926985145Mark Andrews" with-geoip[=PATH] build with GeoIP support yes|no|path\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-python[=COMMAND] specify python interpreter python|command\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-readline[=PATH] build with readline library support yes|no|path\n",
c282d16311ce06b6bcb594be716cde4ad5c40af9Mark Andrews" with-idn[=PATH] build with IDN kit support yes|no|path\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-iconv[=PATH] path of the iconv DLL [default=same than idn]\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-zlib[=PATH] build with zlib library yes|no|path\n",
f488b1c311f2fc09ae8e45f7893185e608b17edeMark Andrews" with-vcredist[=PATH] visual C++ redistributable package yes|path\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-tuning=OPTION tune for plaform size (large|default)\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews" with-cross-compile 32 / 64 bit build / host plaforms\n");
4bb16c5856e5c6b05ac43c60f9f9376641bdcccfMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# Parse arguments
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
c676c1b4978bfe2d00bdf5085fd44544067f9de4Mark Andrewsmy $verbose = 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $legacy_only = 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $want_help = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $want_win32 = "no";
ffdfae8e4188c143297393f80f22134503372452Mark Andrewsmy $want_x64 = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $want_clean = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $want_unknown = "no";
471e0563c7965c556c759775882cd3448dae78eaMark Andrewsmy $unknown_value;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $enable_intrinsics = "yes";
743ffc91bdd462be6f91b3bab8f440c6a69f0770Mark Andrewsmy $enable_native_pkcs11 = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $enable_openssl_hash = "auto";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $enable_filter_aaaa = "no";
743ffc91bdd462be6f91b3bab8f440c6a69f0770Mark Andrewsmy $enable_isc_spnego = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $enable_fixed_rrset = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $enable_developer = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $enable_querytrace = "no";
072e21c2bbf0907706b18a4a3857913e79d380fbMark Andrewsmy $enable_rpz_nsip = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $enable_rpz_nsdname = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_tests = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_xtests = "no";
3ca4b8062f845489a9c7e33a4af63cf9c863c1d4Mark Andrewsmy $use_samples = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_openssl = "auto";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $openssl_path = "..\\..\\";
72ddc4cef9c6a6de53aae530dea1ddbb90631131Mark Andrewsmy $use_pkcs11 = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $pkcs11_path = "unknown";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_ecdsa = "auto";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_gost = "auto";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $gost_encoding = "raw";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_aes = "auto";
ad4b2f37e0f51a90c160edbe8633589ce42e60b9Mark Andrewsmy $cookie_algorithm = "aes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_gssapi = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_geoip = "no";
072e21c2bbf0907706b18a4a3857913e79d380fbMark Andrewsmy $geoip_path = "";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_libxml2 = "auto";
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrewsmy $libxml2_path = "..\\..\\";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_python = "auto";
9c1eb2279d715188bf631d98d103f6f81a3c76fbMark Andrewsmy $python_command = "python";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_readline = "no";
edfcbabd60f8479b72d91bcc2d2082a36ace4003Mark Andrewsmy $readline_path = "..\\..\\";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_idn = "no";
f95231835fdcd8d5f58486c9f9993602f27fe157Mark Andrewsmy $idn_path = "..\\..\\";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $iconv_path = " --idn-- ";
21f1794606dce19928cf455029e173321f166380Mark Andrewsmy $use_zlib = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $zlib_path = "..\\..\\";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $use_vcredist = "yes";
0cb25226fba18befbe40156c93845f2fc9bf3524Mark Andrewsmy $vcredist_path = " --infer-- ";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $cross_compile = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $tuning = "default";
2610933abd985bdea28801c35d740d2cab2f137aMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# no arguments -> usage
7a857bdb6828e75eec5a7080e4670ce199875922Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($#ARGV < 0) {
fc87397df60d3c5e5d9900ff5ac82da29fe1dbb7Mark Andrews foreach (@usage) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print $_;
a22f967b7e3589dab640d2cc65fd202d077a9d90Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews exit 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
1a4d687359d89ff3b3e4e3f7acc4b6b8d8c982e9Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# parse arguments
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
051706a29a73416fbae116952dd6b6bdda765538Mark Andrewsforeach (@ARGV) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (/^verbose$/i) {
051706a29a73416fbae116952dd6b6bdda765538Mark Andrews $verbose = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif (/^help$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $want_help = "yes";
f5af519ab547bc80c51387529103e4e852a1171eMark Andrews } elsif (/^disable-(.*)$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews appargs($_);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews myenable($1, "no");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif (/^enable-(.*)$/i) {
b0c2141b236832664119c9c7c647359b0c7fead4Mark Andrews appargs($_);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews myenable($1, "yes");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif (/^without-(.*)$/i) {
182a34004c7c48e2c1626f3ce7e787f413955126Mark Andrews appargs($_);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews mywith($1, "no");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif (/^with-(.*)=(.*)$/i) {
603658ea65b34c4b57f154b1e2412b4f01866b6bMark Andrews appargs($_);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews mywith($1, $2);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif (/^with-(.*)$/i) {
163547c0c064251e97c74538c5ede3232b3f0ffaMark Andrews appargs($_);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews mywith($1, "yes");
8ff31bab2f51b171a8eab3a0b8415c64529e116eMark Andrews } elsif (/^legacy$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $legacy_only = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif (/^win32$/i) {
07a849ba02aba7e8e869bc82c360fcc4b27eb009Mark Andrews $want_win32 = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif (/^x64$/i) {
806c235ecf533b98d068b3f8df9d7abbe1e30cf9Mark Andrews appargs($_);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $want_x64 = "yes";
935000aa6e2b9d08f363b2e698a258a458a5a7cfMark Andrews } elsif (/^clean$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $want_clean = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
cfa19fe5c9cf279b38e4258a54acb3fd16b9550bMark Andrews $want_unknown = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $unknown_value = $_;
2fd63cf561135572339d4e2ff0c06695e3dcf1baMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
8ca42f6318be756354b70260050132545aa680d3Mark Andrews# legacy default to win32
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($legacy_only && ($want_x64 ne "yes")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $want_win32 = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
7ec0f55f1542d8bb9475bbe93e911d7520f043caMark Andrews# configure the platform
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
4cb69e7c919cc43b16852016588af714bc421da3Mark Andrewsif (($want_win32 eq "yes") && ($want_x64 eq "yes")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't ask for both Win32 and x64 platforms\n";
ea6fe0d54f36754c195b3b8dac47c81f7993677eMark Andrews} elsif ($want_win32 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"PLATFORM"} = "Win32";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"BUILD_PLATFORM"} = "Win32";
6bd8cee98332533a4fa705b82ca9ec1606738ba9Mark Andrews $configvar{"MACHINE"} = "/machine:X86";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"BUILD_MACHINE"} = "/machine:X86";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "__asm { rep nop }";
0c2509b0b9f9e455fa9d347d08f6ba9abd86d418Mark Andrews} elsif ($want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"PLATFORM"} = "x64";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"BUILD_PLATFORM"} = "x64";
8b5de9701428e2b5eb50aba96af23dc1186124ddMark Andrews $configvar{"MACHINE"} = "/machine:X64";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"BUILD_MACHINE"} = "/machine:X64";
80b782f356f0692c11b4e52e8dd46ec41704e5a2Mark Andrews $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "_mm_pause()";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# get the version information
6a2f7bba6f4df137ab3f781fe07b0b88e72e0b19Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy %Versions;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewssub getversion {
6a2f7bba6f4df137ab3f781fe07b0b88e72e0b19Mark Andrews my $data;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $name;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $value;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $version;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open V, "..\\version" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews while (<V>) {
53cf67186506f9557aaf2149898dd76715803db2Mark Andrews chomp;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($data) = split(/\#/);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($data) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($name, $value) = split(/=/, $data);
53cf67186506f9557aaf2149898dd76715803db2Mark Andrews ($name) = split(/\s+/, $name);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($name eq 'PRODUCT' || $name eq 'DESCRIPTION') {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($value) =~ s/^["\s]+//;
888bb8bf68ba1a2b032a64122efd9125a9155ad7Mark Andrews ($value) =~ s/["\s]+$//;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($value) = split(/\s+/, $value);
b312748a11d27fe387984973ba79975a9d6863c4Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $Versions{$name} = $value;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close V;
b312748a11d27fe387984973ba79975a9d6863c4Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($Versions{'PATCHVER'} ne "") {
b312748a11d27fe387984973ba79975a9d6863c4Mark Andrews $version = "$version.$Versions{'PATCHVER'}";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $version = "$version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $version = "$version$Versions{'EXTENSIONS'}";
ee84964a7d29ae88769f67326a65256731769ea7Mark Andrews $configvar{"BIND9_VERSION"} = "$version";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsgetversion();
ee84964a7d29ae88769f67326a65256731769ea7Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# append seen args to CONFIGARGS define
463fc8f9d61e07613486e64b4b7b3f924ea2b25cMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewssub appargs {
c3ea698877cdde327f2bf6a8e97347798fead2d4Mark Andrews my $arg = $_[0];
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # escape backslashes, spaces and double quotes
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $arg =~ s/([\\ "])/\\$1/g;
c3ea698877cdde327f2bf6a8e97347798fead2d4Mark Andrews if (defined($configdefh{"CONFIGARGS"})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"CONFIGARGS"} .= " " . $arg;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"CONFIGARGS"} = $arg;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c3ea698877cdde327f2bf6a8e97347798fead2d4Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif (!$configdefh{"CONFIGARGS"}) {
9368d7df838f58cd32922b526775ca730bc633cfMark Andrews # CONFIGARGS default is "default"
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"CONFIGARGS"} = "\"default\"";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $val = $configdefh{"CONFIGARGS"};
e2fb08b85de8158fe6b71008311e3d98104b92a6Mark Andrews $configdefh{"CONFIGARGS"} = "\"'$val'\"";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
22a9cd54c072545d13788ceead759911fe8cfe34Mark Andrews# parse enable/disable
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewssub myenable {
21ba6c18e4ccc73933af5cf28701a5cc3b7963ecMark Andrews my $key = $_[0];
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $val = $_[1];
266296414d0ed79980c6d3144a587b42324a50ffMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($key =~ /^intrinsics$/i) {
c960dffe35970da729219b72f2e41350d3b64c35Mark Andrews if ($val =~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_intrinsics = "no";
5da49e379c79fbd597cf0d47e7697b65991f761fMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^native-pkcs11$/i) {
31b3dc1c6b4fe99a2af2ee63314e842af4a20070Mark Andrews if ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_native_pkcs11 = "yes";
59f51f864c752d2e4bf8d1ad94404ada0c9aa6e9Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^openssl-hash$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
a207a2835e37de52e11d4c143c0425e749409c46Mark Andrews $enable_openssl_hash = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($val =~ /^no$/i) {
03760eeb542cc5e91193eec478cae022df4bcc58Mark Andrews $enable_openssl_hash = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
838d608e6f37038f2fb43980a7a9d6b6a490db36Mark Andrews } elsif ($key =~ /^isc-spnego$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
64cc9c8818db2552cbdd77f1050e890ffa5a17d8Mark Andrews $enable_isc_spnego = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^filter-aaaa$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
0f09ef5a50ef09eaed8e6630b4004d5143d6b52cMark Andrews $enable_filter_aaaa = "yes";
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews }
0f09ef5a50ef09eaed8e6630b4004d5143d6b52cMark Andrews } elsif ($key =~ /^fixed-rrset$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
c7fc6434fe5949c8e3f76bf69f5655eb3a76dfaeMark Andrews $enable_fixed_rrset = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
9bd478a5e6df956a79bbdb5c182d5b44763786ceMark Andrews } elsif ($key =~ /^developer$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_developer = "yes";
421e4cf66e4cba0b0751a34a9c027e39fe0474f9Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^querytrace$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews $enable_querytrace = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^rpz-nsip$/i) {
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews if ($val =~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_rpz_nsip = "no";
bf7f253e306d0ced8ae24d7a0598773950da11f4Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^rpz-nsdname$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
051706a29a73416fbae116952dd6b6bdda765538Mark Andrews $enable_rpz_nsdname = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $want_unknown = "yes";
5f89a1ee9e0fe64211d050db5d3e7a5ea282c282Mark Andrews if ($val eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $unknown_value = "disable-" . $key;
c86eed4bdecad9df12f992f9d743dfee3a6c5bdcMark Andrews } else {
ff2ef33a84550fa5dbd9e8fdcd82a33288f053adMark Andrews $unknown_value = "enable-". $key;
12ff7274fe2ea531ecca6a71fb9f7e1ae92da389Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
9d3ad53203f1ac49f9e876dbbcaca18656eb3e19Mark Andrews}
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews
767fd19da4b699aae46959d834f53af0e1166e80Mark Andrews# enable-developer expansion now
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($enable_developer eq "yes") {
8da0b50e8a8c74602eca97e261ce4ad457df5048Mark Andrews $configdefh{"ISC_LIST_CHECKINIT"} = 1;
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews $enable_filter_aaaa = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_querytrace = "yes";
5b76a09697bfc76f5acefd65d5b37b1214d271a8Mark Andrews # no atf on WIN32
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_fixed_rrset = "yes";
6388dcf8e661687c30a5d52f149d193ce86748a8Mark Andrews # TODO: dlz filesystem
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_tests = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_samples = "yes";
93e353425a81da7793dde3776f4caca658f57c11Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# parse with/without
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
49a940dc68b30d9e4f9e1bd3c0503d8b90bb1726Mark Andrewssub mywith {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $key = $_[0];
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $val = $_[1];
d92770e851ebbc1005b3bf121e3c9f13b67a3f42Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($key =~ /^tests$/i) {
59ab128c972622f5aeafe3229966dcba73b62243Mark Andrews if ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_tests = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
90295f915c883d1aeeda856f518584d4219a704aMark Andrews } elsif ($key =~ /^extra-tests$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_tests = "yes";
1c75ea91cdb49dac65f0f592ddbf66bfdfc4a2d7Mark Andrews $use_xtests = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^samples$/i) {
142d155dd68fd601dc38c6b6f7c35f2798ec24caMark Andrews if ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_samples = "yes";
99776003811a413457a2c35a808ad860df877d24Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^openssl$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
2ffb3eb384ae71ae9f8edbf5fa2219d965ff0552Mark Andrews $use_openssl = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($val !~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_openssl = "yes";
aa39170da817cae7b4c6c735cc832e05ec3d2351Mark Andrews $openssl_path = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^pkcs11$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
aa39170da817cae7b4c6c735cc832e05ec3d2351Mark Andrews $use_pkcs11 = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($val !~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_pkcs11= "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pkcs11_path = $val;
52fc1457e44c476a81ec9dee6a664958cb64b8e2Mark Andrews $pkcs11_path =~ s/\.dll$//i;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews } elsif ($key =~ /^ecdsa$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
b8fff4f0d70bb9c5e53023ad0dae0acda67b5cdaMark Andrews $use_ecdsa = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($val =~ /^yes$/i) {
757bf8a1e5d85806c648d7a6267da8d49a8ab822Tatuya JINMEI 神明達哉 $use_ecdsa = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
be0e075ac2c10ade3e80edef7fa14ac0fda92690Mark Andrews } elsif ($key =~ /^gost$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_gost = "no";
2a908588fbeacebc5f13b153b73c96e12dacaadcTatuya JINMEI 神明達哉 } elsif ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_gost = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $gost_encoding = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
af2be1a46813e228cb9d71230d3f41222fdb69baTatuya JINMEI 神明達哉 } elsif ($key =~ /^aes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "no";
2945ac15af547df0268e449252902ead599e2451Mark Andrews } elsif ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
285761cf91626976e211f69d9678c138b25f8629Tatuya JINMEI 神明達哉 } elsif ($key =~ /^cc-alg$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $cookie_algorithm = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^gssapi$/i) {
ca70688bf60b4f50c4e3ec7d40567341c9962fafMark Andrews if ($val !~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_gssapi = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val !~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $gssapi_path = $val;
8b0ee8448bec37bf1e771363dccce7c0e73eb1a7Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
aec2d57d5b9f5ca97763a1b49b76f0bcb5852e1aMark Andrews } elsif ($key =~ /^libxml2$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_libxml2 = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($val !~ /^yes$/i) {
a9ae9d743c7f85bec44e95b1f62c7a2a114a2fd6Mark Andrews $use_libxml2 = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $libxml2_path = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
75ace6601e66840436f52e61353ee0d400577b55Mark Andrews } elsif ($key =~ /^geoip$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val !~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_geoip = "yes";
75ace6601e66840436f52e61353ee0d400577b55Mark Andrews if ($val !~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $geoip_path = $val;
75ace6601e66840436f52e61353ee0d400577b55Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^readline$/i) {
75ace6601e66840436f52e61353ee0d400577b55Mark Andrews if ($val !~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_readline = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val !~ /^yes$/i) {
ba4aec8c1853a1deda8eb43ffeaac4d764c8d39eMark Andrews $readline_path = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
550085fed1d0af54ba5b2f588898afec158195deMark Andrews } elsif ($key =~ /^idn$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val !~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_idn = "yes";
f411c2e81cbfcf89ee073a0e31ac902a42fc8f22Mark Andrews if ($val !~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $idn_path = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ab2ac96c4e71dc803e47c35592044e116f61aca5Tatuya JINMEI 神明達哉 }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^iconv$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $want_unknown = "yes";
3bdf879a5301bce17e0a955585eb3decc541ba79Mark Andrews $unknown_value = "without-iconv doesn't make sense)";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($val !~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $iconv_path = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews } elsif ($key =~ /^zlib$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val !~ /^no$/i) {
1b5b46942d149f891bb91e90c6f52944b77c8a68Mark Andrews $use_zlib = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val !~ /^yes$/i) {
6b25d2f7f7a1125508f8d225a8fef94e1db83555Mark Andrews $zlib_path = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews } elsif ($key =~ /^python$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
39fe146f2ab82cb8e49caa319a3345174fa2d69aMark Andrews $use_python = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
bd3946db298667e769804b2e978df2d6dcd85e29Mark Andrews $use_python = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val !~ /^yes$/i) {
ab5d8edc1bd391a1b306db68114fac303484b30fMark Andrews $python_command = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
8689f943a4859a8f68344236a1dcb81299a98347Mark Andrews } elsif ($key =~ /^vcredist$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^no$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $want_unknown = "yes";
2434ccfde7efa30b6fedf4630e5036eeb5d647d0Mark Andrews $unknown_value = "without-vcredist (vcredist is required)";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($val !~ /^yes$/i) {
d8ec783e6dc0bd16a80b30d9888306b1faae6037Mark Andrews $vcredist_path = $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews } elsif ($key =~ /^cross-compile$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^yes$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $cross_compile = "yes";
8bcb0f297b50e80e3c7aab1a41b94d937acf4dc0Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($key =~ /^tuning$/i) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val =~ /^large$/i) {
7f32428506d55083fe5ac9aa515294bdef7c6e27Mark Andrews $tuning = "large";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
5c10f54fe38795cbd3d5cf22e3fbd1d22b8226e4Mark Andrews $want_unknown = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($val eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $unknown_value = "without-" . $key;
a6211a2f234767a015a6a30b85d5da087fa907f1Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $unknown_value = "with-" . $key;
1feb76edcbb8ee97d1757f73115b7c4a71de6e0eMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
4c342614f80d867bba23e63795ec6ee79dd6395dMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
e72d4d8929fec51153e4fd0d1cf632cd59335495Mark Andrews# resolve enable-openssl-hash
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($enable_openssl_hash eq "auto") {
0ae34c3f6222ece01e0f710c7c0311f5cf9d9c0fMark Andrews if ($use_openssl ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($enable_native_pkcs11 eq "yes") {
6c6673405c7e29c1d91d07b326d0fe1d7b52e478Mark Andrews $enable_openssl_hash="no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_openssl_hash="yes";
bb6936058eb88eadff030462a347c10895c61a9aMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_openssl_hash="no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
0ad5cb4782cd419b089bcab28d2fd9e140dbcc59Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($want_help ne "no") {
7c5d5a7932b8ac27281eeff64506dff8220bb3eaMark Andrews foreach (@help) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print $_;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
1aed0905a50ff8d2bdc4d253b38ae24afe3bab1cDanny Mayer exit 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# clean up and exit if requested
1a9c000f54e6204fb49d785fd0bbb7a8e590dc99Mark Andrewsif ($want_clean eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $file;
3cea35d9159b36eac43d32082a0b98f2cd82fc2eDanny Mayer foreach $file (@filelist) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews unlink($file);
53f1312c61fa8618852584bcdf9f35530282eb08Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $file (@projectlist) {
87f4715d6c0a22f3449eb3291c91aa45ba86c955Mark Andrews unlink($file);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews exit 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
1431917c7cddbac7442cb910e83cb058fea59fb5Mark Andrewsif ($want_unknown ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR "can't parse $unknown_value\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews exit 1;
3733c24efa7eaa65455153702c3fb71c9233eafbMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
012a2b979e011b13ba0d291c279dc65a167c039eMark Andrewsif ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($want_win32 eq "yes") {
f6ff00810196d0c0973f62c7917b9975011fa45aMark Andrews print "configure for win32\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ec3984e9df6fd9b7811daa0dacb1b3dd1423ebf3Mark Andrews if ($want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "configure for x64\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b972ff033b3efd52e747683face674dc4d2e431bMark Andrews if ($cross_compile eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "cross compiling";
fa4e1438016331502e6d665588021aa7ffef8cc2Mark Andrews if ($want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print ": build on win32 for x64 host\n";
f0471ca4b7bca6e907130ec84e36cf69f2b79a5aMark Andrews } elsif ($want_win32 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print ": build on x64 for win32 host\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "\n";
638fe804a524ee0c028863c0301b999c79de7651Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($enable_intrinsics eq "yes") {
9db3d9d14e2f3641d696dadc59c40c52b6f888bcMark Andrews print "intrinsics: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "intrinsics: disabled\n";
051706a29a73416fbae116952dd6b6bdda765538Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($enable_native_pkcs11 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "native-pkcs11: enabled\n";
0b75a2dd3bd81a69e2d68fe446cacb46be04c1f1Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "native-pkcs11: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c54c1eaf26d5a7fc123c4af3712353156a766df1Mark Andrews if ($enable_openssl_hash eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "openssl-hash: enabled\n";
0d993c02babc1e00516272783b310e83bb292d5cMark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "openssl-hash: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
4d9f3f00d93fcb8743b1105e8cf82e862be220d1Mark Andrews if ($enable_isc_spnego eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "isc-spnego: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "isc-spnego: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
86f6b92e35c7bdb5fc1fd1021af75b981863313eMark Andrews if ($enable_filter_aaaa eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "filter-aaaa: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
25276bd1ecb372b82c9235648e5defab0655dcd5Mark Andrews print "filter-aaaa: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($enable_fixed_rrset eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "fixed-rrset: enabled\n";
320d6ee24ea59c0dbcb2c08038586ef03c6a191dMark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "fixed-rrset: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
475fe52dc33d8d8344e8b1e48fa7bb6643f7ca66Mark Andrews if ($enable_developer eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "developer: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
5af560664daaa984f98cec6925518a3e06c4ab4fMark Andrews print "developer: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
0f8f42a09eb102fa88e4d2caacdafbeda931f94cMark Andrews if ($enable_querytrace eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "querytrace: enabled\n";
8d77066ba0feb1353a7c85f929c365c5103f3976Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "querytrace: disabled\n";
8d77066ba0feb1353a7c85f929c365c5103f3976Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($enable_rpz_nsip eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "rpz-nsip: enabled\n";
3e7b37e01ba3efc873486140734fd24788092a30Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "rpz-nsip: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
54532c54130de8f374465bb23d5576fc3257ea96Mark Andrews if ($enable_rpz_nsdname eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "rpz-nsdname: enabled\n";
020f7361a49c5b1cda91927cf8206c1283fc7496Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "rpz-nsdname: disabled\n";
1c0927d8a091effcf9b2dc5baa533927c113bd5cMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "cookie algorithm: $cookie_algorithm\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_openssl eq "no") {
446ff1959cc3e963778c8770204b72c9e7c7df5aMark Andrews print "openssl: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "openssl-path: $openssl_path\n";
70f8c70cdd3ca68edcf9d448eb508abf3697719aMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_tests eq "yes") {
33c538015323f4576679e427088372eea614feebMark Andrews print "tests: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ac65e45126dda424b5cc9d2865b353dc0ec23e1eMark Andrews if ($use_xtests eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "extra tests: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
0423090da198f31ac615cd3a8f7d83aada32d5b3Mark Andrews if ($use_samples eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "sample programs: enabled\n";
d9e0458a890c49f977fdcf9d995681f546f7c427Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_pkcs11 eq "no") {
de4976142190ae84ed3e4099f3e0fc07781748a3Mark Andrews print "pkcs11: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "pkcs11-provider-path: $pkcs11_path\n";
051706a29a73416fbae116952dd6b6bdda765538Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_ecdsa eq "no") {
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews print "ecdsa: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
6a3c86ff436452d062912bd91ecd289541869d42Mark Andrews print "ecdsa: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
e0fa16fe191d619d2cd05a039067414409329878Mark Andrews if ($use_gost eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "gost: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
93da96c1cfd5f3c47169855867dd18db00c8a386Mark Andrews print "gost: enabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "gost private key encoding: $gost_encoding\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
7d389c324cc032475f9d219a12ab84bacbd7fbaaMark Andrews if ($use_aes eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "aes: disabled\n";
cd9bfe5b256a3e84ba090e8fcb5de0d6c50974aeMark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "aes: enabled\n";
dcd371be7d481b242d277d735e4c2d974297c164Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_gssapi eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "gssapi: disabled\n";
cc4928ec7116a064223f60639ca1a80f25ba350fMark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "gssapi-path: $gssapi_path\n";
e2cf63c5df79eb7c8b86b6278289883fa760cda5Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_libxml2 eq "no") {
c3184b4e2a1f238f4615d36fee79df82b1711344Mark Andrews print "libxml2: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "libxml2-path: $libxml2_path\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
9b7c023fe6dc88ba1e69ace1f7c3ade40c6475f9Mark Andrews if ($use_geoip eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "geoip: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "geoip-path: $geoip_path\n";
0a1fa37641b59c56d02f5390917a49e4987f0f75Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_readline eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "readline: disabled\n";
c61ec97ae0b859914ee26e213fe792f86a157990Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "readline-path: $readline_path\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
49f7d1585e0e4f1ffa1667391dd7ae1c4d3d4e81Mark Andrews if ($use_idn eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "idn: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
0b1af13f680a865521105a77ee192024b5af33c4Mark Andrews print "idn-path: $idn_path\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($iconv_path ne " --idn-- ") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "iconv-path: $iconv_path\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
945cb085b859dbfc6a883813dda03c83e06995d3Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_zlib eq "no") {
5ed4b0d4452967d9b3aaf7a22a2956a6ee67a614Mark Andrews print "zlib: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "zlib-path: $zlib_path\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c549b3a4d5fedba2ae960df667864e824acb1ef9Mark Andrews if ($use_python eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "python: disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
a483e67c4cdcbfc29ddc62b5a2d0d99b1c542fadMark Andrews print "python-command: $python_command\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "vcredist-path: $vcredist_path\n";
d73de275987d29627dc11d5bd4a22874a29f7874Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
8f9664521724eefc39728c092d0bc6be527e1496Mark Andrews# Check environment
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# infer vcredist when not given
da091cda77fa951e682119c3df84f60a62bed702Mark Andrewsif ($vcredist_path eq " --infer-- ") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "trying to infer vcredist path from build environment\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
d8d489cd8efc45b06a232ac07a636b3d36cc7e8fMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @vcpaths = {};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews push(@vcpaths, $ENV{"VCRedistPath"}) if ($ENV{"VCRedistPath"} ne "");
bdb1394788a677d0b6e8499ba1ece17a73f476c7Mark Andrews push(@vcpaths, File::Spec->catfile( cwd(), "..", ".." ));
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($ENV{"FrameworkSDKDir"} ne "" && $want_win32 eq "yes") {
c8aa2c83113229a59069cbd05c735896f51b886bMark Andrews push(@vcpaths, File::Spec->catfile($ENV{"FrameworkSDKDir"},
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "BootStrapper", "Packages",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "vcredist_x86"));
a1edcd1b8d430650d85ec0962cd32efde76a71fbMark Andrews } elsif ($ENV{"FrameworkSDKDir"} ne "" && $want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews push(@vcpaths, File::Spec->catfile($ENV{"FrameworkSDKDir"},
5b1627d469d07c5bfe7f193e3ddd85d0dd6ad4b0Mark Andrews "BootStrapper", "Packages",
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews "vcredist_x64"));
7c23b791f4ae8f0c4c2982a91d13c0ecb15ee798Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($ENV{"WindowsSDKDir"} ne "" && $want_win32 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir"},
8989de1059c6292fc43ce507df4991224af2d789Mark Andrews "BootStrapper", "Packages",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "vcredist_x86"));
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($ENV{"WindowsSDKDir"} ne "" && $want_x64 eq "yes") {
acc8b7ac3d16538bf223545bbf71899b9accaebbMark Andrews push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir"},
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "BootStrapper", "Packages",
e7bb307667cc89287e810b95bddd342cb5dcb4e7Mark Andrews "vcredist_x64"));
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b9efcf0a377381b29960137e54ecaf4db85a35c8Mark Andrews
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews if ($ENV{"WindowsSDKDir_old"} ne "" && $want_win32 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir_old"},
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "BootStrapper", "Packages",
8e5893c36cdccc706f9632f51e0c8d390d2a8d06Mark Andrews "vcredist_x86"));
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($ENV{"WindowsSDKDir_old"} ne "" && $want_x64 eq "yes") {
e396939d492e6afa8e31a8dc11d7317c9e62f15fMark Andrews push(@vcpaths, File::Spec->catfile($ENV{"WindowsSDKDir_old"},
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "BootStrapper", "Packages",
9549a96654ead15b264c9159d48eb485e4f9db55Mark Andrews "vcredist_x64"));
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
3d822d111c00e70830dc163a5298196a1e7db29fMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($ENV{"VCINSTALLDIR"}) {
88aa68f478c1634f5f10034fb6ea4158efa20ff4Mark Andrews push(@vcpaths, File::Spec->catfile($ENV{"VCINSTALLDIR"},
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "redist", "1033"));
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
4c83dd7f22b19c75afdd311684f6ba0faa24e8d8Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $rfile;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($want_win32 eq "yes") {
5f4098e478ae913cdc1bb8851599b8f2431050d3Mark Andrews $rfile = "vcredist_x86.exe";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $rfile = "vcredist_x64.exe";
57e0f58b3fd4cb49a57200c8af9cb58d984d871aMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
26cf4737b3e84c3a686a5eacebf22ac39e57d4caMark Andrews foreach (@vcpaths) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $vp = File::Spec->catfile($_, $rfile);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (-f $vp) {
34e5a08809dda3276252269ebddd1616e62081a2Mark Andrews $vcredist_path = $vp;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews last;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
0cd36f1d15caf6622ec3128544d4238ad180a300Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($vcredist_path eq " --infer-- ") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "with-vcredist is REQUIRED\n";
93649589d470624e9e1c34403ad076b3a1a4c5c3Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
29f5bb81e2d1d72fc6e44c87404bd4598a34df94Mark Andrews print "found vcredist at " . $vcredist_path . "\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ddc592d128cdde85ada64efbda95981c10c4c03cMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmy $msc_ver = 0;
88c2b83cc548a217cc92a2bf75ca1ef1d4237d4fMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsopen F, ">mscver.c" || die $!;
bd6ad47c3dbc52a54f240432878b6832bd6dd6e2Mark Andrewsprint F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <windows.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <stdio.h>
c7c1bf7dc167ff164193bc04f33a22109e4c0829Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmain(void)
9e205a3c51e68d19a7ed03244d45b14b3e0d69afMark Andrews{
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews printf("%d\n", _MSC_VER);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return(0);
e823642ec0c167af8f7db01c96ba0279165a61f3Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsclose F;
93e6ebcd0a0f044ba2add424c265b5e0bb4c8afdMark Andrewsmy $compret = `cl /nologo /MD mscver.c`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif (grep { -f and -x } ".\\mscver.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $msc_ver = `.\\mscver.exe`;
8ac1acc30d0f405222ffa7b2b93131d9d4e18599Mark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't get _MSC_VER value: $compret\n";
c99d9017ba00099bfa89e1ed53e63a5cb07d28d5Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "_MSV_VER == $msc_ver\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($msc_ver < 1600) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR "warning: old version of C++ compiler/Visual Studio\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR "only the legacy (cf legacy\\win32-build.txt) will work\n";
c4a9ce445c48a57eed5aa16582b1964cf8cedf87Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
a04a323f9a1ebd4766fc577e11bf3c22bdaf5516Mark Andrews# gen single threaded for < VS 2005
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($msc_ver < 1400) {
dd0228908543562781a4c0d8773ae87d4c530633Mark Andrews $configvar{"COPTML"} = "/ML";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"COPTMLD"} = "/MLD";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
810e8d27763c5d8557239ab321eb125163af9236Mark Andrews# /GX deprecated in VS 2005
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($msc_ver < 1400) {
15f358ed4ea081793041bbfba70849be472236d3Mark Andrews $configvar{"COPTX"} = "/GX";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"COPTX"} = "/EHsc";
984c39beed2fee49dda75c4c8a37b7f32bf434bfMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# /YX for < VS 2005
c08a03a43116c21cf12dea7cbcb5465588f7955cMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($msc_ver < 1400) {
c311ed52d45334e182a093efad827fe4cbe7e686Mark Andrews $configvar{"COPTY"} = "/YX";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
79a6a33184abff1999ba13b10922ccb34a2758a5Mark Andrews# backtrace for >= VS 2012
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($msc_ver >= 1700) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_USEBACKTRACE"} = 1;
5d26560e2b93e1aa0334931ec6ccb6045c3581fcMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# no version of MSVS supports strcasestr() yet
2b1c71b134eb92f2e297a56f778838e42f41c880Mark Andrews$configdefp{"ISC_PLATFORM_NEEDSTRCASESTR"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# warn when cross compiling
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
d6fbfd28ea82e425740de903ddc67f7d9e9f82e7Mark Andrewsif ($cross_compile eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"BUILD_PLATFORM"} = "Win32";
7791dd06ea69d0fb2494788ad4c24d568f40bcdfMark Andrews $configvar{"BUILD_MACHINE"} = "/machine:X86";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
091b098b49a4f84f459abd46451955a18abd6d40Mark Andrews if ($want_win32 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"BUILD_PLATFORM"} = "x64";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"BUILD_MACHINE"} = "/machine:X64";
7d3458a972a902740eb142044655aba6c6ffb9acMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($want_win32 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">cross.c" || die $!;
7c441b7f4afdedb6e5a99f113a4f926a005fa950Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <windows.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <stdio.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
f0ffc28f61a68b350fef9257f5f50e1ac866e0abMark Andrewsint
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
7f20fd8ebb0cabc8f935381d958f8371990c9212Mark Andrews#ifdef _WIN64
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews fprintf(stderr, "compiling for x64 when win32 was asked?!\n");
8695d7b357789bedff63e5b19c5ab25cd58fcd4bMark Andrews#endif
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return(0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
f76c4ebaf586a693521f018fbc617c292c1555d7Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b597abd9cc44c7b9ecd0ff67df59a21ff45e88d5Mark Andrews my $compret = `cl /nologo /MD cross.c`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\cross.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $cross = `.\\cross.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($cross) {
81e302788a444b81231a7cda721548a020ae5660Brian Wellington print STDERR $cross;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
c00a1eb423623442aff428336bb55590f79013bbMark Andrews print STDERR "can't check cross compile: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
1e258716acade52396a8f260b5e19cbf6ca0290aMark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">cross.c" || die $!;
d972fa317829804a692e46a34b6f27a33f861d9dMark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <windows.h>
4b171ebd702d72200a4d7609f11c5f79d6b6f964Brian Wellington#include <stdio.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint
cceca51fec3b4af660d28e2d3df7242823312eb6Brian Wellingtonmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
03fae7ef2173cdf32918853b047d95d9046574ccMark Andrews#ifndef _WIN64
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews fprintf(stderr, "compiling in 32 bits when x64 was asked?!\n");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#endif
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return(0);
ad611e746d6fdcbb9e67da361a3a039c226a9236Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
603d1d1e20fbffc986b3aec93379bb4f6ac37afcMark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $compret = `cl /nologo /MD cross.c`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\cross.exe") {
2dd99c098ca162f985b7ef3c8142a964ad8281aeMark Andrews my $cross = `.\\cross.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($cross) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR $cross;
2dd99c098ca162f985b7ef3c8142a964ad8281aeMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR "can't check cross compile: $compret\n";
1fb264ed3aa861a67d7bab9aeb5aea5836e03c14Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
608c703d1231e0b1f291637ca5361b773afcdbf1Mark Andrews# Process arguments
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# enable-intrinsics
feb8ae093115b36ac061e23d0227ea06f51950a3Mark Andrewsif ($enable_intrinsics eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"ATOMIC"} = 1;
27151990b2b48f027f7f01972fe8e0dfa1df52d3Mark Andrews $configvar{"INTRINSIC"} = "true";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"COPTI"} = "/Oi";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_HAVEXADD"} = 1;
95b604c5e972a5e9eb713bf45cf0b2d9b98da27eMark Andrews if ($want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_HAVEXADDQ"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_HAVEATOMICSTOREQ"} = 1;
2211bec6a0626b681fdf5a8e4406555ef76ddf70Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_HAVEATOMICSTORE"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_HAVECMPXCHG"} = 1;
fcb2ecdb52a594a5c0d07c2e98e67c14708c16dfMark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"INTRINSIC"} = "false";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
3561e645d77448b20b1676680b08c76d559e5335Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# enable-native-pkcs11
b9c80c8bddbb88384d7baef297a873b5f8715e49Mark Andrewsif ($enable_native_pkcs11 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_openssl eq "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_openssl = "no";
b9c80c8bddbb88384d7baef297a873b5f8715e49Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_openssl ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't have both OpenSSL and native PKCS#11\n";
27269e9dd45b619160f90db1a0f6b2b3f6f4bbb8Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_pkcs11 ne "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
f38c274c217d0a5b791786877422306a0e477e10Mark Andrews print "native PKCS#11 support: force with-pkcs11\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_pkcs11 = "yes";
84ef147b1fa0aed15cade55478ed647d15f7b094Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($pkcs11_path eq "unknown") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
e53a5a116fc531f730df0adb091278ff8a941dffMark Andrews print "native PKCS#11 support: no PKCS#11 provider defined?\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
fc7fbdf6e66fb496442ec4f99f5a84669ea4c6d3Mark Andrews $configdefd{"CRYPTO"} = "PKCS11CRYPTO";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_ecdsa eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "no ECDSA support in native PKCS#11\n";
986be654feec852eb9da0d15599f18d0035e569bMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
c26c65b7a0d036e78bfc73f3e7e0817adb0365c0Mark Andrews print "enabled ECDSA support in native PKCS#11\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_PKCS11_ECDSA"} = 1;
43733a83ed92359555c0dcc766e04216ba858309Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_gost eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
bda64555f62216c3e785338f372a7ad9b79c197cMark Andrews print "no GOST support in native PKCS#11\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
39c2b741427eedafe5054909773c2e121c078b72Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "enabled GOST support in native PKCS#11\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
de36c606c52ad51e5abca6e42faf655937e5ed10Mark Andrews $configdefh{"HAVE_PKCS11_GOST"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
23cb957a81a51a9656917ea98d0ae56b7abdcaccMark Andrews if ($use_aes eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "no AES support in native PKCS#11\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
28d8b4118da7abed531ca09136a6d1402837d721Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "enabled AES support in native PKCS#11\n";
d6c0627d1e4d841eac9576427f2d4a0cf9a47e2cMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "pkcs11";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
5d7b81d2a49d237ff5e73fdc4bd3394a3ee29392Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# enable-filter-aaaa
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($enable_filter_aaaa eq "yes") {
8f63de30293716a22054e7db47f27e81bab545c5Mark Andrews $configdefh{"ALLOW_FILTER_AAAA"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
caa8797a00ccb1a02f1690dda5b4aeda9a1db5a7Mark Andrews# enable-fixed-rrset
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($enable_fixed_rrset eq "yes") {
9ae90732df942a7ffcbaa26ba254b55248ce79a5Mark Andrews $configdefh{"DNS_RDATASET_FIXED"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
f3222d48cc3d81706d198faa00dea9720eb0768dMark Andrews# enable-rpz-nsip
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($enable_rpz_nsip ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"ENABLE_RPZ_NSIP"} = 1;
e95cc59f90d35f2d482b6f9c19ba96818275335cMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# enable-querytrace
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($enable_querytrace eq "yes") {
0062c1ddfe0b2f0a4e206a5d460d8e7d58e29b80Brian Wellington $configdefh{"WANT_QUERYTRACE"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# enable-rpz-nsdname
48b0f5ff87f0a5a138129bcd855fd72908491321Andreas Gustafssonif ($enable_rpz_nsdname ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"ENABLE_RPZ_NSDNAME"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
cde7dfea4c1267a2b526114f4ea80fe9db1fc557Brian Wellington
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-tests
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_tests eq "yes") {
fca9cc33ad4299e58e53aa5273d805477267e27aBrian Wellington $configcond{"TESTS"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-extra-tests
2ca2e1a1ceec59a40f977f01ba8e8f4c0424c484Brian Wellingtonif ($use_xtests eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"XTESTS"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
84185d19c7a9ef1ac23cc6236c8773697d4efeb1Brian Wellington
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-samples
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_samples eq "yes") {
683f10428e292811317df38fa324f242abbf7384Mark Andrews $configcond{"SAMPLES"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
5da1e589c2288dbe87002f771005a78d80a2e258Mark Andrews# with-openssl
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_openssl eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
5da1e589c2288dbe87002f771005a78d80a2e258Mark Andrews print "OpenSSL library is disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($use_openssl eq "auto") {
852fa3b2e32719d094f3ad6513238841ae1f078bMark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for an OpenSSL built directory at sibling root\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
8569ab045a4cf6ecd1b5a3354ddb1c93ef34ea57Brian Wellington opendir DIR, $openssl_path || die "No Directory: $!\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @dirlist = grep (/^openssl-[0-9]+\.[0-9]+\.[0-9]+[a-z]{0,1}$/i,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews readdir(DIR));
a5c077e40c784cf9e25c95a1ab94db2faab04ae9Brian Wellington closedir(DIR);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Make sure we have something
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (scalar(@dirlist) == 0) {
2ca556300b09a94f0937b303386d29b95ef057ddBrian Wellington die "can't find an OpenSSL at sibling root\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Now see if we have a directory or just a file.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Make sure we are case insensitive
97527fc03cdb061759e2c9529c670ac1c190ef84Brian Wellington my $file;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $file (sort {uc($b) cmp uc($a)} @dirlist) {
e1c2a8b9c120bcfc2f56e866ca3069b8a90c38dbMark Andrews if (-f File::Spec->catfile($openssl_path,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $file,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "inc32\\openssl",
b7064914ca566fdd67cf0fe7e82d586cbb596470Mark Andrews "opensslv.h")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $openssl_path = File::Spec->catdir($openssl_path, $file);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_openssl = "yes";
49f62849e5f80add0ee36b0f9b42cdce8de9748aMark Andrews last;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
e9472e9f18f1c4f1279be2b3147be13a2bb731d0Mark Andrews # If we have one use it otherwise report the error
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_openssl eq "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find an OpenSSL built directory at sibling root\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
d073663cb45bef2fff5f9a43b9b6006edfc52483Mark Andrews# falls into (so no else)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_openssl eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $openssl_path = File::Spec->rel2abs($openssl_path);
cad61731f8e960d9d99034a2a6eaafe1069c405cMark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for OpenSSL built directory at \"$openssl_path\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
54469c2b2262f6a3f09610df69e16e9c75fd1fe5Mark Andrews if (!-f File::Spec->catfile($openssl_path,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "inc32\\openssl",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "opensslv.h")) {
90e303b114e56db5809fdd19805243457fa43cd9Olafur Gudmundsson die "can't find OpenSSL opensslv.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($openssl_path, "out32dll", "libeay32.lib")) {
adbb11147cd5d97d140485fa37e85e66e15cf594Mark Andrews die "can't find OpenSSL libeay32.lib library\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($openssl_path, "out32dll", "libeay32.dll")) {
9ab461a6ffed2ae2fe0380c30b69052db7473405Mark Andrews die "can't find OpenSSL libeay32.dll DLL\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
77467267d97c781f3f3d050e229a874831e59c3dMark Andrews my $openssl_inc = File::Spec->catdir($openssl_path, "inc32");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $openssl_libdir = File::Spec->catdir($openssl_path, "out32dll");
13ba983cc86bc7d80d5f66ba09002f7d510a6631Mark Andrews my $openssl_lib = File::Spec->catfile($openssl_libdir, "libeay32.lib");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $openssl_dll = File::Spec->catfile($openssl_libdir, "libeay32.dll");
da5d1cf1b1aa29ae53a0427be49291b04bd60549Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"OPENSSL"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefd{"CRYPTO"} = "OPENSSL";
66291de2060a1569de3fe9c5f0c1225448868f7aMark Andrews $configvar{"OPENSSL_PATH"} = "$openssl_path";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configinc{"OPENSSL_INC"} = "$openssl_inc";
6c06bc591a830023e5e7a41cc4b37978b98c0c51Mark Andrews $configlib{"OPENSSL_LIB"} = "$openssl_lib";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"OPENSSL_DLL"} = "$openssl_dll";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (-f File::Spec->catfile($openssl_inc, "openssl", "dsa.h")) {
c36f45e354c0d5b6ab9f821bfe315d0ce9d95a29Mark Andrews $configdefh{"HAVE_OPENSSL_DSA"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($verbose) {
9cec4ca6cac428a46c6d64197c64831dcc02f506Andreas Gustafsson print "OpenSSL DSA support is disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
23fb770906bf1fd98210f16ad660078274242963Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# check OpenSSL
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_openssl eq "yes") {
0cb27602e5690baa9ab61c7c1430e507536adca7Brian Wellington if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking whether linking with OpenSSL works\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ff1b064f5e2bf19c8e25f8927d23df5714e666edMark Andrews my $dll = $configdll{"OPENSSL_DLL"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $ret = `copy "$dll" .`;
8e40433e347bc487cd70f02487fc7ce947a2422aMark Andrews if ($? != 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "Can't copy OpenSSL DLL to working directory: $ret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
880723fb130841459d45695b387651cacd6c9bb8Mark Andrews open F, ">testossl.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <openssl/err.h>
8f44fd4f8d5cefc227ab0fe59cbcbc3979fbc9caAndreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
fefbb64a751f23c9dcf8bb1e62c6ed40a6a04fb2Mark Andrews ERR_clear_error();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return(0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
111e3433d289e8b4ea1260add39baa78c2a46891Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $include = $configinc{"OPENSSL_INC"};
cf300e03de3df3ff422db922520bf07c686c86daMark Andrews my $library = $configlib{"OPENSSL_LIB"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD /I "$include" testossl.c "$library"`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testossl.exe") {
9ac8796f1653d89af589753a3e42c694f35ddd8aMark Andrews `.\\testossl.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
242bba8991b030b7764f0bdca3922d75c34ea51eAndreas Gustafsson die "OpenSSL test failed\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't compile OpenSSL test: $compret\n";
242bba8991b030b7764f0bdca3922d75c34ea51eAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# check OpenSSL version
242bba8991b030b7764f0bdca3922d75c34ea51eAndreas Gustafssonif ($use_openssl eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
02bdc23f8e3ca0f710e0a40daa15941ab1db6bb2Mark Andrews printf "checking OpenSSL library version\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ef29912666cc6160f7165558bef017ab3849c5e1Mark Andrews open F, ">testosslv.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <stdio.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <openssl/opensslv.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint main() {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ((OPENSSL_VERSION_NUMBER >= 0x009070cfL &&
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews OPENSSL_VERSION_NUMBER < 0x00908000L) ||
0cfa2fb26df42f781eca8c4c856d2d0165055bebMark Andrews OPENSSL_VERSION_NUMBER >= 0x0090804fL)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews printf("\n\nFound OPENSSL_VERSION_NUMBER %#010x\n",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews OPENSSL_VERSION_NUMBER);
06a949d2ce8d4b4cbfbf4e7a0335316520aafa46Andreas Gustafsson printf("Require OPENSSL_VERSION_NUMBER 0x009070cf or greater (0.9.7l)\n"
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "Require OPENSSL_VERSION_NUMBER 0x0090804f or greater (0.9.8d)\n\n");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (1);
0b81e99ddfb01746e667797dedc291fc550d14d3Brian Wellington}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
3638017bd3cb8e30874f708a125d1541b680b25eBrian Wellington my $include = $configinc{"OPENSSL_INC"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $library = $configlib{"OPENSSL_LIB"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD /I "$include" testosslv.c "$library"`;
8771fbe4a2cee7bebd785a486824833d741c7315Brian Wellington if (grep { -f and -x } ".\\testosslv.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews `.\\testosslv.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
b541c10d0442d9804d94567a97956cec3bd2912dBrian Wellington die "OpenSSL version test failed\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't compile OpenSSL version test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c01237c6bc5ec25063b4aae1799fe4de01a7455bAndreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# check EVP_sha256 / EVP_sha384 / EVP_sha512
60213f2815a7e6584a2285546d05633fa7b6f5b4Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_openssl eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
6c8abf481df85a67c3f32f5f107b554d3ff5a3edMark Andrews printf "checking for EVP_sha256\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testsha256.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
1e4bfff1855795853648f507422b96fc8fecbff1Mark Andrewsextern void *EVP_sha256();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint main() {
6b31d9c56874d3bd58b420cbe6cd64be502dbe08Andreas Gustafsson return EVP_sha256() != 0;
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
ee80f4506479e189ca1320eb87ac89188c5a7848Mark Andrews my $library = $configlib{"OPENSSL_LIB"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD testsha256.c "$library"`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testsha256.exe") {
d9d6d2f77fe54831dec9cde8ca03ae1f825599f9Andreas Gustafsson `.\\testsha256.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? == 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
eb2c518a3871932e86268e7c6ddae2b2a00d72fdMark Andrews print "EVP_sha256 test failed: disabling EVP_sha256\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_ecdsa = "no";
4072dfb9b865c82c24a72e734d54da51a20dfc1eMark Andrews $enable_openssl_hash = "no";
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews } else {
92094d44a2d0cb2b1be58a87299903ba7c436a0cAndreas Gustafsson $configdefh{"HAVE_EVP_SHA256"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
d1abb8bb020aacd1ce0da65c2d5d8f7c96ebd52aMark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "can't compile EVP_sha256 test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "disabling EVP_sha256\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b4aeceec736cd16d4c4e98f519c8df79b15fbe45Andreas Gustafsson $use_ecdsa = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_openssl_hash = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
307ba34fa07db768c3a899844f248a2c1d7dcc7fAndreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews printf "checking for EVP_sha384\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b6b9d8b8434e4eaab74b69cd14fcacf448055ca5Brian Wellington open F, ">testsha384.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsextern void *EVP_sha384();
31f6e44dcaad33d66d607e3a919d4aa59cdbaec5Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint main() {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return EVP_sha384() != 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
6d6529b5e5ab7223fa2560ebe144bcb82517cef3Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD testsha384.c "$library"`;
0b07b9482c00060d1ddd551a5dcb8cecbe2c1f65Mark Andrews if (grep { -f and -x } ".\\testsha384.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews `.\\testsha384.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? == 0) {
c0fe9b0d1b01a9a0883977a362ce4128723a56d6Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "EVP_sha384 test failed: disabling EVP_sha384\n";
2869504d83e84a91dbc822e8a243e837f5c0374dAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_ecdsa = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_openssl_hash = "no";
138cc7f283889367b11840ff77a9ea08e17a9daeAndreas Gustafsson } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_EVP_SHA384"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
ac1a59e95cfd035f38222e739affd43eafa9eeefMark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "can't compile EVP_sha384 test: $compret\n";
58930ca9802e772afe9f5ccb30f236d201cf60e0Danny Mayer print "disabling EVP_sha384\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_ecdsa = "no";
e3e94dd137c5f9d3d5c5179863f674b27aa0cc02Andreas Gustafsson $enable_openssl_hash = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
7c014c5bf41dc38802e8889c0a9110204eb1a552Andreas Gustafsson printf "checking for EVP_sha512\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testsha512.c" || die $!;
a8fb98aff8a186bf80fa4e48cc3e99a42939dd0aMark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsextern void *EVP_sha512();
3e42bdfdc901b6b921b02028bd51ca2af8e84adcMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint main() {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return EVP_sha512() != 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b20eef7ab022dd984e2e9c12f6a7edf35661d3b0Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD testsha512.c "$library"`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testsha512.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews `.\\testsha512.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? == 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
ea01b618d981e58f85071a40550bc7f7565d4509Andreas Gustafsson print "EVP_sha512 test failed: disabling EVP_sha512\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
80dd46d7aab16c42a8c1acf6156c95406a9f20a4Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_EVP_SHA512"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
993572b2495561c57b556621dd9fe493e8c6dd1bDanny Mayer } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
78bf1ca89505820ed7b03be4bf0c0b53b557f3cdAndreas Gustafsson print "can't compile EVP_sha512 test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "disabling EVP_sha512\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
afeabf9f707ca71192041c1132d9f07d7bd83132Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-ecdsa
3842a051baf34ffc4e428cd6f2d4a641e548e6f6Mark Andrewsif ($use_openssl eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_ecdsa = "no";
a89d1aea0cce6a28a3751cd508db67e38d307a5eDanny Mayer}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_ecdsa eq "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for OpenSSL ECDSA support\n";
04f158ce9a12746eb216892b2bf8259749db254eAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testecdsa.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <openssl/ecdsa.h>
62c1fe7b450916acdaf4a3fe65a9b691d5d32f3fBrian Wellington#include <openssl/objects.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint
712bf9b0cc4ed34f4bf33b437f8b0e45853b93ceMark Andrewsmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
7e2f4ceafaae4eac1deddc87f906b29a922fff9dAndreas Gustafsson EC_KEY *ec256, *ec384;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ec256 = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
72499be79fbb68140bd31e0e4ded18a70a5b523bMark Andrews ec384 = EC_KEY_new_by_curve_name(NID_secp384r1);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (ec256 == NULL || ec384 == NULL)
90c5477ca11a94b0e7d8071181d69544e1ab9be9Mark Andrews return (2);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
552a117791c17878c5c1b94b0fc3ac4e8491543eMark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
f3e4c3d6c536973bae92611402ba55277069eba2Mark Andrews my $include = $configinc{"OPENSSL_INC"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $library = $configlib{"OPENSSL_LIB"};
6fb633bc3fddba07fc9460ffd245b7ee2d459285Mark Andrews $compret = `cl /nologo /MD /I "$include" testecdsa.c "$library"`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testecdsa.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews `.\\testecdsa.exe`;
ca033e166ca9f9dc7bf010065a93af668a09fd44Mark Andrews if ($? != 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
f9321a16fb8dce8999a43a6d4008c54845305401Mark Andrews print "ECDSA test failed: disabling ECDSA\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c8bedec446212b07511ded85ba04a9a3d5965ba8Mark Andrews $use_ecdsa = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
7a104af70fb3071e7949c4e0e585af18ab362db5Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "can't compile ECDSA test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "disabling ECDSA\n";
923de3bb9cf4d619de206544975986a22b18196fMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_ecdsa = "no";
2359261a252b339f3cef046cefa10ee1e1d4564dMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
769cd7d5dd677434c3dfa27cbfdd8cb76296fcdcMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_ecdsa ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_ecdsa = "yes";
6bad645917a026dfa4662dd0a3a78b9efc3f4c36Mark Andrews $configdefh{"HAVE_OPENSSL_ECDSA"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
11931cc68d6c8139f507a724e7ca9814eed8b552Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-gost
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_openssl eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_gost = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_gost eq "auto") {
d91d025deffd075db2507d44fab04b79920b3e91Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for OpenSSL GOST support\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
985b4f1c8653c6dfaa46652c412838850c0ffb1cMark Andrews open F, ">testgost.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
1d556695ef3c7918ba5061d7d846122d60f5f6c5Mark Andrews#include <openssl/conf.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <openssl/engine.h>
e9ca87459a20f5e6721b9bd0b28c95fc3d6b843cMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint
ca690f98020f75758bc26f4b5ef1ccf0472a27c3Mark Andrewsmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
137a1f98e3862577ae9ccbb6b735ef63a51c456eMark Andrews ENGINE *e;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews EC_KEY *ek;
5cd7e9d4db393c314dd1a761c52d2cb3a4da9b72Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ek = NULL;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews OPENSSL_config(NULL);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
cc8e8b59d6780889739657226a95e23ca1ecadb1Andreas Gustafsson e = ENGINE_by_id("gost");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (e == NULL)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (1);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (ENGINE_init(e) <= 0)
65775fe205e8ac935313c42062c75460e0bc1514Andreas Gustafsson return (1);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#else
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (1);
17b687ef360ba8c07201dc6511a3c975cc1bb2a8Andreas Gustafsson#endif
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
998358fa900393378c70ad598c2b2e67385089d4Mark Andrews my $include = $configinc{"OPENSSL_INC"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $library = $configlib{"OPENSSL_LIB"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD /I "$include" testgost.c "$library"`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testgost.exe") {
bc508906db43dda7eab0988348dd0ae3f3023a9bMark Andrews `.\\testgost.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b352902413608d0eb310c4bb45412fa45734afbcAndreas Gustafsson print "GOST test failed: disabling GOST\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_gost = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
72e8c079c4c6dc66d565cf89ebf6feb5fa2dea33Mark Andrews print "can't compile GOST test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "disabling GOST\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c8ab83c08e5227b5146295a9ef4a96d61b066b67Andreas Gustafsson $use_gost = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
4e57d3ff7d92abdef4b0b6aebc23a9dfae2ba040Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_gost ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_gost = "yes";
081cff0c33514a5dc63ab794fc199c07377ab756Mark Andrews $configdefh{"HAVE_OPENSSL_GOST"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
d352f188cb9e3820054b7451384a3d910619b4a1Andreas Gustafssonif ($gost_encoding eq "ans1") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"PREFER_GOSTASN1"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($gost_encoding ne "raw") {
3d38596530c389610494e6a6ba70d9f5dc9717c5Andreas Gustafsson die "Unrecognized GOST private key encoding: $gost_encoding\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
a7cb695600c3c14ac12676f0fb1e179690c5883cMark Andrews# with-aes
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_openssl eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_aes ne "pkcs11") {
b19619260fbd447b0fe3e709b2cc8ae38f27ec3fMark Andrews $use_aes = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
1500a4fe5da9475d5918b27b566a1278ec6b54ebAndreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_aes eq "auto") {
1255d388f034dc556d235a002527101781dbeb29Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for OpenSSL EVP AES support\n";
c615c2ddce6c08e5a26d9ca61742a20fa8dc1938Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "evp";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testevpaes.c" || die $!;
31d3464c0c0a35236c7924f698c5a8a66a9ed534Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <openssl/evp.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
2f6d1483f665d86501049199b9698554da0eacb0Mark Andrewsint
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
ea7b38cd1e5c6c9e099f1b3a702ba531bc4aba0aMark Andrews EVP_CIPHER *aes128, *aes192, *aes256;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews aes128 = EVP_aes_128_ecb();
32d248107a5bc92b4bf9fc77deaa55b3da969ba2Andreas Gustafsson aes192 = EVP_aes_192_ecb();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews aes256 = EVP_aes_256_ecb();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (aes128 == NULL || aes192 == NULL || aes256 == NULL)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (1);
4574714ad44ba97f53425fe8d21b7ecb00ac83b9Andreas Gustafsson return (0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $include = $configinc{"OPENSSL_INC"};
07eaf0b8d0c3c93d8139c413bf9cc8bba7db9432Mark Andrews my $library = $configlib{"OPENSSL_LIB"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD /I "$include" testevpaes.c "$library"`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testevpaes.exe") {
cf70df7d0e24401a358f0b9c1a616ad0e8c783a6Mark Andrews `.\\testevpaes.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
9234d92d4e274791eff42cc4ea5766ed7a281b17Mark Andrews print "EVP AES test failed: disabling EVP AES\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "auto";
0cf9ce19cc05a60f85ec610106a983fe806ebb77Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "can't compile EVP AES test: $compret\n";
2ba574f329c14376d26d7c0f22c89d7a978a2625Mark Andrews print "disabling EVP AES\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "auto";
3c3fe072252aecffae43e6349125663c315b092dAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_aes eq "auto") {
05a4a299b599195ca6ede9395b245956a8c3a790Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for OpenSSL native AES support\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
3ad07fa335d40330cd1859da42e67f2457443990Andreas Gustafsson $use_aes = "native";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testaes.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
1094dec52a86e57df53f6167d86de94360a7a382Mark Andrews#include <openssl/aes.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsAES_KEY k;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsconst unsigned char bufin[16];
fa2fb620c7c0a907b220c257007d8fb6d38bb3a4Andreas Gustafssonunsigned char bufout[16];
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
62a3dbe63e833f2eaf613393399ea4667d8de28dAndreas Gustafsson AES_encrypt(bufin, bufout, &k);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return (0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
9bdb01e6c382e897572791b12190472955994d87Mark Andrews my $include = $configinc{"OPENSSL_INC"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $library = $configlib{"OPENSSL_LIB"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD /I "$include" testaes.c "$library"`;
e69b9ffb0f8b4d1117a682908c9143ebe3efcd6bAndreas Gustafsson if (grep { -f and -x } ".\\testaes.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews `.\\testaes.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
a77ad145d0109081c5da6ac40a2303369db89735Andreas Gustafsson if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "native AES test failed: disabling AES\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "no";
61d5bfc06be978ea962b1c64309894ac80351771Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
ada9b8ab20b81716c7ff1f4f3365929b2f7c8ff8Mark Andrews print "can't compile native AES test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "disabling AES\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
1beaa9e45738ad18cb7cae55aea95a1b16a14f94Andreas Gustafsson $use_aes = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
bb60abb44549428414cd55a022f2b8cc4488f7adAndreas Gustafssonif ($use_aes eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_OPENSSL_EVP_AES"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($use_aes eq "evp") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_OPENSSL_EVP_AES"} = 1;
024face21cdfbfc7a862a3be061e6780533ef755Andreas Gustafsson $use_aes = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($use_aes eq "native") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_OPENSSL_AES"} = 1;
1beaa9e45738ad18cb7cae55aea95a1b16a14f94Andreas Gustafsson $use_aes = "yes";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($use_aes eq "pkcs11") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_aes = "yes";
f953788d75c7df2db43907c68da18ed75c235dd3Andreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_aes eq "yes") {
fbdde79262a4ba2bdf4bfae61167026b3220488aAndreas Gustafsson $configdefp{"ISC_PLATFORM_WANTAES"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"AES"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
fbdde79262a4ba2bdf4bfae61167026b3220488aAndreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-cc-alg
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($cookie_algorithm eq "aes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_aes ne "yes") {
3fc4c1434d7ac377c720640e2e925a3af567cccbMark Andrews $cookie_algorithm = "sha256";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"AES_CC"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
0aba41458d345ea901cf945d47162e5f23647de9Mark Andrewsif ($cookie_algorithm eq "sha1") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HMAC_SHA1_CC"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($cookie_algorithm eq "sha256") {
5f7516bee5ace9542701f23fc7723a3e3196802aMark Andrews $configdefh{"HMAC_SHA256_CC"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($cookie_algorithm ne "aes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "Unrecognized cookie algorithm: $cookie_algorithm\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
2e24e82fc3551e3228bcacaa7c45cb61daa49195Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# enable-openssl-hash
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($enable_openssl_hash eq "yes") {
d5169236b7260d447e672db8256fdd7c70f5ee1dMark Andrews if ($use_openssl eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "No OpenSSL for hash functions\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefp{"ISC_PLATFORM_OPENSSLHASH"} = 1;
df7596a03eea7f1c2df89bd63d3bd4b73f274565Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking HMAC_Init() return type\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testhmac.c" || die $!;
b923e278535b4e8d264998a85a6ae1eb4b3aa4c6Andreas Gustafsson print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <openssl/hmac.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
ed2cefaf0ea367ee408cb7f6a54a413814240fa7Andreas Gustafssonint
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsmain(void)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews{
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews HMAC_CTX ctx;
b923e278535b4e8d264998a85a6ae1eb4b3aa4c6Andreas Gustafsson int n = HMAC_Init(&ctx, NULL, 0, NULL);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews n += HMAC_Update(&ctx, NULL, 0);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews n += HMAC_Final(&ctx, NULL, NULL);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return(n);
769ef0b7bdc9520dd62d2f440ea36bc020e88934Andreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
9e46f410e716f73abb345be215ccb4c61782b718Andreas Gustafsson my $include = $configinc{"OPENSSL_INC"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $library = $configlib{"OPENSSL_LIB"};
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD /I "$include" testhmac.c "$library"`;
769ef0b7bdc9520dd62d2f440ea36bc020e88934Andreas Gustafsson if (grep { -f and -x } ".\\testhmac.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HMAC_RETURN_INT"} = 1;
b09f4e054cbe67b93a5ff62d511ee25945038943Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
40dd9cb8cc240c33d820fe79f176ed51e4c06a1aMark Andrews# with-pkcs11
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_pkcs11 ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"PKCS11"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefd{"USE_PKCS11"} = "USE_PKCS11";
96ea98af241ef00395f4e61de7e2dacfd9941afcMark Andrews $configvar{"PKCS11_TOOLS"} = "pkcs11";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefd{"PK11_LIB_LOCATION"} = "PK11_LIB_LOCATION=\"$pkcs11_path\"";
54c4aa0f62aebeb01b6861ee068c1044433fe8feMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-gssapi
808b909f27c30d36b27efb5aa5ef2d18f83b6d4bAndreas Gustafssonif ($use_gssapi eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "gssapi library is disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
846474d5a6aa21cebb3e94243a11faa5c20200bfAndreas Gustafsson} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $gssapi_path = File::Spec->rel2abs($gssapi_path);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for gssapi directory at \"$gssapi_path\"\n";
7655e78c366cc0d25e24e2a96ba58e04a96042faAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"GSSAPI"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefd{"USE_GSSAPI"} = "GSSAPI";
6859033d425170380bcfac4809257bc6e9b60383Andreas Gustafsson if (!-f File::Spec->catfile($gssapi_path, "include",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi", "gssapi.h")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find gssapi.h include\n";
f558da602e8b74ed181d9189f20bf32dfa6d8723Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "include",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi", "gssapi_krb5.h")) {
ff4322d44f8404683b6fb6c86a38a2bc14f6c083Andreas Gustafsson die "can't find gssapi_krb5.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "include",
8d146b6e1156f5b562af9a4a9aba76b09650412cAndreas Gustafsson "krb5", "krb5.h")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find krb5.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configinc{"GSSAPI_INC"} = File::Spec->catdir($gssapi_path, "include");
808b909f27c30d36b27efb5aa5ef2d18f83b6d4bAndreas Gustafsson my $bits = "32";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $gssapi_lib;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $krb5_lib;
640923da589bc5b8492ac407ef89ea1ee9a1c358Andreas Gustafsson if ($want_win32 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $bits = "32";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "lib", "i386",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi${bits}.lib")) {
d9e690eb71bde3c748208733ba40a34e9d0ba29dAndreas Gustafsson die "can't find gssapi${bits}.lib library\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
1299e93989afbe1fee0739811b05fd1641ea14aeAndreas Gustafsson $gssapi_lib = File::Spec->catfile($gssapi_path, "lib", "i386",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi${bits}.lib");
640923da589bc5b8492ac407ef89ea1ee9a1c358Andreas Gustafsson if (!-f File::Spec->catfile($gssapi_path, "lib", "i386",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "krb5_${bits}.lib")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find krb5_${bits}.lib library\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
0bd1b2fbfed4aa489e9d5fcbc7f48acb96ba7248Mark Andrews $krb5_lib = File::Spec->catfile($gssapi_path, "lib", "i386",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "krb5_${bits}.lib");
aa30ee42c4b6da9bab4fb84d6cbbda6036a4d426Mark Andrews } elsif ($want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $bits = "64";
1de63e34f163b7a4708a6ad1779f93ae7636b92eAndreas Gustafsson if (!-f File::Spec->catfile($gssapi_path, "lib", "amd64",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi${bits}.lib")) {
01446841be2b73f9a2ead74056df2d5342414041Andreas Gustafsson die "can't find gssapi${bits}.lib library\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $gssapi_lib = File::Spec->catfile($gssapi_path, "lib", "amd64",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi${bits}.lib");
28cf7340b9c82fc62ca1a1782cb1bd7b0de11aebAndreas Gustafsson if (!-f File::Spec->catfile($gssapi_path, "lib", "amd64",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "krb5_${bits}.lib")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find krb5_${bits}.lib library\n";
1de63e34f163b7a4708a6ad1779f93ae7636b92eAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $krb5_lib = File::Spec->catfile($gssapi_path, "lib", "amd64",
feb1f6a4ac42988558ecb8dc5dc0c974ec1f0509Brian Wellington "krb5_${bits}.lib");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
d1a6976967d6cfd93f5a8d80878215691ac8fe74Mark Andrews die "can't happen: no choice between Win32 and x64\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "bin", "gssapi${bits}.dll")) {
5e4c83cfec3f267ea8f22fbb535c61434c94d43cDanny Mayer die "can't find gssapi${bits}.dll DLL\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "bin", "krb5_${bits}.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find krb5_${bits}.dll DLL\n";
e6f17474cb43a138bf7fc9ad30c6b3a2847cb7a7Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "bin", "comerr${bits}.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find comerr${bits}.dll DLL\n";
5fe21da364d4397c9a413fe689ce82dea36a7b29Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "bin", "k5sprt${bits}.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find k5sprt${bits}.dll DLL\n";
43efd9fa56b03e3e285fb58859efc9348c7f4a9fMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($gssapi_path, "bin", "wshelp${bits}.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find wshelp${bits}.dll DLL\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
36e37042c6c9252cdf6eb99bd71ccb6e6c43ba6dBrian Wellington $configlib{"GSSAPI_LIB"} = "$gssapi_lib";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configlib{"KRB5_LIB"} = "$krb5_lib";
98e231525fda817d393ef0c529b50bfc08cebe47Mark Andrews my $gssapi_dll = File::Spec->catfile($gssapi_path, "bin",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "gssapi${bits}.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"GSSAPI_DLL"} = "$gssapi_dll";
d4196128b31d511c8513edacc70dea7e8d0c053aMark Andrews my $krb5_dll = File::Spec->catfile($gssapi_path, "bin",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "krb5_${bits}.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"KRB5_DLL"} = "$krb5_dll";
56d69016f4fae2eda4d39c92fe13595251aaadd3Mark Andrews my $comerr_dll = File::Spec->catfile($gssapi_path, "bin",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "comerr${bits}.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"COMERR_DLL"} = "$comerr_dll";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $k5sprt_dll = File::Spec->catfile($gssapi_path, "bin",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "k5sprt${bits}.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"K5SPRT_DLL"} = "$k5sprt_dll";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $wshelp_dll = File::Spec->catfile($gssapi_path, "bin",
e60b3717f0e6f28d6fb2c5124ffb3bd31cc3a746Mark Andrews "wshelp${bits}.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"WSHELP_DLL"} = "$wshelp_dll";
3d8ab44d14f3de797b8454fc2edb7421a6bfc874Andreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
3426f7118c92cab8714a7fddc9e721ff09554447Andreas Gustafsson# enable-isc-spnego
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_gssapi ne "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $enable_isc_spnego = "no";
db235e65884c04058cc6e99ca485170d67cf9538Andreas Gustafsson} elsif ($enable_isc_spnego eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_gssapi eq "no") {
64a5004a66accd190bfd5ddf115667726537be50Andreas Gustafsson die "No GSSAPI for SPNEGO\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefd{"USE_ISC_SPNEGO"} = "USE_ISC_SPNEGO";
64a5004a66accd190bfd5ddf115667726537be50Andreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-geoip
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_geoip eq "no") {
b1ae7a591a4b99a26036e919b87247b65abfcd77Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "geoip library is disabled\n";
6dbc6fae496db1f584c055e63bcd7afd332fe8f6Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"GEOIP"} = 1;
cab0ee644db604d56b45ec39429d505d635da347Andreas Gustafsson $geoip_path = File::Spec->rel2abs($geoip_path);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for geoip directory at \"$geoip_path\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
7780a3e5a4659bb8fc44f8915d20a8d3ffa33e00Andreas Gustafsson if (!-f File::Spec->catfile($geoip_path, "GeoIP.h")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find GeoIP.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
6dbc6fae496db1f584c055e63bcd7afd332fe8f6Andreas Gustafsson if (!-f File::Spec->catfile($geoip_path, "GeoIP.lib")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find Geoip.lib library\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($geoip_path, "GeoIP.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find Geoip.dll DLL\n";
847169dab2d0496df1d66842b2cce67c66bf9680Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configinc{"GEOIP_INC"} = "$geoip_path";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $geoip_lib = File::Spec->catfile($geoip_path, "GeoIP.lib");
3f543c371fff724d1fb05eb564f732476e946b5bBrian Wellington $configlib{"GEOIP_LIB"} = "$geoip_lib";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $geoip_dll = File::Spec->catfile($geoip_path, "GeoIP.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"GEOIP_DLL"} = "$geoip_dll";
847169dab2d0496df1d66842b2cce67c66bf9680Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for GeoIP support\n";
9aba20edee4e704433a464ae43b070b0775de506Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $ret = `copy "$geoip_dll" .`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "Can't copy GeoIP DLL to working directory: $ret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
e8d86192fc424f49e43df9cee439ca5c793e6000Mark Andrews open F, ">testgeoip.c" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsextern void *GeoIP_open();
bae5d9fcb4616005fbc861e327b0a48b7bd4d89aMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint main() {
98a5dc52bf668b093cda7901c057f7b54e18a2fcAndreas Gustafsson return GeoIP_open != 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
98a5dc52bf668b093cda7901c057f7b54e18a2fcAndreas Gustafsson close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo /MD testgeoip.c "$geoip_lib"`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testgeoip.exe") {
98a5dc52bf668b093cda7901c057f7b54e18a2fcAndreas Gustafsson `.\\testgeoip.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? == 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "GeoIP test failed\n";
452b30ddb32dd9370b2e5ee10427dd3758ef98b4Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't compile GeoIP test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
6668eca26bf3123750afda48b69991bd29d83807Mark Andrews $configdefh{"HAVE_GEOIP"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
06a960c681566a163af5b9a655cf36023075ddcbMark Andrews print "checking for GeoIP Country IPv6 support\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
cad3210bb95057a37aaed20bc8a1542e0534422cAndreas Gustafsson my $geoip_inc = qq(/I "$geoip_path");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $geoip_libs = qq("$geoip_lib" ws2_32.lib);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testgeoip1.c" || die $!;
cad3210bb95057a37aaed20bc8a1542e0534422cAndreas Gustafsson print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <GeoIP.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsstruct in6_addr in6;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint flag = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
afeded2289de8d193b072da2b44a2d580cc235c1Danny Mayerint main() {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (flag)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return 1;
afeded2289de8d193b072da2b44a2d580cc235c1Danny Mayer return GeoIP_country_name_by_ipnum_v6(NULL, in6) != NULL;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo $geoip_inc /MD testgeoip1.c $geoip_libs`;
89555ff443c8127a533f6c742316c9b1a713cfd5Mark Andrews if (grep { -f and -x } ".\\testgeoip1.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews `.\\testgeoip1.exe`;
aa9a67adeb48069f5c2e5d8936a8ed5aac7d6ad7Andreas Gustafsson if ($? == 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "GeoIP Country IPv6 test failed\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
73ac1894ea64bc50aff7406872d0e9c5df6d9cf6Mark Andrews die "can't compile GeoIP Country IPv6 test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_GEOIP_V6"} = 1;
330b421487d7c3a5e699472fe889aa633772057fMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
e22dca2a9ad30d493a869586abed86f7268204f9Mark Andrews print "checking for GeoIP City IPv6 support\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">testgeoip2.c" || die $!;
2c0b26955ee32fcee1757ec1be5a8caf8fe695a6Mark Andrews print F << 'EOF';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <GeoIP.h>
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#include <GeoIPCity.h>
2449f41e75d3b3f1c0ec3f05b1603fd8f80d8ae0Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsstruct in6_addr in6;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint i = GEOIP_CITY_EDITION_REV0_V6;
6f7660093e70d3a7c80738b681ac0f5c1b661c00Mark Andrewsint flag = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsint main() {
1fdbadc594a49b423052ea342dac74ff1a36089dMark Andrews if (flag)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return 1;
a1898260ad19d02e88ab76c1855d33c67add9defMark Andrews return GeoIP_record_by_ipnum_v6(NULL, in6) != NULL;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark AndrewsEOF
c0b6c1a5ab50722793cb99b0d8a1e9e910c146a5Andreas Gustafsson close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $compret = `cl /nologo $geoip_inc /MD testgeoip2.c $geoip_libs`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (grep { -f and -x } ".\\testgeoip2.exe") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews `.\\testgeoip2.exe`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? == 0) {
d16b4e8ba885a45933dc6a46f340b76811d60c74Andreas Gustafsson die "GeoIP City IPv6 test failed\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
de9833be77ef92c17b35c02d138a0ad8df34dd91Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't compile GeoIP City IPv6 test: $compret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
4e400cb7a2edd25af98ebc25fcbb5b36ca08f9a0Mark Andrews $configdefh{"HAVE_GEOIP_CITY_V6"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-readline
ec5a06ccf7b15f07d20fd872c3dc1ab8f82f2ceaMark Andrewsif ($use_readline eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "readline library is disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $readline_path = File::Spec->rel2abs($readline_path);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for readline directory at \"$readline_path\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($readline_path, "readline", "readline.h")) {
23a020bc1312fc35e7c4ea36df846c550cb13634Andreas Gustafsson die "can't find readline.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($readline_path, "readline", "readline.lib")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find readline.lib library\n";
0a532842050020a1b0577c65f91f38bd022daa78Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_READLINE"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configinc{"READLINE_INC"} = "$readline_path";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $readline_lib = File::Spec->catfile($readline_path,
23a020bc1312fc35e7c4ea36df846c550cb13634Andreas Gustafsson "readline", "readline.lib");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configlib{"READLINE_LIB"} = "$readline_lib";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (-f File::Spec->catfile($readline_path, "readline", "readlineD.lib")) {
ab3eaa20e9a7e56208408563c79b4f8ac01d5e84Andreas Gustafsson my $readline_libd = File::Spec->catfile($readline_path,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "readline", "readlineD.lib");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configlib{"READLINE_LIBD"} = "$readline_libd";
e1a153c3f095e217eea29958950fea36e54862ceAndreas Gustafsson } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configlib{"READLINE_LIBD"} = "$readline_lib";
7250c1a2616761395bdb9ae7cd1ba43f20d3edc4Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
a5b9c2b208b51b039c8f4006cddf3d37dd781561Brian Wellington# with-idn (including with-iconv)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_idn eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "IDN kit is disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $idn_path = File::Spec->rel2abs($idn_path);
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for IDN kit directory at \"$idn_path\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($idn_path, "idn", "api.h")) {
ee3ab6063dd13b5947d3fbe88b9ce8f38d65df9dBrian Wellington die "can't find idn\\api.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($idn_path, "idn", "idnkit.lib")) {
d81622b537be1971530cfb459acdbbe7d82d883bBrian Wellington die "can't find idnkit.lib library\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
a5b9c2b208b51b039c8f4006cddf3d37dd781561Brian Wellington if (!-f File::Spec->catfile($idn_path, "idn", "idnkit.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find idnkit.dll DLL\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"IDNKIT"} = 1;
2da0b7dfbd02fab454b8ba60f1fdb7e2a5cbd2dbMark Andrews $configdefh{"WITH_IDN"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configinc{"IDN_INC"} = "$idn_path";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $idn_lib = File::Spec->catfile($idn_path, "idn", "idnkit.lib");
1cb6e8cbe41afade950837319e04da4ccf8649e0Brian Wellington $configlib{"IDN_LIB"} = "$idn_lib";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $idn_dll = File::Spec->catfile($idn_path, "idn", "idnkit.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"IDN_DLL"} = "$idn_dll";
6443201354efa09f16ada26dab99e9b7f8271521Andreas Gustafsson if ($iconv_path eq " --idn-- ") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $iconv_dll = File::Spec->catfile($idn_path, "idn", "iconv.dll");
6443201354efa09f16ada26dab99e9b7f8271521Andreas Gustafsson $configdll{"ICONV_DLL"} = "$iconv_dll";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
e980502db40155234b4e8d320b748b34dbaba3a2Brian Wellington my $iconv_dll =File::Spec->catfile($iconv_path, "iconv.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"ICONV_DLL"} = "$iconv_dll";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
ecd1addb86319bacc6c0bff2c68373619eebbffcMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-libxml2
ea20115e347264b9bc1c686d6dfc1b5af3a5516bAndreas Gustafssonif ($use_libxml2 eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "libxml2 library is disabled\n";
bddfe77128b0f16af263ff149db40f0d885f43d0Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($use_libxml2 eq "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
aa0dc8d920a1f79626c3564408db9c5c9a5319a7Andreas Gustafsson print "checking for a libxml2 built directory at sibling root\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
aa0dc8d920a1f79626c3564408db9c5c9a5319a7Andreas Gustafsson opendir DIR, $libxml2_path || die "No Directory: $!\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @dirlist = grep (/^libxml2-[0-9]+\.[0-9]+\.[0-9]+[a-z]*/i,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews readdir(DIR));
35db8a8eda6a889675138eb125d366c8851f68a5Andreas Gustafsson closedir(DIR);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Make sure we have something
0d5e7cd0afaee07302f8364aa454f09b4c63ea79Andreas Gustafsson if (scalar(@dirlist) == 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find a libxml2 at sibling root\n";
5e88852b94830bf71e37dc700d568cb35e2e6f7eAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Now see if we have a directory or just a file.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Make sure we are case insensitive
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $file;
22815444822da17fab82d4ab115da6e055ea1754Brian Wellington foreach $file (sort {uc($b) cmp uc($a)} @dirlist) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (-f File::Spec->catfile($libxml2_path,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $file,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "include\\libxml",
35db8a8eda6a889675138eb125d366c8851f68a5Andreas Gustafsson "xmlversion.h")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $libxml2_path = File::Spec->catdir($libxml2_path, $file);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_libxml2 = "yes";
bd6504aa9aa16a912412fbe010046aaf4bf23621Brian Wellington last;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
bd6504aa9aa16a912412fbe010046aaf4bf23621Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # If we have one use it otherwise report the error
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_libxml2 eq "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find a libxml2 built directory at sibling root\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
1e289d3cca5cdd01dda650fa6e4c1de1aa8b4196Andreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# falls into (so no else)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_libxml2 eq "yes") {
c54210716ee55b55e22d8dad56fd696a641fc98dBob Halley $libxml2_path = File::Spec->rel2abs($libxml2_path);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for libxml2 built directory at \"$libxml2_path\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
3fcf6b956f47405750724bd84e1b2290b61c9186Brian Wellington if (!-f File::Spec->catfile($libxml2_path,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "include\\libxml",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "xmlversion.h")) {
0a2d5c990559ce2b9f95df752db6e93024d9a250Brian Wellington die "can't find libxml2 xmlversion.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($libxml2_path,
96ed62425310854fd6f6f06bfb7651b3e4c17ee7Andreas Gustafsson "win32\\bin.msvc",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "libxml2.lib")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find Libxml2 libxml2.lib library\n";
96ed62425310854fd6f6f06bfb7651b3e4c17ee7Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($libxml2_path,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "win32\\bin.msvc",
5733d25b06b46067b3751d10436d82aef09cd705Brian Wellington "libxml2.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find Libxml2 DLL\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
5733d25b06b46067b3751d10436d82aef09cd705Brian Wellington $configcond{"LIBXML2"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_LIBXML2"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $libxml2_inc = File::Spec->catdir($libxml2_path, "include");
debff476ad3512687a354499c25d2793e2009acdBrian Wellington $configinc{"LIBXML2_INC"} = "$libxml2_inc";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $libxml2_libdir = File::Spec->catdir($libxml2_path, "win32\\bin.msvc");
eb6e3b04169a766d2b968bcc978191605c2ef24cAndreas Gustafsson my $libxml2_lib = File::Spec->catfile($libxml2_libdir, "libxml2.lib");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configlib{"LIBXML2_LIB"} = "$libxml2_lib";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $libxml2_dll = File::Spec->catfile($libxml2_libdir, "libxml2.dll");
7d8c3693d0426b56750b14d80c47df5e42fc75e4Andreas Gustafsson $configdll{"LIBXML2_DLL"} = "$libxml2_dll";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-zlib
fed846067d265db1037483d81d01f3651c8a3f28Brian Wellingtonif ($use_zlib eq "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "zlib library is disabled\n";
a26ad011f382d12058478704cb5e90e6f4366d01Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configcond{"ZLIB"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $zlib_path = File::Spec->rel2abs($zlib_path);
7d8c3693d0426b56750b14d80c47df5e42fc75e4Andreas Gustafsson if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for zlib directory at \"$zlib_path\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($zlib_path, "zlib.h")) {
07c336a9a85791dff886b1e28514589a25d9b720Andreas Gustafsson die "can't find zlib.h include\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($zlib_path, "zdll.lib")) {
07c336a9a85791dff886b1e28514589a25d9b720Andreas Gustafsson die "can't find zdll.lib library\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (!-f File::Spec->catfile($zlib_path, "zlib1.dll")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find zlib1.dll DLL\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"HAVE_ZLIB"} = 1;
712fa28946312882a60b0c6a913914d3e8c69867Mark Andrews $configinc{"ZLIB_INC"} = "$zlib_path";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $zlib_lib = File::Spec->catfile($zlib_path, "zdll.lib");
63fd201fde27ce408cde1c73a054e401fcfb9e3bDavid Lawrence $configlib{"ZLIB_LIB"} = "$zlib_lib";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $zlib_dll = File::Spec->catfile($zlib_path, "zlib1.dll");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdll{"ZLIB_DLL"} = "$zlib_dll";
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
f8644da8d948dbc973f6dd4c94a79774e16ec07bDavid Lawrence# with-python
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_python eq "no") {
9bfa90768ab83ea5a8571c98d3774377da4bdcbeDavid Lawrence if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "python is disabled\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} elsif ($use_python eq "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
2d67c2474475acf52c8251dc48bfb7565ee5f2ffDavid Lawrence print "checking for python in path\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $pythonret = `python -c "quit()" 2>&1`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
6a7a69e9f764812872ec2db775be2ac8bb073102Andreas Gustafsson print STDERR "can't launch the python interpreter: $pythonret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_python = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
0a9a3d8c6daf9ffcfb62dbe366e26f521cbb9736Brian Wellington}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif ($use_python ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_python ne "auto") {
34d5676aac483e00e16056a6834a27b52bed42f0Brian Wellington if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for $python_command\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
1d9ab721315555ac75e7d4f57585323909283688Andreas Gustafsson my $pythonret = `"$python_command" -c "quit()" 2>&1`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't launch $python_command: $pythonret\n";
ef8d97818f0d30a4e09db97af695f504b311372cMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
6af5c66df334c4e275e07b03c9b35e40dbaa4f31Andreas Gustafsson if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for python module 'argparse'\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $pythonret = `"$python_command" -c "import argparse" 2>&1`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
519f8475ff8218e3981ae2b249eb1403da7c52f6Andreas Gustafsson if ($use_python ne "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find python module 'argparse': $pythonret\n";
edc1c60621b44fbc8131ad1542f657dd129f9a30Andreas Gustafsson } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR "can't find python module 'argparse': $pythonret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_python = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
41626c0997c89dcdecf67c931f0031aadd507977Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_python ne "no") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
464c2e4bb960d15bd60d53c3ef3ae7414b129037David Lawrence print "checking for python module 'ply'\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pythonret = `"$python_command" -c "from ply import *" 2>&1`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
6112718b0dbb01ffbfd3fabc61e30c7e4485b0a7David Lawrence if ($use_python ne "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find python module 'ply': $pythonret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR "can't find python module 'ply': $pythonret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_python = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
04260c5c48d234734863f0222e207b6564cd41a8David Lawrence }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_python ne "no") {
6c35e4dd17e6562a6b4d106cbf1d824b9f529356David Lawrence if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for python module 'win32api'\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pythonret = `"$python_command" -c "import win32api" 2>&1`;
504f7802d4c9b43db4820f496c4d00e078effa18David Lawrence if ($? != 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_python ne "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find python module 'win32api': $pythonret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
6af5c66df334c4e275e07b03c9b35e40dbaa4f31Andreas Gustafsson print STDERR
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "can't find python module 'win32api': $pythonret\n";
841179549b6433e782c164a562eb3422f603533dAndreas Gustafsson $use_python = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_python ne "no") {
f808bd34fbd3dd9508e8183e8025635bc330c34aAndreas Gustafsson if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "checking for python module 'win32con'\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pythonret = `"$python_command" -c "import win32con" 2>&1`;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($? != 0) {
841179549b6433e782c164a562eb3422f603533dAndreas Gustafsson if ($use_python ne "auto") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "can't find python module 'win32con': $pythonret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print STDERR
6c6a6c9f5e2b3c6fd72263eac155e4feddb77316Brian Wellington "can't find python module 'win32con': $pythonret\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $use_python = "no";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
2445d14b1a95132a473aa30076d0ce1762027e76Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_python ne "no") {
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews $configcond{"PYTHON"} = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefd{"USE_PYTHON"} = "USE_PYTHON";
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews $configvar{"PYTHON"} = "$python_command";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Doesn't matter
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews $configvar{"prefix"} = "__prefix__";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configvar{"expanded_sysconfdir"} = "__prefix__\\etc";
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# with-vcredist
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews$vcredist_path = File::Spec->rel2abs($vcredist_path);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewsif (!grep { -f and -x } $vcredist_path) {
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews die "$vcredist_path is not correct\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews $configvar{"VCREDIST_PATH"} = "$vcredist_path";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# tuning
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrewsif ($tuning eq "large") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $configdefh{"TUNE_LARGE"} = 1;
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews# setup config.h with %configdefh
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrewssub setupconfigh {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $line;
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews my @Lines;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews open F, $configfilein || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews @Lines = <F>;
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews foreach $line (@Lines) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews chomp $line;
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews if ($line =~ /^@([^@]+)\@$/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdefh{$1})) {
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews $line = "#define $1 $configdefh{$1}";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
5613bf7de9760875da9f5fbc6ffcd93e0af967ffMark Andrews $line = "/* #undef $1 */";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ed0e1ae6bc3df39389a24d72cf544b2437bf8340Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
56877490bc70e4004f6b5e4a16067750ca64be85Andreas Gustafsson open F, $configfileout || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "Setting up config.h\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $line (@Lines) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F $line . "\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
af0be81b2f6ea700dd882d3b18468c7815bd5ef2Andreas Gustafsson}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# setup platform.h with %configdefp
ed0e1ae6bc3df39389a24d72cf544b2437bf8340Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewssub setupplatformh {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @Lines;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, $platformfile . ".in" || die $!;
6cefb60af55912df4411389bccfc38a74e992332Mark Andrews @Lines = <F>;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
02e81689e3eff98a8d70c98a7cc45c150472316aBrian Wellington foreach $line (@Lines) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews chomp $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($line =~ /^@([^@]+)\@$/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdefp{$1})) {
dccd7f8459d811141fde04d4a307b9b695cf58b1David Lawrence $line = "#define $1 $configdefp{$1}";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
dccd7f8459d811141fde04d4a307b9b695cf58b1David Lawrence $line = "/* #undef $1 */";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
dccd7f8459d811141fde04d4a307b9b695cf58b1David Lawrence }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, ">" . $platformfile || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "Setting up platform.h\n";
dccd7f8459d811141fde04d4a307b9b695cf58b1David Lawrence }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $line (@Lines) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F $line . "\n";
03f91269f5453bcbd924910ef85a8f8496cf2661Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
afb0a628efd8ecf40f66f6b8d0711bca62be2a9aMark Andrews# escape spaces
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
17dba29ba5db791976e505114baee53a1dde88aaBrian Wellingtonsub kw {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($_[0] =~ / /) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews return "\"$_[0]\"";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b5a86fe434c7d58d28af3b5c70c1743979f13aaeMark Andrews return "$_[0]";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
3042b3e2711d00b7fd9ffbf51443ad761d30427fMark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# setup a file with %configcond stack and %config{var,defd,inc,lib,dll}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrencesub setupfile {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @Linesin;
af0be81b2f6ea700dd882d3b18468c7815bd5ef2Andreas Gustafsson my @Linesout;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $filename = $_[0];
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence my $cond;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @conds;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $pass = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @passes;
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence my $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence open F, $filename . ".in" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews @Linesin = <F>;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $line (@Linesin) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews chomp $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($line =~ /^\@IF (.*)$/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($cond)) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews unshift(@conds, $cond);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews unshift(@passes, $pass);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence if ($1 ~~ @allcond) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $cond = $1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configcond{$cond})) {
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence # do nothing
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "unknown condition \@IF $1 in $filename\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
adcd8c93196ad0a3516252d80597c3c52472ffb2David Lawrence next;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($line =~ /^\@ELSE (.*)$/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($cond ne $1) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "\@ELSE $1 mismatch in $filename\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configcond{$cond})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (scalar(@conds) > 0) {
5455f30a7532738d750252c00e649890c694ee30Brian Wellington $pass = $passes[0];
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
e2fd12f3a020ca8c5de168a44fb72e339cdaa3e9Brian Wellington $pass = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
cf74d05a50e342e5b3870005c04ae5ed8013ab3eBrian Wellington next;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($line =~ /^\@END (.*)$/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($cond ne $1) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "\@END $1 mismatch in $filename\n";
2ae4dd0dbd50b3159476537c60ccdc8b64364356Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $cond = shift(@conds);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (scalar(@passes) > 0) {
f3ac8ee19231ae3018ec21756f19b1bd639ce7e7Andreas Gustafsson $pass = shift(@passes);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = 1;
f3ac8ee19231ae3018ec21756f19b1bd639ce7e7Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews next;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
82e991b8ed4e0ed3b010d191e0cadfd60226c2d9Andreas Gustafsson if ($pass == 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews next;
5ce23ccf3f324dc90ab9b4426b1da6284b0e2abfAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews while ($line =~ /@([^@ ]*)@/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($1 ~~ @substvar) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configvar{$1})) {
508d17362c2c43ddf95ddc87ae6a8c5f32f35323Andreas Gustafsson $val = kw($configvar{$1});
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$val$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($1 ~~ @substdefd) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdefd{$1})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $def = $configdefd{$1};
e7a4f58d55042cbc981a70b5071aaea46b9ebf7fAndreas Gustafsson my $pre = "$`";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $post = "$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $def =~ s/([\\ "])/\\$1/g;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = qq($pre/D "$def"$post);
5fdc9aaf401f6816df65d0e9cf701872f345c558Andreas Gustafsson } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($1 ~~ @substinc) {
6060b0ac76667afae3c9132ab6e3568a7a693f5dAndreas Gustafsson if (defined($configinc{$1})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = qq($`/I "$configinc{$1}"$');
50097b38c075be55a73bb3737d091c503c70061dBrian Wellington } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$'";
751aa24c98fea02215cad95a08411af547d70e41Bob Halley }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($1 ~~ @substlib) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configlib{$1})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $val = kw($configlib{$1});
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$val$'";
fd5847ef0954117d5f905dbbfb68f1e67e4f285fAndreas Gustafsson } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
82e991b8ed4e0ed3b010d191e0cadfd60226c2d9Andreas Gustafsson } elsif ($1 ~~ @substdll) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdll{$1})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $val = kw($configdll{$1});
82e991b8ed4e0ed3b010d191e0cadfd60226c2d9Andreas Gustafsson $line = "$`$val$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
69d44b2f5ac8e35bdb0b80aeb304f5cb62197892Mark Andrews $line = "$`$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
3242899a56da9c245956979d5be9c92b2cf0ee24Andreas Gustafsson die "unknown control $& in $filename\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
8fbd23c0aaacdde1348b6457c5db14c433096fd2Andreas Gustafsson push @Linesout, $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
5f539d5fc68ca056bd1791e3156b0fe6b28cde16Brian Wellington open F, ">" . $filename || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "Setting up $filename\n";
76477bd0e0a8f150f06f45c347d286b782cfa679Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $line (@Linesout) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F $line . "\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
e491ef29043ae77d3d78fb7a59328f143fcf70feAndreas Gustafsson close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# setup a project with %configcond stack and %config{var,defd,inc,lib,dll}
1a286a6613d385b443030a8c932e40ac9e9c301fBob Halley
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewssub setupproject {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @Linesin;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @Linesout;
3242899a56da9c245956979d5be9c92b2cf0ee24Andreas Gustafsson my $projectname = $_[0];
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $cond;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @conds;
9ffcab1e9a398e431c10c9936c28e4166c2e82e0Andreas Gustafsson my $pass = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @passes;
de8717a7218a4f034144ad7b8755ad43e3fd45c9David Lawrence my $val;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open F, $projectname . ".in" || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews @Linesin = <F>;
6f115bdb61672871bd822bdcd09cb1a3aad38aa0David Lawrence close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $line (@Linesin) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews chomp $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($line =~ /^\@IF (.*)$/) {
5e194abb5b548524e5c0fd2bb4627ec698b75e2bAndreas Gustafsson if (defined($cond)) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews unshift(@conds, $cond);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews unshift(@passes, $pass);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
5e194abb5b548524e5c0fd2bb4627ec698b75e2bAndreas Gustafsson if ($1 ~~ @allcond) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $cond = $1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configcond{$cond})) {
09ae77ca30eb17ee32d3f7720ca796a72259cde6Andreas Gustafsson # do nothing
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = 0;
cedd0ab1e812ec7cf05d57c3e602db41b79f0a2aAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
8c3989000a19f88415d094eb5984f7cf6ba2340cBrian Wellington die "unknown condition \@IF $1 in $projectname\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews next;
ac6afcd0caf72aaa2a537e0003de30b363b4a68bBrian Wellington } elsif ($line =~ /^\@ELSE (.*)$/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($cond ne $1) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "\@ELSE $1 mismatch in $projectname\n";
c20ffa38dee7efa0dc01822d4bac5e41729b9b61Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configcond{$cond})) {
2b7a77a68e27fc7991a857d403cb34b2ae90fc0bMark Andrews $pass = 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (scalar(@conds) > 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = $passes[0];
aed6a8ed2e706404ccca0f31faf110fd6efd34e6Andreas Gustafsson } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews next;
aed6a8ed2e706404ccca0f31faf110fd6efd34e6Andreas Gustafsson } elsif ($line =~ /^\@END (.*)$/) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($cond ne $1) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "\@END $1 mismatch in $projectname\n";
f8b3c627949bd4bc2f6aafb3dab2f56e3aa9ba06Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $cond = shift(@conds);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (scalar(@passes) > 0) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = shift(@passes);
55ddb88e53838693370c213930beda1652b8a583Brian Wellington } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $pass = 1;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
daad43e5a4e83bd3c055632799ab67e269467db0Brian Wellington next;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($pass == 0) {
3efd6904134ef6c4866a633eabeb55d1c86be7bbBrian Wellington next;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews while ($line =~ /@([^@ ]*)@/) {
70d08aea0a693c6ca62c2f7bb33bfddf9e427601Brian Wellington if ($1 ~~ @substvar) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configvar{$1})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $val = kw($configvar{$1});
907620b5e0d898da324192cbbe5a5b518f55d175Bob Halley $line = "$`$val$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$'";
2c9db9314993504064c1a71f4a059ff9493a75caBrian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($1 ~~ @substdefd) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdefd{$1})) {
9027e1bcf1b245226e3053a75d16c5351d7e60caDavid Lawrence $val = kw($configdefd{$1});
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$val;$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
9027e1bcf1b245226e3053a75d16c5351d7e60caDavid Lawrence $line = "$`$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($1 ~~ @substinc) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configinc{$1})) {
668f8d91db59f4dd89a0b54206f87879354339f5Brian Wellington $val = kw($configinc{$1});
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$val;$'";
d7ba3622ffa20c653ef6c8cfae42d8cd26465b7fBrian Wellington } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c0968380c4fb0b8196aafb8de225531bd847bb6dBrian Wellington } elsif ($1 ~~ @substlib) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configlib{$1})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $val = kw($configlib{$1});
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$val;$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
1d92d8a2456b23842a649b6104c60a9d6ea25333Brian Wellington $line = "$`$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } elsif ($1 ~~ @substdll) {
b879ed05f4fb8209add6c19a509c984b6c8b3a98Andreas Gustafsson if (defined($configdll{$1})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $val = kw($configdll{$1});
b52a5b063050f209b0f47379178a1e7ae7404624Andreas Gustafsson $line = "$`$val$'";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $line = "$`$'";
34613b2e39478a83076f6a626a4b855cebb19533Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews die "unknown control $& in $projectname\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
6eccf5bd07eb9abf65cc08fec4a8fc97b62c0e1bBrian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews push @Linesout, $line;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
3bd8e7cf1c082cd1021e5a6cae1cf21911217858Brian Wellington open F, ">" . $projectname || die $!;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "Setting up $projectname\n";
b8a85202af814468421a6541b4c935bd14773c53Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $line (@Linesout) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print F $line . "\n";
b879ed05f4fb8209add6c19a509c984b6c8b3a98Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close F;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
4c03e69ab845f703c1ffa3b7772938ca98cce44dAndreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# make versions.h
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b0390aab30438a13f533cccae9389945214b1421Brian Wellingtonsub makeversion {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # List of directories with version files
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @dirlist = ("isc", "dns", "isccc", "isccfg", "lwres", "bind9", "irs");
54d64c7994d01da590462ecc56faf1a87fc4abb9Brian Wellington my %LibMacros = (
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "bind9" => "LIBBIND9_EXPORTS",
4c03e69ab845f703c1ffa3b7772938ca98cce44dAndreas Gustafsson "dns" => "LIBDNS_EXPORTS",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "irs" => "LIBIRS_EXPORTS",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "isc" => "LIBISC_EXPORTS",
225a66da7ea2671a3e4db3cc4337f97ff67be647Brian Wellington "isccc" => "LIBISCCC_EXPORTS",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "isccfg" => "LIBISCCFG_EXPORTS",
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "lwres" => "LIBLWRES_EXPORTS");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my @VersionNames = ("LIBINTERFACE", "LIBREVISION", "LIBAGE");
279de54fe3a0ac10b64762b18a4569c07b15d742Andreas Gustafsson my $Version;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my %ApiVersions;
279de54fe3a0ac10b64762b18a4569c07b15d742Andreas Gustafsson my $Mapapi;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $versionfile = "versions.h";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $versionpath = "..\\$versionfile";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
17789c880460c0bca3f3693c759be2214b936e69Brian Wellington my $data;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $name;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $value;
55b62439233d930152690b9eba97b06d9dc13d23Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # And the mapapi one
123a3dddc94534d3a6c6f81c118a5b63dc5994c3Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open M, "..\\lib\\dns\\mapapi" || die $!;
590233519e14f3cf49840a93d2648d5560dd957eDavid Lawrence while (<M>) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews chomp;
590233519e14f3cf49840a93d2648d5560dd957eDavid Lawrence ($data) = split(/\#/);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($data) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($name, $value) = split(/=/, $data);
123a3dddc94534d3a6c6f81c118a5b63dc5994c3Andreas Gustafsson ($name) = split(/\s+/, $name);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($name eq 'MAPAPI') {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($value) =~ s/^["\s]+//;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($value) =~ s/["\s]+$//;
5ea0d11ca45bfd1ea9db8db07f18fbb02f500661Brian Wellington } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($value) = split(/\s+/, $value);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
d25dd5b0567f67ecf40b7ed1cb20e0dce7b41c49Brian Wellington $Mapapi = $value;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews close M;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
7c058f1c384ebdba74231111f9358cf08109a5dbBob Halley # Now set up the output version file
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $ThisDate = scalar localtime();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open O, ">$versionpath" ||
620de5a4b1f23dc9b4ec30d30c0607ff389be0daBob Halley die "Can't open output file $versionpath: $!\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
4e3f8e480f220ef8a87fd28d02f9001b8fc6f423Bob Halley # Standard Header
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O '/*
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * Copyright (C) 2001 Internet Software Consortium.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews *
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * Permission to use, copy, modify, and distribute this software for any
dc2e09d48b49d96a0572a971180718f680140cf0Andreas Gustafsson * purpose with or without fee is hereby granted, provided that the above
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * copyright notice and this permission notice appear in all copies.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews *
dc2e09d48b49d96a0572a971180718f680140cf0Andreas Gustafsson * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
dc2e09d48b49d96a0572a971180718f680140cf0Andreas Gustafsson * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
90c099e88e9f16bfee9edee3ac1a51fc98843772Brian Wellington * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews */
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
620de5a4b1f23dc9b4ec30d30c0607ff389be0daBob Halley';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O "/*\n";
68b952dc98a9e02b269c0712da120cd773679652Brian Wellington print O " * $versionfile.";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O " Generated automatically by Configure.pl.\n";
d1cc210d2091916df6f9858fae20a1c760f3b257Andreas Gustafsson print O " * Date generated: $ThisDate\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O " */\n\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O '
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#ifndef VERSIONS_H
d1cc210d2091916df6f9858fae20a1c760f3b257Andreas Gustafsson#define VERSIONS_H 1
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $Version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
ed0a4f1a302a5e543a9a2e4f8e61ca8a0673c6a7Mark Andrews if ($Versions{'PATCHVER'} ne "") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $Version = "$Version.$Versions{'PATCHVER'}";
a93cf7e83be621d3d68f51e37121a47a70a6757bMark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $Version = "$Version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $Version = "$Version$Versions{'EXTENSIONS'}";
c05eeed3c915d55a4949f5c2ce8700a0b0f9381bAndreas Gustafsson if ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "BIND Version: $Version\n";
c05eeed3c915d55a4949f5c2ce8700a0b0f9381bAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O "#define VERSION \"$Version\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O "#define PRODUCT \"$Versions{'PRODUCT'}\"\n\n";
3bb043a8b8b15eece3794ec31ad0ccab103a1c21Brian Wellington print O "#define DESCRIPTION \"$Versions{'DESCRIPTION'}\"\n\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews "#define MAJOR \"$Versions{'MAJORVER'}.$Versions{'MINORVER'}\"\n\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O "#define MAPAPI \"$Mapapi\"\n\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
df0f58959ed82a2a43ca8d816ce9592541df9f2fMark Andrews my $dir;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $apifile;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $dir (@dirlist) {
903e9d41ef730f098d38da9588f2824f37b7d73cMark Andrews $apifile = "..\\lib\\$dir\\api";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews open A, $apifile || die $!;
f4b5a0f43481026ea27bd96e3584ca0e92542f0dBob Halley while (<A>) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews chomp;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($data) = split(/\#/);
6211baaa66d7cac28a21b6426681e597ff04ca9eAndreas Gustafsson if ($data) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($name, $value) = split(/=/, $data);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $name =~ s/\s+//;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $value =~ s/\s+//;
6211baaa66d7cac28a21b6426681e597ff04ca9eAndreas Gustafsson $ApiVersions{$name} = $value;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
ea544b0511a66bc5f3700d56a72dcd808fdf22e8Brian Wellington close A;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O "\n#ifdef $LibMacros{$dir}\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $name (@VersionNames) {
a012d6dbfb100390efa7d0d4be64ada0210b09ddBrian Wellington print O "#define $name\t$ApiVersions{$name}\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O "#endif\n\n";
c8d185ad5827bf2cf9982075e3336f680759a260Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print O "#endif /* VERSIONS_H */\n";
1e50dad10da55802152d00d5573f8b7d49d752a6Bob Halley close O;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# make srcid.h
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
c8d185ad5827bf2cf9982075e3336f680759a260Andreas Gustafssonsub makesrcid {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $data;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $name;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $value;
22cafd0ece9c8d22a1218f000afdbceda21fe8afBrian Wellington my $srcid = "unset";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
2cb74c5bc52ef415a771fafe0bf504eab609feadBrian Wellington open SOUT, ">..\\srcid.h" || die "cannot open srcid.h: $!\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (open (SIN, "..\\srcid")) {
3d60fe9bafbf633e3a7811c11227baebb17878a4Brian Wellington LOOP: while (<SIN>) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews chomp;
218c8472e6c8c1a014e412615cc97bb93c0ef9c2Brian Wellington ($data) = split(/\#/);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($data) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($name, $value) = split(/=/, $data);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews ($name) = split(/\s+/, $name);
f24c135e09214c3843a49fd32ebef2f6a436ba8eBrian Wellington ($value) = split(/\s+/, $value);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews next LOOP if ($name != "SRCID");
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews $srcid = $value;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
02940eaf0f732c28c0b39ed114a3803074a80138Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close SIN;
02940eaf0f732c28c0b39ed114a3803074a80138Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
9a7d163f6f305d48771b4c56d8d18efc6dfc8fc3Mark Andrews # Now set up the output version file
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
aa23a35d81a9618a40c4a9b44be48009553e4777Andreas Gustafsson my $ThisDate = scalar localtime();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews # Standard Header
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
aa23a35d81a9618a40c4a9b44be48009553e4777Andreas Gustafsson print SOUT '/*
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * Copyright (C) 2012 Internet Software Consortium.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews *
22457624d3e63e7cd255b4083cb435c16caea26dBob Halley * Permission to use, copy, modify, and distribute this software for any
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * purpose with or without fee is hereby granted, provided that the above
91425b5e7204b05165e2c5b244f3dad502f9627dBrian Wellington * copyright notice and this permission notice appear in all copies.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews *
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
91425b5e7204b05165e2c5b244f3dad502f9627dBrian Wellington * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
b18a5b6730dcb062cf7f47c6b3cb909030b58f36Brian Wellington * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
7e361074bc8a2df7a0891a7040eea02ca3a5e286Andreas Gustafsson * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews */
328b080b4af258fdd4d3a2ea1558b48706bd8116Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print SOUT "/*\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print SOUT " * srcid.h";
9e560b59a722d06a62b5aed761e71fec72638a7cBrian Wellington print SOUT " * Generated automatically by Configure.pl.\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print SOUT " * Date generated: $ThisDate\n";
f91dc72b422479b5a0caf1fe54c4054d25ae6055Brian Wellington print SOUT " */\n\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
7e361074bc8a2df7a0891a7040eea02ca3a5e286Andreas Gustafsson print SOUT '
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#ifndef SRCID_H
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#define SRCID_H 1
d6b3d06db7ce3b9229dc30cc0e3a72ba2603da28Bob Halley';
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($verbose) {
8e68489885e744ab48907414b4199c36858c27ddMark Andrews print "BIND SRCID: $srcid\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
c17c59662f0969a5e52e8b7529cbde1a7c746095Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print SOUT "#define SRCID\t\"$srcid\"\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print SOUT "#endif /* SRCID_H */\n";
c17c59662f0969a5e52e8b7529cbde1a7c746095Andreas Gustafsson close SOUT;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
651421a5db8a9edf39c76fd8cf859409eb8c373bAndreas Gustafsson# Build install files
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrewssub makeinstallfile {
651421a5db8a9edf39c76fd8cf859409eb8c373bAndreas Gustafsson open FOUT, ">InstallFlags" || die "cannot open InstallFlags: $!\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print FOUT "# Flags for BINDInstall\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($msc_ver >= 1400) {
7427490a67b9547242b57c255254f7e146127c48Bob Halley print FOUT "runvcredist\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($want_x64 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print FOUT "forwin64\n";
dfa0badebe5a8260281228d94dbe28e4314a9df6Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close FOUT;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
dfa0badebe5a8260281228d94dbe28e4314a9df6Andreas Gustafsson open LOUT, ">InstallFiles" || die "cannot open InstallFiles: $!\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "# File list for BINDInstall\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($msc_ver < 1400) {
2d0627005d48b7657fa11792c123466b4f974b61Mark Andrews if ($msc_ver >= 1310) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "mfc71.dll-WCTT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "msvcr71.dll-WCTT\n";
80ddc8b22bf2ede60038393be5cad9da99d3f03fAndreas Gustafsson } elsif (($msc_ver > 1200) && ($msc_ver < 1310)) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "mfc70.dll-WCTT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "msvcr70.dll-WCTT\n";
94baac869a70b529a24ff23d8dc899faa5d4fdc4Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "bindevt.dll-BNFT\n";
1ac2c28488fb5de80b3ce9aac3500d215cb61728Brian Wellington print LOUT "libbind9.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "libisc.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "libisccfg.dll-BCFT\n";
a12d9cfa59b5981c52e1aaafedf652d5128f3448Brian Wellington print LOUT "libisccc.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "libdns.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "liblwres.dll-BCFT\n";
702a69f04a89422968ef8fc6fc271fac058e03efBrian Wellington print LOUT "libirs.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_openssl eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "libeay32.dll-BCFT\n";
0f537d1c63f643924355ff9ca2cf72c547101aa4Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_libxml2 eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "libxml2.dll-BCFT\n";
9ee323b64bc9dcd73f9a0a0e69a31475026721daAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_gssapi eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($want_x64 eq "yes") {
c27148868266dd718b6677c794b3e6dca53c3bdcAndreas Gustafsson print LOUT "gssapi64.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "krb5_64.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "gssapi32.dll-BCFT\n";
f8a44ed40032e034883019ac556f3bb732491a32Mark Andrews print LOUT "krb5_32.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
07d6480b684d3745e645f35a8b95dae9bda982a3Mark Andrews if ($use_geoip eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "libgeoip.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
634784cb66a1c9ddee0c448f71580f024c8fe40bAndreas Gustafsson if ($use_idn eq "yes") {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "idnkit.dll-BCFT\n";
ea6709ec8a66e3ffef9c9466613df499567c57f8Brian Wellington print LOUT "iconv.dll-BCFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "named.exe-BCFF\n";
634784cb66a1c9ddee0c448f71580f024c8fe40bAndreas Gustafsson print LOUT "nsupdate.exe-BNFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "BINDInstall.exe-BNFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "InstallFlags-BNFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "InstallFiles-BNFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "rndc.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dig.exe-BNFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "host.exe-BNFT\n";
49576ae7a481415d5e815ff59b71c76203259619Andreas Gustafsson print LOUT "nslookup.exe-BNFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "delv.exe-BNFT\n";
e8af4e152413190e5553c2fb3074a1cc689c6cefAndreas Gustafsson print LOUT "arpaname.exe-BNFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "nsec3hash.exe-BNFF\n";
4d30acbac52fcb20a4f0ab4f8508f24861386fe7Brian Wellington print LOUT "genrandom.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "rndc-confgen.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "ddns-confgen.exe-BNFF\n";
131d5feb05fce60143bc17dab73df20753d9301fBrian Wellington print LOUT "tsig-keygen.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dnssec-keygen.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dnssec-signzone.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dnssec-dsfromkey.exe-BNFF\n";
76c9d2f6c0a5d6ea8bcc35fc3228d2019507b2bbBrian Wellington print LOUT "dnssec-importkey.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dnssec-keyfromlabel.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dnssec-revoke.exe-BNFF\n";
187a97287e626b2f2e9774479e145dfbf1eba66cBrian Wellington print LOUT "dnssec-settime.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dnssec-verify.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "named-checkconf.exe-BNFF\n";
7ed2d93fa4e12e0ceaa0c7c0da3a89e7a5d78296Andreas Gustafsson print LOUT "named-checkzone.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "named-compilezone.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "named-journalprint.exe-BNFF\n";
1ec527b71267747cc3ae4d9849aa4f6362c78ea9Brian Wellington print LOUT "named-rrchecker.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "isc-hmax-fixup.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_pkcs11 eq "yes") {
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington print LOUT "pkcs11-destroy.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "pkcs11-keygen.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "pkcs11-list.exe-BNFF\n";
7ed2d93fa4e12e0ceaa0c7c0da3a89e7a5d78296Andreas Gustafsson print LOUT "pkcs11-tokens.exe-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if ($use_python ne "no") {
14bb9cccae74676e25ae145dc14a3681cc3022b9Mark Andrews print LOUT "dnssec-checkds.py-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print LOUT "dnssec-coverage.py-BNFF\n";
01b8865b1462ba219c90cf6c00f1bf0fdf780d9bBrian Wellington print LOUT "dnssec-keymgr.py-BNFF\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
fcc3c131e03cb7e844eaecf74d4f9b7fd38c8398Andreas Gustafsson print LOUT "readme1st.txt-BTFT\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews close LOUT;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
6d3e8dffb447b9a961360f7f4fd77b0bdb81de76Andreas Gustafsson
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# Status
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
7017ede939a5d3e7f2dc113061887a9e81fe8627Brian Wellingtonif ($verbose) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews my $name;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
66921d6dd259c4486a07aba19eee2b8349698575Brian Wellington print "Configuration Status\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "\tconfig.h:\n";
b65fc651b8aaab5d0fb9b8f6ef583d699d14a113Mark Andrews foreach $name (@substdefh) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdefh{$name})) {
2728a98ee4104b2fb30f273893a7f354e20002b5Mark Andrews print qq(\t\t$name defined to "$configdefh{$name}"\n);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
be387fd057ee54ae5d84904e69587d6e29bd3950Mark Andrews printf qq(\t\t$name undefined\n);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
d72269740049af28b091ba81d68a067c88f53547Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
7dbb39a417a28f61ba13e6e066c2f9c711f61471Mark Andrews print "\tplatform.h:\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $name (@substdefp) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdefp{$name})) {
a51f77a70bba62f227fb15fe72ecf959893e3f0fMark Andrews print qq(\t\t$name defined to "$configdefp{$name}"\n);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews printf qq(\t\t$name undefined\n);
ff7f1dc0393cfc8a033be7e94aa56cd57c97d174Andreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
7dec36c225ad044a6546a4e232888f3412c030a8Brian Wellington print "\tconditions:\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $name (@substcond) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configcond{$name})) {
ff7f1dc0393cfc8a033be7e94aa56cd57c97d174Andreas Gustafsson print "\t\t$name is true\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews } else {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "\t\t$name is false\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
9b0c4bf7003db929fe00a345fc96fb97677d29e0Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "\tsubstitutions:\n";
576f85e5fdb8805307f318db79dfc0d19e390d1aAndreas Gustafsson foreach $name (@substvar) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configvar{$name})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print qq(\t\t$name -> "$configvar{$name}"\n);
576f85e5fdb8805307f318db79dfc0d19e390d1aAndreas Gustafsson }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "\tdefines:\n";
0c70ab306505d89983186e9f8bb8647de55b5d04Mark Andrews foreach $name (@substdefd) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdefd{$name})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print qq(\t\t/D "$configdefd{$name}"\n);
32e64787d9bd84a012ddac506f88fbc677b49377Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
fa5a42fbad42f4e033376d5d4624e29d018d97b7Brian Wellington print "\tincludes:\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $name (@substinc) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configinc{$name})) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print qq(\t\t/I "$configinc{$name}"\n);
523dd6a979865b8b1b8f1ecc81e5ce47a168c63fBrian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
5bb4ceb2a67fd558962f8a786c93daedc148a599Mark Andrews print "\tlibraries:\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $name (@substlib) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configlib{$name})) {
d119051ef75d5a88d28c13fb0a7c6d6757a4e9b5Brian Wellington print "\t\t$configlib{$name}\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
9b0e404e5fc71a2bd4fba8a66296477f815af7d5Brian Wellington print "\tDLLs:\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $name (@substdll) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews if (defined($configdll{$name})) {
4817a0628785835abb57d06f2f616b4a6515ac2fAndreas Gustafsson print "\t\t$configdll{$name}\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
c26c349eab7ca0499786c2091f0e407ec90eee6bAndreas Gustafsson print "\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# Setup
4817a0628785835abb57d06f2f616b4a6515ac2fAndreas Gustafssonif (($want_win32 eq "yes") || ($want_x64 eq "yes")) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews setupconfigh();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews setupplatformh();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
a2a7eaf89cd68acdb16177bb05701107ceab52b9Brian Wellington my $file;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $file (@filelist) {
148af05e15f5d7ae3b076231617369fdaf57d26dAndreas Gustafsson setupfile($file);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
d31498a54482c8d5d934875d3fdeaa621c962d6fBrian Wellington if (!$legacy_only) {
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews foreach $file (@projectlist) {
a2a7eaf89cd68acdb16177bb05701107ceab52b9Brian Wellington setupproject($file);
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews }
a2a7eaf89cd68acdb16177bb05701107ceab52b9Brian Wellington }
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
54ce9b2e29aafe1cb5f898a0983fb66e450e9559Brian Wellington makeversion();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews makesrcid();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
7357590beef5f671cfdd4ec4304e5210adfb0d8aBrian Wellington makeinstallfile();
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews print "Configured.\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews} else {
8dd5237a27e2e824d18f835dc711573aeb23a173Mark Andrews print "add win32 or x64 to commit configuration to build files\n";
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews}
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
3b5102fc018a29e52befde5991844843c7b70786Michael Sawyerexit 0;
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# Notes: Unix configure.in options
3b5102fc018a29e52befde5991844843c7b70786Michael Sawyer# --enable-developer partially supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-newstats (9.9/9.9sub only)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-native-pkcs11 supported
f7e900edbc368275aa7cec7ebec0986e45aeadd7Mark Andrews# --enable-openssl-version-check included without a way to disable it
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-openssl-hash supported
ec772e873bd7f24418049b5b1b5d7c44ff781356Brian Wellington# --enable-threads included without a way to disable it
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-backtrace backtrace included without a way to disable it
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-symtable incompatible with DLLs (or libtool)
abfbf760f3bc2a6744b0249a31ca5153234b49e8Brian Wellington# --enable-ipv6 included without a way to disable it
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-atomic supported (renamed to intrinsic)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-isc-spnego supported (part of GSSAPI)
75768d5fa2c6c5c441b849ca4efa649a7c2a9e88Bob Halley# --enable-fixed-rrset supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-querytrace supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --disable-rpz-nsip supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --disable-rpz-nsdname supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-filter-aaaa supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-full-report supported by verbose
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-dnstap not supported (requires libfstrm support on WIN32)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-seccomp not supported (Linux specific)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --enable-afl not supported (not yet considered on WIN32)
fa280ff02ad0c29616a0c3a22ef02cbb3f6db7efDavid Lawrence# --with-python supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-openssl supported
22dbaf9ad8065127fd93eff0f239fd9c548d18b6Andreas Gustafsson# --with-pkcs11 supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-ecdsa supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-gost supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-aes supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-cc-alg supported
184867e88b5a30bbc29f17edbc7b50a6c8a944e7David Lawrence# --with-geoip supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-gssapi supported with MIT (K)erberos (f)or (W)indows
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-libxml2 supported
fa280ff02ad0c29616a0c3a22ef02cbb3f6db7efDavid Lawrence# --with-libjson not supported on WIN32 (package not available on WIN32)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-zlib supported
046a9aca49bdc25bd57d75fd0dd34c021722f095Mark Andrews# --with-purify not supported (package available on WIN32 but for free?)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-gperftools-profiler not supported (package not available on WIN32)
f4e4111795ceb13066d09c38723afacb04e33ad4Mark Andrews# --with-libtool not supported on WIN32 (never)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-locktype not supported on WIN32 (not yet available on WIN32)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-readline supported
253ab81bf2760d3d7f68512b43710afc02d788daMark Andrews# --with-protobuf-c not supported (no reason to until libfstrm is ready)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-libfrtrm not supported (not yet available on WIN32)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-docbook-xsl not supported (?)
be171be1799e0ba8cdd35d4f67b772ff086d0d81Andreas Gustafsson# --with-idn[lib] supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-[lib]iconv supported (part of IDN)
a110543bb4d2e53caa40f83c2b45786a1efe63efAndreas Gustafsson# --with-atf not supported on WIN32 (package not available on WIN32)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-tuning supported
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# --with-dlopen included without a way to disable it
ef9f9001fca9445ef315b1e76a66fc84fef6fdc6Andreas Gustafsson# --with-dlz-* ?
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews#
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# Notes: MSVC versions
ee303f481dfefcd4e4994f8b8b17f2de32aa4d69Brian Wellington# MSVC 14.0 _MSC_VER == 1900 (VS 2015)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# MSVC 12.0 _MSC_VER == 1800 (VS 2013)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# MSVC 11.0 _MSC_VER == 1700 (VS 2012)
86b8c485762daa54a96d033110f6f41ea96e5213David Lawrence# MSVC 10.0 _MSC_VER == 1600 (VS 2010)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# MSVC 9.0 _MSC_VER == 1500 (VS 2008)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# MSVC 8.0 _MSC_VER == 1400 (VS 2005)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# MSVC 7.1 _MSC_VER == 1310 (VS .NET 2003)
125a916d1a0c01f139ced5736145703df28d07cfDavid Lawrence# MSVC 7.0 _MSC_VER == 1300 (VS .NET (2002))
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# MSVC 6.0 _MSC_VER == 1200 (VS 6.0 (1998))
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews# MSVC 5.0 _MSC_VER == 1100 (VS 97)
b39bfc630dc222fb73c21a00bcba47c4f9e38f20Mark Andrews