mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
a10961f0cd
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:
167 lines
6.0 KiB
Makefile
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
|
|
|