# Makefile.dist
#
# Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
# Copyright (c) 1995-2003 by Internet Software Consortium
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
#   Internet Systems Consortium, Inc.
#   950 Charter Street
#   Redwood City, CA 94063
#   <info@isc.org>
#   http://www.isc.org/


COMMON_SUBDIRS=	common
DEVEL_SUBDIRS=	$(MINIRES) dst omapip dhcpctl
SERVER_SUBDIRS=	omshell server
RELAY_SUBDIRS=	relay
CLIENT_SUBDIRS=	client

DEVEL_BUILD_SUBDIRS=	${COMMON_SUBDIRS} ${DEVEL_SUBDIRS}
SERVER_BUILD_SUBDIRS=	${SERVER_SUBDIRS}
RELAY_BUILD_SUBDIRS=	${RELAY_SUBDIRS}
CLIENT_BUILD_SUBDIRS=	${CLIENT_SUBDIRS}

DEVEL_INSTALL_SUBDIRS=	${COMMON_SUBDIRS} ${DEVEL_SUBDIRS}
SERVER_INSTALL_SUBDIRS=	${COMMON_SUBDIRS} ${SERVER_SUBDIRS}
RELAY_INSTALL_SUBDIRS=	${RELAY_SUBDIRS}
CLIENT_INSTALL_SUBDIRS=	${COMMON_SUBDIRS} ${CLIENT_SUBDIRS}

all: all.server all.relay all.client

all.devel:
	@for dir in ${DEVEL_BUILD_SUBDIRS}; do \
		echo "Making all in $$dir"; \
		(cd $$dir; $(MAKE) all) || exit 1; \
	done

all.server: all.devel
	@for dir in ${SERVER_BUILD_SUBDIRS}; do \
		echo "Making all in $$dir"; \
		(cd $$dir; $(MAKE) all) || exit 1; \
	done

all.relay: all.devel
	@for dir in ${RELAY_BUILD_SUBDIRS}; do \
		echo "Making all in $$dir"; \
		(cd $$dir; $(MAKE) all) || exit 1; \
	done

all.client: all.devel
	@for dir in ${CLIENT_BUILD_SUBDIRS}; do \
		echo "Making all in $$dir"; \
		(cd $$dir; $(MAKE) all) || exit 1; \
	done

install: install.devel install.server install.relay install.client

install.devel:
	@for dir in ${DEVEL_INSTALL_SUBDIRS}; do \
		echo "Installing in $$dir"; \
		(cd $$dir; $(MAKE) install) || exit 1; \
	done

install.server:
	@for dir in ${SERVER_INSTALL_SUBDIRS}; do \
		echo "Installing in $$dir"; \
		(cd $$dir; $(MAKE) install) || exit 1; \
	done

install.relay:
	@for dir in ${RELAY_INSTALL_SUBDIRS}; do \
		echo "Installing in $$dir"; \
		(cd $$dir; $(MAKE) install) || exit 1; \
	done

install.client:
	@for dir in ${CLIENT_INSTALL_SUBDIRS}; do \
		echo "Installing in $$dir"; \
		(cd $$dir; $(MAKE) install) || exit 1; \
	done

depend: depend.server depend.relay depend.client

depend.devel:
	@for dir in ${DEVEL_BUILD_SUBDIRS}; do \
		echo "Making dependencies in $$dir"; \
		(cd $$dir; $(MAKE) depend) || exit 1; \
	done

depend.server: depend.devel
	@for dir in ${SERVER_BUILD_SUBDIRS}; do \
		echo "Making dependencies in $$dir"; \
		(cd $$dir; $(MAKE) depend) || exit 1; \
	done

depend.relay: depend.devel
	@for dir in ${RELAY_BUILD_SUBDIRS}; do \
		echo "Making dependencies in $$dir"; \
		(cd $$dir; $(MAKE) depend) || exit 1; \
	done

depend.client: depend.devel
	@for dir in ${CLIENT_BUILD_SUBDIRS}; do \
		echo "Making dependencies in $$dir"; \
		(cd $$dir; $(MAKE) depend) || exit 1; \
	done

clean: clean.server clean.relay clean.client

clean.devel:
	@for dir in ${DEVEL_BUILD_SUBDIRS}; do \
		echo "Cleaning in $$dir"; \
		(cd $$dir; $(MAKE) clean) || exit 1; \
	done

clean.server: clean.devel
	@for dir in ${SERVER_BUILD_SUBDIRS}; do \
		echo "Cleaning in $$dir"; \
		(cd $$dir; $(MAKE) clean) || exit 1; \
	done

clean.relay: clean.devel
	@for dir in ${RELAY_BUILD_SUBDIRS}; do \
		echo "Cleaning in $$dir"; \
		(cd $$dir; $(MAKE) clean) || exit 1; \
	done

clean.client: clean.devel
	@for dir in ${CLIENT_BUILD_SUBDIRS}; do \
		echo "Cleaning in $$dir"; \
		(cd $$dir; $(MAKE) clean) || exit 1; \
	done

realclean: realclean.server realclean.relay realclean.client

realclean.devel:
	@for dir in ${DEVEL_BUILD_SUBDIRS}; do \
		echo "Really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) realclean) || exit 1; \
	done

realclean.server: realclean.devel
	@for dir in ${SERVER_BUILD_SUBDIRS}; do \
		echo "Really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) realclean) || exit 1; \
	done

realclean.relay: realclean.devel
	@for dir in ${RELAY_BUILD_SUBDIRS}; do \
		echo "Really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) realclean) || exit 1; \
	done

realclean.client: realclean.devel
	@for dir in ${CLIENT_BUILD_SUBDIRS}; do \
		echo "Really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) realclean) || exit 1; \
	done

distclean: distclean.server distclean.relay distclean.client

distclean.devel:
	@for dir in ${DEVEL_BUILD_SUBDIRS}; do \
		echo "Really, really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) distclean) || exit 1; \
	done

distclean.server: distclean.devel
	@for dir in ${SERVER_BUILD_SUBDIRS}; do \
		echo "Really, really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) distclean) || exit 1; \
	done

distclean.relay: distclean.devel
	@for dir in ${RELAY_BUILD_SUBDIRS}; do \
		echo "Really, really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) distclean) || exit 1; \
	done

distclean.client: distclean.devel
	@for dir in ${CLIENT_BUILD_SUBDIRS}; do \
		echo "Really, really cleaning in $$dir"; \
		(cd $$dir; $(MAKE) distclean) || exit 1; \
	done

links: links.server links.relay links.client

links.devel:
	@for dir in ${DEVEL_BUILD_SUBDIRS}; do \
		echo "Making links in $$dir"; \
		(cd $$dir; $(MAKE) links) || exit 1; \
	done

links.server: links.devel
	@for dir in ${SERVER_BUILD_SUBDIRS}; do \
		echo "Making links in $$dir"; \
		(cd $$dir; $(MAKE) links) || exit 1; \
	done

links.relay: links.devel
	@for dir in ${RELAY_BUILD_SUBDIRS}; do \
		echo "Making links in $$dir"; \
		(cd $$dir; $(MAKE) links) || exit 1; \
	done

links.client: links.devel
	@for dir in ${CLIENT_BUILD_SUBDIRS}; do \
		echo "Making links in $$dir"; \
		(cd $$dir; $(MAKE) links) || exit 1; \
	done


syntax highlighted by Code2HTML, v. 0.9.1