BUILDSTAMPS := docker/genbindings.docker-buildstamp DOCKER := docker SHELL := /bin/bash # DOCKEREXEC runs the target command in the `genbindings` docker container. # It mounts in the current GOCACHE and GOMODCACHE. DOCKEREXEC = mkdir -p "$$(go env GOCACHE)" && \ mkdir -p "$$(go env GOMODCACHE)" && \ $(DOCKER) run \ --user "$$(id -u):$$(id -g)" \ -v "$$(go env GOCACHE):/.cache/go-build" \ -v "$$(go env GOMODCACHE):/go/pkg/mod" \ -v "$$PWD:/src" \ -w /src \ miqt/genbindings:latest \ /bin/bash -c .PHONY: all all: genbindings docker/genbindings.docker-buildstamp: docker/genbindings.Dockerfile $(DOCKER) build -t miqt/genbindings:latest -f docker/genbindings.Dockerfile . touch $@ .PHONY: clean clean: $(DOCKER) image rm -f miqt/genbindings:latest rm -f $(BUILDSTAMPS) .PHONY: genbindings genbindings: $(BUILDSTAMPS) $(DOCKEREXEC) 'cd cmd/genbindings && go build && ./genbindings' .PHONY: build-all build-all: $(BUILDSTAMPS) $(DOCKEREXEC) 'go build ./...'