# This Makefile is for library maintainers, not end-developers. # All the generated code is already checked in. API_JSON = $(wildcard ../*/*/*-api.json ../*/*/*/*-api.json) GENERATOR=./google-api-go-generator # Download all API specifications and rebuild Go bindings. # All downloaded files are cached in $TMPDIR for reuse with 'cached' below. all: $(GENERATOR) $(GENERATOR) -cache=false -install -api=* # Reuse cached API specifications in $TMPDIR and rebuild Go bindings. cached: $(GENERATOR) $(GENERATOR) -cache=true -install -api=* # Only rebuild Go bindings, do not modify API specifications. # For every existing */*/*-api.json file, */*/*-gen.go will be built. local: $(API_JSON:-api.json=-gen.go) # Pattern rule for the 'local' target. # Translates otherwise unnamed targets with a -gen.go suffix into the # matching input file with a -api.json suffix. $< is the input file. %-gen.go: %-api.json $(GENERATOR) $(GENERATOR) -api_json_file=$< # Alias to rebuild and install $(GENERATOR) generator: $(GENERATOR) # Marked as .PHONY so that make always invokes go build. $(GENERATOR): go build -o $@ .PHONY: all cached local generator $(GENERATOR)