summaryrefslogtreecommitdiffstats
path: root/c++/examples
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2005-02-01 03:17:02 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2005-02-01 03:17:02 (GMT)
commit26303241febadd20aea77fc8a1d48f05823170af (patch)
tree4ba1d92050fa6cc33feab6a38bc9778f71bbb146 /c++/examples
parent9f17319144fca94a852fd500487b0e4ae48e0997 (diff)
downloadhdf5-26303241febadd20aea77fc8a1d48f05823170af.zip
hdf5-26303241febadd20aea77fc8a1d48f05823170af.tar.gz
hdf5-26303241febadd20aea77fc8a1d48f05823170af.tar.bz2
[svn-r9902] Purpose:
Configuration feature Description: HDF5 now uses automake to generate Makefiles Solution: Makefile.in files are now generated from Makefile.am files. To reconfigure (after chaning a Makefile.am or configure.in): /bin/sh bin/reconfigure.sh Platforms tested: Many
Diffstat (limited to 'c++/examples')
-rw-r--r--c++/examples/Dependencies3
-rw-r--r--c++/examples/Makefile.am91
-rw-r--r--c++/examples/Makefile.in676
3 files changed, 699 insertions, 71 deletions
diff --git a/c++/examples/Dependencies b/c++/examples/Dependencies
deleted file mode 100644
index f29a269..0000000
--- a/c++/examples/Dependencies
+++ /dev/null
@@ -1,3 +0,0 @@
-## This file is machine generated on GNU systems.
-## Only temporary changes may be made here.
-
diff --git a/c++/examples/Makefile.am b/c++/examples/Makefile.am
new file mode 100644
index 0000000..fb9ae98
--- /dev/null
+++ b/c++/examples/Makefile.am
@@ -0,0 +1,91 @@
+#
+# 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.
+##
+## Makefile.am
+## Run automake to generate a Makefile.in from this file.
+##
+#
+# HDF5 Library Examples Makefile(.in)
+#
+
+include $(top_srcdir)/config/commence.am
+
+# Use h5c++ to build examples, instead of reguar C++ compiler
+H5CPP=$(bindir)/h5c++
+
+# These are the programs that 'make all' or 'make prog' will build and
+# which 'make check' will run. List them in the order they should be run.
+TEST_PROG=create readdata writedata compound extend_ds chunks h5group
+
+EXAMPLE_PROG=$(TEST_PROG)
+
+# Tell conclude.in when to build the examples
+EXTRA_PROG=$(TEST_PROG)
+
+# These are the example files to be installed
+INSTALL_FILES=create.cpp readdata.cpp writedata.cpp compound.cpp \
+ extend_ds.cpp chunks.cpp h5group.cpp
+
+# These are the files that 'make clean' (and derivatives) will remove from this
+# directory. Since automake doesn't know about the examples, we need to
+# tell it to clean the example programs, too.
+MOSTLYCLEANFILES=*.h5
+CLEANFILES=$(EXTRA_PROG)
+
+# How to install examples
+EXAMPLEDIR=$(docdir)/hdf5/examples/c++
+
+$(EXAMPLEDIR):
+ -$(top_srcdir)/bin/mkdirs $@
+
+install-data-local:
+ $(MAKE) install-examples
+uninstall-local:
+ $(MAKE) uninstall-examples
+
+# Install source files, which are the examples with .cpp suffixes. Do the same
+# for uninstall.
+install-examples: $(EXAMPLEDIR)
+ @for f in X $(INSTALL_FILES); do \
+ if test $$f != X; then \
+ (set -x; $(INSTALL_DATA) $(top_srcdir)/c++/examples/$$f $(EXAMPLEDIR)/. || exit 1);\
+ fi; \
+ done
+
+uninstall-examples:
+ @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
+ set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES).cpp; \
+ fi
+
+check-install:
+ $(MAKE) installcheck
+installcheck-local:
+ $(MAKE) check
+
+# How to build programs using h5c++
+$(EXTRA_PROG): $(H5CPP) $(LIBHDF5) $(LIBH5CPP)
+ $(H5CPP) $(CPPFLAGS) -o $@ $(srcdir)/$@.cpp
+
+# List dependencies for each program. Normally, automake would take
+# care of this for us, but if we tell automake about the programs it
+# will try to build them with the normal C++ compiler, not h5c++. This is
+# an inelegant way of solving the problem, unfortunately.
+create: $(srcdir)/create.cpp
+readdata: $(srcdir)/readdata.cpp
+writedata: $(srcdir)/writedata.cpp
+compound: $(srcdir)/compound.cpp
+extend_ds: $(srcdir)/extend_ds.cpp
+chunks: $(srcdir)/chunks.cpp
+h5group: $(srcdir)/h5group.cpp
+
+include $(top_srcdir)/config/conclude.am
diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in
index e0a5b5e..13f94c9 100644
--- a/c++/examples/Makefile.in
+++ b/c++/examples/Makefile.in
@@ -1,77 +1,617 @@
-## HDF5-C++ examples/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.
-##
-##
-##
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-
-@COMMENCE@
-
-HDF_CXX="yes"
-
-## Replace building CC with the just installed h5cc
-CXX=$(bindir)/h5c++
-CPPFLAGS=-I. -I$(srcdir) -I$(top_srcdir)/hl/src
-CFLAGS=
-
-hdf5_srcdir=$(top_srcdir)/src
-hdf5_builddir=$(top_builddir)/src
-
-## List all source files here. The list of object files will be
-## created by replacing the `.cpp' with a `.lo'. This list is necessary
-## for building automatic dependencies.
-TEST_SRC=create.cpp readdata.cpp writedata.cpp compound.cpp extend_ds.cpp \
- chunks.cpp h5group.cpp
-TEST_OBJ=$(TEST_SRC:.cpp=.lo)
-
-EXAMPLE_PROGS=$(TEST_SRC)
-
-## These are the programs that `make all' or `make tests' will build and which
-## `make check' will run. List them in the order they should be run.
-TEST_PROGS=$(TEST_SRC:.cpp=)
-
-##TEST_SCRIPTS=$(srcdir)/testexamples.sh
-
-## These are the files that `make clean' (and derivatives) will remove from
-## this directory.
-CLEAN=*.h5
-
-## How to build the programs... they all depend on the Fortran & C hdf5 libraries
-$(TEST_PROGS): $(LIB) $(LIBHDF5)
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
-compound: $(srcdir)/compound.cpp
- $(CXX) $(CPPFLAGS) -o $@ $(srcdir)/compound.cpp
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-h5group: $(srcdir)/h5group.cpp
- $(CXX) $(CPPFLAGS) -o $@ $(srcdir)/h5group.cpp
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
-create: $(srcdir)/create.cpp
- $(CXX) $(CPPFLAGS) -o $@ $(srcdir)/create.cpp
+@SET_MAKE@
-readdata: $(srcdir)/readdata.cpp
- $(CXX) $(CPPFLAGS) -o $@ $(srcdir)/readdata.cpp
+#
+# 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.
+#
+# HDF5 Library Examples Makefile(.in)
+#
-chunks: $(srcdir)/chunks.cpp
- $(CXX) $(CPPFLAGS) -o $@ $(srcdir)/chunks.cpp
+#------------------------------------------------------------ -*- makefile -*-
+# The following section of this makefile comes from the
+# `./config/commence' file which was generated with config.status
+# from `./config/commence.in'.
+#-----------------------------------------------------------------------------
-extend_ds: $(srcdir)/extend_ds.cpp
- $(CXX) $(CPPFLAGS) -o $@ $(srcdir)/extend_ds.cpp
+#------------------------------------------------------------ -*- makefile -*-
+# The following section of this makefile comes from the
+# `./config/conclude' file which was generated with config.status
+# from `./config/conclude.in'.
+#-----------------------------------------------------------------------------
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+
+# Install directories that automake doesn't know about
+includedir = $(exec_prefix)/include
+ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AWK = @AWK@
+BUILD_PDB2HDF = @BUILD_PDB2HDF@
+BYTESEX = @BYTESEX@
+CC = @CC@
+CC_VERSION = @CC_VERSION@
+CONFIG_DATE = @CONFIG_DATE@
+CONFIG_MODE = @CONFIG_MODE@
+CONFIG_USER = @CONFIG_USER@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+DEBUG_PKG = @DEBUG_PKG@
+DEFAULT_LIBS = @DEFAULT_LIBS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DYNAMIC_DIRS = @DYNAMIC_DIRS@
+ECHO = @ECHO@
+F77 = @F77@
+F9XSUFFIXFLAG = @F9XSUFFIXFLAG@
+FC = @FC@
+FFLAGS = @FFLAGS@
+FILTERS = @FILTERS@
+FSEARCH_DIRS = @FSEARCH_DIRS@
+GASS = @GASS@
+H5_VERSION = @H5_VERSION@
+HADDR_T = @HADDR_T@
+HDF5_INTERFACES = @HDF5_INTERFACES@
+HID_T = @HID_T@
+HL = @HL@
+HL_FOR = @HL_FOR@
+HSIZET = @HSIZET@
+HSIZE_T = @HSIZE_T@
+HSSIZE_T = @HSSIZE_T@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LT_STATIC_EXEC = @LT_STATIC_EXEC@
+MPE = @MPE@
+OBJDUMP = @OBJDUMP@
+OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
+PACKAGE = @PACKAGE@
+PARALLEL = @PARALLEL@
+PERL = @PERL@
+PTHREAD = @PTHREAD@
+RANLIB = @RANLIB@
+ROOT = @ROOT@
+RUNPARALLEL = @RUNPARALLEL@
+RUNSERIAL = @RUNSERIAL@
+R_INTEGER = @R_INTEGER@
+R_LARGE = @R_LARGE@
+SEARCH = @SEARCH@
+SETX = @SETX@
+SIZE_T = @SIZE_T@
+SRB = @SRB@
+SSL = @SSL@
+STATIC_SHARED = @STATIC_SHARED@
+STRIP = @STRIP@
+TESTGASS = @TESTGASS@
+TESTPARALLEL = @TESTPARALLEL@
+TESTSRB = @TESTSRB@
+TRACE_API = @TRACE_API@
+USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
+USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
+USE_FILTER_NBIT = @USE_FILTER_NBIT@
+USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
+USE_FILTER_SZIP = @USE_FILTER_SZIP@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+# Shell commands used in Makefiles
+RM = rm -f
+CP = cp
+
+# Libraries to link to while building
+LIBHDF5 = $(top_builddir)/src/libhdf5.la
+LIBH5TEST = $(top_builddir)/test/libh5test.la
+LIBH5F = $(top_builddir)/fortran/src/libhdf5_fortran.la
+LIBH5FTEST = $(top_builddir)/fortran/test/libh5test_fortran.la
+LIBH5CPP = $(top_builddir)/c++/src/libhdf5_cpp.la
+LIBH5TOOLS = $(top_builddir)/tools/lib/libh5tools.la
+LIBH5_HL = $(top_builddir)/hl/src/libhdf5_hl.la
+LIBH5F_HL = $(top_builddir)/hl/fortran/src/libhdf5hl_fortran.la
+docdir = $(exec_prefix)/doc
+
+# Scripts used to build examples
+H5CC = $(bindir)/h5cc
+H5CC_PP = $(bindir)/h5pcc
+H5FC = $(bindir)/h5fc
+H5FC_PP = $(bindir)/h5pfc
+
+# Make sure that these variables are exported to the Makefiles
+F9XMODEXT = @F9XMODEXT@
+
+# Use h5c++ to build examples, instead of reguar C++ compiler
+H5CPP = $(bindir)/h5c++
+
+# These are the programs that 'make all' or 'make prog' will build and
+# which 'make check' will run. List them in the order they should be run.
+TEST_PROG = create readdata writedata compound extend_ds chunks h5group
+
+EXAMPLE_PROG = $(TEST_PROG)
+
+# Tell conclude.in when to build the examples
+EXTRA_PROG = $(TEST_PROG)
+
+# These are the example files to be installed
+INSTALL_FILES = create.cpp readdata.cpp writedata.cpp compound.cpp \
+ extend_ds.cpp chunks.cpp h5group.cpp
+
+
+# These are the files that 'make clean' (and derivatives) will remove from this
+# directory. Since automake doesn't know about the examples, we need to
+# tell it to clean the example programs, too.
+MOSTLYCLEANFILES = *.h5
+CLEANFILES = $(EXTRA_PROG)
+
+# How to install examples
+EXAMPLEDIR = $(docdir)/hdf5/examples/c++
+
+# Automake needs to be taught how to build lib, progs, and tests targets.
+# These will be filled in automatically for the most part (e.g.,
+# lib_LIBRARIES are built for lib target), but EXTRA_LIB, EXTRA_PROG, and
+# EXTRA_TEST variables are supplied to allow the user to force targets to
+# be built at certain times.
+LIB = $(lib_LIBRARIES) $(lib_LTLIBRARIES) $(noinst_LIBRARIES) \
+ $(noinst_LTLIBRARIES) $(check_LIBRARIES) $(check_LTLIBRARIES) $(EXTRA_LIB)
+
+PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
+ $(EXTRA_PROG)
+
+TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
+subdir = c++/examples
+mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/src/H5config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/conclude.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign c++/examples/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @list='$(DISTFILES)'; for file in $$list; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile all-local
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am: installcheck-local
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am uninstall-local
+
+.PHONY: all all-am all-local check check-TESTS check-am clean \
+ clean-generic clean-libtool distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am info info-am install \
+ install-am install-data install-data-am install-data-local \
+ install-exec install-exec-am install-info install-info-am \
+ install-man install-strip installcheck installcheck-am \
+ installcheck-local installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool uninstall uninstall-am uninstall-info-am \
+ uninstall-local
+
+
+# Let automake worry about Makefiles and configure components being up-to-
+# date.
+#
+#
+# The following rules insure that the Makefile is up-to-date by rerunning
+# various autoconf components (although not all versions of make assume
+# that the makefile is implicitly a target). We use time stamp files to
+# keep track of the most recent update of H5config.h.in and H5config.h
+# because autoheader and config.status don't update the modification time
+# if the contents don't change.
+# Invoke it by "gmake reconfigure".
+#
+# Graphically, the dependencies are:
+#
+# configure.in
+# | |
+# +-----------------+ +------------+
+# | |
+# stamp1 configure
+# (H5config.h.in) |
+# | | |
+# | +---------------+ +-----------+
+# | | |
+# | config.status
+# | |
+# | +------------------+
+# | |
+# stamp2
+# (H5config.h) Makefile.in et al
+# | |
+# +------------------+ +-----------+
+# | |
+# Makefile
+#
+# A side effect of updating stamp1 is to generate H5config.h.in and a
+# side effect of updating stamp2 is to generate H5config.h. When using
+# a version of make that doesn't treat the makefile as the initial target
+# the user may want to occassionally type `make Makefile' in any source
+# directory.
+# The `Makefile' target has been renamed to `reconfigure' so that the
+# autoconf and make depend processes do not start up automatically.
+# One must do `make reconfigure' explicitedly to start the process.
+# (When srcdir is used and if more than one machines are running,
+# this automatic Makefile/autoconf can get things unstable.)
+#
+#STAMP1=$(top_builddir)/config/stamp1
+#STAMP2=$(top_builddir)/config/stamp2
+
+#MAKEFILE_PARTS=$(srcdir)/Makefile.in \
+# $(top_srcdir)/config/commence.am \
+# $(top_srcdir)/config/conclude.am
+
+#$(STAMP1): $(top_srcdir)/configure.in
+# touch $(STAMP1)
+# -cd $(top_srcdir); autoheader
+
+#$(STAMP2): $(STAMP1) $(top_builddir)/config.status
+# touch $(STAMP2)
+# -cd $(top_builddir); \
+# CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status
+
+# Automake supplies a rule to generate configure
+
+#$(top_builddir)/config.status: $(top_srcdir)/configure $(STAMP1)
+# -cd $(top_builddir); ./config.status --recheck
+
+# rerun the autoconf process if any configure components have changed.
+#reconfigure: $(MAKEFILE_PARTS) $(STAMP2)
+# -cd $(top_builddir); CONFIG_HEADERS= ./config.status
+# @for sub in @subdirs@ dummy; do \
+# if test $$sub != dummy; then \
+# -cd $$sub; $(MAKE) reconfigure; \
+# fi; \
+# done;
+
+#-----------------------------------------------------------------------------
+# The following section of this makefile comes from the middle of
+# `Makefile.am' from this directory.
+# It was generated by running automake on `Makefile.am' to create
+# `Makefile.in', then running `config.status' to create this Makefile.
+#-----------------------------------------------------------------------------
+
+$(EXAMPLEDIR):
+ -$(top_srcdir)/bin/mkdirs $@
+
+install-data-local:
+ $(MAKE) install-examples
+uninstall-local:
+ $(MAKE) uninstall-examples
+
+# Install source files, which are the examples with .cpp suffixes. Do the same
+# for uninstall.
+install-examples: $(EXAMPLEDIR)
+ @for f in X $(INSTALL_FILES); do \
+ if test $$f != X; then \
+ (set -x; $(INSTALL_DATA) $(top_srcdir)/c++/examples/$$f $(EXAMPLEDIR)/. || exit 1);\
+ fi; \
+ done
+
+uninstall-examples:
+ @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
+ set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES).cpp; \
+ fi
+
+check-install:
+ $(MAKE) installcheck
+installcheck-local:
+ $(MAKE) check
+
+# How to build programs using h5c++
+$(EXTRA_PROG): $(H5CPP) $(LIBHDF5) $(LIBH5CPP)
+ $(H5CPP) $(CPPFLAGS) -o $@ $(srcdir)/$@.cpp
+
+# List dependencies for each program. Normally, automake would take
+# care of this for us, but if we tell automake about the programs it
+# will try to build them with the normal C++ compiler, not h5c++. This is
+# an inelegant way of solving the problem, unfortunately.
+create: $(srcdir)/create.cpp
+readdata: $(srcdir)/readdata.cpp
writedata: $(srcdir)/writedata.cpp
- $(CXX) $(CPPFLAGS) -o $@ $(srcdir)/writedata.cpp
+compound: $(srcdir)/compound.cpp
+extend_ds: $(srcdir)/extend_ds.cpp
+chunks: $(srcdir)/chunks.cpp
+h5group: $(srcdir)/h5group.cpp
+
+# lib/progs/tests targets recurse into subdirectories. build-* targets
+# build files in this directory.
+build-lib: $(LIB)
+build-progs: $(LIB) $(PROGS)
+build-tests: $(LIB) $(PROGS) $(TESTS)
+
+lib progs tests ::
+ @$(MAKE) build-$@ || exit 1; \
+ for d in X $(SUBDIRS); do \
+ if test $$d != X -a $$d != .; then \
+ (set -x; cd $$d && $(MAKE) $@) || exit 1; \
+ fi; \
+ done
+
+# Tell Automake to build tests when the user types `make all' (this is
+# not its default behavior). Also build EXTRA_LIB and EXTRA_PROG since
+# Automake won't build them automatically, either.
+all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(TESTS)
+
+# make install-doc doesn't do anything outside of doc directory, but
+# Makefiles should recognize it.
+install-doc uninstall-doc:
+ @echo "Nothing to be done."
+
+# Run 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.
+# The timestamps give a rough idea how much time the tests use.
+#
+# Note that targets in TESTS (defined above) will be built when the user
+# types 'make tests' or 'make check', but only programs in TEST_PROG,
+# TEST_PROG_PARA, or TEST_SCRIPT will actually be executed.
+check-TESTS: test
+
+test _test: $(PROGS) $(TESTS)
+ @if test -n "$(TEST_PROG)$(TEST_PROG_PARA)$(TEST_SCRIPT)"; then \
+ echo "===Tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \
+ fi
+ @for test in $(TEST_PROG) dummy; do \
+ if test $$test != dummy; then \
+ echo "============================"; \
+ if test "X$(HDF_FORTRAN)" = "Xyes"; then \
+ echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
+ elif test "X$(HDF_CXX)" = "Xyes"; then \
+ echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
+ else \
+ echo "Testing $$test $(TEST_FLAGS)"; \
+ fi; \
+ echo "============================"; \
+ srcdir="$(srcdir)" \
+ $(RUNTEST) ./$$test $(TEST_FLAGS) || \
+ (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
+ break; \
+ echo ""; \
+ fi; \
+ done; \
+ test $$test = dummy || false
+ @if test -n "$(TEST_PROG_PARA)"; then \
+ echo "**** Hint ****"; \
+ echo "Parallel test files reside in the current directory" \
+ "by default."; \
+ echo "Set HDF5_PARAPREFIX to use another directory. E.g.,"; \
+ echo " HDF5_PARAPREFIX=/PFS/user/me"; \
+ echo " export HDF5_PARAPREFIX"; \
+ echo " make check"; \
+ echo "**** end of Hint ****"; \
+ fi
+ @for test in $(TEST_PROG_PARA) dummy; do \
+ if test $$test != dummy; then \
+ echo "============================"; \
+ if test "X$(HDF_FORTRAN)" = "Xyes"; then \
+ echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
+ elif test "X$(HDF_CXX)" = "Xyes"; then \
+ echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
+ else \
+ echo "Testing $$test $(TEST_FLAGS)"; \
+ fi; \
+ echo "============================"; \
+ srcdir="$(srcdir)" \
+ $(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \
+ (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
+ break; \
+ echo ""; \
+ fi; \
+ done; \
+ test $$test = dummy || false
+ @for test in $(TEST_SCRIPT) dummy; do \
+ if test $$test != dummy; then \
+ echo "============================"; \
+ if test "X$(HDF_FORTRAN)" = "Xyes"; then \
+ echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \
+ elif test "X$(HDF_CXX)" = "Xyes"; then \
+ echo "C++ API: Testing $$test $(TEST_FLAGS)"; \
+ else \
+ echo "Testing $$test $(TEST_FLAGS)"; \
+ fi; \
+ echo "============================"; \
+ RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \
+ srcdir="$(srcdir)" \
+ /bin/sh $$test $(TEST_FLAGS) || \
+ (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \
+ break; \
+ echo ""; \
+ fi; \
+ done; \
+ test $$test = dummy || false
+ @if test -n "$(TEST_PROG)$(TEST_PROG_PARA)$(TEST_SCRIPT)"; then \
+ echo "===Tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\
+ fi
-@CONCLUDE@
+# Run test with different Virtual File Driver
+check-vfd:
+ @for vfd in $(VFD_LIST) dummy; do \
+ if test $$vfd != dummy; then \
+ echo "============================"; \
+ echo "Testing Virtual File Driver $$vfd"; \
+ echo "============================"; \
+ HDF5_DRIVER=$$vfd $(MAKE) check; \
+ fi; \
+ done
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT: