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

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

## MODULES.c = \
##	openca-sv \
##	$(OPTIONAL_C_MODULES)

## MODULES.openscep = \
##	openscep

MODULES.pm.3rd-party	= \
	MIME-Base64-2.12	\
	Convert-ASN1-0.15 	\
	Digest-MD5-2.20 	\
	gettext-1.01		\
	IO-Socket-SSL-0.81	\
	URI-1.19		\
	perl-ldap-0.25		\
	Parse-RecDescent-1.80	\
	X500-DN-0.27

MODULES.pm = \
	$(MODULES.pm.3rd-party)	\
	openca-configuration	\
	openca-crl		\
	openca-db		\
	openca-dbi		\
	openca-openssl		\
	openca-pkcs7		\
	openca-req		\
	openca-tools		\
	openca-tristatecgi	\
	openca-x509		\

## MODULES = $(MODULES.c) $(MODULES.pm)
MODULES = $(MODULES.pm)

MODULE	= dummy

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

# .PHONY:	modules test install install-common install-scep clean distclean
.PHONY:	modules test install install-common clean distclean

modules::
		$(MAKE) $(MODULES)

## changed because of problems with FreeBSDs default make or shell
## $(MODULES.pm.3rd-party)::	%:	%.tar.gz
##		$(GZIP) -d -c $< | $(TAR) Bxvf -
$(MODULES.pm.3rd-party)::
		@if [ ! -d $@ ]; then \
			if (! $(PERL) -e 'my $$name="$@";$$name=~s/-[^-]*$$//;$$name=~s/-/::/g;eval "require $$name;";if ($$@){exit 1;}else{exit 0;}'); then \
				set -x; \
				$(GZIP) -d -c $@.tar.gz | $(TAR) Bxvf -; \
			else \
				echo $@ is already present on the system; \
			fi \
		fi

$(MODULES.pm)::
		@if [ -d $@ ]; then \
			$(MAKE) $@/Makefile MODULE=$@; \
		fi

$(MODULE)/Makefile:	$(MODULE)/Makefile.PL
		@if [ -e $@.PL ]; then \
			cd $(MODULE) && CC=$(CC) OPENSSL_PREFIX=$(OPENSSL_PREFIX) $(PERL) Makefile.PL $(PERL_MAKEFILE_OPTS); \
		fi

$(MODULES)::
		@if [ -d $@ ]; then \
			cd $@ && $(MAKE) $(SUBTARGET); \
		fi

# common for both CA and external server:
install-common:	install

test install clean distclean::
		$(MAKE) $(MODULES) SUBTARGET=$@

clean distclean::	clean.local

clean.local::
		$(RM) -rf $(MODULES.pm.3rd-party)

distclean::
		#$(RM)
