Configure revision 9f5443280fcfd625a06f63a1b457ed2335840278
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco# Copyright (C) 2013-2016 Internet Systems Consortium, Inc. ("ISC")
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Permission to use, copy, modify, and/or distribute this software for any
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# purpose with or without fee is hereby granted, provided that the above
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# copyright notice and this permission notice appear in all copies.
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray# PERFORMANCE OF THIS SOFTWARE.
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# This script builds nmake and visual studio build files
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayrequire 5.000;
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# files to configure
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Braymy $platformfile = "..\\lib\\isc\\win32\\include\\isc\\platform.h";
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Koscomy @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\resolver\\win32\\t_resolver.dsp",
5e6c91d7e77062129cd0b6ac8aaa546dff216419Lubos Kosco "..\\bin\\tests\\resolver\\win32\\t_resolver.mak",
5e6c91d7e77062129cd0b6ac8aaa546dff216419Lubos Kosco "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.dsp",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.mak",
8f8c3f4555e5aa3160f03f2e9c55ddbd3381357bLubos Koscomy @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray "..\\bin\\check\\win32\\checkconf.vcxproj.filters",
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco "..\\bin\\check\\win32\\checktool.vcxproj.filters",
d70dc22c6dce3f498251b0873638d1fea0e644a3Lubos Kosco "..\\bin\\check\\win32\\checkzone.vcxproj.filters",
d70dc22c6dce3f498251b0873638d1fea0e644a3Lubos Kosco "..\\bin\\confgen\\win32\\confgentool.vcxproj.filters",
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj.filters",
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj.filters",
e87f836e908f8279021f79c8f7bcef98e99d126eLubos Kosco "..\\bin\\dig\\win32\\nslookup.vcxproj.filters",
e87f836e908f8279021f79c8f7bcef98e99d126eLubos Kosco "..\\bin\\dnssec\\win32\\dnssectool.vcxproj.filters",
e87f836e908f8279021f79c8f7bcef98e99d126eLubos Kosco "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj.filters",
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Kosco "..\\bin\\dnssec\\win32\\importkey.vcxproj.filters",
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj.filters",
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray "..\\bin\\dnssec\\win32\\keygen.vcxproj.filters",
ba2e31d47682cf0d28fe7a33f5c0d226a21aee17Lubos Kosco "..\\bin\\dnssec\\win32\\revoke.vcxproj.filters",
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Kosco "..\\bin\\dnssec\\win32\\settime.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\dnssec\\win32\\signzone.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\dnssec\\win32\\verify.vcxproj.filters",
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj.filters",
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\pkcs11\\win32\\pk11list.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj.filters",
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco "..\\bin\\rndc\\win32\\rndcutil.vcxproj.filters",
2b024356b830395446c55f50f9f724a63612e578Lubos Kosco "..\\bin\\tools\\win32\\arpaname.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tools\\win32\\genrandom.vcxproj.filters",
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray "..\\bin\\tools\\win32\\ischmacfixup.vcxproj.filters",
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye "..\\bin\\tools\\win32\\journalprint.vcxproj.filters",
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray "..\\bin\\tools\\win32\\nsec3hash.vcxproj.filters",
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco "..\\bin\\tools\\win32\\rrchecker.vcxproj.filters",
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj",
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\db\\win32\\t_db.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\master\\win32\\t_master.vcxproj",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\master\\win32\\t_master.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\bin\\tests\\names\\win32\\t_names.vcxproj.filters",
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj.filters",
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj",
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj.filters",
4e854c69a0484765dcd27b0e837898c8b6969beaTrond Norbye "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj",
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj.filters",
8f8c3f4555e5aa3160f03f2e9c55ddbd3381357bLubos Kosco "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj.filters",
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj",
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Kosco "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj.filters",
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Kosco "..\\bin\\tests\\win32\\backtrace_test.vcxproj",
3a5046f0538ba9fb3a9429199544a9f4b93d9a4dLubos Kosco "..\\bin\\tests\\win32\\backtrace_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\lib\\bind9\\win32\\libbind9.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\lib\\isccc\\win32\\libisccc.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\lib\\isccfg\\win32\\libisccfg.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\lib\\lwres\\win32\\liblwres.vcxproj.filters",
cd348e325366620fe047edcc849e3c9424828599Peter Bray "..\\lib\\samples\\win32\\resolve.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\lib\\samples\\win32\\async.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\lib\\samples\\win32\\update.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\lib\\samples\\win32\\request.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray "..\\lib\\samples\\win32\\nsprobe.vcxproj.filters",
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye "..\\lib\\tests\\win32\\libtests.vcxproj.filters",
d0767114e1a949e4a42358f5aeaa08590b87cd80Trond Norbye "..\\lib\\win32\\bindevt\\bindevt.vcxproj.filters",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# general arguments
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Braymy @optionlist = ("help", "verbose", "legacy", "win32", "x64", "clean");
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" legacy (options) process only files for legacy build\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" win32 (command) configure for Win32 platform\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" <none> (command) print a summary of the configuration\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-intrinsics enable instrinsic/atomic functions [default=yes]\n",
cd348e325366620fe047edcc849e3c9424828599Peter Bray" enable-native-pkcs11 use native PKCS#11 for all crypto [default=no]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-openssl-hash use OpenSSL for hash functions [default=yes]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-isc-spnego use SPNEGO from lib/dns [default=yes]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-filter-aaaa enable filtering of AAAA records [default=no]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-fixed-rrset enable fixed rrset ordering [default=no]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-developer enable developer build settings [default=no]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-querytrace enable very verbose query trace [default=no]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-rpz-nsip enable rpz-nsip rules [default=yes]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" enable-rpz-nsdname enable rpz-nsdname rules [default=yes]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-extra-tests build with extra test suite\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-openssl[=PATH] build with OpenSSL yes|no|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-pkcs11[=PATH] build with PKCS#11 support yes|no|provider-path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-cc-alg choose the algorithm for cookies aes|sha1|sha256\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-gssapi[=PATH] build with MIT KfW GSSAPI yes|no|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-libxml2[=PATH] build with libxml2 library yes|no|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-geoip[=PATH] build with GeoIP support yes|no|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-python[=COMMAND] specify python interpreter python|command\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-readline[=PATH] build with readline library support yes|no|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-idn[=PATH] build with IDN kit support yes|no|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-iconv[=PATH] path of the iconv DLL [default=same than idn]\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-zlib[=PATH] build with zlib library yes|no|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-vcredist[=PATH] visual C++ redistributable package yes|path\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-tuning=OPTION tune for plaform size (large|default)\n",
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray" with-cross-compile 32 / 64 bit build / host plaforms\n");
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Parse arguments
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Braymy $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\";
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco# no arguments -> usage
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos Kosco# parse arguments
8f8c3f4555e5aa3160f03f2e9c55ddbd3381357bLubos Kosco# legacy default to win32
cd348e325366620fe047edcc849e3c9424828599Peter Bray# configure the platform
cd348e325366620fe047edcc849e3c9424828599Peter Brayif (($want_win32 eq "yes") && ($want_x64 eq "yes")) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray die "can't ask for both Win32 and x64 platforms\n";
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Kosco $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "__asm { rep nop }";
cd348e325366620fe047edcc849e3c9424828599Peter Bray $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "_mm_pause()";
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray# get the version information
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray if ($name eq 'PRODUCT' || $name eq 'DESCRIPTION') {
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray $version = "$version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# append seen args to CONFIGARGS define
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Koscosub myenable {
cd348e325366620fe047edcc849e3c9424828599Peter Bray if ($key =~ /^intrinsics$/i) {
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Kosco if ($val =~ /^no$/i) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray } elsif ($key =~ /^native-pkcs11$/i) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray if ($val =~ /^yes$/i) {
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray } elsif ($key =~ /^openssl-hash$/i) {
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray if ($val =~ /^yes$/i) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray } elsif ($val =~ /^no$/i) {
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco } elsif ($key =~ /^isc-spnego$/i) {
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco if ($val =~ /^no$/i) {
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco } elsif ($key =~ /^filter-aaaa$/i) {
477c09a2656e6a2c1075425ad81e61d594164fa9Lubos Kosco if ($val =~ /^yes$/i) {
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Kosco } elsif ($key =~ /^fixed-rrset$/i) {
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray if ($val =~ /^yes$/i) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray } elsif ($key =~ /^developer$/i) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray if ($val =~ /^yes$/i) {
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray } elsif ($key =~ /^querytrace$/i) {
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray if ($val =~ /^yes$/i) {
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray } elsif ($key =~ /^rpz-nsip$/i) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray if ($val =~ /^no$/i) {
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray } elsif ($key =~ /^rpz-nsdname$/i) {
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray if ($val =~ /^no$/i) {
cd348e325366620fe047edcc849e3c9424828599Peter Bray# enable-developer expansion now
cd348e325366620fe047edcc849e3c9424828599Peter Bray # no atf on WIN32
cd348e325366620fe047edcc849e3c9424828599Peter Bray # TODO: dlz filesystem
my $key = $_[0];
my $val = $_[1];
if ($key =~ /^tests$/i) {
if ($val =~ /^yes$/i) {
} elsif ($key =~ /^extra-tests$/i) {
if ($val =~ /^yes$/i) {
} elsif ($key =~ /^samples$/i) {
if ($val =~ /^yes$/i) {
} elsif ($key =~ /^openssl$/i) {
if ($val =~ /^no$/i) {
} elsif ($val !~ /^yes$/i) {
} elsif ($key =~ /^pkcs11$/i) {
if ($val =~ /^yes$/i) {
} elsif ($val !~ /^no$/i) {
$pkcs11_path = $val;
$pkcs11_path =~ s/\.dll$//i;
} elsif ($key =~ /^ecdsa$/i) {
if ($val =~ /^no$/i) {
} elsif ($val =~ /^yes$/i) {
} elsif ($key =~ /^gost$/i) {
if ($val =~ /^no$/i) {
} elsif ($val =~ /^yes$/i) {
} elsif ($key =~ /^aes$/i) {
if ($val =~ /^no$/i) {
} elsif ($val =~ /^yes$/i) {
} elsif ($key =~ /^cc-alg$/i) {
} elsif ($key =~ /^gssapi$/i) {
if ($val !~ /^no$/i) {
if ($val !~ /^yes$/i) {
$gssapi_path = $val;
} elsif ($key =~ /^libxml2$/i) {
if ($val =~ /^no$/i) {
} elsif ($val !~ /^yes$/i) {
} elsif ($key =~ /^geoip$/i) {
if ($val !~ /^no$/i) {
if ($val !~ /^yes$/i) {
$geoip_path = $val;
} elsif ($key =~ /^readline$/i) {
if ($val !~ /^no$/i) {
if ($val !~ /^yes$/i) {
} elsif ($key =~ /^idn$/i) {
if ($val !~ /^no$/i) {
if ($val !~ /^yes$/i) {
} elsif ($key =~ /^iconv$/i) {
if ($val =~ /^no$/i) {
if ($verbose) {
if ($verbose) {
my $rfile;
if (-f $vp) {
if ($verbose) {
my $msc_ver = 0;
#include <windows.h>
#include <stdio.h>
print STDERR "only the legacy (cf legacy\\win32-build.txt) will work\n";
open F, ">cross.c" || die $!;
#include <windows.h>
#include <stdio.h>
my $compret = `cl /nologo /MD cross.c`;
if (grep { -f and -x } ".\\cross.exe") {
my $cross = `.\\cross.exe`;
#include <windows.h>
#include <stdio.h>
if ($cross) {
print STDERR $cross;
my $file;
last;
close F;
#include <stdio.h>
#include <openssl/opensslv.h>
OPENSSL_VERSION_NUMBER >= 0x0090804fL)
close F;
close F;
close F;
close F;
close F;
ENGINE *e;
close F;
EVP_CIPHER *aes128, *aes192, *aes256;
close F;
AES_KEY k;
const unsigned char bufin[16];
unsigned char bufout[16];
close F;
close F;
my $gssapi_lib;
my $krb5_lib;
return GeoIP_open != 0;
close F;
#include <GeoIP.h>
int flag = 1;
close F;
#include <GeoIP.h>
#include <GeoIPCity.h>
int i = GEOIP_CITY_EDITION_REV0_V6;
int flag = 1;
close F;
my $file;
last;
print STDERR
print STDERR
# setup config.h with %configdefh
my $line;
my @Lines;
open F, $configfilein || die $!;
@Lines = <F>;
close F;
open F, $configfileout || die $!;
close F;
# setup platform.h with %configdefp
my $line;
my @Lines;
@Lines = <F>;
close F;
close F;
my $line;
my @Linesin;
my @Linesout;
my $filename = $_[0];
my $cond;
my @conds;
my $pass = 1;
my @passes;
my $val;
@Linesin = <F>;
close F;
$cond = $1;
$pass = 0;
$pass = 0;
$pass = 1;
$pass = 1;
if (defined($configdefd{$1})) {
my $def = $configdefd{$1};
push @Linesout, $line;
if ($verbose) {
foreach $line (@Linesout) {
my $line;
my $projectname = $_[0];
my $cond;
my $pass = 1;
my $val;
foreach $line (@Linesin) {
chomp $line;
if ($line =~ /^\@IF (.*)$/) {
if (defined($cond)) {
unshift(@conds, $cond);
unshift(@passes, $pass);
$cond = $1;
if (defined($configcond{$cond})) {
$pass = 0;
} elsif ($line =~ /^\@ELSE (.*)$/) {
if ($cond ne $1) {
if (defined($configcond{$cond})) {
$pass = 0;
$pass = 1;
} elsif ($line =~ /^\@END (.*)$/) {
if ($cond ne $1) {
$cond = shift(@conds);
$pass = shift(@passes);
$pass = 1;
if ($pass == 0) {
while ($line =~ /@([^@ ]*)@/) {
if (defined($configvar{$1})) {
$val = kw($configvar{$1});
if (defined($configlib{$1})) {
$val = kw($configlib{$1});
close F;
# make versions.h
my $Version;
my %ApiVersions;
my $Mapapi;
my $data;
my $name;
my $value;
close M;
my $dir;
my $apifile;
$name =~ s/\s+//;
$value =~ s/\s+//;
$ApiVersions{$name} = $value;
close A;
close O;
# make srcid.h
my $data;
my $name;
my $value;
my $name;
my $file;
# Notes: Unix configure.in options