12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # 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)
|