# file: src/web-interfaces/pub/Makefile
#
#  2001 OpenCA Group

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

DEST_CGIDIR	= $(DEST_DIR)$(pub_cgi_fs_prefix)

SUBDIRS	= \
	htdocs

COOKIE_DIR = $(DEST_DIR)$(var_prefix)/session/cookie/$(pub_prefix)

SERVER	= pki

PROGS	= \
	$(SERVER)

AC_PROGS = $(PROGS)

CONF_FILE = public.conf
DEST_CGI_CONFDIR = $(DEST_DIR)${etc_prefix}/servers

DOWNLOAD = download.cer

AC_CONF_SRC	= access_control.xml
AC_CONF		= $(DEST_DIR)$(etc_prefix)/access_control/$(pub_prefix).xml.template
AC_DIRS		= access_control servers

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

.PHONY:	default install clean distclean

default::

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

install::	$(PROGS) $(AC_CONF) $(CONF_FILE) $(COOKIE_DIR) $(DOWNLOAD)

$(PROGS)::	$(DEST_CGIDIR)
$(PROGS)::
		$(INSTALL) -o ${openca_user} -g ${openca_group} -m 755 $@ $(DEST_CGIDIR)/$@

$(AC_CONF):: $(AC_DIRS)
	@if [ -e $@ ]; then \
		echo "$@ already exists, skipping configuration"; \
	else \
		set -x; \
		$(INSTALL) -o ${openca_user} -g ${openca_group} -m 644 $(AC_CONF_SRC) $@; \
	fi

$(AC_DIRS)::
	$(MAKE) __install_dir USER=${openca_user} GROUP=${openca_group} MODE=644 DIR=$(DEST_DIR)$(etc_prefix)/$@

$(CONF_FILE)::
	@if [ -e $(DEST_CGI_CONFDIR)/${pub_prefix}.conf ]; then \
		echo "$@ already exists, skipping configuration"; \
	else \
		set -x; \
		$(INSTALL) -o ${openca_user} -g ${httpd_group} -m 640 $@ $(DEST_CGI_CONFDIR)/${pub_prefix}.conf.template; \
	fi

$(COOKIE_DIR)::
	@if [ -e $@ ]; then \
		echo "$@ already exists, skipping configuration"; \
	else \
		set -x; \
		$(MAKE) __install_dir USER=${httpd_user} GROUP=${httpd_group} MODE=750 DIR=$@; \
	fi

$(DOWNLOAD)::	$(PROGS)
		@if [ -e $(DEST_CGIDIR)/$@ ]; then \
			echo "software update detected, removing old link"; \
			$(RM) $(DEST_CGIDIR)/$@; \
		fi
		$(MAKE) __install_ln_s TARGET=$(DEST_CGIDIR)/$(SERVER) LINK=$(DEST_CGIDIR)/$@

install clean distclean::
		$(MAKE) $(SUBDIRS) SUBTARGET=$@

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

distclean::
	for i in $(AC_PROGS) ; do \
		if test -e $$i ; then rm $$i ; fi \
	done

		# $(RM) $(AC_PROGS)

