X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2FMakefile;h=748a739e254551daedf022a8efbe0b3e53e21b77;hp=28fbb0d67187e855a1914dc2008598cfd7a3c02d;hb=426f55b78d8d83ad779772dc46ad4f645177c4c4;hpb=20788783768ad5317eb1273bf0971f2e994635dd diff --git a/src/Makefile b/src/Makefile index 28fbb0d6..748a739e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -21,6 +21,10 @@ ### Executable name. Do not change EXE = stockfish +### Installation dir definitions +PREFIX = /usr/local +BINDIR = $(PREFIX)/bin + ### ========================================================================== ### Compiler speed switches for both GCC and ICC. These settings are generally @@ -39,6 +43,14 @@ ICCFLAGS += -DNDEBUG ICCFLAGS-OSX += -DNDEBUG +### ========================================================================== +### Remove below comments to compile for a big-endian machine +### ========================================================================== +#GCCFLAGS += -DBIGENDIAN +#ICCFLAGS += -DBIGENDIAN +#ICCFLAGS-OSX += -DBIGENDIAN + + ### ========================================================================== ### Run built-in benchmark for pgo-builds with: 32MB hash 1 thread 10 depth ### These settings are generally fast, but may be changed experimentally @@ -47,9 +59,9 @@ PGOBENCH = ./$(EXE) bench 32 1 10 default depth ### General compiler settings. Do not change -GCCFLAGS += -g -Wall -fno-exceptions -fno-rtti -fno-strict-aliasing -ICCFLAGS += -g -Wall -fno-exceptions -fno-rtti -fno-strict-aliasing -wd383,869,981,10187,10188,11505,11503 -ICCFLAGS-OSX += -g -Wall -fno-exceptions -fno-rtti -fno-strict-aliasing -wd383,869,981,10187,10188,11505,11503 +GCCFLAGS += -g -Wall -fno-exceptions -fno-rtti +ICCFLAGS += -g -Wall -fno-exceptions -fno-rtti -wd383,869,981,10187,10188,11505,11503 +ICCFLAGS-OSX += -g -Wall -fno-exceptions -fno-rtti -wd383,869,981,10187,10188,11505,11503 ### General linker settings. Do not change @@ -72,8 +84,10 @@ help: @echo "Makefile options:" @echo "" @echo "make > Default: Compiler = g++" + @echo "make gcc-popcnt > Compiler = g++ + popcnt-support" @echo "make icc > Compiler = icpc" @echo "make icc-profile > Compiler = icpc + automatic pgo-build" + @echo "make icc-profile-popcnt > Compiler = icpc + automatic pgo-build + popcnt-support" @echo "make osx-ppc32 > PPC-Mac OS X 32 bit. Compiler = g++" @echo "make osx-ppc64 > PPC-Mac OS X 64 bit. Compiler = g++" @echo "make osx-x86 > x86-Mac OS X 32 bit. Compiler = g++" @@ -82,14 +96,18 @@ help: @echo "make osx-icc64 > x86-Mac OS X 64 bit. Compiler = icpc" @echo "make osx-icc32-profile > OSX 32 bit. Compiler = icpc + automatic pgo-build" @echo "make osx-icc64-profile > OSX 64 bit. Compiler = icpc + automatic pgo-build" + @echo "make hpux > HP-UX. Compiler = aCC" @echo "make strip > Strip executable" @echo "make clean > Clean up" @echo "" all: $(EXE) .depend +test check: default + @$(PGOBENCH) + clean: - $(RM) *.o .depend *~ $(EXE) + $(RM) *.o .depend *~ $(EXE) core bench.txt ### Possible targets. You may add your own ones here @@ -99,6 +117,13 @@ gcc: CXXFLAGS="$(GCCFLAGS)" \ all +gcc-popcnt: + $(MAKE) \ + CXX='g++' \ + CXXFLAGS="$(GCCFLAGS) -DUSE_POPCNT" \ + all + + icc: $(MAKE) \ CXX='icpc' \ @@ -133,6 +158,40 @@ icc-profile: $(MAKE) icc-profile-use @rm -rf profdir bench.txt +icc-profile-make-with-popcnt: + $(MAKE) \ + CXX='icpc' \ + CXXFLAGS="$(ICCFLAGS) -DUSE_POPCNT" \ + CXXFLAGS+='-prof-gen=srcpos -prof_dir ./profdir' \ + all + +icc-profile-use-with-popcnt: + $(MAKE) \ + CXX='icpc' \ + CXXFLAGS="$(ICCFLAGS) -DUSE_POPCNT" \ + CXXFLAGS+='-prof_use -prof_dir ./profdir' \ + all + +icc-profile-popcnt: + @rm -rf profdir + @mkdir profdir + @touch *.cpp *.h + $(MAKE) icc-profile-make + @echo "" + @echo "Running benchmark for pgo-build (popcnt disabled)..." + @$(PGOBENCH) > /dev/null + @touch *.cpp *.h + $(MAKE) icc-profile-make-with-popcnt + @echo "" + @echo "Running benchmark for pgo-build (popcnt enabled)..." + @$(PGOBENCH) > /dev/null + @echo "Benchmarks finished. Build final executable now ..." + @echo "" + @touch *.cpp *.h + $(MAKE) icc-profile-use-with-popcnt + @rm -rf profdir bench.txt + + osx-ppc32: $(MAKE) \ CXX='g++' \ @@ -245,6 +304,12 @@ osx-icc64-profile: $(MAKE) osx-icc64-profile-use @rm -rf profdir bench.txt +hpux: + $(MAKE) \ + CXX='/opt/aCC/bin/aCC -AA +hpxstd98 -DBIGENDIAN -mt +O3 -DNDEBUG' \ + CXXFLAGS="" \ + LDFLAGS="" \ + all strip: @@ -255,9 +320,14 @@ strip: $(EXE): $(OBJS) $(CXX) $(LDFLAGS) -o $@ $(OBJS) +### Installation +install: default + -mkdir -p -m 755 $(BINDIR) + -cp $(EXE) $(BINDIR) + -strip $(BINDIR)/$(EXE) ### Dependencies. Do not change .depend: - $(CXX) -msse -MM $(OBJS:.o=.cpp) > $@ + -@$(CXX) -msse -MM $(OBJS:.o=.cpp) > $@ 2> /dev/null -include .depend +-include .depend