blob: 15b3c58136b4e40af8626c692038d5ab11972591 [file] [log] [blame]
# 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=*
go test . -v
# 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)