summaryrefslogtreecommitdiff
path: root/GNUmakefile
diff options
context:
space:
mode:
authorMarcel Raad <MarcelRaad@users.noreply.github.com>2017-11-07 02:49:16 +0100
committerJeffrey Walton <noloader@gmail.com>2017-11-06 20:49:16 -0500
commit404316420529b7e0c96e9b0047004d2332e1330e (patch)
tree1487fad352e9071c4234f62525c10dc5c24e34bc /GNUmakefile
parent379e97cc1c0ac8539722a60a74986051de370f50 (diff)
downloadcryptopp-git-404316420529b7e0c96e9b0047004d2332e1330e.tar.gz
RFC: workarounds for original MinGW (#531)
* Set default target Windows version for MinGW to XP The original MinGW from mingw.org targets Windows 2000 by default, but lacks the <wspiapi.h> include needed for Windows 2000 support. * Disable CRYPTOPP_CXX11_SYNCHRONIZATION for original MinGW std::mutex is only available in libstdc++ if _GLIBCXX_HAS_GTHREADS is defined, which is not the case for original MinGW. Make the existing fix for AIX more general to fix this. Unfortunately, any C++ header has to be included to detect the standard library and the otherwise empty <ciso646> is going to be removed from C++20, so use <cstddef> instead.
Diffstat (limited to 'GNUmakefile')
-rwxr-xr-xGNUmakefile15
1 files changed, 15 insertions, 0 deletions
diff --git a/GNUmakefile b/GNUmakefile
index 8a2a0ed6..4e89f23a 100755
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -46,6 +46,7 @@ IS_SUN := $(shell uname -s | $(GREP) -i -c "SunOS")
IS_LINUX := $(shell $(CXX) -dumpmachine 2>/dev/null | $(GREP) -i -c "Linux")
IS_MINGW := $(shell $(CXX) -dumpmachine 2>/dev/null | $(GREP) -i -c "MinGW")
+IS_MINGW32 := $(shell $(CXX) -dumpmachine 2>/dev/null | $(GREP) -x -c "mingw32")
IS_CYGWIN := $(shell $(CXX) -dumpmachine 2>/dev/null | $(GREP) -i -c "Cygwin")
IS_DARWIN := $(shell $(CXX) -dumpmachine 2>/dev/null | $(GREP) -i -c "Darwin")
IS_NETBSD := $(shell $(CXX) -dumpmachine 2>/dev/null | $(GREP) -i -c "NetBSD")
@@ -153,6 +154,20 @@ endif
# Clang integrated assembler will be used with -Wa,-q
CLANG_INTEGRATED_ASSEMBLER ?= 0
+# original MinGW targets Win2k by default, but lacks proper Win2k support
+# if target Windows version is not specified, use Windows XP instead
+ifeq ($(IS_MINGW32),1)
+ifeq ($(findstring -D_WIN32_WINNT,$(CXXFLAGS)),)
+ifeq ($(findstring -D_WIN32_WINDOWS,$(CXXFLAGS)),)
+ifeq ($(findstring -DWINVER,$(CXXFLAGS)),)
+ifeq ($(findstring -DNTDDI_VERSION,$(CXXFLAGS)),)
+ CXXFLAGS += -D_WIN32_WINNT=0x0501
+endif # NTDDI_VERSION
+endif # WINVER
+endif # _WIN32_WINDOWS
+endif # _WIN32_WINNT
+endif # IS_MINGW32
+
###########################################################
##### X86/X32/X64 Options #####
###########################################################