Skip to content

Commit 329e079

Browse files
authored
Merge pull request #43 from sshedi/make-fix
Makefile fixes
2 parents bf32365 + 719056e commit 329e079

File tree

1 file changed

+69
-26
lines changed

1 file changed

+69
-26
lines changed

Makefile

Lines changed: 69 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,52 +12,95 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
# Deliverables path
1516
DESTDIR ?= /usr/local
17+
BINDIR ?= $(DESTDIR)/bin
1618

17-
VERSION=$(shell git describe --match 'v[0-9]*' --dirty='.m' --always --tags)
19+
# Tools path
20+
ECHO ?= echo
21+
DOCKER ?= docker
22+
GO ?= go
23+
MKDIR ?= mkdir
24+
TAR ?= tar
25+
INSTALL ?= install
26+
GIT ?= git
27+
28+
TARGET_BIN=containerd-fuse-overlayfs-grpc
29+
30+
VERSION ?= $(shell $(GIT) describe --match 'v[0-9]*' --dirty='.m' --always --tags)
1831
VERSION_TRIMMED := $(VERSION:v%=%)
19-
REVISION=$(shell git rev-parse HEAD)$(shell if ! git diff --no-ext-diff --quiet --exit-code; then echo .m; fi)
32+
REVISION ?= $(shell $(GIT) rev-parse HEAD)$(shell if ! $(GIT) diff --no-ext-diff --quiet --exit-code; then $(ECHO) .m; fi)
2033

21-
PKG_MAIN := github.com/containerd/fuse-overlayfs-snapshotter/cmd/containerd-fuse-overlayfs-grpc
22-
PKG_VERSION := github.com/containerd/fuse-overlayfs-snapshotter/cmd/containerd-fuse-overlayfs-grpc/version
34+
PKG_MAIN := github.com/containerd/fuse-overlayfs-snapshotter/cmd/$(TARGET_BIN)
35+
PKG_VERSION := github.com/containerd/fuse-overlayfs-snapshotter/cmd/$(TARGET_BIN)/version
2336

24-
GO ?= go
2537
export GO_BUILD=GO111MODULE=on CGO_ENABLED=0 $(GO) build -ldflags "-s -w -X $(PKG_VERSION).Version=$(VERSION) -X $(PKG_VERSION).Revision=$(REVISION)"
2638

27-
bin/containerd-fuse-overlayfs-grpc:
39+
bin/$(TARGET_BIN):
2840
$(GO_BUILD) -o $@ $(PKG_MAIN)
2941

42+
all: binaries
43+
44+
help:
45+
@$(ECHO) "Usage: make <target>"
46+
@$(ECHO)
47+
@$(ECHO) " * 'install' - Install binaries to system locations."
48+
@$(ECHO) " * 'uninstall' - Uninstall binaries from system."
49+
@$(ECHO) " * 'binaries' - Build $(TARGET_BIN)."
50+
@$(ECHO) " * 'test' - Run tests."
51+
@$(ECHO) " * 'clean' - Clean artifacts."
52+
@$(ECHO) " * 'help' - Show this help message."
53+
54+
binaries: bin/$(TARGET_BIN)
55+
56+
$(TARGET_BIN):
57+
$(GO_BUILD) -o $(CURDIR)/bin/$@ $(PKG_MAIN)
58+
59+
binaries: $(TARGET_BIN)
60+
3061
install:
31-
install bin/containerd-fuse-overlayfs-grpc $(DESTDIR)/bin
62+
$(INSTALL) -D -m 755 $(CURDIR)/bin/$(TARGET_BIN) $(BINDIR)/$(TARGET_BIN)
3263

3364
uninstall:
34-
rm -f $(DESTDIR)/bin/containerd-fuse-overlayfs-grpc
65+
$(RM) $(BINDIR)/$(TARGET_BIN)
3566

3667
clean:
37-
rm -rf bin
68+
$(RM) -r $(CURDIR)/bin $(CURDIR)/_output
69+
70+
TEST_DOCKER_IMG_TAG=containerd-fuse-overlayfs-test
3871

3972
test:
40-
DOCKER_BUILDKIT=1 docker build -t containerd-fuse-overlayfs-test --build-arg FUSEOVERLAYFS_COMMIT=${FUSEOVERLAYFS_COMMIT} .
41-
docker run --rm containerd-fuse-overlayfs-test fuse-overlayfs -V
42-
docker run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/fuse containerd-fuse-overlayfs-test
43-
docker rmi containerd-fuse-overlayfs-test
73+
DOCKER_BUILDKIT=1 $(DOCKER) build -t $(TEST_DOCKER_IMG_TAG) --build-arg FUSEOVERLAYFS_COMMIT=${FUSEOVERLAYFS_COMMIT} .
74+
$(DOCKER) run --rm $(TEST_DOCKER_IMG_TAG) fuse-overlayfs -V
75+
$(DOCKER) run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/fuse $(TEST_DOCKER_IMG_TAG)
76+
$(DOCKER) rmi $(TEST_DOCKER_IMG_TAG)
4477

4578
_test:
46-
go test -exec rootlesskit -test.v -test.root
79+
$(GO) test -exec rootlesskit -test.v -test.root
4780

4881
TAR_FLAGS=--transform 's/.*\///g' --owner=0 --group=0
4982

83+
ARTIFACT_NAME=containerd-fuse-overlayfs-$(VERSION_TRIMMED)
84+
5085
artifacts: clean
51-
mkdir -p _output
52-
GOOS=linux GOARCH=amd64 make
53-
tar $(TAR_FLAGS) -czvf _output/containerd-fuse-overlayfs-$(VERSION_TRIMMED)-linux-amd64.tar.gz bin/*
54-
GOOS=linux GOARCH=arm64 make
55-
tar $(TAR_FLAGS) -czvf _output/containerd-fuse-overlayfs-$(VERSION_TRIMMED)-linux-arm64.tar.gz bin/*
86+
$(MKDIR) -p _output
87+
GOOS=linux GOARCH=amd64 make
88+
$(TAR) $(TAR_FLAGS) -czvf _output/$(ARTIFACT_NAME)-linux-amd64.tar.gz $(CURDIR)/bin/*
89+
GOOS=linux GOARCH=arm64 make
90+
$(TAR) $(TAR_FLAGS) -czvf _output/$(ARTIFACT_NAME)-linux-arm64.tar.gz $(CURDIR)/bin/*
5691
GOOS=linux GOARCH=arm GOARM=7 make
57-
tar $(TAR_FLAGS) -czvf _output/containerd-fuse-overlayfs-$(VERSION_TRIMMED)-linux-arm-v7.tar.gz bin/*
58-
GOOS=linux GOARCH=ppc64le make
59-
tar $(TAR_FLAGS) -czvf _output/containerd-fuse-overlayfs-$(VERSION_TRIMMED)-linux-ppc64le.tar.gz bin/*
60-
GOOS=linux GOARCH=s390x make
61-
tar $(TAR_FLAGS) -czvf _output/containerd-fuse-overlayfs-$(VERSION_TRIMMED)-linux-s390x.tar.gz bin/*
62-
63-
.PHONY: bin/containerd-fuse-overlayfs-grpc install uninstall clean test _test artifacts
92+
$(TAR) $(TAR_FLAGS) -czvf _output/$(ARTIFACT_NAME)-linux-arm-v7.tar.gz $(CURDIR)/bin/*
93+
GOOS=linux GOARCH=ppc64le make
94+
$(TAR) $(TAR_FLAGS) -czvf _output/$(ARTIFACT_NAME)-linux-ppc64le.tar.gz $(CURDIR)/bin/*
95+
GOOS=linux GOARCH=s390x make
96+
$(TAR) $(TAR_FLAGS) -czvf _output/$(ARTIFACT_NAME)-linux-s390x.tar.gz $(CURDIR)/bin/*
97+
98+
.PHONY: \
99+
$(TARGET_BIN) \
100+
install \
101+
uninstall \
102+
clean \
103+
test \
104+
_test \
105+
artifacts \
106+
help

0 commit comments

Comments
 (0)