3 ## Before making changes here, please take a look at Makeconf
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 ..
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
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
)
54 .PHONY
: cleanup-dist cleanup-rel
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):
61 @
rm -f
dist lisp
/dist $(ESSDIR
)*
63 %.spec
: %.spec.in VERSION
64 sed
's/@@VERSION@@/$(ESSVERSION)/g' $< > $@
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
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'"
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'
95 rpmbuild
-ta
--sign
$(ESSDIR
).
tar.gz