PGOBENCH = ./$(EXE) bench 32 1 10 default depth
### Object files
-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 \
- mersenne.o book.o bitbase.o san.o benchmark.o
+OBJS = bitboard.o pawns.o material.o endgame.o evaluate.o main.o \
+ misc.o move.o movegen.o history.o movepick.o search.o position.o \
+ tt.o uci.o ucioption.o book.o bitbase.o san.o benchmark.o timeman.o
### ==========================================================================
# os = (name) --- --- Target operating system
# bits = 64/32 --- -DIS_64BIT --- 64-/32-bit operating system
# bigendian = no/yes --- -DBIGENDIAN --- big/little-endian byte order
-# prefetch = no/yes --- -DPREFETCH --- Use prefetch x86 asm-instruction
+# prefetch = no/yes --- -DUSE_PREFETCH --- Use prefetch x86 asm-instruction
# bsfq = no/yes --- -DUSE_BSFQ --- Use bsfq x86_64 asm-instruction
# --- (Works only with GCC and ICC 64-bit)
# popcnt = no/yes --- -DUSE_POPCNT --- Use popcnt x86_64 asm-instruction
COMP=gcc
endif
+ifeq ($(COMP),mingw)
+ comp=mingw
+ CXX=g++
+ profile_prepare = gcc-profile-prepare
+ profile_make = gcc-profile-make
+ profile_use = gcc-profile-use
+ profile_clean = gcc-profile-clean
+endif
+
ifeq ($(COMP),gcc)
comp=gcc
CXX=g++
endif
### 3.2 General compiler settings
-CXXFLAGS += -g -Wall -fno-exceptions -fno-rtti $(EXTRACXXFLAGS)
+CXXFLAGS = -g -Wall -Wcast-qual -fno-exceptions -fno-rtti $(EXTRACXXFLAGS)
+
+ifeq ($(comp),gcc)
+ CXXFLAGS += -ansi -pedantic -Wno-long-long -Wextra
+endif
+
+ifeq ($(comp),mingw)
+ CXXFLAGS += -Wno-long-long -Wextra
+endif
ifeq ($(comp),icc)
- CXXFLAGS += -wd383,869,981,10187,10188,11505,11503
+ CXXFLAGS += -wd383,981,1418,1419,10187,10188,11505,11503 -Wcheck -Wabi -Wdeprecated -strict-ansi
endif
ifeq ($(os),osx)
endif
### 3.3 General linker settings
-LDFLAGS += -lpthread $(EXTRALDFLAGS)
+LDFLAGS = -lpthread $(EXTRALDFLAGS)
ifeq ($(os),osx)
LDFLAGS += -arch $(arch)
endif
endif
+ ifeq ($(comp),mingw)
+ CXXFLAGS += -O3
+ endif
+
ifeq ($(comp),icc)
CXXFLAGS += -fast
### 3.8 prefetch
ifeq ($(prefetch),yes)
- CXXFLAGS += -msse -DUSE_PREFETCH
+ CXXFLAGS += -msse
DEPENDFLAGS += -msse
+else
+ CXXFLAGS += -DNO_PREFETCH
endif
### 3.9 bsfq
@echo ""
@echo "gcc > Gnu compiler (default)"
@echo "icc > Intel compiler"
+ @echo "mingw > Gnu compiler with MinGW under Windows"
@echo ""
@echo "Non-standard targets:"
@echo ""
strip:
strip $(EXE)
-install: default
+install:
-mkdir -p -m 755 $(BINDIR)
-cp $(EXE) $(BINDIR)
-strip $(BINDIR)/$(EXE)
clean:
- $(RM) $(EXE) *.o .depend *~ core bench.txt
+ $(RM) $(EXE) $(EXE).exe *.o .depend *~ core bench.txt *.gcda
testrun:
@$(PGOBENCH)
@test "$(prefetch)" = "yes" || test "$(prefetch)" = "no"
@test "$(bsfq)" = "yes" || test "$(bsfq)" = "no"
@test "$(popcnt)" = "yes" || test "$(popcnt)" = "no"
- @test "$(comp)" = "gcc" || test "$(comp)" = "icc"
+ @test "$(comp)" = "gcc" || test "$(comp)" = "icc" || test "$(comp)" = "mingw"
$(EXE): $(OBJS)
$(CXX) -o $@ $(OBJS) $(LDFLAGS)
all
gcc-profile-clean:
- @rm -rf *.gcda bench.txt
+ @rm -rf *.gcda *.gcno bench.txt
icc-profile-prepare:
$(MAKE) ARCH=$(ARCH) COMP=$(COMP) icc-profile-clean
hpux:
$(MAKE) \
- CXX='/opt/aCC/bin/aCC -AA +hpxstd98 -DBIGENDIAN -mt +O3 -DNDEBUG' \
+ CXX='/opt/aCC/bin/aCC -AA +hpxstd98 -DBIGENDIAN -mt +O3 -DNDEBUG -DNO_PREFETCH' \
CXXFLAGS="" \
LDFLAGS="" \
all