From: mstembera Date: Tue, 17 Nov 2015 08:37:51 +0000 (-0800) Subject: Allow cross compilation of Windows binaries on a Linux system X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=388630ae285b3f9f0c8ee4f30e754bde6688c57c;hp=79f393084af73655c869af126281bb2a7c2cc396;ds=sidebyside Allow cross compilation of Windows binaries on a Linux system that are PGO, LTO, and statically linked. Credit: pasquale....@gmail.com No functional change Resolves #505 --- diff --git a/src/Makefile b/src/Makefile index 29b784e5..a95f13b3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -159,7 +159,11 @@ endif ifeq ($(COMP),mingw) comp=mingw - CXX=g++ + ifeq ($(UNAME),Linux) + CXX=x86_64-w64-mingw32-g++-posix + else + CXX=g++ + endif CXXFLAGS += -Wextra -Wshadow LDFLAGS += -static endif @@ -307,7 +311,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 +323,17 @@ ifeq ($(comp),gcc) endif endif +ifeq ($(UNAME),Linux) +ifeq ($(comp),mingw) + 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)