# file: src/common/var/crypto/Makefile
#
#  2002 OpenCA Group

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

DEST_VAROPENSSLDIR	= ${var_prefix}/crypto

DEST_VAR_CRYPTO_CACERTDIR	= ${var_prefix}/crypto/cacerts
DEST_VAR_CRYPTO_KEYDIR		= ${var_prefix}/crypto/keys

# files not generated from .in files and used by openssl in rw-mode:
OPENSSL_CONFOPENSSLFILES	= \
	serial			\
	index.txt

MAKECHAIN	= \
	Makefile.crt

EXTRA_KEYS	= \
	keybackup_key.pem	\
	bp_key.pem

EXTRA_CERTS	= \
	keybackup_cert.pem	\
	bp_cert.pem

CACERT_CER_LINK = cacert.cer
CACERT_CRT_LINK	= cacert.crt

CACERT_LINKS = \
	$(CACERT_CER_LINK)	\
	$(CACERT_CRT_LINK)

DEST_OPENSSL_VAR_CONFOPENSSLFILES	= $(OPENSSL_CONFOPENSSLFILES:%=$(DEST_VAROPENSSLDIR)/%)

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

.PHONY:	default install clean distclean

default::

install::	$(DEST_OPENSSL_VAR_CONFOPENSSLFILES) $(MAKECHAIN) $(EXTRA_KEYS) $(EXTRA_CERTS) $(CACERT_LINKS)

$(DEST_OPENSSL_VAR_CONFOPENSSLFILES)::
	@if [ -e $@ ]; then \
		echo "$@ already exists, skipping"; \
	else \
		set -x; \
		$(INSTALL) -g ${httpd_group} -o ${httpd_user} -m 644 $(@:$(DEST_VAROPENSSLDIR)/%=%) $@; \
	fi

$(MAKECHAIN)::
	$(INSTALL) -o ${openca_user} -g ${openca_group} -m 644 Makefile.crt ${var_prefix}/crypto/chain/Makefile

$(EXTRA_KEYS)::
	@if [ -h $(DEST_VAR_CRYPTO_KEYDIR)/$@ ] || [-e $(DEST_VAR_CRYPTO_KEYDIR)/$@ ]; then \
		echo "$@ already exists, skipping"; \
	else \
		set -x; \
		cd $(DEST_VAR_CRYPTO_KEYDIR); \
		$(LN_S) cakey.pem $@; \
	fi

$(EXTRA_CERTS) $(CACERT_CRT_LINK)::
	@if [ -h $(DEST_VAR_CRYPTO_CACERTDIR)/$@ ] || [ -e $(DEST_VAR_CRYPTO_CACERTDIR)/$@ ]; then \
		echo "$@ already exists, skipping"; \
	else \
		set -x; \
		cd $(DEST_VAR_CRYPTO_CACERTDIR); \
		$(LN_S) cacert.pem $@; \
	fi

$(CACERT_CER_LINK)::
	@if [ -h $(DEST_VAR_CRYPTO_CACERTDIR)/$@ ] || [ -e $(DEST_VAR_CRYPTO_CACERTDIR)/$@ ]; then \
		echo "$@ already exists, skipping"; \
	else \
		set -x; \
		cd $(DEST_VAR_CRYPTO_CACERTDIR); \
		$(LN_S) cacert.der $@; \
	fi

distclean::
		$(RM) $(AC_CONFOPENSSLFILES)
		$(RM) $(AC_FILES)
