@@ -4,10 +4,31 @@ TAG ?= $(shell git log -n 1 --pretty=format:"%H")
44IMAGE ?= databack/mysql-backup
55BUILDIMAGE ?= $(IMAGE ) :build
66TARGET ?= $(IMAGE ) :$(TAG )
7- ARCH ?= linux/amd64,linux/arm64
7+ OCIPLATFORMS ?= linux/amd64,linux/arm64
8+ LOCALPLATFORMS ?= linux/386 linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 windows/386
9+ DIST ?= dist
10+ GOOS? =$(shell uname -s | tr '[:upper:]' '[:lower:]')
11+ GOARCH? =$(shell uname -m)
12+ BIN ?= $(DIST ) /mysql-backup-$(GOOS ) -$(GOARCH )
813
9- build :
10- docker buildx build -t $(BUILDIMAGE ) --platform $(ARCH ) .
14+ build-docker :
15+ docker buildx build -t $(BUILDIMAGE ) --platform $(OCIPLATFORMS ) .
16+
17+ .PRECIOUS : $(foreach platform,$(LOCALPLATFORMS ) ,$(DIST ) /mysql-backup-$(subst /,-,$(platform ) ) )
18+
19+ build-all : $(foreach platform,$(LOCALPLATFORMS ) ,build-local-$(subst /,-,$(platform ) ) )
20+
21+ build-local-% : $(DIST ) /mysql-backup-% ;
22+
23+ $(DIST ) :
24+ mkdir -p $@
25+
26+ $(DIST ) /mysql-backup-% : GOOS=$(word 1,$(subst -, ,$* ) )
27+ $(DIST ) /mysql-backup-% : GOARCH=$(word 2,$(subst -, ,$* ) )
28+ $(DIST ) /mysql-backup-% : $(DIST )
29+ GOOS=$(GOOS ) GOARCH=$(GOARCH ) go build -o $@ .
30+
31+ build-local : $(BIN )
1132
1233push : build
1334 docker tag $(BUILDIMAGE ) $(TARGET )
0 commit comments