From: mstembera Date: Thu, 3 Dec 2015 13:59:27 +0000 (+0000) Subject: Proper Makefile for cross compiling 64 or 32 bit PGO + LTO + static Windows binaries... X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=5d077bb482c0203fa138097ece5a7aa6a46e9f2a Proper Makefile for cross compiling 64 or 32 bit PGO + LTO + static Windows binaries under Linux. No functional change Resolves #511 --- diff --git a/src/Makefile b/src/Makefile index 29b784e5..4e4d3d91 100644 --- a/src/Makefile +++ b/src/Makefile @@ -159,7 +159,25 @@ endif ifeq ($(COMP),mingw) comp=mingw - CXX=g++ + + ifeq ($(UNAME),Linux) + ifeq ($(bits),64) + ifeq ($(shell which x86_64-w64-mingw32-c++-posix),) + CXX=x86_64-w64-mingw32-c++ + else + CXX=x86_64-w64-mingw32-c++-posix + endif + else + ifeq ($(shell which i686-w64-mingw32-c++-posix),) + CXX=i686-w64-mingw32-c++ + else + CXX=i686-w64-mingw32-c++-posix + endif + endif + else + CXX=g++ + endif + CXXFLAGS += -Wextra -Wshadow LDFLAGS += -static endif @@ -307,7 +325,7 @@ ifeq ($(pext),yes) endif endif -### 3.11 Link Time Optimization, it works since gcc 4.5 but not on mingw. +### 3.11 Link Time Optimization, it works since gcc 4.5 but not on mingw under Windows. ### This is a mix of compile and link time options because the lto link phase ### needs access to the optimization flags. ifeq ($(comp),gcc) @@ -319,6 +337,17 @@ ifeq ($(comp),gcc) endif endif +ifeq ($(comp),mingw) + ifeq ($(UNAME),Linux) + ifeq ($(optimize),yes) + ifeq ($(debug),no) + CXXFLAGS += -flto + LDFLAGS += $(CXXFLAGS) + endif + endif + endif +endif + ### 3.12 Android 5 can only run position independent executables. Note that this ### breaks Android 4.0 and earlier. ifeq ($(arch),armv7)