Configure revision 50cdb3af698a411f473ffab1883fa43df39ddd9d
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# Copyright (C) 2013-2016 Internet Systems Consortium, Inc. ("ISC")
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater# This Source Code Form is subject to the terms of the Mozilla Public
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# License, v. 2.0. If a copy of the MPL was not distributed with this
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file, You can obtain one at http://mozilla.org/MPL/2.0/.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This script builds nmake and visual studio build files
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinrequire 5.000;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# files to configure
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrewsmy $platformfile = "..\\lib\\isc\\win32\\include\\isc\\platform.h";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy $confshfile = "..\\bin\\tests\\system\\conf.sh";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\keyfromlabel.dsp",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\dnssec\\win32\\keyfromlabel.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\python\\isc\\tests\\policy_test.py",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tools\\win32\\ischmacfixup.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\atomic\\win32\\t_atomic.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\atomic\\win32\\t_atomic.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\master\\win32\\t_master.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\hashes\\win32\\t_hashes.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\resolver\\win32\\t_resolver.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\resolver\\win32\\t_resolver.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.mak",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\tasks\\win32\\t_tasks.dsp",
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater "..\\bin\\tests\\tasks\\win32\\t_tasks.mak",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\feature-test.dsp",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce "..\\bin\\tests\\system\\win32\\feature-test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.dsp",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.mak",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tests\\win32\\backtrace_test.mak",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmy @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkconf.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checktool.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\check\\win32\\checkzone.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\confgentool.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dig\\win32\\nslookup.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dnssectool.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\dsfromkey.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\importkey.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\keyfromlabel.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\keygen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\revoke.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\settime.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\signzone.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\dnssec\\win32\\verify.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\nsupdate\\win32\\nsupdate.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11destroy.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11keygen.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11list.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\pkcs11\\win32\\pk11tokens.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\rndc\\win32\\rndcutil.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\arpaname.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\genrandom.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\ischmacfixup.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\journalprint.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\nsec3hash.vcxproj.filters",
f7b2875691497b292eacb60609be23a813d14e63Automatic Updater "..\\bin\\tools\\win32\\rrchecker.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tools\\win32\\rrchecker.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\atomic\\win32\\t_atomic.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\db\\win32\\t_db.vcxproj.filters",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tests\\dst\\win32\\t_dst.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\master\\win32\\t_master.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\master\\win32\\t_master.vcxproj.filters",
c92c50783e4e93699f2a42643b8f200b9b719c87Automatic Updater "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\mem\\win32\\t_mem.vcxproj.filters",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\hashes\\win32\\t_hashes.vcxproj.filters",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.vcxproj",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews "..\\bin\\tests\\names\\win32\\t_names.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\rbt\\win32\\t_rbt.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\resolver\\win32\\t_resolver.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\sockaddr\\win32\\t_sockaddr.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\bigkey.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\bigkey.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\feature-test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\feature-test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\gencheck.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\gencheck.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keycreate.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keycreate.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keydelete.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\keydelete.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\lwtest.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\lwtest.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\system\\win32\\pipequeries.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\tasks\\win32\\t_tasks.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\timers\\win32\\t_timers.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\backtrace_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\backtrace_test.vcxproj.filters",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater "..\\bin\\tests\\win32\\inter_test.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\makejournal.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\inter_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\rwlock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\shutdown_test.vcxproj.filters",
a1b05dea35aa30b152a47115e18bbe679d3fcf19Mark Andrews "..\\bin\\tests\\win32\\sock_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\task_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\tests\\win32\\timer_test.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\bin\\win32\\BINDInstall\\BINDInstall.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\bind9\\win32\\libbind9.vcxproj.filters",
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews "..\\lib\\isccc\\win32\\libisccc.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\isccfg\\win32\\libisccfg.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\lwres\\win32\\liblwres.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\resolve.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\async.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\update.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\request.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\samples\\win32\\nsprobe.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\tests\\win32\\libtests.vcxproj.filters",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "..\\lib\\win32\\bindevt\\bindevt.vcxproj.filters",
7717ec7a6a898cdd3c35cbfba66010b7304ffd9bAutomatic Updatermy @allcond = (@substcond, "NOTYET", "NOLONGER");
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# general arguments
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updatermy @optionlist = ("help", "verbose", "legacy", "win32", "x64", "clean");
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updatermy @usage = ("Usage: perl Configure help\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews"'Configure' configures BIND9 build files.\n\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" legacy (options) process only files for legacy build\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" win32 (command) configure for Win32 platform\n",
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater" x64 (command) configure for x64 platform\n",
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater" clean (command) clean up generated files\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" <none> (command) print a summary of the configuration\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-intrinsics enable instrinsic/atomic functions [default=yes]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-native-pkcs11 use native PKCS#11 for all crypto [default=no]\n",
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews" enable-openssl-hash use OpenSSL for hash functions [default=yes]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-isc-spnego use SPNEGO from lib/dns [default=yes]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-filter-aaaa enable filtering of AAAA records [default=no]\n",
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews" enable-fixed-rrset enable fixed rrset ordering [default=no]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-developer enable developer build settings [default=no]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" enable-querytrace enable very verbose query trace [default=no]\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" enable-rpz-nsip enable rpz-nsip rules [default=yes]\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" enable-rpz-nsdname enable rpz-nsdname rules [default=yes]\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-extra-tests build with extra test suite\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-system-tests build with system test suite\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-samples build with sample programs\n",
1238b38c9f0ab563b762dc0fd00ac6c34c2b7295Automatic Updater" with-openssl[=PATH] build with OpenSSL yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-pkcs11[=PATH] build with PKCS#11 support yes|no|provider-path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-gost[=ENC] crypto GOST yes|no|raw|ans1\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-cc-alg choose the algorithm for cookies aes|sha1|sha256\n",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater" with-gssapi[=PATH] build with MIT KfW GSSAPI yes|no|path\n",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater" with-libxml2[=PATH] build with libxml2 library yes|no|path\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-geoip[=PATH] build with GeoIP support yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-python[=COMMAND] specify python interpreter python|command\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-readline[=PATH] build with readline library support yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-idn[=PATH] build with IDN kit support yes|no|path\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-iconv[=PATH] path of the iconv DLL [default=same than idn]\n",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein" with-zlib[=PATH] build with zlib library yes|no|path\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-vcredist[=PATH] visual C++ redistributable package yes|path\n",
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews" with-tuning=OPTION tune for plaform size (large|default)\n",
58d9e9169e7ab4355a0b0bfc13bc616bc5247dfeAutomatic Updater" with-cross-compile 32 / 64 bit build / host plaforms\n");
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# Parse arguments
f77c5a1336bc11ae235f1b91f1b7cbae1137c3e8Automatic Updatermy $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\";
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater# no arguments -> usage
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater# parse arguments
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# legacy default to win32
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updaterif ($legacy_only && ($want_x64 ne "yes")) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# configure the platform
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updaterif (($want_win32 eq "yes") && ($want_x64 eq "yes")) {
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater die "can't ask for both Win32 and x64 platforms\n";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"BUILD_MACHINE"} = "/machine:X86";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "__asm { rep nop }";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configvar{"BUILD_MACHINE"} = "/machine:X64";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater $configdefp{"ISC_PLATFORM_BUSYWAITNOP"} = "_mm_pause()";
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# Standard configure variable
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater# get the version information
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater if ($name eq 'PRODUCT' || $name eq 'DESCRIPTION') {
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$Versions{'MAJORVER'}.$Versions{'MINORVER'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$version.$Versions{'PATCHVER'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$version$Versions{'RELEASETYPE'}$Versions{'RELEASEVER'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater $version = "$version$Versions{'EXTENSIONS'}";
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater# append seen args to CONFIGARGS define
23967fcd6e214ac5194222a6b7f41fe869db4f9cAutomatic Updater # escape backslashes, spaces and double quotes
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrewssub myenable {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($key =~ /^intrinsics$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^native-pkcs11$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^openssl-hash$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^isc-spnego$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^filter-aaaa$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^fixed-rrset$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^developer$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^querytrace$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^rpz-nsip$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^rpz-nsdname$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# enable-developer expansion now
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # no atf on WIN32
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # TODO: dlz filesystem
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($key =~ /^tests$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^extra-tests$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater } elsif ($key =~ /^system-tests$/i) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if ($val =~ /^yes$/i) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce } elsif ($key =~ /^samples$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^openssl$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^pkcs11$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^no$/i) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce } elsif ($key =~ /^ecdsa$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^gost$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^aes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^cc-alg$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^gssapi$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^libxml2$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^geoip$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^readline$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^idn$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^iconv$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $unknown_value = "without-iconv doesn't make sense)";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $iconv_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^zlib$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_zlib = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $zlib_path = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^python$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_python = "no";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $use_python = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $python_command = $val;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^vcredist$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^no$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $want_unknown = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $unknown_value = "without-vcredist (vcredist is required)";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($val !~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $vcredist_path = $val;
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews } elsif ($key =~ /^cross-compile$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^yes$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $cross_compile = "yes";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } elsif ($key =~ /^tuning$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if ($val =~ /^large$/i) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $tuning = "large";
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;
last;
my $openssl_new = 0;
$openssl_new = 1;
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;
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;
@Lines = <F>;
close F;
close F;
# setup platform.h with %configdefp
my $line;
my @Lines;
@Lines = <F>;
close F;
close F;
# setup conf.sh with %configtest and %configvar
my $line;
my @Lines;
my $val;
@Lines = <F>;
close F;
if (defined($configvar{$1})) {
$val = kw($configvar{$1});
die "unknown control $& in $confshfile.win32\n";
# setup isc-config.sh with %configvar accepting undefined
my $def = $configdefd{$1};
if (defined($configinc{$1})) {
if (defined($configlib{$1})) {
$val = kw($configlib{$1});
close F;
my $line;
my @Linesin;
my @Linesout;
my $projectname = $_[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})) {
$val = kw($configdefd{$1});
if (defined($configdll{$1})) {
$val = kw($configdll{$1});
# make versions.h
my $versionfile = "versions.h";
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
if ($Versions{'PATCHVER'} ne "") {
if ($verbose) {
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;
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
my $name;
my $name;
my $file;
# Notes: Unix configure.in options