1+ OTEL_DOCKER_PROTOBUF ?= otel/build-protobuf:0.11.0
2+ BUF_DOCKER ?= bufbuild/buf:1.7.0
3+
4+ PROTOC := docker run --rm -u ${shell id -u} -v${PWD}:${PWD} -w${PWD} ${OTEL_DOCKER_PROTOBUF} --proto_path=${PWD}/src
5+
6+
7+ PROTO_GEN_GO_DIR ?= gen-go
8+ PROTO_GEN_PYTHON_DIR ?= gen-python
9+ PROTO_GEN_RUBY_DIR ?= gen-ruby
10+ PROTO_GEN_OPENAPI_DIR ?= gen-openapi
11+
12+ # Generate gRPC/Protobuf implementation for Go.
13+ .PHONY : gen-go
14+ gen-go :
15+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/agent/common/v1/common.proto
16+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/resource/v1/resource.proto
17+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/metrics/v1/metrics.proto
18+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/stats/v1/stats.proto
19+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/trace/v1/trace.proto
20+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/trace/v1/trace_config.proto
21+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/agent/common/v1/common.proto
22+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/agent/metrics/v1/metrics_service.proto
23+ $(PROTOC ) --go_out=plugins=grpc:./$(PROTO_GEN_GO_DIR ) opencensus/proto/agent/trace/v1/trace_service.proto
24+ $(PROTOC ) --grpc-gateway_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/trace/v1/trace_service_http.yaml:./$(PROTO_GEN_GO_DIR ) opencensus/proto/agent/trace/v1/trace_service.proto
25+ $(PROTOC ) --grpc-gateway_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/metrics/v1/metrics_service_http.yaml:./$(PROTO_GEN_GO_DIR ) opencensus/proto/agent/metrics/v1/metrics_service.proto
26+ mv $(PROTO_GEN_GO_DIR ) /github.com/census-instrumentation/opencensus-proto/gen-go/* $(PROTO_GEN_GO_DIR )
27+ rm -fr $(PROTO_GEN_GO_DIR ) /github.com
28+
29+ # Generate gRPC/Protobuf implementation for Go.
30+ .PHONY : gen-python
31+ gen-python :
32+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/agent/common/v1/common.proto
33+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/resource/v1/resource.proto
34+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/metrics/v1/metrics.proto
35+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/stats/v1/stats.proto
36+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/trace/v1/trace.proto
37+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/trace/v1/trace_config.proto
38+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/agent/common/v1/common.proto
39+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) --grpc-python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/agent/metrics/v1/metrics_service.proto
40+ $(PROTOC ) --python_out=./$(PROTO_GEN_PYTHON_DIR ) --grpc-python_out=./$(PROTO_GEN_PYTHON_DIR ) opencensus/proto/agent/trace/v1/trace_service.proto
41+
42+ # Generate gRPC/Protobuf implementation for Go.
43+ .PHONY : gen-ruby
44+ gen-ruby :
45+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/agent/common/v1/common.proto
46+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/resource/v1/resource.proto
47+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/metrics/v1/metrics.proto
48+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/stats/v1/stats.proto
49+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/trace/v1/trace.proto
50+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/trace/v1/trace_config.proto
51+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/agent/common/v1/common.proto
52+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) --grpc-ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/agent/metrics/v1/metrics_service.proto
53+ $(PROTOC ) --ruby_out=./$(PROTO_GEN_RUBY_DIR ) --grpc-ruby_out=./$(PROTO_GEN_RUBY_DIR ) opencensus/proto/agent/trace/v1/trace_service.proto
54+
55+ # Generate OpenApi (Swagger) documentation file for grpc-gateway endpoints.
56+ .PHONY : gen-openapi
57+ gen-openapi :
58+ $(PROTOC ) --openapiv2_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/trace/v1/trace_service_http.yaml:$(PROTO_GEN_OPENAPI_DIR ) opencensus/proto/agent/trace/v1/trace_service.proto
59+ $(PROTOC ) --openapiv2_out=logtostderr=true,grpc_api_configuration=src/opencensus/proto/agent/metrics/v1/metrics_service_http.yaml:$(PROTO_GEN_OPENAPI_DIR ) opencensus/proto/agent/metrics/v1/metrics_service.proto
0 commit comments