X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2FMakefile;h=ce8421a47da231a0da7500b43a40e5885b1c48f4;hp=48f1fa1cf5125ccdc547f707dbba27ae114cbf18;hb=950c8436edc50857b83eb3e0cbaca06407764655;hpb=0935dca9a6729f8036b3bde3554708743e47ac43 diff --git a/src/Makefile b/src/Makefile index 48f1fa1c..ce8421a4 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 @@ -28,14 +28,10 @@ EXE = stockfish ### Installation dir definitions PREFIX = /usr/local -# Haiku has a non-standard filesystem layout -ifeq ($(UNAME),Haiku) - PREFIX=/boot/system/non-packaged -endif 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 \ @@ -52,7 +48,6 @@ OBJS = benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o \ # debug = yes/no --- -DNDEBUG --- Enable/Disable debug mode # optimize = yes/no --- (-O3/-fast etc.) --- Enable/Disable optimizations # arch = (name) --- (-arch) --- Target architecture -# os = (name) --- --- Target operating system # bits = 64/32 --- -DIS_64BIT --- 64-/32-bit operating system # prefetch = yes/no --- -DUSE_PREFETCH --- Use prefetch x86 asm-instruction # bsfq = yes/no --- -DUSE_BSFQ --- Use bsfq x86_64 asm-instruction (only @@ -68,7 +63,6 @@ OBJS = benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o \ ### 2.1. General and architecture defaults optimize = yes debug = no -os = any bits = 32 prefetch = no bsfq = no @@ -316,6 +310,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 ### ========================================================================== @@ -372,14 +374,14 @@ profile-build: $(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_prepare) @echo "" @echo "Step 1/4. Building executable for benchmark ..." - @touch *.cpp *.h + @touch *.cpp *.h syzygy/*.cpp syzygy/*.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 + @touch *.cpp *.h syzygy/*.cpp syzygy/*.h $(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_use) @echo "" @echo "Step 4/4. Deleting profile data ..." @@ -411,7 +413,6 @@ config-sanity: @echo "debug: '$(debug)'" @echo "optimize: '$(optimize)'" @echo "arch: '$(arch)'" - @echo "os: '$(os)'" @echo "bits: '$(bits)'" @echo "prefetch: '$(prefetch)'" @echo "bsfq: '$(bsfq)'" @@ -430,7 +431,6 @@ config-sanity: @test "$(optimize)" = "yes" || test "$(optimize)" = "no" @test "$(arch)" = "any" || test "$(arch)" = "x86_64" || test "$(arch)" = "i386" || \ test "$(arch)" = "ppc64" || test "$(arch)" = "ppc" || test "$(arch)" = "armv7" - @test "$(os)" = "any" @test "$(bits)" = "32" || test "$(bits)" = "64" @test "$(prefetch)" = "yes" || test "$(prefetch)" = "no" @test "$(bsfq)" = "yes" || test "$(bsfq)" = "no" @@ -453,7 +453,7 @@ gcc-profile-make: gcc-profile-use: $(MAKE) ARCH=$(ARCH) COMP=$(COMP) \ - EXTRACXXFLAGS='-fprofile-use' \ + EXTRACXXFLAGS='-fprofile-use -fno-peel-loops -fno-tracer' \ EXTRALDFLAGS='-lgcov' \ all