yay/Makefile
morganamilo 81bccfd34e
Don't assume the go root
The go root might be in different places if the user is using
a different go binary that is not managed by the system (eg
/usr/local/bin/go). In this case the go binary should be smart enough to
default to it's own go root. Or if there are still problems, it is on
the user to configure it themselves.
2018-09-07 18:56:50 +01:00

60 lines
1.6 KiB
Makefile

.PHONY: all default install uninstall test build release clean
PREFIX := /usr
DESTDIR :=
ifndef VERSION
MAJORVERSION := 8
MINORVERSION ?= $(shell git rev-list --count master)
endif
VERSION := ${MAJORVERSION}.${MINORVERSION}
LDFLAGS := -ldflags '-s -w -X main.version=${VERSION}'
ARCH := $(shell uname -m)
PKGNAME := yay
BINNAME := yay
PACKAGE := ${PKGNAME}_${VERSION}_${ARCH}
export GOPATH=$(shell pwd)/.go
default: build
all: | clean package
install:
install -Dm755 ${BINNAME} $(DESTDIR)$(PREFIX)/bin/${BINNAME}
install -Dm644 doc/${PKGNAME}.8 $(DESTDIR)$(PREFIX)/share/man/man8/${PKGNAME}.8
install -Dm644 completions/bash $(DESTDIR)$(PREFIX)/share/bash-completion/completions/${PKGNAME}
install -Dm644 completions/zsh $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_${PKGNAME}
install -Dm644 completions/fish $(DESTDIR)$(PREFIX)/share/fish/vendor_completions.d/${PKGNAME}.fish
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/${BINNAME}
rm -f $(DESTDIR)$(PREFIX)/share/man/man8/${PKGNAME}.8
rm -f $(DESTDIR)$(PREFIX)/share/bash-completion/completions/${PKGNAME}
rm -f $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_${PKGNAME}
rm -f $(DESTDIR)$(PREFIX)/share/fish/vendor_completions.d/${PKGNAME}.fish
test:
gofmt -l *.go
@test -z "$$(gofmt -l *.go)" || (echo "Files need to be linted" && false)
go vet
go test -v
build:
go build -v ${LDFLAGS} -o ${BINNAME}
release: | test build
mkdir ${PACKAGE}
cp ./${BINNAME} ${PACKAGE}/
cp ./doc/${PKGNAME}.8 ${PACKAGE}/
cp ./completions/zsh ${PACKAGE}/
cp ./completions/fish ${PACKAGE}/
cp ./completions/bash ${PACKAGE}/
package: release
tar -czvf ${PACKAGE}.tar.gz ${PACKAGE}
clean:
rm -rf ${PKGNAME}_*
rm -f ${BINNAME}