1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
.SHELLFLAGS = -ec
PACKAGES ?= mountinfo mount symlink
BINDIR ?= _build/bin
CROSS ?= linux/arm linux/arm64 linux/ppc64le linux/s390x \
freebsd/amd64 openbsd/amd64 darwin/amd64 darwin/arm64 windows/amd64
.PHONY: all
all: lint test cross
.PHONY: test
test:
for p in $(PACKAGES); do \
(cd $$p && go test -v .); \
done
.PHONY: lint
lint: $(BINDIR)/golangci-lint
$(BINDIR)/golangci-lint version
for p in $(PACKAGES); do \
(cd $$p && go mod download \
&& ../$(BINDIR)/golangci-lint run); \
done
$(BINDIR)/golangci-lint: $(BINDIR)
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(BINDIR) v1.31.0
$(BINDIR):
mkdir -p $(BINDIR)
.PHONY: cross
cross:
for osarch in $(CROSS); do \
export GOOS=$${osarch%/*} GOARCH=$${osarch#*/}; \
echo "# building for $$GOOS/$$GOARCH"; \
for p in $(PACKAGES); do \
(cd $$p && go build .); \
done; \
done
|