diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/commence.in | 61 | ||||
-rw-r--r-- | config/conclude.in | 16 | ||||
-rw-r--r-- | config/depend.in | 1 |
3 files changed, 74 insertions, 4 deletions
diff --git a/config/commence.in b/config/commence.in index 503fa0d..26cbfbc 100644 --- a/config/commence.in +++ b/config/commence.in @@ -23,12 +23,73 @@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_DATA=@INSTALL_DATA@ # Installation points +ROOT=@ROOT@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ includedir=@includedir@ +# 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'. diff --git a/config/conclude.in b/config/conclude.in index 4ff8b0b..cfa77ec 100644 --- a/config/conclude.in +++ b/config/conclude.in @@ -4,22 +4,30 @@ # 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 \ diff --git a/config/depend.in b/config/depend.in index d8cec80..b18660d 100644 --- a/config/depend.in +++ b/config/depend.in @@ -33,3 +33,4 @@ dep depend: .depend done -include .depend + |