57 lines
1.4 KiB
Makefile
57 lines
1.4 KiB
Makefile
NAME=minify
|
|
CMD=./cmd/minify
|
|
TARGETS=linux_amd64 darwin_amd64 freebsd_amd64 netbsd_amd64 openbsd_amd64 windows_amd64
|
|
VERSION=`git describe --tags`
|
|
FLAGS=-ldflags "-s -w -X 'main.Version=${VERSION}'" -trimpath
|
|
ENVS=GO111MODULES=on CGO_ENABLED=0
|
|
|
|
all: install
|
|
|
|
install:
|
|
echo "Installing ${VERSION}"
|
|
${ENVS} go install ${FLAGS} ./cmd/minify
|
|
. cmd/minify/bash_completion
|
|
|
|
release:
|
|
TAG=$(shell git describe --tags --exact-match 2> /dev/null);
|
|
if [ "${.SHELLSTATUS}" -eq 0 ]; then \
|
|
echo "Releasing ${VERSION}"; \
|
|
else \
|
|
echo "WARNING: commit is not tagged with a version"; \
|
|
echo ""; \
|
|
fi
|
|
rm -rf dist
|
|
mkdir -p dist
|
|
for t in ${TARGETS}; do \
|
|
echo Building $$t...; \
|
|
mkdir dist/$$t; \
|
|
os=$$(echo $$t | cut -f1 -d_); \
|
|
arch=$$(echo $$t | cut -f2 -d_); \
|
|
${ENVS} GOOS=$$os GOARCH=$$arch go build ${FLAGS} -o dist/$$t/${NAME} ${CMD}; \
|
|
\
|
|
cp LICENSE dist/$$t/.; \
|
|
cp cmd/minify/README.md dist/$$t/.; \
|
|
if [ "$$os" == "windows" ]; then \
|
|
mv dist/$$t/${NAME} dist/$$t/${NAME}.exe; \
|
|
zip -jq dist/${NAME}_$$t.zip dist/$$t/*; \
|
|
cd dist; \
|
|
sha256sum ${NAME}_$$t.zip >> checksums.txt; \
|
|
cd ..; \
|
|
else \
|
|
cp cmd/minify/bash_completion dist/$$t/.; \
|
|
cd dist/$$t; \
|
|
tar -cf - * | gzip -9 > ../${NAME}_$$t.tar.gz; \
|
|
cd ..; \
|
|
sha256sum ${NAME}_$$t.tar.gz >> checksums.txt; \
|
|
cd ..; \
|
|
fi; \
|
|
rm -rf dist/$$t; \
|
|
done
|
|
|
|
clean:
|
|
echo "Cleaning dist/"
|
|
rm -rf dist
|
|
|
|
.PHONY: install release clean
|
|
.SILENT: install release clean
|