X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2FMakefile;h=3f9c7a7d51ac366e385cf8a2c100847facf4b269;hp=25436e25d5da58d9837408e7e18f0d0d148c6521;hb=7019cc8e2c5fa4cb347bb531ebae02f10228ff52;hpb=94b3cdd908f68e20a09f67dba40103fd671f5f17 diff --git a/src/Makefile b/src/Makefile index 25436e25..3f9c7a7d 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-2018 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad +# Copyright (C) 2015-2019 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 @@ -22,7 +22,11 @@ ### ========================================================================== ### Executable name +ifeq ($(COMP),mingw) +EXE = stockfish.exe +else EXE = stockfish +endif ### Installation dir definitions PREFIX = /usr/local @@ -34,7 +38,9 @@ PGOBENCH = ./$(EXE) bench ### Object files 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 + search.o thread.o timeman.o tt.o uci.o ucioption.o syzygy/tbprobe.o \ + hashprobe.grpc.pb.o hashprobe.pb.o +CLIOBJS = client.o hashprobe.grpc.pb.o hashprobe.pb.o uci.o ### Establish the operating system name KERNEL = $(shell uname -s) @@ -152,7 +158,7 @@ endif ifeq ($(COMP),gcc) comp=gcc CXX=g++ - CXXFLAGS += -pedantic -Wextra -Wshadow + CXXFLAGS += -pedantic -Wextra ifeq ($(ARCH),armv7) ifeq ($(OS),Android) @@ -277,7 +283,7 @@ endif ### 3.3 Optimization ifeq ($(optimize),yes) - CXXFLAGS += -O3 + CXXFLAGS += -O3 -g ifeq ($(comp),gcc) ifeq ($(OS), Android) @@ -437,7 +443,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: @@ -452,7 +458,7 @@ default: ### Section 5. Private targets ### ========================================================================== -all: $(EXE) .depend +all: $(EXE) client .depend config-sanity: @echo "" @@ -527,8 +533,33 @@ icc-profile-use: EXTRACXXFLAGS='-prof_use -prof_dir ./profdir' \ all +### GRPC + +PROTOS_PATH = . +PROTOC = protoc +GRPC_CPP_PLUGIN = grpc_cpp_plugin +GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)` + +%.grpc.pb.h %.grpc.pb.cc: %.proto + $(PROTOC) -I $(PROTOS_PATH) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $< + +# oh my +%.cpp: %.cc + cp $< $@ + +%.pb.h %.pb.cc: %.proto + $(PROTOC) -I $(PROTOS_PATH) --cpp_out=. $< + +#LDFLAGS += -Wl,-Bstatic -Wl,-\( -lprotobuf -lgrpc++_unsecure -lgrpc_unsecure -lgrpc -lz -Wl,-\) -Wl,-Bdynamic -ldl +LDFLAGS += /usr/local/lib/libprotobuf.a /usr/local/lib/libgrpc++_unsecure.a /usr/local/lib/libgrpc_unsecure.a /usr/local/lib/libgrpc.a -ldl -lz + +client: $(CLIOBJS) + $(CXX) -o $@ $(CLIOBJS) $(LDFLAGS) + +# Other stuff + .depend: - -@$(CXX) $(DEPENDFLAGS) -MM $(OBJS:.o=.cpp) > $@ 2> /dev/null + -@$(CXX) $(DEPENDFLAGS) -MM $(OBJS:.o=.cpp) $(OBJS:.o=.cc) > $@ 2> /dev/null -include .depend