## Top-level HDF5-C++ Makefile(.in)
##
##
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5.  The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the files COPYING and Copyright.html.  COPYING can be found at the root
# of the source code distribution tree; Copyright.html can be found at the
# root level of an installed copy of the electronic HDF5 document set and
# is linked from the top-level documents page.  It can also be found at
# http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have
# access to either file, you may request a copy from help@hdfgroup.org.
## 
## 
## 
## This makefile mostly just reinvokes make in the various subdirectories
## but does so in the correct order.  You can alternatively invoke make from
## each subdirectory manually.
##
top_srcdir=@top_srcdir@
top_builddir=..
srcdir=@srcdir@

@COMMENCE@

# Subdirectories in build-order (not including `examples')
# We include examples now since those are our "tests" at this time. We
# can remove it later.
SUBDIRS=src test

##############################################################################
##		    T A R G E T S
##
## all:		Build libraries, header files, tests, and programs in the
##	 	various subdirectories but does not run tests or install the
##		library, header files, or programs.  The components can be
##		built individually with the targets lib, progs, and tests.
##
## check:	Test the uninstalled library to make sure it works. You may
##		also say `test' or `_test' (`test' doesn't work from the top
##		level directory for some versions of make because `test' is
##		also a directory).
##
## install:	Installs libraries, header files, programs, and documentation
##		in the various directories under the prefix directory (lib,
##		include, bin, man, info).  Use the `--prefix=PATH' option
##		to `configure' (or `config.status') or say `--help' for
##		other alternatives.  The default prefix is `/usr/local'.
##
## uninstall:	Delete all the installed files that the `install' target
##		created (but not the noninstalled files such as `make all'
##		created).
##
## clean:	Removes temporary files except those that record the
##		configuration and those that are part of the distribution.
##
## mostlyclean:	Like `clean' except it doesn't delete a few files like
##		libraries, programs, and/or generated header files because
##		regenerating them is rarely necessary and takes a lot of time.
##
## distclean:	Deletes all files that are created by configuring or building
##		HDF5.  If you have unpacked the source and built HDF5 without
##		creating any other files, then `make distclean' will leave
##		only the files that were in the distrubution.
##
## maintainer-clean:
##		Like `distclean' except it deletes more files.  It deletes
##		all generated files.  This target is not intended for normal
##		users; it deletes files that may require special tools to
##		rebuild.
##
## TAGS:	Updates the tags table for this program.
##
## dep depend:	Builds dependencies in all subdirectories.  These targets
##		might not be available on certain combinations of make
##		programs and C compilers.  At the other extreme, the GNU
##		make used in combination with gcc will maintain dependency
##		information automatically.
lib progs check check-s check-p test _test uninstall:
	@@SETX@; for d in $(SUBDIRS); do				      \
	   (cd $$d && $(MAKE) $@) || exit 1;				      \
	done

tests TAGS dep depend:
	@@SETX@; for d in $(SUBDIRS); do				      \
	   (cd $$d && $(MAKE) $@) || exit 1;				      \
	done

install-all:
	@$(MAKE) install

install:
	@@SETX@; for d in $(SUBDIRS); do				      \
	   (cd $$d && $(MAKE) $@) || exit 1;				      \
	done
	@$(MAKE) install-examples
	@$(LT) --mode=finish $(libdir);

install-examples:
	(cd examples && $(MAKE) $@) || exit 1;

uninstall-examples:
	(cd examples && $(MAKE) $@) || exit 1;

## Check if installation is correct by checking if examples can be built.
## This requires a proper "make install" has been done.
check-install:
	(cd examples && $(MAKE) check) || exit 1

.PHONY: all lib progs test _test install uninstall dep depend clean           \
	mostlyclean distclean maintainer-clean

clean mostlyclean:
	@@SETX@; for d in $(SUBDIRS) examples; do                             \
	   (cd $$d && $(MAKE) $@);                                            \
	done
	-$(RM) conftest conftest.c

distclean:
	@@SETX@; for d in $(SUBDIRS) examples; do                             \
	   (cd $$d && $(MAKE) $@);                                            \
	done
	-$(RM) config/commence config/conclude
	-$(RM) config/stamp1 config/stamp2 config/depend?
	-$(RM) config.cache config.log config.status configure.lineno
	-$(RM) src/H5cxx_config.h src/H5cxx_pubconf.h
	-$(RM) libtool Makefile so_locations

maintainer-clean:
	@echo "This target is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."
	@@SETX@; for d in $(SUBDIRS) examples; do			      \
	   (cd $$d && $(MAKE) $@);					      \
	done
	-$(RM) config.cache config.log config.status src/H5cxx_config.h
	-$(RM) configure src/H5config.h.in

