# Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
# Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
#
-# This file is part of Stockfish.
-#
# Stockfish is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
PGOBENCH = ./$(EXE) bench 32 1 10 default depth
### Object files
-OBJS = bitboard.o pawns.o material.o endgame.o evaluate.o main.o \
- misc.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
-
+OBJS = benchmark.o bitbase.o bitboard.o book.o endgame.o evaluate.o main.o \
+ material.o misc.o move.o movegen.o movepick.o pawns.o position.o \
+ search.o thread.o timeman.o tt.o uci.o ucioption.o
### ==========================================================================
### Section 2. High-level Configuration
# 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
+# lto = no/yes --- -flto --- gcc Link Time Optimization
#
# Note that Makefile is space sensitive, so when adding new architectures
# or modifying existing flags, you have to make sure there are no extra spaces
prefetch = yes
bsfq = yes
popcnt = yes
+ lto = yes
endif
ifeq ($(ARCH),x86-32)
CXXFLAGS = -g -Wall -Wcast-qual -fno-exceptions -fno-rtti $(EXTRACXXFLAGS)
ifeq ($(comp),gcc)
- CXXFLAGS += -ansi -pedantic -Wno-long-long -Wextra
+ CXXFLAGS += -ansi -pedantic -Wno-long-long -Wextra -Wshadow
endif
ifeq ($(comp),mingw)
- CXXFLAGS += -Wno-long-long -Wextra
+ CXXFLAGS += -Wextra -Wshadow
endif
ifeq ($(comp),icc)
CXXFLAGS += -DUSE_POPCNT
endif
+### 3.11 lto.
+### Note that this is a mix of compile and link time options
+### because the lto link phase needs access to the optimization flags
+ifeq ($(lto),yes)
+ CXXFLAGS += -flto
+ LDFLAGS += $(CXXFLAGS) -static
+endif
+
### ==========================================================================
### Section 4. Public targets
### ==========================================================================
-default:
- $(MAKE) ARCH=$(ARCH) COMP=$(COMP) build
-
help:
@echo ""
@echo "To compile stockfish, type: "
testrun:
@$(PGOBENCH)
+default:
+ help
+
### ==========================================================================
### Section 5. Private targets
### ==========================================================================