X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2FMakefile;h=5b101cbdaa2be1d1291ed771b87382e4592185c2;hp=a9715ec9a0fc2d4290ebbc57447b432835bc2ac3;hb=a3943b2aa76b278aaeb348fb37123f72507da0bd;hpb=e5c7b44f7abf49170ffba98940c7c8bf95806d07 diff --git a/src/Makefile b/src/Makefile index a9715ec9..5b101cbd 100644 --- a/src/Makefile +++ b/src/Makefile @@ -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,7 +31,7 @@ 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 \ @@ -140,7 +140,8 @@ 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) +DEPENDFLAGS += -std=c++11 LDFLAGS += $(EXTRALDFLAGS) ifeq ($(COMP),) @@ -150,14 +151,19 @@ endif ifeq ($(COMP),gcc) comp=gcc CXX=g++ - CXXFLAGS += -ansi -pedantic -Wno-long-long -Wextra -Wshadow + CXXFLAGS += -pedantic -Wno-long-long -Wextra -Wshadow + ifneq ($(UNAME),Darwin) + LDFLAGS += -Wl,--no-as-needed + else + LDFLAGS += -Wl + endif endif ifeq ($(COMP),mingw) comp=mingw CXX=g++ CXXFLAGS += -Wextra -Wshadow - LDFLAGS += -static-libstdc++ -static-libgcc + LDFLAGS += -static endif ifeq ($(COMP),icc) @@ -170,6 +176,9 @@ ifeq ($(COMP),clang) comp=clang CXX=clang++ CXXFLAGS += -pedantic -Wno-long-long -Wextra -Wshadow + ifeq ($(UNAME),Darwin) + CXXFLAGS += -std=c++0x -stdlib=libc++ + endif endif ifeq ($(comp),icc) @@ -185,8 +194,8 @@ else endif ifeq ($(UNAME),Darwin) - CXXFLAGS += -arch $(arch) -mmacosx-version-min=10.6 - LDFLAGS += -arch $(arch) -mmacosx-version-min=10.6 + CXXFLAGS += -arch $(arch) -mmacosx-version-min=10.9 + LDFLAGS += -arch $(arch) -mmacosx-version-min=10.9 endif ### On mingw use Windows threads, otherwise POSIX @@ -300,16 +309,20 @@ endif ifeq ($(comp),gcc) ifeq ($(optimize),yes) ifeq ($(debug),no) - GCC_MAJOR := `$(CXX) -dumpversion | cut -f1 -d.` - GCC_MINOR := `$(CXX) -dumpversion | cut -f2 -d.` - ifeq (1,$(shell expr \( $(GCC_MAJOR) \> 4 \) \| \( $(GCC_MAJOR) \= 4 \& $(GCC_MINOR) \>= 5 \))) - CXXFLAGS += -flto - LDFLAGS += $(CXXFLAGS) - endif + CXXFLAGS += -flto + LDFLAGS += $(CXXFLAGS) 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) + CXXFLAGS += -fPIE + LDFLAGS += -fPIE -pie +endif + + ### ========================================================================== ### Section 4. Public targets ### ========================================================================== @@ -439,16 +452,13 @@ gcc-profile-prepare: gcc-profile-make: $(MAKE) ARCH=$(ARCH) COMP=$(COMP) \ - EXTRACXXFLAGS='-fprofile-arcs' \ + EXTRACXXFLAGS='-fprofile-generate' \ 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='-fbranch-probabilities' \ + EXTRACXXFLAGS='-fprofile-use -fno-peel-loops -fno-tracer' \ EXTRALDFLAGS='-lgcov' \ all