SHELL=/usr/bin/env bash NAME=minify CMD=./cmd/minify TARGETS=linux_amd64 linux_arm64 darwin_amd64 darwin_arm64 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 "ERROR: commit is not tagged with a version"; \ echo ""; \ exit 1; \ 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