blob: 12ff9e301898d28b814deb1ee373463322da1827 [file] [log] [blame]
David K. Bainbridge10a7a7e2018-01-29 09:54:40 -08001#
2# Copyright 2017 the original author or authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17# Makefile to build all protobuf and gRPC related artifacts
18
19default: build
20
21PROTO_FILES := $(wildcard *.proto)
22PROTO_ALL_FILES := $(PROTO_FILES) $(PROTO_GOOGLE_API)
23PROTO_PB2_FILES := $(foreach f,$(PROTO_FILES),$(subst .proto,_pb2.py,$(f)))
24PROTO_PB2_GOOGLE_API := $(foreach f,$(PROTO_GOOGLE_API),$(subst .proto,_pb2.py,$(f)))
25PROTO_All_PB2_C_FILES := $(foreach f,$(PROTO_ALL_FILES),$(subst .proto,_pb2.pyc,$(f)))
26PROTO_ALL_PB2_GPRC_FILES := $(foreach f,$(PROTO_ALL_FILES),$(subst .proto,_pb2_grpc.py,$(f)))
27PROTO_ALL_DESC_FILES := $(foreach f,$(PROTO_ALL_FILES),$(subst .proto,.desc,$(f)))
28
29# Google API needs to be built from within the third party directory
30#
31google_api:
32 python -m grpc.tools.protoc \
33 -I. \
34 --python_out=. \
35 --grpc_python_out=. \
36 --descriptor_set_out=google/api/annotations.desc \
37 --include_imports \
38 --include_source_info \
39 google/api/annotations.proto google/api/http.proto
40
41build: $(PROTO_PB2_FILES)
42
43%_pb2.py: %.proto
44 python -m grpc.tools.protoc \
45 -I. \
46 -I/protos \
47 --python_out=. \
48 --grpc_python_out=. \
49 --descriptor_set_out=$(basename $<).desc \
50 --include_imports \
51 --include_source_info \
52 $<
53
54clean:
55 rm -f $(PROTO_PB2_FILES) \
56 $(PROTO_ALL_DESC_FILES) \
57 $(PROTO_ALL_PB2_GPRC_FILES) \
58 $(PROTO_All_PB2_C_FILES) \
59 $(PROTO_PB2_GOOGLE_API)