release.mk 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # to build official release tarballs, handle tagging and publish.
  2. # signing key
  3. gpgsignkey=
  4. project=corosync-qdevice
  5. all: checks setup tag tarballs sha256 sign
  6. checks:
  7. ifeq (,$(version))
  8. @echo ERROR: need to define version=
  9. @exit 1
  10. endif
  11. @if [ ! -d .git ]; then \
  12. echo This script needs to be executed from top level cluster git tree; \
  13. exit 1; \
  14. fi
  15. setup: checks
  16. ./autogen.sh
  17. ./configure
  18. make maintainer-clean
  19. tag: setup ./tag-$(version)
  20. tag-$(version):
  21. ifeq (,$(release))
  22. @echo Building test release $(version), no tagging
  23. else
  24. git tag -a -m "v$(version) release" v$(version) HEAD
  25. @touch $@
  26. endif
  27. tarballs: tag
  28. ./autogen.sh
  29. ./configure
  30. make distcheck
  31. sha256: tarballs $(project)-$(version).sha256
  32. $(project)-$(version).sha256:
  33. ifeq (,$(release))
  34. @echo Building test release $(version), no sha256
  35. else
  36. sha256sum $(project)-$(version)*tar* | sort -k2 > $@
  37. endif
  38. sign: sha256 $(project)-$(version).sha256.asc
  39. $(project)-$(version).sha256.asc: $(project)-$(version).sha256
  40. ifeq (,$(gpgsignkey))
  41. @echo No GPG signing key defined
  42. else
  43. ifeq (,$(release))
  44. @echo Building test release $(version), no sign
  45. else
  46. gpg --default-key $(gpgsignkey) \
  47. --detach-sign \
  48. --armor \
  49. $<
  50. endif
  51. endif
  52. publish:
  53. ifeq (,$(release))
  54. @echo Building test release $(version), no publishing!
  55. else
  56. @echo CHANGEME git push --tags origin
  57. @echo CHANGEME scp $(project)-$(version).* \
  58. fedorahosted.org:$(project)
  59. endif
  60. clean:
  61. rm -rf $(project)-* tag-*