summaryrefslogtreecommitdiffstats
path: root/ReleaseNotes/Makefile
blob: c9c7c17fe2d93867c4629bfdc83722a14f93688f (plain)
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
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ASCIIDOC       ?= asciidoc
ASCIIDOC_EXTRA ?=
SVN            ?= svn
PUB_ROOT       ?= https://gerrit.googlecode.com/svn/ReleaseNotes

DOC_HTML      := $(patsubst %.txt,%.html,$(wildcard ReleaseNotes*.txt))
COMMIT        := $(shell git describe HEAD | sed s/^v//)
SCRIPTSDIR    := $(shell pwd)/../Documentation/javascript
LOCAL_ROOT    := .published
PUB_DIR       := $(PUB_ROOT)

all: html

html: index.html $(DOC_HTML)

update: html
	@-rm -rf $(LOCAL_ROOT)
	@echo "Checking out current release notes"
	@$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT)
	@rm -f $(LOCAL_ROOT)/*.html
	@cp *.html $(LOCAL_ROOT)
	@cd $(LOCAL_ROOT) && \
	  r=`$(SVN) status | perl -ne 'print if s/^!  *//' ` && \
	  if [ -n "$$r" ]; then $(SVN) rm $$r; fi && \
	  a=`$(SVN) status | perl -ne 'print if s/^\?  *//' ` && \
	  if [ -n "$$a" ]; then \
	    $(SVN) add $$a && \
	    $(SVN) propset svn:mime-type text/html $$a ; \
	    fi && \
	  echo "Committing release notes at v$(COMMIT)" && \
	  $(SVN) commit -m "Updated release notes to v$(COMMIT)"
	@-rm -rf $(LOCAL_ROOT)

clean:
	rm -f *.html
	rm -rf $(LOCAL_ROOT)

index.html: index.txt $(SCRIPTSDIR)/toc.js
	@echo FORMAT $@
	@rm -f $@+ $@
	@$(ASCIIDOC) --unsafe \
		-a toc \
		-a 'scriptsdir=$(SCRIPTSDIR)' \
		-b xhtml11 -f asciidoc.conf \
		$(ASCIIDOC_EXTRA) -o $@+ $<
	@mv $@+ $@

$(DOC_HTML): %.html : %.txt $(SCRIPTSDIR)/toc.js
	@echo FORMAT $@
	@rm -f $@+ $@
	@v=$$(echo $< | sed 's/^ReleaseNotes-//;s/.txt$$//;') && \
	 c=$$(git rev-list -1 HEAD -- $<) && \
	 n=$$(git describe $$c) && \
	 if [ "X$$n" != "Xv$$v" ]; then v="$$v (from $$n)"; fi && \
	 $(ASCIIDOC) --unsafe \
		-a toc \
		-a "revision=$$v" \
		-a 'scriptsdir=$(SCRIPTSDIR)' \
		-b xhtml11 -f asciidoc.conf \
		$(ASCIIDOC_EXTRA) -o $@+ $<
	@mv $@+ $@