Commit graph

39 commits

Author SHA1 Message Date
Ondřej Surý
7fc62f829d Add libssl libraries to Windows build
This commit extends the perl Configure script to also check for libssl
in addition to libcrypto and change the vcxproj source files to link
with both libcrypto and libssl.
2020-12-09 10:46:16 +01:00
Ondřej Surý
8b84fb4f42 Disable MSB8028 warning
All our MSVS Project files share the same intermediate directory.  We
know that this doesn't cause any problems, so we can just disable the
detection in the project files.

Example of the warning:

  warning MSB8028: The intermediate directory (.\Release\) contains files shared from another project (dnssectool.vcxproj).  This can lead to incorrect clean and rebuild behavior.

(cherry picked from commit b6c2012d93)
2020-04-16 07:56:38 +02:00
Ondřej Surý
820b9ba38a Set WarningLevel to Level1 for Release, treat warnings as errors
Our vcxproj files set the WarningLevel to Level3, which is too verbose
for a code that needs to be portable.  That basically leads to ignoring
all the errors that MSVC produces.  This commits downgrades the
WarningLevel to Level1 and enables treating warnings as errors for
Release builds.  For the Debug builds the WarningLevel got upgraded to
Level4, and treating warnings as errors is explicitly disabled.

We should eventually make the code clean of all MSVC warnings, but it's
a long way to go for Level4, so it's more reasonable to start at Level1.

For reference[1], these are the warning levels as described by MSVC
documentation:

  * /W0 suppresses all warnings. It's equivalent to /w.
  * /W1 displays level 1 (severe) warnings. /W1 is the default setting
    in the command-line compiler.
  * /W2 displays level 1 and level 2 (significant) warnings.
  * /W3 displays level 1, level 2, and level 3 (production quality)
    warnings. /W3 is the default setting in the IDE.
  * /W4 displays level 1, level 2, and level 3 warnings, and all level 4
    (informational) warnings that aren't off by default. We recommend
    that you use this option to provide lint-like warnings. For a new
    project, it may be best to use /W4 in all compilations. This option
    helps ensure the fewest possible hard-to-find code defects.
  * /Wall displays all warnings displayed by /W4 and all other warnings
    that /W4 doesn't include — for example, warnings that are off by
    default.
  * /WX treats all compiler warnings as errors. For a new project, it
    may be best to use /WX in all compilations; resolving all warnings
    ensures the fewest possible hard-to-find code defects.

1. https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level?view=vs-2019

(cherry picked from commit 789d253e3d)
2020-04-16 07:55:40 +02:00
Michał Kępień
0476e8f1ac Make VS solution upgrading unnecessary
Until now, the build process for BIND on Windows involved upgrading the
solution file to the version of Visual Studio used on the build host.
Unfortunately, the executable used for that (devenv.exe) is not part of
Visual Studio Build Tools and thus there is no clean way to make that
executable part of a Windows Server container.

Luckily, the solution upgrade process boils down to just adding XML tags
to Visual Studio project files and modifying certain XML attributes - in
files which we pregenerate anyway using win32utils/Configure.  Thus,
extend win32utils/Configure with three new command line parameters that
enable it to mimic what "devenv.exe bind9.sln /upgrade" does.  This
makes the devenv.exe build step redundant and thus facilitates building
BIND in Windows Server containers.
2019-09-26 15:11:15 +02:00
Ondřej Surý
a04a390195 Convert *.vcxproj.user to CRLF line endings 2019-03-08 18:01:48 +01:00
Ondřej Surý
c2637c8429 Use ForcedIncludeFiles directive to include config.h everywhere automatically 2019-03-08 17:14:38 +01:00
Ondřej Surý
c5040e5c9e Add @OPENSSL_LIB@ to Windows project files as needed 2018-08-10 16:45:00 +02:00
Ondřej Surý
83cde08522 Introduce USE_OPENSSL define to Windows build, remove CRYPTO and AES conditions. 2018-07-19 16:54:53 -04:00
Evan Hunt
8eb88aafee [master] add libns and remove liblwres
4708.   [cleanup]       Legacy Windows builds (i.e. for XP and earlier)
                        are no longer supported. [RT #45186]

4707.	[func]		The lightweight resolver daemon and library (lwresd
			and liblwres) have been removed. [RT #45186]

4706.	[func]		Code implementing name server query processing has
			been moved from bin/named to a new library "libns".
			Functions remaining in bin/named are now prefixed
			with "named_" rather than "ns_".  This will make it
			easier to write unit tests for name server code, or
			link name server functionality into new tools.
			[RT #45186]
2017-09-08 13:47:34 -07:00
Mark Andrews
3742338a7b 4585. [port] win32: Set CompileAS value. [RT #42474] 2017-04-20 12:41:40 +10:00
Witold Krecicki
358dfaee18 4487. [test] Make system tests work on Windows. [RT #42931] 2016-10-19 17:18:42 +02:00
Evan Hunt
30370d905e [master] removed /Gy- from VS project files
4302.	[port]		win32: fixed a build error in VS 2015. [RT #41426]
2016-01-27 15:27:57 -08:00
Mark Andrews
7867d18ce0 Introduce end-of-line normalization 2015-09-29 08:25:35 +10:00
Mark Andrews
3b83676e07 *.vcxproj.in should use CRLF as EOL 2015-08-27 21:57:18 +00:00
Mark Andrews
2729aea3c1 3738. [bug] --enable-openssl-hash failed to build. [RT #35343] 2014-02-13 15:09:08 +11:00
Mark Andrews
c3c8823fed 3681. [port] Update the Windows build system to support feature
selection and WIN64 builds.  This is a work in
                        progress. [RT #34160]
2013-12-04 12:47:23 +11:00
Francis Dupont
c59a7b0629 missing updates in recent changes 2009-09-24 14:39:17 +00:00
Evan Hunt
aeff7de836 2634. [port] win32: Add support for libxml2, enable
statschannel. [RT #19773]
2009-07-17 06:25:45 +00:00
Mark Andrews
5bbaa0bf5b win32 2006-10-04 03:50:47 +00:00
Mark Andrews
df13009162 win32 2006-10-04 03:27:03 +00:00
Mark Andrews
65d86196e5 win32 2006-10-04 03:10:00 +00:00
Mark Andrews
9f53887aef win32 2006-10-04 03:04:29 +00:00
Mark Andrews
543d70c9df win32 2006-10-04 02:51:48 +00:00
Mark Andrews
3dfec9a8f2 win32 2006-10-04 02:44:37 +00:00
Mark Andrews
255e9bff6b win32 2006-10-04 02:08:33 +00:00
Mark Andrews
bc8711b148 win32 2006-10-02 07:03:05 +00:00
Mark Andrews
5cf0c55948 2090. [port] win32: Visual C++ 2005 command line manifest support.
[RT #16417]
2006-10-02 02:27:41 +00:00
Mark Andrews
74f261bd2b 1920. [bug] Update windows socket code. [RT #14965] 2005-09-01 02:25:06 +00:00
Mark Andrews
494576ce20 1790. [cleanup] Move lib/dns/sec/dst up into lib/dns. This should
allow parallel make to succeed.
2004-12-09 01:41:25 +00:00
Mark Andrews
3d75a3aef3 1769. [port] win32: change compiler flags /MTd ==> /MDd,
/MT ==> /MD.
2004-11-18 00:30:31 +00:00
Mark Andrews
741a75f81b reviewed: marka
developer: mayer
relative paths
build against openssl 0.9.6g
2002-08-17 01:34:09 +00:00
Mark Andrews
306de01400 Re-order include directories. 2002-08-13 21:51:12 +00:00
Danny Mayer
baeb459981 Updated dependencies to include lwres 2002-08-12 18:22:55 +00:00
Danny Mayer
03845b2911 Add the liblwres to the list of paths and lib 2002-08-12 01:31:48 +00:00
Danny Mayer
f7a51394db Add the liblwres to the list of paths and lib 2002-08-11 03:36:24 +00:00
Danny Mayer
33b8775d3a Updated to support tree organization changes and to support the lib/bind9 library code 2001-11-18 03:11:06 +00:00
Danny Mayer
a59a1d313a Updated .mak files to remove dependancies 2001-08-02 07:05:43 +00:00
Danny Mayer
1fac3f0e70 Build Script modifications 2001-07-22 06:01:52 +00:00
Danny Mayer
9dec38d1ee Added support for win32 2001-07-19 06:22:52 +00:00