Skip to content

Commit

Permalink
Allow cross compilation of Windows binaries on a Linux system
Browse files Browse the repository at this point in the history
that are PGO, LTO, and statically linked.
Credit: pasquale....@gmail.com

No functional change

Resolves #505
  • Loading branch information
mstembera authored and zamar committed Nov 24, 2015
1 parent 79f3930 commit 388630a
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions src/Makefile
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit 388630a

Please sign in to comment.