1# -*- Makefile -*- 2 3PRODUCT=vtwm 4RELEASEDIR=.release 5RSYNCDIR=$(RELEASEDIR)/$(PRODUCT)-SF-FRS 6SFTPBATCH=$(RELEASEDIR)/sftp.batch 7 8release: 9 @VERSION=`git describe --exact-match --match '[0-9]*' 2>/dev/null`; \ 10 if [ $$? -ne 0 -o "$$VERSION" = "" ]; then echo "Not a tagged version, you may not release"; exit 3; fi; \ 11 if [ `git status --porcelain | wc -l` -gt 0 ]; then echo "Uncommitted changes, you may not release"; exit 2; fi; \ 12 VERSION=$$VERSION $(MAKE) -f Makefile.release subrelease 13 14subrelease: 15 @if [ -z "$$VERSION" ]; then VERSION=`git describe --tags 2>/dev/null`; fi; \ 16 git checkout-index -af --prefix=$(RELEASEDIR)/$(PRODUCT)-$$VERSION/; \ 17 cd $(RELEASEDIR)/$(PRODUCT)-$$VERSION; \ 18 sed -i "s/SUBST/$${VERSION}/" version.c; \ 19 cd ..; \ 20 tar czf $(PRODUCT)-$$VERSION.tar.gz $(PRODUCT)-$$VERSION; \ 21 rm -rf $(RELEASEDIR)/$(PRODUCT)-$$VERSION; \ 22 echo $(RELEASEDIR)/$(PRODUCT)-$$VERSION.tar.gz 23 24install: 25 echo "Please use install-snap install-stable"; exit 1; 26 27install-snap: NAME=snap 28install-snap: install-actual 29 30install-stable: NAME=stable 31install-stable: ALTNAME=snap 32install-stable: install-actual 33 34install-actual: clean release 35 @if [ "$(NAME)" = "" ]; then echo "Please use install-snap install-stable"; exit 1; fi 36 @VERSION=`git describe --exact-match --match '[0-9]*' 2>/dev/null`; \ 37 if [ $$? -ne 0 -o "$$VERSION" = "" ]; then echo "Not a tagged version, you may not install release"; exit 3; fi; \ 38 if [ "$$SFUSER" = "" ]; then echo "Must set SFUSER environmental variable to install "; exit 4; fi; \ 39 mkdir -p $(RSYNCDIR)/ReleaseNotes; \ 40 cp doc/CHANGELOG $(RSYNCDIR)/ReleaseNotes/CHANGELOG-$$VERSION; \ 41 echo "cd /home/frs/project/v/vt/vtwm" > $(SFTPBATCH); \ 42 echo "rm $(PRODUCT)-$(NAME).tar.gz" >> $(SFTPBATCH); \ 43 echo "rm ReleaseNotes/CHANGELOG-$(NAME)" >> $(SFTPBATCH); \ 44 ln -s CHANGELOG-$$VERSION $(RSYNCDIR)/ReleaseNotes/CHANGELOG-$(NAME); \ 45 ln -s $(PRODUCT)-$$VERSION.tar.gz $(RSYNCDIR)/$(PRODUCT)-$(NAME).tar.gz; \ 46 if [ "$(ALTNAME)" != "" ]; then ln -s $(PRODUCT)-$$VERSION.tar.gz $(RSYNCDIR)/$(PRODUCT)-$(ALTNAME).tar.gz; fi; \ 47 if [ "$(ALTNAME)" != "" ]; then echo "rm $(PRODUCT)-$(ALTNAME).tar.gz" >> $(SFTPBATCH); fi; \ 48 if [ "$(ALTNAME)" != "" ]; then ln -s CHANGELOG-$$VERSION $(RSYNCDIR)/ReleaseNotes/CHANGELOG-$(ALTNAME); fi; \ 49 if [ "$(ALTNAME)" != "" ]; then echo "rm ReleaseNotes/CHANGELOG-$(ALTNAME)" >> $(SFTPBATCH); fi; \ 50 cp $(RELEASEDIR)/$(PRODUCT)-$$VERSION.tar.gz $(RSYNCDIR); \ 51 chmod -R u+rwX,g+rwX,o+rX $(RSYNCDIR); \ 52 sftp -b $(SFTPBATCH) $$SFUSER,vtwm@frs.sourceforge.net; \ 53 rsync -vPr --links -e ssh $(RSYNCDIR)/. $$SFUSER,vtwm@frs.sourceforge.net:/home/frs/project/v/vt/vtwm 54 make -f Makefile.release clean 55 56clean: 57 rm -fr $(RELEASEDIR) 58