Makefile 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. SCRIPT_NAME := alpine-make-rootfs
  2. DESTDIR := /
  3. PREFIX := /usr/local
  4. SED := sed
  5. SHA1SUM := sha1sum
  6. ifeq ($(shell uname -s),Darwin)
  7. SED := gsed
  8. SHA1SUM := shasum -a 1
  9. endif
  10. #: Update version in the script and README.adoc to $VERSION.
  11. bump-version:
  12. test -n "$(VERSION)" # $$VERSION
  13. $(SED) -E -i "s/^(readonly VERSION)=.*/\1='$(VERSION)'/" $(SCRIPT_NAME)
  14. $(SED) -E -i "s/^(:version:).*/\1 $(VERSION)/" README.adoc
  15. #: Install the script into $DESTDIR.
  16. install:
  17. mkdir -p $(DESTDIR)$(PREFIX)/bin
  18. install -m 755 $(SCRIPT_NAME) $(DESTDIR)$(PREFIX)/bin/$(SCRIPT_NAME)
  19. #: Update variable :script-sha1: in README.adoc with SHA1 checksum of the script.
  20. readme-update-checksum:
  21. $(SED) -E -i \
  22. -e "s/^(:script-sha1:).*/\1 $(shell $(SHA1SUM) $(SCRIPT_NAME) | cut -d ' ' -f 1)/" \
  23. README.adoc
  24. #: Bump version to $VERSION, create release commit and tag.
  25. release: .check-git-clean | bump-version readme-update-checksum
  26. test -n "$(VERSION)" # $$VERSION
  27. git add .
  28. git commit -m "Release version $(VERSION)"
  29. git tag -s v$(VERSION) -m v$(VERSION)
  30. #: Print list of targets.
  31. help:
  32. @printf '%s\n\n' 'List of targets:'
  33. @$(SED) -En '/^#:.*/{ N; s/^#: (.*)\n([A-Za-z0-9_-]+).*/\2 \1/p }' $(MAKEFILE_LIST) \
  34. | while read label desc; do printf '%-30s %s\n' "$$label" "$$desc"; done
  35. .check-git-clean:
  36. @test -z "$(shell git status --porcelain)" \
  37. || { echo 'You have uncommitted changes!' >&2; exit 1; }
  38. .PHONY: bump-version install readme-update-checksum release help .check-git-clean