]> git.sesse.net Git - stockfish/blobdiff - src/Makefile
Import C++11 branch
[stockfish] / src / Makefile
index 80867feb578aba8ac534b61507733d29045a3280..f57773dfa0796c7990b1cae3a4efed27cd6bb5ac 100644 (file)
@@ -1,6 +1,6 @@
 # Stockfish, a UCI chess playing engine derived from Glaurung 2.1
 # Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
-# Copyright (C) 2008-2014 Marco Costalba, Joona Kiiski, Tord Romstad
+# Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, 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
@@ -31,12 +31,12 @@ PREFIX = /usr/local
 BINDIR = $(PREFIX)/bin
 
 ### Built-in benchmark for pgo-builds
-PGOBENCH = ./$(EXE) bench 16 1 1 default time
+PGOBENCH = ./$(EXE) bench 16 1 1000 default time
 
 ### Object files
 OBJS = benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o \
        material.o misc.o movegen.o movepick.o pawns.o position.o \
-       search.o thread.o timeman.o tt.o uci.o ucioption.o syzygy/tbprobe.o
+       search.o thread.o timeman.o tt.o uci.o ucioption.o
 
 ### ==========================================================================
 ### Section 2. High-level Configuration
@@ -140,7 +140,7 @@ endif
 
 ### 3.1 Selecting compiler (default = gcc)
 
-CXXFLAGS += -Wall -Wcast-qual -fno-exceptions -fno-rtti $(EXTRACXXFLAGS)
+CXXFLAGS += -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 $(EXTRACXXFLAGS)
 LDFLAGS += $(EXTRALDFLAGS)
 
 ifeq ($(COMP),)
@@ -150,7 +150,8 @@ endif
 ifeq ($(COMP),gcc)
        comp=gcc
        CXX=g++
-       CXXFLAGS += -ansi -pedantic -Wno-long-long -Wextra -Wshadow
+       CXXFLAGS += -pedantic -Wno-long-long -Wextra -Wshadow
+       LDFLAGS += -Wl,--no-as-needed
 endif
 
 ifeq ($(COMP),mingw)
@@ -310,6 +311,14 @@ ifeq ($(comp),gcc)
        endif
 endif
 
+### 3.12 Android 5 can only run position independent executables. Note that this
+### breaks Android 4.0 and earlier.
+ifeq ($(arch),armv7)
+       CXXFLAGS += -fPIE
+       LDFLAGS += -fPIE -pie
+endif
+
+
 ### ==========================================================================
 ### Section 4. Public targets
 ### ==========================================================================
@@ -366,14 +375,14 @@ profile-build:
        $(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_prepare)
        @echo ""
        @echo "Step 1/4. Building executable for benchmark ..."
-       @touch *.cpp *.h syzygy/*.cpp syzygy/*.h
+       @touch *.cpp *.h
        $(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_make)
        @echo ""
        @echo "Step 2/4. Running benchmark for pgo-build ..."
        @$(PGOBENCH) > /dev/null
        @echo ""
        @echo "Step 3/4. Building final executable ..."
-       @touch *.cpp *.h syzygy/*.cpp syzygy/*.h
+       @touch *.cpp *.h
        $(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_use)
        @echo ""
        @echo "Step 4/4. Deleting profile data ..."
@@ -388,7 +397,7 @@ install:
        -strip $(BINDIR)/$(EXE)
 
 clean:
-       $(RM) $(EXE) $(EXE).exe *.o .depend *~ core bench.txt *.gcda ./syzygy/*.o ./syzygy/*.gcda
+       $(RM) $(EXE) $(EXE).exe *.o .depend *~ core bench.txt *.gcda
 
 default:
        help
@@ -439,18 +448,21 @@ gcc-profile-prepare:
 
 gcc-profile-make:
        $(MAKE) ARCH=$(ARCH) COMP=$(COMP) \
-       EXTRACXXFLAGS='-fprofile-generate' \
+       EXTRACXXFLAGS='-fprofile-arcs' \
        EXTRALDFLAGS='-lgcov' \
        all
 
 gcc-profile-use:
+# Deleting corrupt ucioption.gc* profile files is necessary to avoid an 
+# "internal compiler error" for gcc versions 4.7.x
+       @rm -f ucioption.gc*
        $(MAKE) ARCH=$(ARCH) COMP=$(COMP) \
-       EXTRACXXFLAGS='-fprofile-use' \
+       EXTRACXXFLAGS='-fbranch-probabilities' \
        EXTRALDFLAGS='-lgcov' \
        all
 
 gcc-profile-clean:
-       @rm -rf *.gcda *.gcno syzygy/*.gcda syzygy/*.gcno bench.txt
+       @rm -rf *.gcda *.gcno bench.txt
 
 icc-profile-prepare:
        $(MAKE) ARCH=$(ARCH) COMP=$(COMP) icc-profile-clean