diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 1997-08-29 19:26:45 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 1997-08-29 19:26:45 (GMT) |
commit | 3ea316ff54d76b866325794d84e4a9c060a4b2b8 (patch) | |
tree | fa6ef1ade99fdee40d38df3df9561a140c42e2e4 | |
parent | 39a94b2f538e6b4d1b13362e022141ba8cb599c0 (diff) | |
download | hdf5-3ea316ff54d76b866325794d84e4a9c060a4b2b8.zip hdf5-3ea316ff54d76b866325794d84e4a9c060a4b2b8.tar.gz hdf5-3ea316ff54d76b866325794d84e4a9c060a4b2b8.tar.bz2 |
[svn-r54] *** empty log message ***
-rw-r--r-- | Makefile | 70 | ||||
-rw-r--r-- | test/Makefile | 77 |
2 files changed, 141 insertions, 6 deletions
@@ -35,12 +35,73 @@ INSTALL_PROGRAM=${INSTALL} INSTALL_DATA=${INSTALL} -m 644 # Installation points +ROOT=/usr/home/koziol/hdf_dev/hdf5 prefix=/usr/local exec_prefix=${prefix} bindir=${exec_prefix}/bin libdir=${exec_prefix}/lib includedir=${prefix}/include +# The default is to build the library and programs. +all: lib progs + +# 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. +# +# Graphically, the dependencies are: +# +# configure.in +# | | +# +--------------------+ +-------------------+ +# | | +# stamp1 configure +# | | +# | config.status +# | | | +# | +-------------------------------------+ | +# | | | +# stamp2 Makefile.in | +# | | | +# | +-----------+ +------+ +# +-----------------------------+ | | +# | | | +# 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. +# +STAMP1=$(ROOT)/config/stamp1 +STAMP2=$(ROOT)/config/stamp2 + +MAKEFILE_PARTS=$(ROOT)/config/commence.in Makefile.in \ + $(ROOT)/config/conclude.in $(ROOT)/config/depend.in + +$(STAMP1): $(ROOT)/configure.in + -(cd $(ROOT); \ + touch $(STAMP1); \ + autoheader) + +$(STAMP2): $(STAMP1) $(ROOT)/config.status + -(cd $(ROOT); \ + touch $(STAMP2); \ + CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status) + +$(ROOT)/configure: $(ROOT)/configure.in + -(cd $(ROOT); autoconf) + +$(ROOT)/config.status: $(ROOT)/configure + -(cd $(ROOT); ./config.status --recheck) + +Makefile: $(MAKEFILE_PARTS) $(ROOT)/config.status $(STAMP2) + -(cd $(ROOT); CONFIG_HEADERS= ./config.status) + #------------------------------------------------------------------------------ # The following section of this makefile comes from the middle of `Makefile.in' # from this directory. It was generated by running `config.status'. @@ -55,6 +116,8 @@ SUBDIRS=src test # all: Build libraries, header files, and programs in the various # subdirectories but do not install them. # +# test: Test the uninstalled library to make sure it works. +# # 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 @@ -91,7 +154,8 @@ SUBDIRS=src test # make used in combination with gcc will maintain dependency # information automatically. # -all install uninstall TAGS dep depend: +.PHONY: test +all lib progs test install uninstall TAGS dep depend: @set -x; for d in $(SUBDIRS); do \ (cd $$d && $(MAKE) $@) || exit 1; \ done @@ -120,4 +184,6 @@ maintainer-clean: # This file does not end with the `CONCLUDE' statement since it has -# redefined all the standard targets anyway. +# redefined all the standard targets anyway. However, we do need the +# `DEPEND' so we can automatically rerun configure if we have GNU make. + diff --git a/test/Makefile b/test/Makefile index 21c5bc8..c1a15bf 100644 --- a/test/Makefile +++ b/test/Makefile @@ -31,12 +31,73 @@ INSTALL_PROGRAM=${INSTALL} INSTALL_DATA=${INSTALL} -m 644 # Installation points +ROOT=/usr/home/koziol/hdf_dev/hdf5 prefix=/usr/local exec_prefix=${prefix} bindir=${exec_prefix}/bin libdir=${exec_prefix}/lib includedir=${prefix}/include +# The default is to build the library and programs. +all: lib progs + +# 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. +# +# Graphically, the dependencies are: +# +# configure.in +# | | +# +--------------------+ +-------------------+ +# | | +# stamp1 configure +# | | +# | config.status +# | | | +# | +-------------------------------------+ | +# | | | +# stamp2 Makefile.in | +# | | | +# | +-----------+ +------+ +# +-----------------------------+ | | +# | | | +# 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. +# +STAMP1=$(ROOT)/config/stamp1 +STAMP2=$(ROOT)/config/stamp2 + +MAKEFILE_PARTS=$(ROOT)/config/commence.in Makefile.in \ + $(ROOT)/config/conclude.in $(ROOT)/config/depend.in + +$(STAMP1): $(ROOT)/configure.in + -(cd $(ROOT); \ + touch $(STAMP1); \ + autoheader) + +$(STAMP2): $(STAMP1) $(ROOT)/config.status + -(cd $(ROOT); \ + touch $(STAMP2); \ + CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status) + +$(ROOT)/configure: $(ROOT)/configure.in + -(cd $(ROOT); autoconf) + +$(ROOT)/config.status: $(ROOT)/configure + -(cd $(ROOT); ./config.status --recheck) + +Makefile: $(MAKEFILE_PARTS) $(ROOT)/config.status $(STAMP2) + -(cd $(ROOT); CONFIG_HEADERS= ./config.status) + #------------------------------------------------------------------------------ # The following section of this makefile comes from the middle of `Makefile.in' # from this directory. It was generated by running `config.status'. @@ -66,22 +127,30 @@ testhdf5: $(PROG_OBJ) ../src/libhdf5.a # from `./config/conclude.in'. #------------------------------------------------------------------------------ -# The default is to build the library and programs. -all: $(LIB) $(PROGS) -lib: $(LIB) - # This is the target for the library described in the main body of the # makefile. # +lib: $(LIB) $(LIB) __no_library__: $(LIB_OBJ) $(AR) -rc $@ $(LIB_OBJ) $(RANLIB) $@ +progs: $(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. +test: $(PROGS) + @for test in $(TESTS) dummy; do \ + if test $$test != dummy; then \ + echo "$$test $(TEST_FLAGS)"; \ + $$test $(TEST_FLAGS) || exit 1; \ + fi; \ + done; + # Install the library, the public header files, and programs. install: $(LIB) $(PUB_HDR) $(PROGS) @if test -n "$(LIB)"; then \ |