]> git.sesse.net Git - stockfish/blobdiff - src/Makefile
Pass endgame value to evaluate_scale_factor()
[stockfish] / src / Makefile
index 29b784e5fe4aaad867b64ac0ed8aa4c779c1f6d8..358788bd7f2d7262740e3e686be0180b005e4a02 100644 (file)
@@ -1,6 +1,7 @@
 # Stockfish, a UCI chess playing engine derived from Glaurung 2.1
 # Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
 # Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad
+# Copyright (C) 2015-2016 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
 #
 # Stockfish is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -159,7 +160,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
@@ -175,8 +194,8 @@ ifeq ($(COMP),clang)
        CXX=clang++
        CXXFLAGS += -pedantic -Wextra -Wshadow
        ifeq ($(UNAME),Darwin)
-               CXXFLAGS += -std=c++0x -stdlib=libc++
-               DEPENDFLAGS += -std=c++0x -stdlib=libc++
+               CXXFLAGS += -stdlib=libc++
+               DEPENDFLAGS += -stdlib=libc++
        endif
 endif
 
@@ -199,7 +218,12 @@ endif
 
 ### Travis CI script uses COMPILER to overwrite CXX
 ifdef COMPILER
-       CXX=$(COMPILER)
+       COMPCXX=$(COMPILER)
+endif
+
+### Allow overwriting CXX from command line
+ifdef COMPCXX
+       CXX=$(COMPCXX)
 endif
 
 ### On mingw use Windows threads, otherwise POSIX
@@ -307,7 +331,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 +343,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)
@@ -335,7 +370,7 @@ help:
        @echo ""
        @echo "To compile stockfish, type: "
        @echo ""
-       @echo "make target ARCH=arch [COMP=comp]"
+       @echo "make target ARCH=arch [COMP=compiler] [COMPCXX=cxx]"
        @echo ""
        @echo "Supported targets:"
        @echo ""
@@ -365,11 +400,17 @@ help:
        @echo "clang                   > LLVM Clang compiler"
        @echo "icc                     > Intel compiler"
        @echo ""
-       @echo "Examples. If you don't know what to do, you likely want to run: "
+       @echo "Simple examples. If you don't know what to do, you likely want to run: "
        @echo ""
        @echo "make build ARCH=x86-64    (This is for 64-bit systems)"
        @echo "make build ARCH=x86-32    (This is for 32-bit systems)"
        @echo ""
+       @echo "Advanced examples, for experienced users: "
+       @echo ""
+       @echo "make build ARCH=x86-64 COMP=clang"
+       @echo "make profile-build ARCH=x86-64-modern COMP=gcc COMPCXX=g++-4.8"
+       @echo ""
+
 
 .PHONY: build profile-build
 build: