hdf5/Makefile.in
Albert Cheng a10961f0cd [svn-r6732] Purpose:
Bug fix and feature

Description:
The patch to Makefile.in failed if an empty directory of fortran/examples
was left behind by a previous build.

Solution:
Attempted to put it in config/conclude.in just became a mess since
it is hard to predict when we will include examples in the subdirs
or not.
Borrow the structure of install-examples and do some handcode per
interface.  The Makefile.in of each interface (C, Fortran, C++)
controls everything.  Not very systematic but pretty clean for this
case.

Platforms tested:
h5committested.
Also tested in modi4 with various combinations of fortran, c++
enabled.

Misc. update:
2003-04-22 17:52:25 -05:00

167 lines
6.0 KiB
Makefile

## Top-level HDF5 Makefile(.in)
##
##
## 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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
##
## 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')
SUBDIRS=src test tools @PABLO@ @TESTPARALLEL@ @subdirs@
##############################################################################
## 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 test _test uninstall:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
tests TAGS dep depend:
@@SETX@; for d in $(SUBDIRS) perform; do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
install-all:
@@SETX@; for d in dummy @subdirs@; do \
if test $$d != "dummy"; then \
(cd $$d && $(MAKE) $@) || exit 1; \
fi; \
done
@$(MAKE) install
@$(MAKE) install-doc
@$(LT) --mode=finish $(libdir)
uninstall-all:
@$(MAKE) uninstall
@$(MAKE) uninstall-doc
install:
@@SETX@; for d in $(SUBDIRS); do \
(cd $$d && $(MAKE) $@) || exit 1; \
done
@$(MAKE) install-examples
@$(LT) --mode=finish $(libdir)
install-examples:
@@SETX@; for d in dummy @subdirs@; do \
if test $$d != "dummy"; then \
(cd $$d && $(MAKE) $@) || exit 1; \
fi; \
done
(cd examples && $(MAKE) $@) || exit 1;
uninstall-examples:
@@SETX@; for d in dummy @subdirs@; do \
if test $$d != "dummy"; then \
(cd $$d && $(MAKE) $@) || exit 1; \
fi; \
done
(cd examples && $(MAKE) $@) || exit 1;
install-doc:
@$(MAKE) install-examples
(cd doc && $(MAKE) $@) || exit 1;
uninstall-doc:
@$(MAKE) uninstall-examples
(cd doc && $(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
@@SETX@; for d in dummy @subdirs@; do \
if test $$d != "dummy"; then \
(cd $$d && $(MAKE) $@) || exit 1; \
fi; \
done
## Number format detection
H5detect:
(cd src && $(MAKE) $@)
H5Tinit.c:
(cd src && $(MAKE) $@)
.PHONY: all lib progs test _test install uninstall dep depend clean \
mostlyclean distclean maintainer-clean
clean mostlyclean:
@@SETX@; for d in $(SUBDIRS) doc perform examples; do \
(cd $$d && $(MAKE) $@); \
done
-$(RM) conftest conftest.c
distclean:
@@SETX@; for d in $(SUBDIRS) doc perform 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/H5config.h src/H5pubconf.h
-$(RM) libtool Makefile
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) doc perform examples; do \
(cd $$d && $(MAKE) $@); \
done
-$(RM) config.cache config.log config.status src/H5config.h
-$(RM) configure src/H5config.h.in