Makefile 1.7 KB

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