refactor: reorganize project in order to include automation #1
1 changed files with 26 additions and 4 deletions
30
Makefile
30
Makefile
|
@ -4,13 +4,13 @@ DISTDIR = $(CURDIR)/dist
|
||||||
TARGETS = linux/amd64 linux/386 linux/arm linux/arm64
|
TARGETS = linux/amd64 linux/386 linux/arm linux/arm64
|
||||||
STATICFILES = README.md LICENSE
|
STATICFILES = README.md LICENSE
|
||||||
|
|
||||||
SRC := $(shell find . -type f -name '*.go' -print) go.mod go.sum
|
SRC := $(shell find . -type f -name '*.go' -not -path './dist/*' -print) go.mod go.sum
|
||||||
GOHOSTOS = $(shell go env GOHOSTOS)
|
GOHOSTOS = $(shell go env GOHOSTOS)
|
||||||
GOHOSTARCH ?= $(shell go env GOHOSTARCH)
|
GOHOSTARCH ?= $(shell go env GOHOSTARCH)
|
||||||
|
|
||||||
GIT_TAG = $(shell git describe --tags --abbrev=0 --exact-match 2>/dev/null)
|
GIT_TAG = $(shell git describe --tags --abbrev=0 --exact-match 2>/dev/null)
|
||||||
GIT_COMMIT = $(shell git rev-parse --short HEAD 2>/dev/null)
|
GIT_COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null)
|
||||||
GIT_STATUS = $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean")
|
GIT_STATUS ?= $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean")
|
||||||
|
|
||||||
ifneq ($(VERSION),)
|
ifneq ($(VERSION),)
|
||||||
BINARY_VERSION = $(VERSION)
|
BINARY_VERSION = $(VERSION)
|
||||||
|
@ -70,11 +70,32 @@ dist: GOARCH=$(GOHOSTARCH)
|
||||||
dist: dist-target
|
dist: dist-target
|
||||||
|
|
||||||
.PHONY: dist-all
|
.PHONY: dist-all
|
||||||
dist-all:
|
dist-all: dist-source
|
||||||
@for target in $(TARGETS); do \
|
@for target in $(TARGETS); do \
|
||||||
$(MAKE) dist-target GOOS=`echo $$target | cut -d / -f 1` GOARCH=`echo $$target | cut -d / -f 2`; \
|
$(MAKE) dist-target GOOS=`echo $$target | cut -d / -f 1` GOARCH=`echo $$target | cut -d / -f 2`; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
.PHONY: dist-source
|
||||||
|
dist-source:
|
||||||
|
@set -e; \
|
||||||
|
if [ -z "$(BINARY_VERSION)" ]; then \
|
||||||
|
echo "No version set"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
rm -rf $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION); \
|
||||||
|
mkdir -p $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION); \
|
||||||
|
for f in $(SRC) $(STATICFILES); do \
|
||||||
|
install -m 644 -D $$f $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION)/$$f; \
|
||||||
|
done; \
|
||||||
|
( \
|
||||||
|
echo "VERSION = ${BINARY_VERSION}"; \
|
||||||
|
echo "GIT_COMMIT = ${GIT_COMMIT}"; \
|
||||||
|
echo "GIT_STATUS = ${GIT_STATUS}"; \
|
||||||
|
cat Makefile; \
|
||||||
|
) > $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION)/Makefile; \
|
||||||
|
cd $(DISTDIR); \
|
||||||
|
tar cJf $(BINNAME)-$(BINARY_VERSION).tar.xz $(BINNAME)-$(BINARY_VERSION)
|
||||||
|
|
||||||
.PHONY: dist-target
|
.PHONY: dist-target
|
||||||
dist-target: build-target
|
dist-target: build-target
|
||||||
@set -e; \
|
@set -e; \
|
||||||
|
@ -82,6 +103,7 @@ dist-target: build-target
|
||||||
echo "No version set"; \
|
echo "No version set"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
|
rm -rf $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION)-$(GOOS)-$(GOARCH); \
|
||||||
mkdir -p $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION)-$(GOOS)-$(GOARCH); \
|
mkdir -p $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION)-$(GOOS)-$(GOARCH); \
|
||||||
cp $(BINDIR)/$(GOOS)-$(GOARCH)/$(BINNAME) $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION)-$(GOOS)-$(GOARCH); \
|
cp $(BINDIR)/$(GOOS)-$(GOARCH)/$(BINNAME) $(DISTDIR)/$(BINNAME)-$(BINARY_VERSION)-$(GOOS)-$(GOARCH); \
|
||||||
for f in $(STATICFILES); do \
|
for f in $(STATICFILES); do \
|
||||||
|
|
Loading…
Reference in a new issue