X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2FMakefile;h=34264e78e0cef94733a495d516f7a637f459c635;hp=f77db2b61a0b3570c18d6ea5952a23e8aa6388d6;hb=12e79be91039796299187ba1b2f1559552642ea4;hpb=ccd6bad51299cf00e730b2c7db5379bd9720e27c diff --git a/src/Makefile b/src/Makefile index f77db2b6..34264e78 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,7 +1,7 @@ # 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-2017 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 @@ -21,14 +21,12 @@ ### Section 1. General Configuration ### ========================================================================== -### Establish the operating system name -KERNEL = $(shell uname -s) -ifeq ($(KERNEL),Linux) - OS = $(shell uname -o) -endif - ### Executable name +ifeq ($(COMP),mingw) +EXE = stockfish.exe +else EXE = stockfish +endif ### Installation dir definitions PREFIX = /usr/local @@ -42,6 +40,12 @@ OBJS = benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o \ material.o misc.o movegen.o movepick.o pawns.o position.o psqt.o \ search.o thread.o timeman.o tt.o uci.o ucioption.o syzygy/tbprobe.o +### Establish the operating system name +KERNEL = $(shell uname -s) +ifeq ($(KERNEL),Linux) + OS = $(shell uname -o) +endif + ### ========================================================================== ### Section 2. High-level Configuration ### ========================================================================== @@ -204,11 +208,12 @@ ifeq ($(COMP),clang) comp=clang CXX=clang++ CXXFLAGS += -pedantic -Wextra -Wshadow -ifneq ($(KERNEL),Darwin) -ifneq ($(KERNEL),OpenBSD) - LDFLAGS += -latomic -endif -endif + + ifneq ($(KERNEL),Darwin) + ifneq ($(KERNEL),OpenBSD) + LDFLAGS += -latomic + endif + endif ifeq ($(ARCH),armv7) ifeq ($(OS),Android) @@ -279,39 +284,16 @@ ifeq ($(optimize),yes) 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 @@ -349,24 +331,20 @@ endif ### 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 @@ -463,7 +441,7 @@ clean: objclean profileclean # clean binaries and objects objclean: - @rm -f $(EXE) $(EXE).exe *.o ./syzygy/*.o + @rm -f $(EXE) *.o ./syzygy/*.o # clean auxiliary profiling files profileclean: