3 ## Before making changes here, please take a look at Makeconf
6 ## This is the default target, i.e. 'make' and 'make all' are the same.
8 all install clean distclean:
9 @for D in lisp doc etc
; do cd
$$D; $(MAKE
) $@
; cd ..
; done
11 ## the rest of the targets are for ESS developer's use only :
13 ## --- PRE-release ---
15 dist: VERSION RPM.spec
16 cd doc
; $(MAKE
) docs
; cd ..
17 cd lisp
; $(MAKE
) dist; grep
'ess-version' ess-cust.el
; cd ..
20 @echo
"** Committing VERSION, README, ANNOUNCE, info etc **"
21 svn commit
-m
"Updating toplevel files for new version" \
22 VERSION README ANNOUNCE RPM.spec
23 svn commit
-m
"Updating ess-version, info & html for new version" lisp
/ess-cust.el doc
/info doc
/html
24 @echo
"**********************************************************"
25 @echo
"** Making distribution of ESS for release $(ESSVERSION),"
26 @echo
"** from $(ESSDIR)"
27 @echo
"** (must have setup subversion with cached authentication, prior for security)"
28 @echo
"**********************************************************"
29 @echo
"** Exporting Files **"
30 svn checkout
--quiet
$(SVN_URL
)/trunk
$(ESSDIR
)-svn
32 (cd
$(ESSDIR
)-svn
; $(GNUTAR
) cvf
- --exclude
=.svn
--no-wildcards .
) |
(cd
$(ESSDIR
); $(GNUTAR
) xf
- )
33 @echo
"** Clean-up docs, Make docs, and Correct Write Permissions **"
34 CLEANUP
="jcgs techrep dsc2001-rmh philasug user-* Why_* README.*"; \
35 cd
$(ESSDIR
)/doc
; chmod
-R u
+w
$$CLEANUP; rm -rf
$$CLEANUP; \
36 make
all cleanaux
; cd ..
/..
37 chmod u
+w
$(ESSDIR
)/lisp
/ess-site.el
$(ESSDIR
)/Make
*
38 chmod u
+w
$(ESSDIR
)/doc
/Makefile
$(ESSDIR
)/lisp
/Makefile
39 chmod a-w
$(ESSDIR
)/lisp
/*.el
40 # should be newer than 'VERSION' :
41 touch
$(ESSDIR
)/lisp
/ess-cust.el
42 chmod a-w
$(ESSDIR
)/ChangeLog
$(ESSDIR
)/doc
/*
43 @echo
"** Creating .tgz file **"
44 test -f
$(ESSDIR
).tgz
&& rm -rf
$(ESSDIR
).tgz || true
45 $(GNUTAR
) hcvofz
$(ESSDIR
).tgz
$(ESSDIR
)
46 @echo
"** Creating .zip file **"
47 test -f
$(ESSDIR
).zip
&& rm -rf
$(ESSDIR
).zip || true
48 zip
-r
$(ESSDIR
).zip
$(ESSDIR
)
49 # Change of plans: no longer think this is a good idea
50 # Rather, the improved installation docs for xemacs will serve us better
51 # @echo "** Creating .tgz and .zip files for the XEmacs Package System **"
52 # test -f $(ESSDIR)-xemacs-pkg.tgz && rm -rf $(ESSDIR)-xemacs-pkg.tgz || true
53 # test -f $(ESSDIR)-xemacs-pkg.zip && rm -rf $(ESSDIR)-xemacs-pkg.zip || true
54 # cd $(ESSDIR); mv etc ess; mkdir etc; mv ess etc; mkdir info; \
55 # cp doc/info/ess.info info; mv lisp ess; mkdir lisp; mv ess lisp; \
56 # $(GNUTAR) hcvofz ../$(ESSDIR)-xemacs-pkg.tgz etc info lisp; \
57 # zip -r ../$(ESSDIR)-xemacs-pkg.zip etc info lisp; cd ..
61 .PHONY
: cleanup-dist cleanup-rel
63 @echo
"** Cleaning up **"
64 (if
[ -d
$(ESSDIR
) ] ; then \
65 chmod
-R u
+w
$(ESSDIR
) $(ESSDIR
)-svn
&& rm -rf
$(ESSDIR
) $(ESSDIR
)-svn
; fi
)
66 ## should only be called manually (if at all):
68 @
rm -f
dist lisp
/dist $(ESSDIR
)*
70 %.spec
: %.spec.in VERSION
71 sed
's/@@VERSION@@/$(ESSVERSION)/g' $< > $@
76 ## NB: Typically use 'make -W VERSION ChangeLog' before 'make rel'
77 ## since ~~~~~~~~~~~~~~~~~~~~~~~~~
78 ## ChangeLog often ends up newer than VERSION
80 @echo
"** Adding log-entry to ChangeLog file"
81 mv ChangeLog ChangeLog.old
82 (echo
`date "+%Y-%m-%d "` \
83 " ESS Maintainers <ESS-core@stat.math.ethz.ch>" ; \
84 echo
; echo
" * Version $(ESSVERSION) released."; echo
; \
85 cat ChangeLog.old
) > ChangeLog
87 svn commit
-m
'Version $(ESSVERSION)' ChangeLog
89 rel
: ChangeLog
dist tag
90 [ x
$$USER = xmaechler
] ||
(echo
'must be maechler'; exit
1 )
91 @echo
"** Placing .tgz and .zip files **"
92 cp
-p
$(ESSDIR
).tgz
$(ESSDIR
).zip
$(UPLOAD_DIR
)
93 @echo
"** Creating LATEST.IS. file **"
94 rm -f
$(UPLOAD_DIR
)/LATEST.IS.
*
95 touch
$(UPLOAD_DIR
)/LATEST.IS.
$(ESSDIR
)
96 @echo
"If all is perfect, eventually call 'make cleanup-rel'"
99 @echo
"** Tagging the release **"
100 svn cp
-m
'release tagging' $(SVN_URL
)/trunk
$(SVN_URL
)/tags/$(ESSVERSIONTAG
)
102 ## TODO (when MM has GPG set up properly): add this to 'rel'
105 rpmbuild
-ta
--sign
$(ESSDIR
).tgz