# file: src/docs/Makefile
#
#  2001 OpenCA Group

TOP	= ..
include $(TOP)/Makefile.global-vars

P2M_FLAGS	= --center="OpenCA Documentation" --release="OpenCA $(VERSION)"

DEST_DIR	= ${doc_prefix}

SUBDIRS	= \
	howto

GUIDE_DIR	= $(DEST_DIR)/guide

GUIDE_DIRS	= \
	html_chunked	\
	images

GUIDE_FILES	= \
	guide/openca-guide.html			\
	guide/default.css			\
	guide/openca-guide.pdf			\
	guide/images/all_tree.jpeg		\
	guide/images/db_tree.jpeg		\
	guide/images/lifecycle.jpeg		\
	guide/images/node_tree.jpeg		\
	guide/images/openca_ac.jpeg		\
	guide/images/openca_ac_acl.jpeg		\
	guide/images/openca_ac_channel.jpeg	\
	guide/images/openca_ac_ident.jpeg	\
	guide/images/token.jpeg			\
	guide/html_chunked/*.css		\
	guide/html_chunked/*.html

MANDIRS	= \
	man3

PODS	= \
	man3/base.3.pod

POD_MANS	= $(PODS:%.pod=%)
MANS		= $(POD_MANS)

DEST_MANDIRS	= $(MANDIRS:%=$(DEST_MANDIR)/%)
DEST_MANS	= $(MANS:%=$(DEST_MANDIR)/%)

#---- variable settings above, rules below ----

.PHONY:	default test install install-batch install-ca install-ldap install-node install-ra install-pub install-scep clean distclean

default::	man

test::

install::	install-man install-doc
	$(MAKE) $(SUBDIRS) SUBTARGET=install

$(SUBDIRS)::
	cd $@ && make $(SUBTARGET)

install-doc::	$(GUIDE_FILES)

##### BEGIN MAN AREA #####

man::		$(MANS)

.SUFFIXES:	.pod

.pod:
		section=`echo $< | sed -n -e 's/man\(.\).*/\1/p'`; \
		$(POD2MAN) $(P2M_FLAGS) --section=$$section $< > $@

$(DEST_MANDIR) $(DEST_MANDIRS):
		$(MAKE) __install_dir USER=${openca_user} GROUP=${openca_group} MODE=755 DIR=$@

install-man::	$(DEST_MANS)

$(DEST_MANS)::	$(DEST_MANDIR) $(DEST_MANDIRS)
$(DEST_MANS)::
		$(INSTALL) -o ${openca_user} -g ${openca_group} -m 644 $(@:$(DEST_MANDIR)/%=%) $@

##### END MAN AREA #####

##### BEGIN GUIDE AREA #####

## We cannot use a normal makefile in docs/guide because this makefile
## is used for compilation of the docs without Makefile.global-vars.
## Therefore we setup an installation area here only for the directory
## docs/guide.

$(GUIDE_FILES)::	$(GUIDE_DIRS)
	$(INSTALL) -o ${openca_user} -g ${openca_group} -m 644 $@ $(DEST_DIR)/$@

$(GUIDE_DIRS)::	$(GUIDE_DIR)
	$(MAKE) __install_dir USER=${openca_user} GROUP=${openca_group} MODE=755 DIR=$(GUIDE_DIR)/$@

$(GUIDE_DIR):: $(DEST_DIR)
	$(MAKE) __install_dir USER=${openca_user} GROUP=${openca_group} MODE=755 DIR=$@

$(DEST_DIR)::
	$(MAKE) __install_dir USER=${openca_user} GROUP=${openca_group} MODE=755 DIR=$@

##### BEGIN MAN AREA #####
##### END GUIDE AREA #####

# software is decoupled from the documentation, so do nothing here:
install-ca install-common install-ldap install-node install-ra install-pub install-scep:

clean::
		$(RM) $(POD_MANS)

distclean::	clean
distclean::
		#$(RM)
