# -*- makefile -*- # 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. ##----------------------------------------------------------------------------- ## The following section of this makefile comes from the ## `./config/conclude' file which was generated with config.status ## from `./config/conclude.in'. ##----------------------------------------------------------------------------- ## This is the target for the library described in the main body of the ## makefile. ## lib: $(LIB) $(LIB) __no_library__: $(LIB_OBJ) @$(LT_LINK_LIB) -o $@ $(CXXFLAGS) $(LIB_OBJ) $(LDFLAGS) $(LIBS) progs: $(LIB) $(PROGS) ## Build a tags file in this directory. TAGS: $(LIB_SRC) $(RM) $@ -etags $(LIB_SRC) ## Runs each test in order, passing $(TEST_FLAGS) to the program. ## Since tests are done in a shell loop, "make -i" does apply inside it. ## Set HDF5_Make_Ignore to a non-blank string to ignore errors inside the loop. tests: $(TEST_PROGS) $(LIB) ## Same as check-s since there is no Parallel C++ tests yet. check test _test: tests @echo "===C++ tests in `echo ${PWD} | sed -e s:.*/::` begin `date`===" $(MAKE) _check-s @echo "===C++ tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===" ## serial tests check-s: tests @echo "===Serial C++ tests in `echo ${PWD} | sed -e s:.*/::` begin `date`===" $(MAKE) _check-s @echo "===Serial C++ tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===" ## parallel tests check-p: tests @echo "===Parallel C++ tests in `echo ${PWD} | sed -e s:.*/::` begin `date`===" $(MAKE) _check-p @echo "===Parallel C++ tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===" ## Actual execution of sequtial tests. _check-s: tests @for test in $(TEST_PROGS) dummy; do \ if test $$test != dummy; then \ echo ""; \ echo "====================================="; \ echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ echo "====================================="; \ echo ""; \ srcdir="$(srcdir)" \ $(TIME) ./$$test $(TEST_FLAGS) || \ (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ break; \ fi; \ done; \ test $$test = dummy || false @for test in $(TEST_SCRIPTS) dummy; do \ if test $$test != dummy; then \ echo ""; \ echo "====================================="; \ echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ echo "====================================="; \ echo ""; \ srcdir="$(srcdir)" \ $(TIME) /bin/sh $$test $(TEST_FLAGS) || \ (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ break; \ fi; \ done; \ test $$test = dummy || false ## Actual execution of parallel tests. ## No parallel C++ tests yet. Just a dummy target. _check-p: tests ## Make installation directories directories if they don't exist. $(libdir): $(top_srcdir)/bin/mkdirs $@ $(includedir): $(top_srcdir)/bin/mkdirs $@ $(bindir): $(top_srcdir)/bin/mkdirs $@ $(EXAMPLEDIR): $(top_srcdir)/bin/mkdirs $@ ## Install the library, the public header files, and public programs. install: $(PUB_LIB) $(PUB_HDR) $(PUB_PROGS) $(libdir) $(includedir) $(bindir) @for f in X $(PUB_LIB); do \ if test $$f != X; then \ ($(LT_INSTALL_LIB) $$f $(libdir)/. || exit 1); \ fi; \ done @if test -f libhdf5_cpp.settings; then \ (set -x; $(INSTALL_DATA) libhdf5_cpp.settings $(libdir)/. || exit 1); \ fi @for f in X $(PUB_HDR); do \ if test $$f != X; then \ if test -f $$f; then \ (set -x; $(INSTALL_DATA) $$f $(includedir)/. || exit 1); \ else \ (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/. || \ exit 1); \ fi; \ fi; \ done @for f in X $(PUB_PROGS); do \ if test $$f != X; then \ ($(LT_INSTALL_PROG) $$f $(bindir)/. || exit 1); \ fi; \ done install-examples: $(EXAMPLE_PROGS) $(EXAMPLEDIR) @for f in X $(EXAMPLE_PROGS); do \ if test $$f != X; then \ (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);\ fi; \ done uninstall-examples: @if test -n "$(EXAMPLE_PROGS)"; then \ set -x; cd $(EXAMPLEDIR) && $(RM) $(EXAMPLE_PROGS); \ fi ## Removes those things that `make install' (would have) installed. uninstall: @for f in libhdf5_cpp.settings $(LIB); do \ $(LT_UNINSTALL) $(libdir)/$$f; \ done @if test -n "$(PUB_HDR)"; then \ set -x; cd $(includedir) && $(RM) $(PUB_HDR); \ fi @for f in X $(PUB_PROGS); do \ if test $$f != X; then \ $(LT_UNINSTALL) $(bindir)/$$f; \ fi; \ done ## Removes temporary files without removing the final target files. That is, ## remove things like object files but not libraries or executables. ## mostlyclean: @if test -n "$(LIB_OBJ)"; then \ $(RM) $(LIB_OBJ) $(LIB_OBJ:.lo=.o); \ fi @if test -n "$(TEST_OBJ)"; then \ $(RM) $(TEST_OBJ) $(TEST_OBJ:.lo=.o); \ fi @if test -n "$(PROG_OBJ)" -o -n "$(MOSTLYCLEAN)"; then \ $(RM) $(PROG_OBJ) $(PROG_OBJ:.lo=.o) $(MOSTLYCLEAN); \ fi ## Like `mostlyclean' except it also removes the final targets: things like ## libraries and executables. This target doesn't remove any file that ## is part of the HDF5 distribution. ## clean: mostlyclean @if test -n "$(LIB)" -o -n "$(TEST_PROGS)" -o -n "$(PROGS)" -o -n "$(CLEAN)"; then \ $(RM) $(LIB) $(TEST_PROGS) $(PROGS) $(CLEAN); \ fi -$(RM) -r .libs ## Like `clean' except it also removes files that were created by running ## configure. If you've unpacked the source and built HDF5 without creating ## any other files, then `make distclean' will leave only the files that were ## in the distribution. ## distclean: clean -$(RM) .depend TAGS *~ core *.core *.bak *.old *.new $(DISTCLEAN) @if test -f $(srcdir)/Makefile.in; then \ (set -x; $(RM) Makefile); \ fi ## Like `distclean' except it deletes all files that can be regenerated from ## the makefile, including those generated from autoheader and autoconf. ## maintainer-clean: distclean -$(RM) *~ core core.* *.core *.bak *.contrib gmon.out ## Implicit rules .cpp.o: $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< .cpp.lo: @$(LT_COMPILE) $(CXXFLAGS) $(CPPFLAGS) -c $< ##----------------------------------------------------------------------------- ## The following section of this makefile contains dependencies between the ## source files and the header files. ##----------------------------------------------------------------------------- .PHONY: dep depend dep depend: $(srcdir)/Dependencies @DEPEND@