diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..26801adac --- /dev/null +++ b/Makefile @@ -0,0 +1,49 @@ +# This is a simple Makefile that generates client library source code +# for Google APIs using Protocol Buffers and gRPC for any supported +# language. However, it does not compile the generated code into final +# libraries that can be directly used with application code. +# +# Syntax example: make OUTPUT=./output LANGUAGE=java +# + +# Choose the output directory +OUTPUT ?= ./gens + +# Choose the target language. +LANGUAGE ?= cpp + +# Choose grpc plugin +GRPCPLUGIN ?= /usr/local/bin/grpc_$(LANGUAGE)_plugin + +# Choose the proto include directory. +PROTOINCLUDE ?= /usr/local/include + +# Choose protoc binary +PROTOC ?= protoc + +# Compile the entire repository +# +# NOTE: if "protoc" command is not in the PATH, you need to modify this file. +# + +ifeq ($(LANGUAGE),go) +$(error Go source files are not generated from this repository. See: https://github.com/google/go-genproto) +endif + +FLAGS+= --proto_path=.:$(PROTOINCLUDE) +FLAGS+= --$(LANGUAGE)_out=$(OUTPUT) --grpc_out=$(OUTPUT) +FLAGS+= --plugin=protoc-gen-grpc=$(GRPCPLUGIN) + +SUFFIX:= pb.cc + +DEPS:= $(shell find google $(PROTOINCLUDE)/google/protobuf -type f -name '*.proto' | sed "s/proto$$/$(SUFFIX)/") + +all: $(DEPS) + +%.$(SUFFIX): %.proto + mkdir -p $(OUTPUT) + $(PROTOC) $(FLAGS) $*.proto + +clean: + rm $(patsubst %,$(OUTPUT)/%,$(DEPS)) 2> /dev/null + rm -rd $(OUTPUT) |