OUTPUT ?= ./gens
LANGUAGE ?= cpp
GRPCPLUGIN ?= /usr/local/bin/grpc_$(LANGUAGE)_plugin
PROTOINCLUDE ?= /usr/local/include
PROTOC ?= protoc
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)