blob: 18a92b4dbf6d7a4f45eacf557eeaa2a928376603 [file] [log] [blame]
# Copyright (C) 2009 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/documentation
all: html
clean:
rm -f *.html
rm -rf $(LOCAL_ROOT)
ifeq ($(origin VERSION), undefined)
VERSION := $(shell ./GEN-DOC-VERSION 2>/dev/null)
endif
DOC_HTML := $(patsubst %.txt,%.html,$(wildcard *.txt))
LOCAL_ROOT := .published
SCRIPTSDIR := $(shell pwd)/javascript
COMMIT := $(shell git describe HEAD | sed s/^v//)
PUB_DIR := $(PUB_ROOT)/$(VERSION)
ifeq ($(VERSION),)
REVISION = $(COMMIT)
else
ifeq ($(VERSION),$(COMMIT))
REVISION := $(VERSION)
else
REVISION := $(VERSION) (from v$(COMMIT))
endif
endif
html: $(DOC_HTML)
update: html
ifeq ($(VERSION),)
./GEN-DOC-VERSION
endif
@-rm -rf $(LOCAL_ROOT)
@echo "Checking out current $(VERSION)"
@if ! $(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) 2>/dev/null ; then \
p=$$(git describe HEAD^ | perl -lne 'print $$1 if /^v(\d+\.\d+(?:\.\d+)?)/') && \
echo "Copying $$p to $(VERSION) ..." && \
$(SVN) cp -m "Create $(VERSION) documentation" $(PUB_ROOT)/$$p $(PUB_DIR) && \
$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) ; \
fi
@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 $(VERSION) at v$(COMMIT)" && \
$(SVN) commit -m "Updated $(VERSION) documentation to v$(COMMIT)"
@-rm -rf $(LOCAL_ROOT)
$(DOC_HTML): %.html : %.txt $(SCRIPTSDIR)/toc.js
@echo "FORMAT $@"
@rm -f $@+ $@
@$(ASCIIDOC) --unsafe \
-a toc \
-a 'revision=$(REVISION)' \
-a 'scriptsdir=$(SCRIPTSDIR)' \
-b xhtml11 -f asciidoc.conf \
$(ASCIIDOC_EXTRA) -o $@+ $<
@mv $@+ $@