diff options
author | Marcel Raad <MarcelRaad@users.noreply.github.com> | 2017-11-07 02:49:16 +0100 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2017-11-06 20:49:16 -0500 |
commit | 404316420529b7e0c96e9b0047004d2332e1330e (patch) | |
tree | 1487fad352e9071c4234f62525c10dc5c24e34bc /GNUmakefile | |
parent | 379e97cc1c0ac8539722a60a74986051de370f50 (diff) | |
download | cryptopp-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-x | GNUmakefile | 15 |
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 ##### ########################################################### |