# Stockfish, a UCI chess playing engine derived from Glaurung 2.1
# Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
# Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad
-# Copyright (C) 2015-2016 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
+# Copyright (C) 2015-2018 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
#
# Stockfish is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
### 3.1 Selecting compiler (default = gcc)
-CXXFLAGS += -Wall -Wcast-qual -std=c++11 $(EXTRACXXFLAGS)
+CXXFLAGS += -Wall -Wcast-qual -fno-exceptions -std=c++11 $(EXTRACXXFLAGS)
DEPENDFLAGS += -std=c++11
LDFLAGS += $(EXTRALDFLAGS)
CXX=clang++
CXXFLAGS += -pedantic -Wextra -Wshadow
ifneq ($(KERNEL),Darwin)
+ifneq ($(KERNEL),OpenBSD)
LDFLAGS += -latomic
+endif
endif
ifeq ($(ARCH),armv7)
CXXFLAGS += -O3
ifeq ($(comp),gcc)
-
- ifeq ($(KERNEL),Darwin)
- ifeq ($(arch),i386)
- CXXFLAGS += -mdynamic-no-pic
- endif
- ifeq ($(arch),x86_64)
- CXXFLAGS += -mdynamic-no-pic
- endif
- endif
-
ifeq ($(OS), Android)
CXXFLAGS += -fno-gcse -mthumb -march=armv7-a -mfloat-abi=softfp
endif
endif
-
- ifeq ($(comp),icc)
+
+ ifeq ($(comp),$(filter $(comp),gcc clang icc))
ifeq ($(KERNEL),Darwin)
CXXFLAGS += -mdynamic-no-pic
endif
endif
-
- ifeq ($(comp),clang)
- ifeq ($(KERNEL),Darwin)
- CXXFLAGS += -flto
- LDFLAGS += $(CXXFLAGS)
- ifeq ($(arch),i386)
- CXXFLAGS += -mdynamic-no-pic
- endif
- ifeq ($(arch),x86_64)
- CXXFLAGS += -mdynamic-no-pic
- endif
- endif
- endif
endif
### 3.4 Bits
### 3.8 Link Time Optimization, it works since gcc 4.5 but not on mingw under Windows.
### This is a mix of compile and link time options because the lto link phase
### needs access to the optimization flags.
-ifeq ($(comp),gcc)
- ifeq ($(optimize),yes)
- ifeq ($(debug),no)
+ifeq ($(optimize),yes)
+ifeq ($(debug), no)
+ ifeq ($(comp),$(filter $(comp),gcc clang))
CXXFLAGS += -flto
LDFLAGS += $(CXXFLAGS)
endif
- endif
-endif
-ifeq ($(comp),mingw)
+ ifeq ($(comp),mingw)
ifeq ($(KERNEL),Linux)
- ifeq ($(optimize),yes)
- ifeq ($(debug),no)
CXXFLAGS += -flto
LDFLAGS += $(CXXFLAGS)
endif
endif
- endif
+endif
endif
### 3.9 Android 5 can only run position independent executables. Note that this