Makefile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. .PHONY: all default install uninstall test build release clean package
  2. PREFIX := /usr
  3. DESTDIR :=
  4. MAJORVERSION := 8
  5. MINORVERSION ?= $(shell git rev-list --count master)
  6. PATCHVERSION := 0
  7. VERSION ?= ${MAJORVERSION}.${MINORVERSION}.${PATCHVERSION}
  8. LDFLAGS := -ldflags '-s -w -X main.version=${VERSION}'
  9. ARCH := $(shell uname -m)
  10. PKGNAME := yay
  11. BINNAME := yay
  12. PACKAGE := ${PKGNAME}_${VERSION}_${ARCH}
  13. export GOPATH=$(shell pwd)/.go
  14. default: build
  15. all: | clean package
  16. install:
  17. install -Dm755 ${BINNAME} $(DESTDIR)$(PREFIX)/bin/${BINNAME}
  18. install -Dm644 doc/${PKGNAME}.8 $(DESTDIR)$(PREFIX)/share/man/man8/${PKGNAME}.8
  19. install -Dm644 completions/bash $(DESTDIR)$(PREFIX)/share/bash-completion/completions/${PKGNAME}
  20. install -Dm644 completions/zsh $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_${PKGNAME}
  21. install -Dm644 completions/fish $(DESTDIR)$(PREFIX)/share/fish/vendor_completions.d/${PKGNAME}.fish
  22. uninstall:
  23. rm -f $(DESTDIR)$(PREFIX)/bin/${BINNAME}
  24. rm -f $(DESTDIR)$(PREFIX)/share/man/man8/${PKGNAME}.8
  25. rm -f $(DESTDIR)$(PREFIX)/share/bash-completion/completions/${PKGNAME}
  26. rm -f $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_${PKGNAME}
  27. rm -f $(DESTDIR)$(PREFIX)/share/fish/vendor_completions.d/${PKGNAME}.fish
  28. test:
  29. gofmt -l *.go
  30. @test -z "$$(gofmt -l *.go)" || (echo "Files need to be linted" && false)
  31. go vet
  32. go test -v
  33. build:
  34. go build -v ${LDFLAGS} -o ${BINNAME}
  35. release: | test build
  36. mkdir ${PACKAGE}
  37. cp ./${BINNAME} ${PACKAGE}/
  38. cp ./doc/${PKGNAME}.8 ${PACKAGE}/
  39. cp ./completions/zsh ${PACKAGE}/
  40. cp ./completions/fish ${PACKAGE}/
  41. cp ./completions/bash ${PACKAGE}/
  42. package: release
  43. tar -czvf ${PACKAGE}.tar.gz ${PACKAGE}
  44. clean:
  45. rm -rf ${PKGNAME}_*
  46. rm -f ${BINNAME}