Files
Andy Dixon ccbbd416b7 swaptop 1.0.0
htop-style view of which processes are using swap, and how.
2026-10-07 12:25:29 +01:00

45 lines
1.4 KiB
Makefile

BIN := bin
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
LDFLAGS := -s -w -X main.version=$(VERSION:v%=%)
PREFIX ?= /usr/local
.PHONY: build install man test vet fmt brew-formula repo clean
build:
go build -trimpath -ldflags '$(LDFLAGS)' -o $(BIN)/swaptop .
install: build
install -Dm755 $(BIN)/swaptop $(DESTDIR)$(PREFIX)/bin/swaptop
install -Dm644 docs/swaptop.1 $(DESTDIR)$(PREFIX)/share/man/man1/swaptop.1
man:
man -l docs/swaptop.1
test:
go test ./...
vet:
go vet ./...
fmt:
gofmt -w .
# Homebrew formula for the tagged release. The tag must already be pushed:
# the checksum is of GitHub's source tarball for that tag.
BREW_REPO := https://github.com/andydixon/swaptop
brew-formula:
@set -e; v=$(VERSION); v=$${v#v}; \
case $$v in *-*) echo "brew-formula: HEAD is not exactly a release tag ($$v)"; exit 1;; esac; \
url=$(BREW_REPO)/archive/refs/tags/v$$v.tar.gz; \
sum=$$(curl -fsSL "$$url" | sha256sum | cut -d' ' -f1) || { echo "cannot fetch $$url (tag pushed?)"; exit 1; }; \
mkdir -p $(BIN)/homebrew; \
sed -e '/^#/d' -e "s/@VERSION@/$$v/g" -e "s/@SHA256@/$$sum/" packaging/homebrew/swaptop.rb.in > $(BIN)/homebrew/swaptop.rb; \
echo "wrote $(BIN)/homebrew/swaptop.rb (v$$v, sha256 $$sum)"
# Build .deb/.rpm/Arch packages for the newest tag and publish to repo.dixon.cx.
repo:
packaging/repo.sh
clean:
rm -rf $(BIN)