# 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 ?= ASCIIDOC_VER ?= 8.6.3 SVN ?= svn PUB_ROOT ?= https://gerrit-documentation.googlecode.com/svn/Documentation all: html clean: rm -f *.html rm -rf $(LOCAL_ROOT) ASCIIDOC_EXE := $(shell which $(ASCIIDOC)) ifeq ($(wildcard $(ASCIIDOC_EXE)),) $(error $(ASCIIDOC) must be available) else ASCIIDOC_OK := $(shell expr `asciidoc --version | cut -f2 -d' '` \>= $(ASCIIDOC_VER)) ifeq ($(ASCIIDOC_OK),0) $(error $(ASCIIDOC) version $(ASCIIDOC_VER) or higher is required) endif endif ifeq ($(origin VERSION), undefined) VERSION := $(shell ./GEN-DOC-VERSION 2>/dev/null) endif DOC_HTML := $(patsubst %.txt,%.html,$(wildcard *.txt)) LOCAL_ROOT := .published COMMIT := $(shell git describe HEAD | sed s/^v//) PUB_DIR := $(PUB_ROOT)/$(VERSION) PRIOR = PRIOR 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 \ echo "Copying $(PRIOR) to $(VERSION) ..." && \ $(SVN) cp -m "Create $(VERSION) documentation" $(PUB_ROOT)/$(PRIOR) $(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 @echo "FORMAT $@" @rm -f $@+ $@ @$(ASCIIDOC) -a toc \ -a data-uri \ -a 'revision=$(REVISION)' \ -a 'newline=\n' \ -b xhtml11 \ -f asciidoc.conf \ $(ASCIIDOC_EXTRA) \ -o $@+ $< @mv $@+ $@