]> git.sesse.net Git - stockfish/blobdiff - src/Makefile
Remove an assert in evaluate_passed_pawns()
[stockfish] / src / Makefile
index aa7d97f870f3abbb020a534181b89975b6502a42..7071e8905eb6e01be581e9f69c64b93c99fc6680 100644 (file)
@@ -21,6 +21,9 @@
 ### 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
@@ -53,7 +56,6 @@ ICCFLAGS-OSX += -DNDEBUG
 ### ==========================================================================
 PGOBENCH = ./$(EXE) bench 32 1 10 default depth
 
-
 ### General compiler settings. Do not change
 GCCFLAGS += -g -Wall -fno-exceptions -fno-rtti
 ICCFLAGS += -g -Wall -fno-exceptions -fno-rtti -wd383,869,981,10187,10188,11505,11503
@@ -68,7 +70,7 @@ LDFLAGS  = -lpthread
 OBJS = application.o bitboard.o pawns.o material.o endgame.o evaluate.o main.o \
        misc.o move.o movegen.o history.o movepick.o search.o piece.o \
        position.o direction.o tt.o value.o uci.o ucioption.o \
-       maxgain.o mersenne.o book.o bitbase.o san.o benchmark.o
+       mersenne.o book.o bitbase.o san.o benchmark.o
 
 
 ### General rules. Do not change
@@ -80,6 +82,8 @@ help:
        @echo "Makefile options:"
        @echo ""
        @echo "make                >  Default: Compiler = g++"
+       @echo "make gcc-profile    >  Compiler = g++ + automatic pgo-build"
+       @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"
@@ -91,14 +95,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
@@ -108,6 +116,40 @@ gcc:
        CXXFLAGS="$(GCCFLAGS)" \
        all
 
+gcc-profile-make:
+       $(MAKE) \
+       CXX='g++' \
+       CXXFLAGS="$(GCCFLAGS)" \
+       CXXFLAGS+='-fprofile-generate' \
+       LDFLAGS="$(LDFLAGS)" \
+       LDFLAGS+=" -lgcov" \
+       all
+
+gcc-profile-use:
+       $(MAKE) \
+       CXX='g++' \
+       CXXFLAGS="$(GCCFLAGS)" \
+       CXXFLAGS+='-fprofile-use' \
+       all
+
+gcc-profile:
+       @touch *.cpp *.h
+       $(MAKE) gcc-profile-make
+       @echo ""
+       @echo "Running benchmark for pgo-build ..."
+       @$(PGOBENCH) > /dev/null
+       @echo "Benchmark finished. Build final executable now ..."
+       @echo ""
+       @touch *.cpp *.h
+       $(MAKE) gcc-profile-use
+       @rm -rf *.gcda bench.txt
+
+gcc-popcnt:
+       $(MAKE) \
+       CXX='g++' \
+       CXXFLAGS="$(GCCFLAGS) -DUSE_POPCNT" \
+       all
+
 icc:
        $(MAKE) \
        CXX='icpc' \
@@ -181,6 +223,7 @@ osx-ppc32:
        CXX='g++' \
        CXXFLAGS="$(GCCFLAGS)" \
        CXXFLAGS+='-arch ppc' \
+       CXXFLAGS+='-DBIGENDIAN' \
        LDFLAGS+='-arch ppc' \
        all
 
@@ -189,6 +232,7 @@ osx-ppc64:
        CXX='g++' \
        CXXFLAGS="$(GCCFLAGS)" \
        CXXFLAGS+='-arch ppc64' \
+       CXXFLAGS+='-DBIGENDIAN' \
        LDFLAGS+='-arch ppc64' \
        all
 
@@ -196,18 +240,18 @@ osx-x86:
        $(MAKE) \
        CXX='g++' \
        CXXFLAGS="$(GCCFLAGS)" \
-       CXXFLAGS+='-arch i386' \
-       LDFLAGS+='-arch i386' \
+       CXXFLAGS+='-arch i386 -mdynamic-no-pic' \
+       LDFLAGS+='-arch i386 -mdynamic-no-pic' \
        all
 
 osx-x86_64:
        $(MAKE) \
        CXX='g++' \
        CXXFLAGS="$(GCCFLAGS)" \
-       CXXFLAGS+='-arch x86_64' \
-       LDFLAGS+='-arch x86_64' \
+       CXXFLAGS+='-arch x86_64 -mdynamic-no-pic' \
+       LDFLAGS+='-arch x86_64 -mdynamic-no-pic' \
        all
-       
+
 osx-icc32:
        $(MAKE) \
        CXX='icpc' \
@@ -288,6 +332,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:
@@ -296,11 +346,16 @@ strip:
 
 ### Compilation. Do not change
 $(EXE): $(OBJS)
-       $(CXX) $(LDFLAGS) -o $@ $(OBJS)
+       $(CXX) -o $@ $(OBJS) $(LDFLAGS)
 
+### Installation
+install: default
+       -mkdir -p -m 755 $(BINDIR)
+       -cp $(EXE) $(BINDIR)
+       -strip $(BINDIR)/$(EXE)
 
 ### Dependencies. Do not change
 .depend:
-       $(CXX) -MM $(OBJS:.o=.cpp) > $@
+       -@$(CXX) -msse -MM $(OBJS:.o=.cpp) > $@ 2> /dev/null
 
-include .depend
+-include .depend