1
0
Fork 0

Proper Makefile for cross compiling 64 or 32 bit PGO + LTO + static Windows binaries under Linux.

No functional change

Resolves #511
pull/517/head
mstembera 2015-12-03 13:59:27 +00:00 committed by Joona Kiiski
parent 5a42427cb8
commit 5d077bb482
1 changed files with 31 additions and 2 deletions

View File

@ -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)