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

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

DEST_CGIDIR	= $(DEST_DIR)$(node_cgi_fs_prefix)

SUBDIRS	= \
	htdocs

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

# programs generated by $(TOP)/configure from *.in files:
AC_PROGS	= \
	node

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

PROGS		= $(AC_PROGS)

AC_CONF_SRC	= access_control.xml
AC_CONF		= $(DEST_DIR)$(etc_prefix)/access_control/$(node_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)

$(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)/${node_prefix}.conf ]; then \
		echo "$@ already exists, skipping configuration"; \
	else \
		if [ -L $(DEST_CGI_CONFDIR)/common.conf ]; then \
			echo "update common configuration link"; \
			$(RM) $(DEST_CGI_CONFDIR)/common.conf; \
		fi; \
		set -x; \
		$(INSTALL) -o ${openca_user} -g ${httpd_group} -m 640 $@ $(DEST_CGI_CONFDIR)/${node_prefix}.conf.template; \
		$(MAKE) __install_ln_s TARGET=$(DEST_CGI_CONFDIR)/${node_prefix}.conf LINK=$(DEST_CGI_CONFDIR)/common.conf; \
	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

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)
