emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
blob a0c93a55a7e86925eaddf2ed11a9a66566747f2b 5288 bytes (raw)
name: mk/server.mk 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
 
#----------------------------------------------------------------------
# This file is used for maintenance of org on the server.
#----------------------------------------------------------------------
.PHONY:	helpserver \
	release rel-dirty rel-up cleanrel \
	elpa elpa-dirty elpa-up \
	doc-up \
	upload-release upload-elpa upload-doc upload \
	tagwarn version

help helpall helpserver::
	$(info )
	$(info Maintenance)
	$(info ===========)
	$(info release             - clean up, create the distribution archives)
	$(info elpa                - clean up, create the org-*.tar ELPA archive)
	$(info elpaplus            - clean up, create the org-plus-contrib-*.tar ELPA archive)
	$(info upload-release      - clean up, populate the server with arhives)
	$(info upload-elpa         - clean up, populate the server with org-*.tar)
	$(info upload-elpaplus     - clean up, populate the server with org-plus-contrib-*.tar)
	$(info upload-doc          - clean up, populate the server with docs)
	$(info upload              - clean up, populate the server with everything)

helpserver::
	@echo ""

#----------------------------------------------------------------------

SERVROOT ?= /var/www/orgmode.org
SERVERMK ?= true # or just any value at all, really

#----------------------------------------------------------------------

ORGFULL   = README COPYING lisp/ \
		Makefile request-assign-future.txt \
		mk/default.mk mk/targets.mk mk/version.mk \
		mk/org-fixup.el \
		etc/ contrib/ doc/
ORGFULL  := $(ORGFULL:%/=%/*)
ORGELPA   = README_ELPA COPYING lisp/ \
		doc/dir doc/org doc/orgcard.pdf \
		etc/styles/ org-pkg.el
ORGELPA  := $(ORGELPA:%/=%/*)
ORGELPAPLUS := $(ORGELPA:org-pkg%=org-plus-contrib-pkg%)

release:	cleanall info pdf card rel-dirty tagwarn
rel-dirty rel-up:	ORGDIR=org-$(GITVERSION:release_%=%)
rel-dirty:
	@$(MAKE) GITVERSION=$(GITVERSION:release_%=%)-dist version autoloads
	-@$(RM) $(ORGDIR) $(ORGTAR) $(ORGRZIP)
	ln -s . $(ORGDIR)
	tar -zcf $(ORGDIR).tar.gz $(foreach dist, $(ORGFULL), $(ORGDIR)/$(dist))
	zip -r9  $(ORGDIR).zip    $(foreach dist, $(ORGFULL), $(ORGDIR)/$(dist))
	-@$(RM) $(ORGDIR)
rel-up:	info pdf card rel-dirty
	$(CP) $(ORGDIR).tar.gz $(ORGDIR).zip $(SERVROOT)/

PKG_TAG = $(shell date +%Y%m%d)
PKG_DOC = "Outline-based notes management and organizer"
PKG_REQ = "" # marmalade chokes on explicit "nil"

elpa:		cleanall info card elpa-dirty
elpa-dirty elpa-up:	ORGDIR=org-$(PKG_TAG)
elpa-dirty:
	@$(MAKE) GITVERSION=$(GITVERSION:release_%=%)-elpa version autoloads
	-@$(RM) $(ORGDIR) $(ORGTAR) $(ORGZIP)
	ln -s . $(ORGDIR)
	echo "(define-package \"org\""                        > org-pkg.el
	echo "  \"$(PKG_TAG)\" \"$(PKG_DOC)\" ($(PKG_REQ)))" >> org-pkg.el
	echo ";; no-byte-compile: t"                         >> org-pkg.el
	tar --exclude=Makefile --exclude="org-colview-xemacs.el" \
	  --transform='s:\(lisp\|doc\)/::' -cf $(ORGDIR).tar \
	  $(foreach dist, $(ORGELPA), $(ORGDIR)/$(dist))
	-@$(RM) $(ORGDIR) org-pkg.el
elpa-up:	info card elpa-dirty archive-contents
	$(CP) archive-contents $(ORGDIR).tar $(SERVROOT)/elpa/

archive-contents:
	echo "(1 (org              . [($(PKG_TAG)) ($(PKG_REQ)) \"$(PKG_DOC)\" tar])"   > $@
	echo "   (org-plus-contrib . [($(PKG_TAG)) ($(PKG_REQ)) \"$(PKG_DOC)\" tar]))" >> $@

elpaplus:		cleanall info card elpaplus-dirty
elpaplus-dirty elpaplus-up:	ORG_ADD_CONTRIB=org-*
elpaplus-dirty elpaplus-up:	ORGDIR=org-plus-contrib-$(PKG_TAG)
elpaplus-dirty:
	@$(MAKE) GITVERSION=$(GITVERSION:release_%=%)-elpaplus version autoloads
	-@$(RM) $(ORGDIR) $(ORGTAR) $(ORGZIP)
	ln -s . $(ORGDIR)
	echo "(define-package \"org-plus-contrib\""           > org-plus-contrib-pkg.el
	echo "  \"$(PKG_TAG)\" \"$(PKG_DOC)\" ($(PKG_REQ)))" >> org-plus-contrib-pkg.el
	echo ";; no-byte-compile: t"                         >> org-plus-contrib-pkg.el
	tar --exclude=Makefile --exclude="org-colview-xemacs.el" \
	  --transform='s:\(lisp\|doc\)/::' -cf $(ORGDIR).tar \
	  $(foreach dist, $(ORGELPAPLUS), $(ORGDIR)/$(dist))
	-@$(RM) $(ORGDIR) org-plus-contrib-pkg.el
	@$(MAKE) cleanlisp
elpaplus-up:	info card elpaplus-dirty archive-contents
	$(CP) archive-contents $(ORGDIR).tar $(SERVROOT)/elpa/

tagwarn:
	$(if $(filter-out $(ORGVERSION), $(GITVERSION)), \
	  $(info  ======================================================) \
	  $(info  =                                                    =) \
	  $(info  = A release should only be made from a revision that =) \
	  $(info  = has an annotated tag!                              =) \
	  $(info  =                                                    =) \
	  $(info  ======================================================))

version:
	@echo ORGVERSION=$(ORGVERSION) GITVERSION=$(GITVERSION)$(ORGDIST)
	@echo "ORGVERSION	?= $(ORGVERSION)"  > mk/version.mk
	@echo "GITVERSION	?= $(GITVERSION)" >> mk/version.mk

cleanall clean:	cleanrel
cleanrel:
	-$(RM) archive-contents org-$(PKG_TAG)* org-$(DISTVERSION)* org-*.zip org-*.tar* mk/version.mk

doc-up:	info pdf card html
	$(MAKE) -C doc manual guide
	$(CP) doc/org.html $(SERVROOT)
	$(CP) doc/manual/* $(SERVROOT)/manual
	$(CP) doc/guide/*  $(SERVROOT)/guide

upload:			cleanall rel-up doc-up elpa-up elpaplus-up
upload-elpa:		cleanall elpa-up
upload-elpaplus:	cleanall elpaplus-up
upload-release:		cleanall rel-up
upload-doc:		cleanall doc-up

debug log:

solving a0c93a5 ...
found a0c93a5 in https://git.savannah.gnu.org/cgit/emacs/org-mode.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).