PROJECT = heartbeat-doc
RELEASE = 1.0
DOCFILES = README
AUXFILES = Makefile LICENSE.txt heartbeat-doc.spec \
	fiximages.sh mkradocs.sh ocfra2refentry.xsl
MANSTYLE = /usr/share/xml/docbook/stylesheet/nwalsh/current

XMLDIR = xml
IMAGESSRCDIR = images
IMAGESDIRS = images images/callouts
HTMLDIR = html
TOP = $(XMLDIR)/heartbeat.xml
PDF = heartbeat.pdf

FOP = fop
XSLTPROC = xsltproc

DISTFILES = $(AUXFILES) $(DOCFILES) $(XMLDIR) $(IMAGESSRCDIR)

DIST = $(PROJECT)-$(RELEASE).tar.gz

ifeq ($(origin prefix), undefined)
	prefix := /usr
endif

#
# fop.extensions or fop1.extensions: depends on the fop version
#
FOP1 := $(shell $(FOP) -v 2>&1 | grep 'FOP.*[0-9]\.[0-9]' | awk '$$NF>=0.9{print 1}')
ifeq (1, $(FOP1))
XSLTPROC_FOP_OPTS := --stringparam fop1.extensions 1
else
XSLTPROC_FOP_OPTS := --stringparam fop.extensions 1
endif

all: html pdf man

install:
	@install -d $(prefix)/share/doc/$(PROJECT)
	@install -d $(prefix)/share/doc/$(PROJECT)/html
	@install -p -m 644 $(DOCFILES) $(prefix)/share/doc/$(PROJECT)
	@install -p -m 644 $(HTMLDIR)/*.* $(prefix)/share/doc/$(PROJECT)/html
	@for d in $(IMAGESDIRS); do \
		install -d $(prefix)/share/doc/$(PROJECT)/html/$$d; \
		install -p -m 644 $(HTMLDIR)/$$d/*.* $(prefix)/share/doc/$(PROJECT)/html/$$d; \
	done
	@install -p -m 644 $(PDF) $(prefix)/share/doc/$(PROJECT)

dist: $(DIST)
	@rm -rf $(PROJECT)-$(RELEASE)
	@mkdir -p $(PROJECT)-$(RELEASE)
	@tar cf - $(DISTFILES) | (cd $(PROJECT)-$(RELEASE) && tar xf -)
	@tar cf - $(PROJECT)-$(RELEASE) | gzip > $(DIST)

$(DIST): $(DISTFILES)

clean:
	@rm -rf heartbeat.fo

dist-clean: clean
	@rm -rf $(PDF) $(HTMLDIR)

html: ra-docs
	$(XSLTPROC) --xinclude --nonet \
		--stringparam base.dir $(HTMLDIR)/ --stringparam img.src.path images/ \
		http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl \
		$(TOP)
	@./fiximages.sh

pdf: ra-docs $(PDF)

$(PDF): heartbeat.fo
	FOP_HOME=/usr/share/fop sh -x /usr/share/fop/fop -q $< $@

ra-docs:
	@./mkradocs.sh

heartbeat.fo:
	$(XSLTPROC) --xinclude --nonet \
		$(XSLTPROC_FOP_OPTS) --stringparam paper.type A4 \
		--stringparam img.src.path images/ --stringparam callout.graphics 1 \
		--stringparam callout.graphics.path http://docbook.sourceforge.net/release/xsl/current/images/callouts/ \
		--stringparam format.print 1 --param ulink.show 1 \
		--stringparam xep.extensions 0 -o $@ \
		http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl \
		$(TOP)

MAN_FILES = cibadmin.8 crmadmin.8 crm_attribute.8 crm_diff.8 	\
	    crm_failcount.8 crm_master.8 crm_mon.8 		\
	    crm_resource.8 crm_standby.8 crm_uuid.8 		\
	    crm_verify.8 pengine.7 crm.8 crm_shadow.8

man:	$(MAN_FILES)

%.8: xml/hb_%.xml
	echo Building $@ from $<
	$(XSLTPROC) $(MANSTYLE)/manpages/docbook.xsl $< 2>/dev/null

%.7: xml/hb_%.xml
	echo Building $@ from $<
	$(XSLTPROC) $(MANSTYLE)/manpages/docbook.xsl $< 2>/dev/null

HMANDIR=html-man
labs:
	-mkdir $(HMANDIR) 2>/dev/null
	rm -f $(HMANDIR)/*.html
	$(XSLTPROC) --xinclude --nonet --output $(HMANDIR)/ \
		$(MANSTYLE)/html/chunk.xsl xml/hb_management.xml
	scp $(HMANDIR)/*.html root@oss.beekhof.net:/var/lib/mediawiki/docroot/man/
	ssh -l root oss.beekhof.net chown -R www-data:www-data /var/lib/mediawiki/docroot/man
#               --stringparam base.dir $(HMANDIR)

OBS_PROJECT=pacemaker
OBS_SERVER=c001n16.suse.de
OBS_PREFIX=Development/obs

tgz:
	rm -f $(DIST)
	hg archive -t tgz $(DIST)
	echo Rebuilt $(DIST) on `date`

stable:	  tgz
	scp  $(DIST) $(OBS_SERVER):$(OBS_PREFIX)/server:ha-clustering/$(OBS_PROJECT)/

unstable: tgz
	scp  $(DIST) $(OBS_SERVER):$(OBS_PREFIX)/server:ha-clustering:UNSTABLE/$(OBS_PROJECT)/

factory:  tgz
	scp  $(DIST) $(OBS_SERVER):$(OBS_PREFIX)/server:ha-clustering:Factory/$(OBS_PROJECT)/
