Skip to content
This repository was archived by the owner on May 6, 2022. It is now read-only.

Commit 0591dc4

Browse files
vink8s-ci-robot
authored andcommitted
Add some dependency logic around generators. (#1966)
This isn't 100% correct, but it's a pretty good approximation. Specifically, it doesn't know about transitive dependencies from other go packages. But it'll rebuild a generator if any code inside its package changes (or build them all if anything in gengo changes).
1 parent 94100a8 commit 0591dc4

File tree

1 file changed

+13
-30
lines changed

1 file changed

+13
-30
lines changed

Makefile

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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

251235
format: .init
@@ -302,7 +286,6 @@ clean: clean-bin clean-build-image clean-generated clean-coverage
302286

303287
clean-bin: .init $(scBuildImageTarget)
304288
$(DOCKER_CMD) rm -rf $(BINDIR)
305-
rm -f .generate_exes
306289

307290
clean-build-image: .init $(scBuildImageTarget)
308291
$(DOCKER_CMD) rm -rf .pkg

0 commit comments

Comments
 (0)