*** empty log message ***
[ess.git] / Makefile
blob143433a8a0ce9b0fee5bb5c7886501e65f153eb0
1 ## Top Level Makefile
3 ## Before making changes here, please take a look at Makeconf
4 include ./Makeconf
6 Subdirs = lisp doc
8 ## This is the default target, i.e. 'make' and 'make all' are the same.
10 all install clean distclean:
11 @for D in $(Subdirs); do cd $$D; $(MAKE) $@; cd ..; done
13 ## the rest of the targets are for ESS developer's use only :
15 ## --- PRE-release ---
17 dist: VERSION RPM.spec
18 cd doc; $(MAKE) docs; cd ..
19 cd lisp; $(MAKE) dist; grep 'ess-version' ess-cust.el; cd ..
20 $(MAKE) cleanup-dist
21 svn cleanup
22 @echo "** Committing VERSION, README, ANNOUNCE, info etc **"
23 svn commit -m "Updating toplevel files for new version" \
24 VERSION README ANNOUNCE RPM.spec
25 svn commit -m "Updating ess-version, info & html for new version" lisp/ess-cust.el doc/info doc/html
26 @echo "**********************************************************"
27 @echo "** Making distribution of ESS for release $(ESSVERSION),"
28 @echo "** from $(ESSDIR)"
29 @echo "** (must have setup subversion with cached authentication, prior for security)"
30 @echo "**********************************************************"
31 @echo "** Exporting Files **"
32 svn checkout --quiet $(SVN_URL)/trunk $(ESSDIR)-svn
33 mkdir -p $(ESSDIR)
34 (cd $(ESSDIR)-svn; tar cvf - --exclude=.svn --no-wildcards .) | (cd $(ESSDIR); tar xf - )
35 @echo "** Clean-up docs, Make docs, and Correct Write Permissions **"
36 CLEANUP="jcgs techrep dsc2001-rmh philasug user-* Why_* README.*"; \
37 cd $(ESSDIR)/doc; chmod -R u+w $$CLEANUP; rm -rf $$CLEANUP; \
38 make all cleanaux ; cd ../..
39 chmod u+w $(ESSDIR)/lisp/ess-site.el $(ESSDIR)/Make*
40 chmod u+w $(ESSDIR)/doc/Makefile $(ESSDIR)/lisp/Makefile
41 chmod a-w $(ESSDIR)/lisp/*.el
42 # should be newer than 'VERSION' :
43 touch $(ESSDIR)/lisp/ess-cust.el
44 chmod a-w $(ESSDIR)/ChangeLog $(ESSDIR)/doc/*
45 test -f $(ESSDIR).tar.gz && rm -rf $(ESSDIR).tar.gz || true
46 @echo "** Creating tar file **"
47 tar hcvofz $(ESSDIR).tar.gz $(ESSDIR)
48 test -f $(ESSDIR).zip && rm -rf $(ESSDIR).zip || true
49 @echo "** Creating zip file **"
50 zip -r $(ESSDIR).zip $(ESSDIR)
51 $(MAKE) cleanup-dist
52 touch $@
54 .PHONY: cleanup-dist cleanup-rel
55 cleanup-dist:
56 @echo "** Cleaning up **"
57 (if [ -d $(ESSDIR) ] ; then \
58 chmod -R u+w $(ESSDIR) $(ESSDIR)-svn && rm -rf $(ESSDIR) $(ESSDIR)-svn; fi)
59 ## should only be called manually (if at all):
60 cleanup-rel:
61 @rm -f dist lisp/dist $(ESSDIR)*
63 %.spec: %.spec.in VERSION
64 sed 's/@@VERSION@@/$(ESSVERSION)/g' $< > $@
67 ## --- RELEASE ---
69 ChangeLog: VERSION
70 @echo "** Adding log-entry to ChangeLog file"
71 mv ChangeLog ChangeLog.old
72 (echo `date "+%Y-%m-%d "` \
73 " ESS Maintainers <ESS-core@stat.math.ethz.ch>" ; \
74 echo; echo " * Version $(ESSVERSION) released."; echo; \
75 cat ChangeLog.old ) > ChangeLog
76 @rm ChangeLog.old
77 svn commit -m 'Version $(ESSVERSION)' ChangeLog
79 rel: ChangeLog dist tag
80 [ x$$USER = xmaechler ] || (echo 'must be maechler'; exit 1 )
81 @echo "** Placing tar and zip files **"
82 cp -p $(ESSDIR).tar.gz $(ESSDIR).zip $(UPLOAD_DIR)
83 @echo "** Creating LATEST.IS. file **"
84 rm -f $(UPLOAD_DIR)/LATEST.IS.*
85 touch $(UPLOAD_DIR)/LATEST.IS.$(ESSDIR)
86 @echo "If all is perfect, eventually call 'make cleanup-rel'"
88 tag:
89 @echo "** Tagging the release **"
90 svn cp -m'release tagging' $(SVN_URL)/trunk $(SVN_URL)/tags/$(ESSVERSIONTAG)
92 ## TODO (when MM has GPG set up properly): add this to 'rel'
93 .PHONY: buildrpm
94 buildrpm: dist
95 rpmbuild -ta --sign $(ESSDIR).tar.gz