Skip to content

Commit b6fa0a5

Browse files
committed
build targets for local build
Signed-off-by: Avi Deitcher <[email protected]>
1 parent bc821f6 commit b6fa0a5

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

Makefile

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,31 @@ TAG ?= $(shell git log -n 1 --pretty=format:"%H")
44
IMAGE ?= databack/mysql-backup
55
BUILDIMAGE ?= $(IMAGE):build
66
TARGET ?= $(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

1233
push: build
1334
docker tag $(BUILDIMAGE) $(TARGET)

0 commit comments

Comments
 (0)