@@ -146,42 +146,26 @@ $(BINDIR)/service-catalog: .init .generate_files cmd/service-catalog
146146
147147# This section contains the code generation stuff
148148# ################################################
149- .generate_exes : $(BINDIR ) /defaulter-gen \
150- $(BINDIR)/deepcopy-gen \
151- $(BINDIR)/conversion-gen \
152- $(BINDIR)/client-gen \
153- $(BINDIR)/lister-gen \
154- $(BINDIR)/informer-gen \
155- $(BINDIR)/openapi-gen
156- touch $@
157-
158- $(BINDIR ) /defaulter-gen : .init
159- $(DOCKER_CMD ) go build -o $@ $(SC_PKG ) /vendor/k8s.io/code-generator/cmd/defaulter-gen
160-
161- $(BINDIR ) /deepcopy-gen : .init
162- $(DOCKER_CMD ) go build -o $@ $(SC_PKG ) /vendor/k8s.io/code-generator/cmd/deepcopy-gen
163-
164- $(BINDIR ) /conversion-gen : .init
165- $(DOCKER_CMD ) go build -o $@ $(SC_PKG ) /vendor/k8s.io/code-generator/cmd/conversion-gen
166-
167- $(BINDIR ) /client-gen : .init
168- $(DOCKER_CMD ) go build -o $@ $(SC_PKG ) /vendor/k8s.io/code-generator/cmd/client-gen
149+ GENERATORS = $(addprefix $(BINDIR ) /, defaulter-gen deepcopy-gen conversion-gen \
150+ client-gen lister-gen informer-gen openapi-gen)
169151
170- $( BINDIR ) /lister-gen : .init
171- $( DOCKER_CMD ) go build -o $@ $( SC_PKG ) /vendor/k8s.io/code-generator/cmd/lister-gen
152+ .PHONY : generators
153+ generators : $( GENERATORS )
172154
173- $(BINDIR ) /informer-gen : .init
174- $(DOCKER_CMD ) go build -o $@ $(SC_PKG ) /vendor/k8s.io/code-generator/cmd/informer-gen
155+ .SECONDEXPANSION :
175156
176- $(BINDIR ) /openapi-gen : vendor/k8s.io/code-generator/cmd/openapi-gen
177- $(DOCKER_CMD ) go build -o $@ $(SC_PKG ) /$^
157+ # We specify broad dependencies for these generator binaries: each one depends
158+ # on everything under its source tree as well as gengo's. This uses GNU Make's
159+ # secondary expansion feature to pass $* to `find`.
160+ $(BINDIR ) /% -gen : $$(shell find vendor/k8s.io/code-generator/cmd/$$* -gen vendor/k8s.io/gengo) .init
161+ $(DOCKER_CMD ) go build -o $@ $(SC_PKG ) /vendor/k8s.io/code-generator/cmd/$* -gen
178162
179163.PHONY : $(BINDIR ) /e2e.test
180164$(BINDIR ) /e2e.test : .init
181165 $(DOCKER_CMD ) go test -c -o $@ $(SC_PKG ) /test/e2e
182166
183167# Regenerate all files if the gen exes changed or any "types.go" files changed
184- .generate_files : .init .generate_exes $(TYPES_FILES )
168+ .generate_files : .init generators $(TYPES_FILES )
185169 # generate apiserver deps
186170 $(DOCKER_CMD ) $(BUILD_DIR ) /update-apiserver-gen.sh
187171 # generate all pkg/client contents
@@ -242,10 +226,10 @@ verify-docs: .init
242226 @echo Running href checker$(SKIP_COMMENT ) :
243227 @$(DOCKER_CMD ) verify-links.sh -s .pkg -s .bundler -s _plugins -s _includes -t $(SKIP_HTTP ) .
244228
245- verify-generated : .init .generate_exes
229+ verify-generated : .init generators
246230 $(DOCKER_CMD ) $(BUILD_DIR ) /update-apiserver-gen.sh --verify-only
247231
248- verify-client-gen : .init .generate_exes
232+ verify-client-gen : .init generators
249233 $(DOCKER_CMD ) $(BUILD_DIR ) /verify-client-gen.sh
250234
251235format : .init
@@ -302,7 +286,6 @@ clean: clean-bin clean-build-image clean-generated clean-coverage
302286
303287clean-bin : .init $(scBuildImageTarget )
304288 $(DOCKER_CMD ) rm -rf $(BINDIR )
305- rm -f .generate_exes
306289
307290clean-build-image : .init $(scBuildImageTarget )
308291 $(DOCKER_CMD ) rm -rf .pkg
0 commit comments