123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- .PHONY: p g html_manual html_guide \
- testrelease release fixrelease \
- relup makerelease sync_release sync_manual \
- distfile pkg push pushtag pushreleasetag
- .NOTPARALLEL: .PHONY
- # Below here are special targets for maintenance only
- p: pdf
- open doc/org.pdf
- g: pdf
- open doc/orgguide.pdf
- html_manual html_guide:
- $(MAKE) -C doc $(@:html_%=%)
- testrelease:
- git checkout -b testrelease origin/maint
- git merge -s recursive -X theirs master
- UTILITIES/set-version.pl testing
- git commit -a -m "Release testing"
- make distfile TAG=testversion
- make cleanrel
- rm -rf org-testversion*
- git reset --hard
- git checkout master
- git branch -D testrelease
- # The following target makes a full release for the stuff that is
- # currently on master. Do it like this:
- #
- # make release TAG=7.01
- release:
- git checkout maint
- git merge -s recursive -X theirs master
- UTILITIES/set-version.pl $(TAG)
- git commit -a -m "Release $(TAG)"
- make relup TAG=$(TAG)
- make cleanrel
- rm -rf org-$(TAG)
- rm -f org-$(TAG)*.zip
- rm -f org-$(TAG)*.tar.gz
- make pushreleasetag TAG=$(TAG)
- git push -f origin maint
- git checkout master
- git merge -s ours maint
- UTILITIES/set-version.pl -a $(TAG)
- git commit -a -m "Update website to show $(TAG) as current release"
- git push
- # The following target makes a release, but from the stuff that is on
- # maint, not from the stuff that is on master. The idea is that it pushes
- # out a minor fix into a minor update, while development on master
- # already went full steam ahead. To make a micro-relesse, cherry-pick
- # the necessary changes into maint, then run (with proper version number)
- # This is just like release, but we skip the step which merges master
- # into maint.
- #
- # make fixrelease TAG=7.01.02
- fixrelease:
- git checkout maint
- git merge -s recursive -X theirs master
- UTILITIES/set-version.pl $(TAG)
- git commit -a -m "Release $(TAG)"
- make relup TAG=$(TAG)
- make cleanrel
- rm -rf org-$(TAG)
- rm org-$(TAG)*.zip
- rm org-$(TAG)*.tar.gz
- make pushreleasetag TAG=$(TAG)
- git push -f origin maint
- git checkout master
- git merge -s ours maint
- UTILITIES/set-version.pl -o $(TAG)
- git commit -a -m "Update website to show $(TAG) as current release"
- git push
- # ~$ make relup only makes sense from orgmode.org server
- # Don't call it from your computer!
- relup:
- ${MAKE} makerelease
- ${MAKE} sync_release
- ${MAKE} sync_manual
- makerelease:
- @if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi
- ${MAKE} distfile
- ${MAKE} doc
- UTILITIES/gplmanual.pl
- ${MAKE} html_manual
- ${MAKE} html_guide
- rm -rf RELEASEDIR
- $(MKDIR) RELEASEDIR
- cp org-$(TAG).zip org-$(TAG).tar.gz RELEASEDIR
- cp doc/org.pdf doc/orgcard.pdf doc/org.texi doc/org.html RELEASEDIR
- cp doc/org_dual_license.texi RELEASEDIR
- cp doc/orgguide.pdf doc/orgcard.txt RELEASEDIR
- cp RELEASEDIR/org-$(TAG).zip RELEASEDIR/org.zip
- cp RELEASEDIR/org-$(TAG).tar.gz RELEASEDIR/org.tar.gz
- # ~$ make sync_release only makes sense from orgmode.org server
- # Don't call it from your computer!
- sync_release:
- rsync -avuz RELEASEDIR/ /var/www/orgmode.org/
- # ~$ make sync_manual only makes sense from orgmode.org server
- # Don't call it from your computer!
- sync_manual:
- rsync -avuz --delete doc/manual/ /var/www/orgmode.org/manual/
- rsync -avuz --delete doc/guide/ /var/www/orgmode.org/guide/
- distfile:
- @if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi
- touch doc/org.texi doc/orgcard.tex # force update
- ${MAKE} cleancontrib
- ${MAKE} info
- ${MAKE} doc
- ${MAKE} lisp/org-install.el
- rm -rf org-$(TAG) org-$(TAG).zip
- $(MKDIR) org-$(TAG)
- $(MKDIR) org-$(TAG)/doc
- $(MKDIR) org-$(TAG)/lisp
- cp -r $(LISPFILES) org-$(TAG)/lisp
- cp -r $(DOCFILES) $(CARDFILES) org-$(TAG)/doc
- cp -r $(DISTFILES_extra) org-$(TAG)/
- cp -r README_DIST org-$(TAG)/README
- zip -r org-$(TAG).zip org-$(TAG)
- tar zcvf org-$(TAG).tar.gz org-$(TAG)
- pkg:
- @if [ "X$(PKG_TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi
- touch doc/org.texi doc/orgcard.tex # force update
- ${MAKE} info
- ${MAKE} doc
- rm -rf org-$(PKG_TAG) org-$(PKG_TAG).tar
- $(MKDIR) org-$(PKG_TAG)
- cp -r $(PKG_FILES) org-$(PKG_TAG)
- echo "(define-package \"org\" \"$(PKG_TAG)\" \"$(PKG_DOC)\" $(PKG_REQ))" > org-$(PKG_TAG)/org-pkg.el
- tar cf org-$(PKG_TAG).tar org-$(PKG_TAG) --remove-files
- push:
- git push orgmode@orgmode.org:org-mode.git master
- pushtag:
- git tag -m "Adding tag" -a $(TAG)
- git push orgmode@orgmode.org:org-mode.git $(TAG)
- pushreleasetag:
- git tag -m "Adding release tag" -a release_$(TAG)
- git push orgmode@orgmode.org:org-mode.git release_$(TAG)
|