X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2FMakefile;h=fd5290be53b24abbe2c2dfd05aee5f572e76f5d4;hp=7ddb643c11710713b2b782d4a4dfc8203577c928;hb=c65d67feb53895a34423cc2043edc69741f2ba92;hpb=6fbe027da05d6de0b7f03e8696bbde2e33baad98 diff --git a/src/Makefile b/src/Makefile index 7ddb643c..fd5290be 100644 --- a/src/Makefile +++ b/src/Makefile @@ -34,8 +34,9 @@ ifeq ($(UNAME),Haiku) endif BINDIR = $(PREFIX)/bin -### Built-in benchmark for pgo-builds +### Built-in benchmark for pgo-builds and signature PGOBENCH = ./$(EXE) bench 32 1 10 default depth +SIGNBENCH = ./$(EXE) bench ### Object files OBJS = benchmark.o bitbase.o bitboard.o book.o endgame.o evaluate.o main.o \ @@ -242,7 +243,7 @@ ifeq ($(comp),mingw) endif ifeq ($(comp),icc) - CXXFLAGS += -wd383,981,1418,1419,1476,10187,10188,11505,11503 -Wcheck -Wabi -Wdeprecated -strict-ansi + CXXFLAGS += -diag-disable 1476,10120 -Wcheck -Wabi -Wdeprecated -strict-ansi endif ifeq ($(comp),clang) @@ -262,21 +263,24 @@ endif ### On mingw use Windows threads, otherwise POSIX ifneq ($(comp),mingw) - # Haiku has pthreads in its libroot, so only link it in on other platforms - ifneq ($(UNAME),Haiku) - LDFLAGS += -lpthread + # On Android Bionic's C library comes with its own pthread implementation bundled in + ifneq ($(arch),armv7) + # Haiku has pthreads in its libroot, so only link it in on other platforms + ifneq ($(UNAME),Haiku) + LDFLAGS += -lpthread + endif endif endif ifeq ($(os),osx) - LDFLAGS += -arch $(arch) -mmacosx-version-min=10.0 + LDFLAGS += -arch $(arch) -mmacosx-version-min=10.0 -stack_size,0x4000 endif ### 3.4 Debugging ifeq ($(debug),no) CXXFLAGS += -DNDEBUG else - CXXFLAGS += -g + CXXFLAGS += -g endif ### 3.5 Optimization @@ -295,7 +299,7 @@ ifeq ($(optimize),yes) endif ifeq ($(arch),armv7) - CXXFLAGS += -fno-gcse + CXXFLAGS += -fno-gcse -mthumb -march=armv7-a -mfloat-abi=softfp endif endif @@ -307,7 +311,7 @@ ifeq ($(optimize),yes) ifeq ($(os),osx) CXXFLAGS += -fast -mdynamic-no-pic else - CXXFLAGS += -O3 + CXXFLAGS += -fast endif endif @@ -379,44 +383,46 @@ help: @echo "" @echo "Supported targets:" @echo "" - @echo "build > Build unoptimized version" - @echo "profile-build > Build PGO-optimized version" - @echo "strip > Strip executable" - @echo "install > Install executable" - @echo "clean > Clean up" - @echo "testrun > Make sample run" + @echo "build > Standard build" + @echo "signature-build > Standard build with embedded signature" + @echo "profile-build > PGO build" + @echo "signature-profile-build > PGO build with embedded signature" + @echo "strip > Strip executable" + @echo "install > Install executable" + @echo "clean > Clean up" @echo "" @echo "Supported archs:" @echo "" - @echo "x86-64 > x86 64-bit" - @echo "x86-64-modern > x86 64-bit with runtime support for popcnt instruction" - @echo "x86-32 > x86 32-bit excluding old hardware without SSE-support" - @echo "x86-32-old > x86 32-bit including also very old hardware" - @echo "osx-ppc-64 > PPC-Mac OS X 64 bit" - @echo "osx-ppc-32 > PPC-Mac OS X 32 bit" - @echo "osx-x86-64 > x86-Mac OS X 64 bit" - @echo "osx-x86-32 > x86-Mac OS X 32 bit" - @echo "armv7 > ARMv7 32 bit" - @echo "general-64 > unspecified 64-bit" - @echo "general-32 > unspecified 32-bit" + @echo "x86-64 > x86 64-bit" + @echo "x86-64-modern > x86 64-bit with popcnt support" + @echo "x86-32 > x86 32-bit with SSE support" + @echo "x86-32-old > x86 32-bit fall back for old hardware" + @echo "osx-ppc-64 > PPC-Mac OS X 64 bit" + @echo "osx-ppc-32 > PPC-Mac OS X 32 bit" + @echo "osx-x86-64 > x86-Mac OS X 64 bit" + @echo "osx-x86-32 > x86-Mac OS X 32 bit" + @echo "armv7 > ARMv7 32 bit" + @echo "general-64 > unspecified 64-bit" + @echo "general-32 > unspecified 32-bit" @echo "" - @echo "Supported comps:" + @echo "Supported compilers:" @echo "" - @echo "gcc > Gnu compiler (default)" - @echo "icc > Intel compiler" - @echo "mingw > Gnu compiler with MinGW under Windows" - @echo "clang > LLVM Clang compiler" + @echo "gcc > Gnu compiler (default)" + @echo "mingw > Gnu compiler with MinGW under Windows" + @echo "clang > LLVM Clang compiler" + @echo "icc > Intel compiler" @echo "" @echo "Non-standard targets:" @echo "" - @echo "make hpux > Compile for HP-UX. Compiler = aCC" + @echo "make hpux > Compile for HP-UX. Compiler = aCC" @echo "" @echo "Examples. If you don't know what to do, you likely want to run: " @echo "" - @echo "make profile-build ARCH=x86-64 (This is for 64-bit systems)" - @echo "make profile-build ARCH=x86-32 (This is for 32-bit systems)" + @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 "" +.PHONY: build profile-build embed-signature build: $(MAKE) ARCH=$(ARCH) COMP=$(COMP) config-sanity $(MAKE) ARCH=$(ARCH) COMP=$(COMP) all @@ -441,6 +447,18 @@ profile-build: @echo "Step 4/4. Deleting profile data ..." $(MAKE) ARCH=$(ARCH) COMP=$(COMP) $(profile_clean) +embed-signature: + @echo "Running benchmark for getting the signature ..." + @$(SIGNBENCH) 2>&1 | sed -n 's/Nodes searched : \(.*\)/\/string Version\/s\/"\\(.*\\)"\/"sig-\1"\//p' > sign.txt + @sed -f sign.txt misc.cpp > misc2.cpp + @mv misc2.cpp misc.cpp + @rm sign.txt + +signature-build: build embed-signature + $(MAKE) ARCH=$(ARCH) COMP=$(COMP) all + +signature-profile-build: build embed-signature profile-build + strip: strip $(EXE) @@ -452,9 +470,6 @@ install: clean: $(RM) $(EXE) $(EXE).exe *.o .depend *~ core bench.txt *.gcda -testrun: - @$(PGOBENCH) - default: help