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