From ae4e4231330459115827485b2896c992f904294d Mon Sep 17 00:00:00 2001 From: Robb Matzke Date: Thu, 28 Aug 1997 11:36:57 -0500 Subject: [svn-r43] *** empty log message *** --- Makefile.in | 9 ++++++-- config/commence.in | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ config/conclude.in | 16 ++++++++++---- config/depend.in | 1 + configure | 18 +++++++++++++--- configure.in | 18 +++++++++++++++- 6 files changed, 113 insertions(+), 10 deletions(-) diff --git a/Makefile.in b/Makefile.in index ae08a42..a4ca408 100644 --- a/Makefile.in +++ b/Makefile.in @@ -19,6 +19,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 @@ -55,7 +57,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: @@SETX@; for d in $(SUBDIRS); do \ (cd $$d && $(MAKE) $@) || exit 1; \ done @@ -84,4 +87,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. +@DEPEND@ 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 + diff --git a/configure b/configure index e235ab3..ba332be 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh -# From configure.in Id +# From configure.in Id: configure.in # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.7 # Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. @@ -1354,6 +1354,15 @@ else SETX="set -x" fi +if test -x /bin/pwd; then + pwd=/bin/pwd +else + pwd=pwd +fi + ROOT=`$pwd` + +touch ./config/stamp1 ./config/stamp2 + trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure @@ -1441,7 +1450,8 @@ done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" -trap 'rm -fr `echo "config/depend config/commence config/conclude Makefile src/Makefile test/Makefile src/H5config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +trap 'rm -fr `echo "config/depend config/commence config/conclude \ + Makefile src/Makefile test/Makefile src/H5config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then diff --git a/configure.in b/configure.in index 8aea350..1d7ee2f 100644 --- a/configure.in +++ b/configure.in @@ -133,4 +133,20 @@ else AC_SUBST(SETX) SETX="set -x" fi -AC_OUTPUT(config/depend config/commence config/conclude Makefile src/Makefile test/Makefile) +dnl Where is the root of the source tree. Give an absolute address so +dnl we can find it no matter which directory of the distribution is our +dnl current directory. The built-in pwd fails on some systems, but the +dnl /bin/pwd version works OK. +if test -x /bin/pwd; then + pwd=/bin/pwd +else + pwd=pwd +fi +AC_SUBST(ROOT) ROOT=`$pwd` + +dnl Touch the time-stamp files for src/H5config.h.in and src/H5config.h +dnl before we generate them or the Makefiles. +touch ./config/stamp1 ./config/stamp2 + +AC_OUTPUT(config/depend config/commence config/conclude \ + Makefile src/Makefile test/Makefile) -- cgit v0.12