...
1# This is a Makefile which maintains files automatically generated but to be
2# shipped together with other files.
3# You don't have to rebuild these targets by yourself unless you develop
4# grpc-gateway itself.
5
6GO_PLUGIN=bin/protoc-gen-go
7GO_PROTOBUF_REPO=github.com/golang/protobuf
8GO_PLUGIN_PKG=$(GO_PROTOBUF_REPO)/protoc-gen-go
9GO_PTYPES_ANY_PKG=$(GO_PROTOBUF_REPO)/ptypes/any
10SWAGGER_PLUGIN=bin/protoc-gen-swagger
11SWAGGER_PLUGIN_SRC= utilities/doc.go \
12 utilities/pattern.go \
13 utilities/trie.go \
14 protoc-gen-swagger/genswagger/generator.go \
15 protoc-gen-swagger/genswagger/template.go \
16 protoc-gen-swagger/main.go
17SWAGGER_PLUGIN_PKG=./protoc-gen-swagger
18GATEWAY_PLUGIN=bin/protoc-gen-grpc-gateway
19GATEWAY_PLUGIN_PKG=./protoc-gen-grpc-gateway
20GATEWAY_PLUGIN_SRC= utilities/doc.go \
21 utilities/pattern.go \
22 utilities/trie.go \
23 protoc-gen-grpc-gateway \
24 protoc-gen-grpc-gateway/descriptor \
25 protoc-gen-grpc-gateway/descriptor/registry.go \
26 protoc-gen-grpc-gateway/descriptor/services.go \
27 protoc-gen-grpc-gateway/descriptor/types.go \
28 protoc-gen-grpc-gateway/descriptor/grpc_api_configuration.go \
29 protoc-gen-grpc-gateway/descriptor/grpc_api_service.go \
30 protoc-gen-grpc-gateway/generator \
31 protoc-gen-grpc-gateway/generator/generator.go \
32 protoc-gen-grpc-gateway/internal/gengateway \
33 protoc-gen-grpc-gateway/internal/gengateway/doc.go \
34 protoc-gen-grpc-gateway/internal/gengateway/generator.go \
35 protoc-gen-grpc-gateway/internal/gengateway/template.go \
36 protoc-gen-grpc-gateway/httprule \
37 protoc-gen-grpc-gateway/httprule/compile.go \
38 protoc-gen-grpc-gateway/httprule/parse.go \
39 protoc-gen-grpc-gateway/httprule/types.go \
40 protoc-gen-grpc-gateway/main.go
41GATEWAY_PLUGIN_FLAGS?=
42SWAGGER_PLUGIN_FLAGS?=
43
44GOOGLEAPIS_DIR=third_party/googleapis
45OUTPUT_DIR=_output
46
47RUNTIME_PROTO=internal/errors.proto
48RUNTIME_GO=$(RUNTIME_PROTO:.proto=.pb.go)
49
50OPENAPIV2_PROTO=protoc-gen-swagger/options/openapiv2.proto protoc-gen-swagger/options/annotations.proto
51OPENAPIV2_GO=$(OPENAPIV2_PROTO:.proto=.pb.go)
52
53PKGMAP=Mgoogle/protobuf/field_mask.proto=google.golang.org/genproto/protobuf/field_mask,Mgoogle/protobuf/descriptor.proto=$(GO_PLUGIN_PKG)/descriptor,Mexamples/internal/proto/sub/message.proto=github.com/grpc-ecosystem/grpc-gateway/examples/internal/proto/sub
54ADDITIONAL_GW_FLAGS=
55ifneq "$(GATEWAY_PLUGIN_FLAGS)" ""
56 ADDITIONAL_GW_FLAGS=,$(GATEWAY_PLUGIN_FLAGS)
57endif
58ADDITIONAL_SWG_FLAGS=
59ifneq "$(SWAGGER_PLUGIN_FLAGS)" ""
60 ADDITIONAL_SWG_FLAGS=,$(SWAGGER_PLUGIN_FLAGS)
61endif
62SWAGGER_EXAMPLES=examples/internal/proto/examplepb/echo_service.proto \
63 examples/internal/proto/examplepb/a_bit_of_everything.proto \
64 examples/internal/proto/examplepb/wrappers.proto \
65 examples/internal/proto/examplepb/stream.proto \
66 examples/internal/proto/examplepb/unannotated_echo_service.proto \
67 examples/internal/proto/examplepb/use_go_template.proto \
68 examples/internal/proto/examplepb/response_body_service.proto
69SWAGGER_EXAMPLE_MERGE=examples/internal/proto/examplepb/swagger_merge_a.proto \
70 examples/internal/proto/examplepb/swagger_merge_b.proto
71
72EXAMPLES=examples/internal/proto/examplepb/echo_service.proto \
73 examples/internal/proto/examplepb/a_bit_of_everything.proto \
74 examples/internal/proto/examplepb/stream.proto \
75 examples/internal/proto/examplepb/flow_combination.proto \
76 examples/internal/proto/examplepb/non_standard_names.proto \
77 examples/internal/proto/examplepb/wrappers.proto \
78 examples/internal/proto/examplepb/unannotated_echo_service.proto \
79 examples/internal/proto/examplepb/use_go_template.proto \
80 examples/internal/proto/examplepb/response_body_service.proto
81
82GENERATE_UNBOUND_METHODS_EXAMPLE=examples/internal/proto/examplepb/generate_unbound_methods.proto
83
84HELLOWORLD=examples/internal/helloworld/helloworld.proto
85
86EXAMPLE_SVCSRCS=$(EXAMPLES:.proto=.pb.go)
87EXAMPLE_GWSRCS=$(EXAMPLES:.proto=.pb.gw.go)
88EXAMPLE_SWAGGERSRCS=$(SWAGGER_EXAMPLES:.proto=.swagger.json)
89EXAMPLE_SWAGGER_MERGE=examples/internal/proto/examplepb/swagger_merge.swagger.json
90EXAMPLE_DEPS=examples/internal/proto/pathenum/path_enum.proto examples/internal/proto/sub/message.proto examples/internal/proto/sub2/message.proto
91EXAMPLE_DEPSRCS=$(EXAMPLE_DEPS:.proto=.pb.go)
92
93GENERATE_UNBOUND_METHODS_EXAMPLE_SWAGGERSRCS=$(GENERATE_UNBOUND_METHODS_EXAMPLE:.proto=.swagger.json)
94GENERATE_UNBOUND_METHODS_EXAMPLE_SVCSRCS=$(GENERATE_UNBOUND_METHODS_EXAMPLE:.proto=.pb.go)
95GENERATE_UNBOUND_METHODS_EXAMPLE_GWSRCS=$(GENERATE_UNBOUND_METHODS_EXAMPLE:.proto=.pb.gw.go)
96
97HELLOWORLD_SVCSRCS=$(HELLOWORLD:.proto=.pb.go)
98HELLOWORLD_GWSRCS=$(HELLOWORLD:.proto=.pb.gw.go)
99
100RUNTIME_TEST_PROTO=runtime/internal/examplepb/example.proto
101RUNTIME_TEST_SRCS=$(RUNTIME_TEST_PROTO:.proto=.pb.go)
102
103EXAMPLE_CLIENT_DIR=examples/internal/clients
104ECHO_EXAMPLE_SPEC=examples/internal/proto/examplepb/echo_service.swagger.json
105ECHO_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/echo/client.go \
106 $(EXAMPLE_CLIENT_DIR)/echo/response.go \
107 $(EXAMPLE_CLIENT_DIR)/echo/configuration.go \
108 $(EXAMPLE_CLIENT_DIR)/echo/api_echo_service.go \
109 $(EXAMPLE_CLIENT_DIR)/echo/model_examplepb_simple_message.go \
110 $(EXAMPLE_CLIENT_DIR)/echo/model_examplepb_embedded.go
111ABE_EXAMPLE_SPEC=examples/internal/proto/examplepb/a_bit_of_everything.swagger.json
112ABE_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/abe/model_a_bit_of_everything_nested.go \
113 $(EXAMPLE_CLIENT_DIR)/abe/api_a_bit_of_everything_service.go \
114 $(EXAMPLE_CLIENT_DIR)/abe/client.go \
115 $(EXAMPLE_CLIENT_DIR)/abe/api_camel_case_service_name.go \
116 $(EXAMPLE_CLIENT_DIR)/abe/configuration.go \
117 $(EXAMPLE_CLIENT_DIR)/abe/api_echo_rpc.go \
118 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_a_bit_of_everything.go \
119 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_a_bit_of_everything_repeated.go \
120 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_body.go \
121 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_numeric_enum.go \
122 $(EXAMPLE_CLIENT_DIR)/abe/model_examplepb_update_v2_request.go \
123 $(EXAMPLE_CLIENT_DIR)/abe/model_message_path_enum_nested_path_enum.go \
124 $(EXAMPLE_CLIENT_DIR)/abe/model_nested_deep_enum.go \
125 $(EXAMPLE_CLIENT_DIR)/abe/model_pathenum_path_enum.go \
126 $(EXAMPLE_CLIENT_DIR)/abe/model_protobuf_field_mask.go \
127 $(EXAMPLE_CLIENT_DIR)/abe/response.go
128UNANNOTATED_ECHO_EXAMPLE_SPEC=examples/internal/proto/examplepb/unannotated_echo_service.swagger.json
129UNANNOTATED_ECHO_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/unannotatedecho/client.go \
130 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/response.go \
131 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/configuration.go \
132 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/model_examplepb_unannotated_simple_message.go \
133 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/api_unannotated_echo_service.go
134RESPONSE_BODY_EXAMPLE_SPEC=examples/internal/proto/examplepb/response_body_service.swagger.json
135RESPONSE_BODY_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/responsebody/client.go \
136 $(EXAMPLE_CLIENT_DIR)/responsebody/response.go \
137 $(EXAMPLE_CLIENT_DIR)/responsebody/configuration.go \
138 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_repeated_response_body_out.go \
139 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_repeated_response_body_out_response.go \
140 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_repeated_response_strings.go \
141 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_response_body_out.go \
142 $(EXAMPLE_CLIENT_DIR)/responsebody/model_examplepb_response_body_out_response.go \
143 $(EXAMPLE_CLIENT_DIR)/responsebody/model_response_response_type.go \
144 $(EXAMPLE_CLIENT_DIR)/responsebody/api_response_body_service.go
145GENERATE_UNBOUND_METHODS_EXAMPLE_SPEC=examples/internal/proto/examplepb/generate_unbound_methods.swagger.json
146GENERATE_UNBOUND_METHODS_EXAMPLE_SRCS=$(EXAMPLE_CLIENT_DIR)/generateunboundmethods/client.go \
147 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/response.go \
148 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/configuration.go \
149 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/model_examplepb_generate_unbound_methods_simple_message.go \
150 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/api_generate_unbound_methods.go
151
152EXAMPLE_CLIENT_SRCS=$(ECHO_EXAMPLE_SRCS) $(ABE_EXAMPLE_SRCS) $(UNANNOTATED_ECHO_EXAMPLE_SRCS) $(RESPONSE_BODY_EXAMPLE_SRCS) $(GENERATE_UNBOUND_METHODS_EXAMPLE_SRCS)
153SWAGGER_CODEGEN=swagger-codegen
154
155PROTOC_INC_PATH=$(dir $(shell which protoc))/../include
156
157generate: $(RUNTIME_GO)
158
159.SUFFIXES: .go .proto
160
161$(GO_PLUGIN):
162 go build -o $(GO_PLUGIN) $(GO_PLUGIN_PKG)
163
164$(RUNTIME_GO): $(RUNTIME_PROTO) $(GO_PLUGIN)
165 protoc -I $(PROTOC_INC_PATH) --plugin=$(GO_PLUGIN) -I. --go_out=$(PKGMAP),paths=source_relative:. $(RUNTIME_PROTO)
166
167$(OPENAPIV2_GO): $(OPENAPIV2_PROTO) $(GO_PLUGIN)
168 protoc -I $(PROTOC_INC_PATH) --plugin=$(GO_PLUGIN) -I. --go_out=$(PKGMAP),paths=source_relative:. $(OPENAPIV2_PROTO)
169
170$(GATEWAY_PLUGIN): $(RUNTIME_GO) $(GATEWAY_PLUGIN_SRC)
171 go build -o $@ $(GATEWAY_PLUGIN_PKG)
172
173$(SWAGGER_PLUGIN): $(SWAGGER_PLUGIN_SRC) $(OPENAPIV2_GO)
174 go build -o $@ $(SWAGGER_PLUGIN_PKG)
175
176$(EXAMPLE_SVCSRCS): $(GO_PLUGIN) $(EXAMPLES)
177 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(GO_PLUGIN) --go_out=$(PKGMAP),plugins=grpc,paths=source_relative:. $(EXAMPLES)
178$(EXAMPLE_DEPSRCS): $(GO_PLUGIN) $(EXAMPLE_DEPS)
179 protoc -I $(PROTOC_INC_PATH) -I. --plugin=$(GO_PLUGIN) --go_out=$(PKGMAP),plugins=grpc,paths=source_relative:. $(@:.pb.go=.proto)
180
181$(RUNTIME_TEST_SRCS): $(GO_PLUGIN) $(RUNTIME_TEST_PROTO)
182 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(GO_PLUGIN) --go_out=$(PKGMAP),plugins=grpc,paths=source_relative:. $(RUNTIME_TEST_PROTO)
183
184$(EXAMPLE_GWSRCS): ADDITIONAL_GW_FLAGS:=$(ADDITIONAL_GW_FLAGS),grpc_api_configuration=examples/internal/proto/examplepb/unannotated_echo_service.yaml
185$(EXAMPLE_GWSRCS): $(GATEWAY_PLUGIN) $(EXAMPLES)
186 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(GATEWAY_PLUGIN) --grpc-gateway_out=logtostderr=true,allow_repeated_fields_in_body=true,$(PKGMAP)$(ADDITIONAL_GW_FLAGS):. $(EXAMPLES)
187
188$(EXAMPLE_SWAGGERSRCS): ADDITIONAL_SWG_FLAGS:=$(ADDITIONAL_SWG_FLAGS),grpc_api_configuration=examples/internal/proto/examplepb/unannotated_echo_service.yaml
189$(EXAMPLE_SWAGGERSRCS): $(SWAGGER_PLUGIN) $(SWAGGER_EXAMPLES)
190 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(SWAGGER_PLUGIN) --swagger_out=logtostderr=true,allow_repeated_fields_in_body=true,use_go_templates=true,$(PKGMAP)$(ADDITIONAL_SWG_FLAGS):. $(SWAGGER_EXAMPLES)
191
192$(EXAMPLE_SWAGGER_MERGE): $(SWAGGER_PLUGIN) $(SWAGGER_EXAMPLE_MERGE)
193 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(SWAGGER_PLUGIN) --swagger_out=logtostderr=true,allow_repeated_fields_in_body=true,use_go_templates=true,allow_merge=true,merge_file_name=$(EXAMPLE_SWAGGER_MERGE:.swagger.json=),$(PKGMAP):. $(SWAGGER_EXAMPLE_MERGE)
194
195$(GENERATE_UNBOUND_METHODS_EXAMPLE_GWSRCS): $(GATEWAY_PLUGIN) $(GENERATE_UNBOUND_METHODS_EXAMPLE)
196 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(GATEWAY_PLUGIN) --grpc-gateway_out=logtostderr=true,allow_repeated_fields_in_body=true,generate_unbound_methods=true,$(PKGMAP)$(ADDITIONAL_GW_FLAGS):. $(GENERATE_UNBOUND_METHODS_EXAMPLE)
197$(GENERATE_UNBOUND_METHODS_EXAMPLE_SVCSRCS): $(GO_PLUGIN) $(GENERATE_UNBOUND_METHODS_EXAMPLE)
198 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(GO_PLUGIN) --go_out=$(PKGMAP),plugins=grpc,paths=source_relative:. $(GENERATE_UNBOUND_METHODS_EXAMPLE)
199$(GENERATE_UNBOUND_METHODS_EXAMPLE_SWAGGERSRCS): $(SWAGGER_PLUGIN) $(GENERATE_UNBOUND_METHODS_EXAMPLE)
200 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(SWAGGER_PLUGIN) --swagger_out=logtostderr=true,allow_repeated_fields_in_body=true,use_go_templates=true,generate_unbound_methods=true,$(PKGMAP):. $(GENERATE_UNBOUND_METHODS_EXAMPLE)
201
202$(HELLOWORLD_SVCSRCS): $(GO_PLUGIN) $(HELLOWORLD)
203 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(GO_PLUGIN) --go_out=$(PKGMAP),plugins=grpc,paths=source_relative:. $(HELLOWORLD)
204
205$(HELLOWORLD_GWSRCS):
206$(HELLOWORLD_GWSRCS): $(GATEWAY_PLUGIN) $(HELLOWORLD)
207 protoc -I $(PROTOC_INC_PATH) -I. -I$(GOOGLEAPIS_DIR) --plugin=$(GATEWAY_PLUGIN) --grpc-gateway_out=logtostderr=true,allow_repeated_fields_in_body=true,$(PKGMAP)$(ADDITIONAL_GW_FLAGS):. $(HELLOWORLD)
208
209
210$(ECHO_EXAMPLE_SRCS): $(ECHO_EXAMPLE_SPEC)
211 $(SWAGGER_CODEGEN) generate -i $(ECHO_EXAMPLE_SPEC) \
212 -l go -o examples/internal/clients/echo --additional-properties packageName=echo
213 @rm -f $(EXAMPLE_CLIENT_DIR)/echo/README.md \
214 $(EXAMPLE_CLIENT_DIR)/echo/git_push.sh
215$(ABE_EXAMPLE_SRCS): $(ABE_EXAMPLE_SPEC)
216 $(SWAGGER_CODEGEN) generate -i $(ABE_EXAMPLE_SPEC) \
217 -l go -o examples/internal/clients/abe --additional-properties packageName=abe
218 @rm -f $(EXAMPLE_CLIENT_DIR)/abe/README.md \
219 $(EXAMPLE_CLIENT_DIR)/abe/git_push.sh
220$(UNANNOTATED_ECHO_EXAMPLE_SRCS): $(UNANNOTATED_ECHO_EXAMPLE_SPEC)
221 $(SWAGGER_CODEGEN) generate -i $(UNANNOTATED_ECHO_EXAMPLE_SPEC) \
222 -l go -o examples/internal/clients/unannotatedecho --additional-properties packageName=unannotatedecho
223 @rm -f $(EXAMPLE_CLIENT_DIR)/unannotatedecho/README.md \
224 $(EXAMPLE_CLIENT_DIR)/unannotatedecho/git_push.sh
225$(RESPONSE_BODY_EXAMPLE_SRCS): $(RESPONSE_BODY_EXAMPLE_SPEC)
226 $(SWAGGER_CODEGEN) generate -i $(RESPONSE_BODY_EXAMPLE_SPEC) \
227 -l go -o examples/internal/clients/responsebody --additional-properties packageName=responsebody
228 @rm -f $(EXAMPLE_CLIENT_DIR)/responsebody/README.md \
229 $(EXAMPLE_CLIENT_DIR)/responsebody/git_push.sh
230$(GENERATE_UNBOUND_METHODS_EXAMPLE_SRCS): $(GENERATE_UNBOUND_METHODS_EXAMPLE_SPEC)
231 $(SWAGGER_CODEGEN) generate -i $(GENERATE_UNBOUND_METHODS_EXAMPLE_SPEC) \
232 -l go -o examples/internal/clients/generateunboundmethods --additional-properties packageName=generateunboundmethods
233 @rm -f $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/README.md \
234 $(EXAMPLE_CLIENT_DIR)/generateunboundmethods/git_push.sh
235
236examples: $(EXAMPLE_DEPSRCS) $(EXAMPLE_SVCSRCS) $(EXAMPLE_GWSRCS) $(EXAMPLE_SWAGGERSRCS) $(EXAMPLE_SWAGGER_MERGE) $(EXAMPLE_CLIENT_SRCS) $(HELLOWORLD_SVCSRCS) $(HELLOWORLD_GWSRCS) $(GENERATE_UNBOUND_METHODS_EXAMPLE_GWSRCS) $(GENERATE_UNBOUND_METHODS_EXAMPLE_SVCSRCS) $(GENERATE_UNBOUND_METHODS_EXAMPLE_SWAGGERSRCS)
237testproto: $(RUNTIME_TEST_SRCS)
238test: examples testproto
239 go test -short -race ./...
240 go test -race ./examples/internal/integration -args -network=unix -endpoint=test.sock
241changelog:
242 docker run --rm \
243 --interactive \
244 --tty \
245 -e "CHANGELOG_GITHUB_TOKEN=${CHANGELOG_GITHUB_TOKEN}" \
246 -v "$(PWD):/usr/local/src/your-app" \
247 ferrarimarco/github-changelog-generator:1.14.3 \
248 -u grpc-ecosystem \
249 -p grpc-gateway \
250 --author \
251 --compare-link \
252 --github-site=https://github.com \
253 --unreleased-label "**Next release**" \
254 --release-branch=v1 \
255 --future-release=v1.16.0
256lint:
257 golint --set_exit_status ./runtime
258 golint --set_exit_status ./utilities/...
259 golint --set_exit_status ./protoc-gen-grpc-gateway/...
260 golint --set_exit_status ./protoc-gen-swagger/...
261 go vet ./runtime || true
262 go vet ./utilities/...
263 go vet ./protoc-gen-grpc-gateway/...
264 go vet ./protoc-gen-swagger/...
265
266clean:
267 rm -f $(GATEWAY_PLUGIN) $(SWAGGER_PLUGIN)
268distclean: clean
269 rm -f $(GO_PLUGIN)
270realclean: distclean
271 rm -f $(EXAMPLE_SVCSRCS) $(EXAMPLE_DEPSRCS)
272 rm -f $(EXAMPLE_GWSRCS)
273 rm -f $(EXAMPLE_SWAGGERSRCS)
274 rm -f $(EXAMPLE_CLIENT_SRCS)
275 rm -f $(GENERATE_UNBOUND_METHODS_EXAMPLE_GWSRCS)
276 rm -f $(GENERATE_UNBOUND_METHODS_EXAMPLE_SVCSRCS)
277 rm -f $(GENERATE_UNBOUND_METHODS_EXAMPLE_SWAGGERSRCS)
278 rm -f $(HELLOWORLD_SVCSRCS)
279 rm -f $(HELLOWORLD_GWSRCS)
280 rm -f $(OPENAPIV2_GO)
281 rm -f $(RUNTIME_TEST_SRCS)
282
283.PHONY: generate examples test lint clean distclean realclean
View as plain text