# file: src/Makefile
#
#  2001-2004 OpenCA Group
# $Revision: 1.35.2.1 $

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

SNAP	= SNAP-$(TODAY)
VER	= $(VERSION)
C_DIR	= `$(ECHO) "$(PWD)" | $(SED) "s|/.*/||g"`
G_DIR   = `$(ECHO) "$(PWD)"`

SUBDIRS	= \
	docs		\
	src

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

.PHONY:	default info help ca ext test install-ca install-common install-ext install-ldap install-node install-offline install-pub install-ra install-doc clean clean.local distclean

default::	$(SUBDIRS)

info help::
		@$(ECHO) ""
		@$(ECHO) "phony make targets are:"
		@$(ECHO) "  ca              make everything CA server related"
		@$(ECHO) "  ext             make everything RA and public server related"
		@$(ECHO) "  doc             make everything documentation related"
		@$(ECHO) "  install-batch   install batch system components"
		@$(ECHO) "  install-ca      install CA components"
		@$(ECHO) "  install-common  install all common components (for package builds)"
		@$(ECHO) "  install-ext     install RA and public server components"
		@$(ECHO) "  install-ldap    install LDAP components"
		@$(ECHO) "  install-node    install aministration components"
		@$(ECHO) "  install-offline install all offline components (ca and node)"
		@$(ECHO) "  install-online  install all online components (ra, pub, ldap and node)"
		@$(ECHO) "  install-pub     install public server components"
		@$(ECHO) "  install-ra      install RA server components"
		@$(ECHO) "  install-scep    install scep server components"
		@$(ECHO) "  install-doc     install documentation"
		@$(ECHO) "  clean           remove everything created by make"
		@$(ECHO) "  distclean       like clean, plus remove everything created by ./configure"
		@$(ECHO) ""

ca ext::	default

doc::
		$(MAKE) docs SUBTARGET=

install-doc::
		$(MAKE) docs SUBTARGET=install

install-offline::	install-batch install-ca install-node

install-online::	install-ra install-pub install-ldap install-node install-scep

install-ext::		install-online

install-batch::		install-common-parts

install-ca::		install-common-parts

install-node::		install-common-parts

install-pub::		install-common-parts

install-ra::		install-common-parts

install-ldap::		install-common-parts

install-scep::		install-common-parts

# test install-ca install-ext clean distclean install-scep::
test install-batch install-ca install-common install-ldap install-node install-pub install-ra install-scep clean distclean::
		$(MAKE) $(SUBDIRS) SUBTARGET=$@

# we don't install the common components if we build packages
install-common-parts::
		@if [ $(package_build) != "yes" ]; then \
			echo installing common components because it is not a package build; \
			$(MAKE) install-common; \
		else \
			echo not installing common components because it is a package build; \
		fi

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

########################################################
##               BEGIN CLEANUP STUFF                  ##
########################################################

clean distclean::	clean.local

clean.local::
		$(RM) -rf .ca* .ra* .install* .ssl* tmp/

distclean::
		$(RM) config.status config.cache config.log
		$(RM) Makefile.global-vars

########################################################
##                END CLEANUP STUFF                   ##
########################################################
