[svn-r325] Changes since 19980317

----------------------

./MANIFEST
./configure.in
./configure
./Makefile.in
./bin/distdep		[NEW]
./config/conclude.in
./config/depend.in
./src/.distdep		[NEW]
./test/.distdep		[NEW]
	Added some code so non-GNU systems have a list of dependencies
	between the .c files and the .h files.  Hopefully this works
	and y'all don't have to keep saying `make clean' each time you
	change a header.

	On systems with GNU make, GCC, and Perl, the dependency
	information is generated automatically from rules in
	config/depend.in as has always been done.  But now extra files
	called `.distdep' (for `distributable dependencies) are left
	in each directory and these are part of CVS and thus
	releases.  (A `make dep' will create dependencies on demand
	without doing anything else.)

	On systems lacking one or more of the tools above, the various
	`.distdep' files are inserted into the end of the Makefiles.
	If you do developement on one of these systems you'll have to
	update the `.distdep' and/or Makefile by hand, or wait until
	you have access to a GNU system and do a `make dep'.
This commit is contained in:
Robb Matzke 1998-03-18 13:09:16 -05:00
parent 96dd634330
commit 2fd149a582
10 changed files with 323 additions and 35 deletions

View File

@ -11,6 +11,7 @@
./bin/checkposix
./bin/config.guess
./bin/config.sub
./bin/distdep
./bin/errors
./bin/install-sh
./bin/release
@ -87,6 +88,7 @@
./html/study_p1.gif
./html/study_p1.obj
./html/symtab
./src/.distdep
./src/.indent.pro
./src/H5.c
./src/H5AC.c
@ -164,6 +166,7 @@
./src/Makefile.in
./src/debug.c
./src/hdf5.h
./test/.distdep
./test/Makefile.in
./test/cmpd_dset.c
./test/dsets.c

View File

@ -90,9 +90,3 @@ maintainer-clean:
done
$(RM) config.cache config.log config.status src/H5config.h
$(RM) configure src/H5config.h.in
# This file does not end with the `CONCLUDE' statement since it has
# redefined all the standard targets anyway. However, we do need the
# `DEPEND' so we can automatically rerun configure if we have GNU make.
@DEPEND@

6
bin/distdep Normal file
View File

@ -0,0 +1,6 @@
#!/usr/bin/perl -p
# Usage: $0 [<].depend
# Takes dependency info and generates on stdout dependencies suitable for
# distribution by removing all the system include files from the list.
($h,$_)=/\s*\\/?$h.$`:("","$h\n");
s|( +/\S*)*( *)|$2?" \\\n ":""|eg;

View File

@ -100,4 +100,15 @@ maintainer-clean: distclean
.c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
@DEPEND@
#------------------------------------------------------------------------------
# The following section of this makefile contains dependencies between the
# source files and the header files. If GNU make and GCC are being used then
# the dependencies are in the form of rules that cause the information to
# be kept updated automatically. Otherwise the dependencies are listed
# explicitly and come from the `.distdep' files in the various directories.
# These files are part of the distribution and are generated automatically on
# GNU/GCC systems.
#------------------------------------------------------------------------------
@DEPEND1@
@DEPEND2@

View File

@ -1,8 +1,4 @@
#------------------------------------------------------------- -*- makefile -*-
# The following section of this makefile comes from the
# `./config/targets' file which was generated with config.status
# from `./config/targets.in'.
#------------------------------------------------------------------------------
# -*- makefile -*-
# We keep a list of dependencies in `.depend' for each of the source
# files on which it depends. When one of the source files is modified
@ -18,8 +14,12 @@
# have dependency information rebuilt, and the Makefile is not
# modified.
#
.PRECIOUS: .depend
dep depend: .depend
.PRECIOUS: .depend .distdep
dep depend: .distdep
.distdep: .depend
touch .distdep
-perl -p $(ROOT)/bin/distdep .depend >.distdep
.depend: $(LIB_SRC) $(PROG_SRC)
@touch .depend
@ -30,7 +30,8 @@ dep depend: .depend
sed "/$$obj/,/[^\\]$$/d" <$@ >$@- && mv $@- $@; \
$(CC) -M -MG $(CPPFLAGS) $$dep >>$@; \
fi; \
done
done;
-perl -p $(ROOT)/bin/distdep .depend >.distdep
-include .depend

12
configure vendored
View File

@ -2103,9 +2103,11 @@ esac
CONCLUDE=config/conclude
if test "X$GCC" = "Xyes" && test "X$GMAKE" = "Xyes"; then
DEPEND=config/depend
DEPEND1=config/depend
DEPEND2=/dev/null
else
DEPEND='# Use GNU make/GCC if you want auto dependencies'
DEPEND1=src/.distdep
DEPEND2=test/.distdep
fi
if test "X$GMAKE" = "Xyes"; then
@ -2273,8 +2275,10 @@ s%@RUNTEST@%$RUNTEST%g
s%@COMMENCE@%%g
/@CONCLUDE@/r $CONCLUDE
s%@CONCLUDE@%%g
/@DEPEND@/r $DEPEND
s%@DEPEND@%%g
/@DEPEND1@/r $DEPEND1
s%@DEPEND1@%%g
/@DEPEND2@/r $DEPEND2
s%@DEPEND2@%%g
s%@SETX@%$SETX%g
s%@ROOT@%$ROOT%g

View File

@ -207,9 +207,11 @@ AC_SUBST_FILE(COMMENCE) COMMENCE=config/commence
AC_SUBST_FILE(CONCLUDE) CONCLUDE=config/conclude
if test "X$GCC" = "Xyes" && test "X$GMAKE" = "Xyes"; then
AC_SUBST_FILE(DEPEND) DEPEND=config/depend
AC_SUBST_FILE(DEPEND1) DEPEND1=config/depend
AC_SUBST_FILE(DEPEND2) DEPEND2=/dev/null
else
AC_SUBST(DEPEND) DEPEND='# Use GNU make/GCC if you want auto dependencies'
AC_SUBST_FILE(DEPEND1) DEPEND1=src/.distdep
AC_SUBST_FILE(DEPEND2) DEPEND2=test/.distdep
fi
dnl We don't need to say when we're entering directories if we're using

View File

@ -64,6 +64,9 @@
/* Define if you have the lseek64 function. */
#undef HAVE_LSEEK64
/* Define if you have the system function. */
#undef HAVE_SYSTEM
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

View File

@ -16,12 +16,12 @@ PROGS=debug
# Source and object files for the library (lexicographically)...
PARALLEL_SRC=H5Fmpio.c
LIB_SRC=H5.c H5AC.c H5B.c H5D.c H5E.c H5F.c H5Farray.c H5Fcore.c \
H5Ffamily.c H5Fistore.c H5Flow.c H5Fsec2.c H5Fsplit.c H5Fstdio.c \
H5G.c H5Gent.c H5Gnode.c H5Gstab.c H5H.c H5I.c H5MF.c H5MM.c H5O.c \
H5Ocont.c H5Odtype.c H5Oefl.c H5Olayout.c H5Oname.c H5Onull.c \
H5Osdspace.c H5Ostab.c H5P.c H5S.c H5Ssimp.c H5T.c H5Tconv.c \
H5Tinit.c H5V.c @PARALLEL_SRC@
LIB_SRC=H5.c H5AC.c H5B.c H5D.c H5E.c H5F.c H5Farray.c H5Fcore.c H5Ffamily.c \
H5Fistore.c H5Flow.c H5Fsec2.c H5Fsplit.c H5Fstdio.c H5G.c H5Gent.c \
H5Gnode.c H5Gstab.c H5H.c H5I.c H5MF.c H5MM.c H5O.c H5Ocont.c \
H5Odtype.c H5Oefl.c H5Olayout.c H5Oname.c H5Onull.c H5Osdspace.c \
H5Ostab.c H5P.c H5S.c H5Ssimp.c H5T.c H5Tconv.c H5Tinit.c \
H5V.c @PARALLEL_SRC@
LIB_OBJ=$(LIB_SRC:.c=.o)
@ -33,16 +33,16 @@ PROG_SRC=debug.c
PROG_OBJ=$(PROG_SRC:.c=.o)
# Public header files (to be installed)...
PUB_HDR=H5public.h H5ACpublic.h H5Bpublic.h H5Ppublic.h \
H5Dpublic.h H5Epublic.h H5Fpublic.h H5Gpublic.h H5Hpublic.h \
H5Ipublic.h H5MFpublic.h H5MMpublic.h H5Opublic.h H5Spublic.h \
H5Tpublic.h H5config.h hdf5.h
PUB_HDR=H5public.h H5ACpublic.h H5Bpublic.h H5Ppublic.h H5Dpublic.h \
H5Epublic.h H5Fpublic.h H5Gpublic.h H5Hpublic.h H5Ipublic.h \
H5MFpublic.h H5MMpublic.h H5Opublic.h H5Spublic.h H5Tpublic.h \
H5config.h hdf5.h
# Other header files (not to be installed)...
PRIVATE_HDR=H5private.h H5ACprivate.h H5Bprivate.h \
H5Pprivate.h H5Dprivate.h H5Eprivate.h H5Fprivate.h H5Gprivate.h \
H5Gpkg.h H5Hprivate.h H5Iprivate.h H5MFprivate.h H5MMprivate.h \
H5Oprivate.h H5Sprivate.h H5Tprivate.h H5Tpkg.h H5Vprivate.h
PRIVATE_HDR=H5private.h H5ACprivate.h H5Bprivate.h H5Pprivate.h H5Dprivate.h \
H5Eprivate.h H5Fprivate.h H5Gprivate.h H5Gpkg.h H5Hprivate.h \
H5Iprivate.h H5MFprivate.h H5MMprivate.h H5Oprivate.h H5Sprivate.h \
H5Tprivate.h H5Tpkg.h H5Vprivate.h
# Number format detection
H5Tinit.c: H5detect

264
test/.distdep Normal file
View File

@ -0,0 +1,264 @@
testhdf5.o: \
testhdf5.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h
tfile.o: \
tfile.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5Eprivate.h \
../src/H5Epublic.h \
../src/H5Ipublic.h \
../src/H5Bprivate.h \
../src/H5Bpublic.h \
../src/H5Fprivate.h \
../src/H5Fpublic.h \
../src/H5Pprivate.h
theap.o: \
theap.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5Eprivate.h \
../src/H5Epublic.h \
../src/H5Ipublic.h \
../src/H5Iprivate.h \
../src/H5ACprivate.h \
../src/H5ACpublic.h \
../src/H5Fprivate.h \
../src/H5Fpublic.h \
../src/H5Pprivate.h \
../src/H5Ppublic.h \
../src/H5Dpublic.h
tmeta.o: \
tmeta.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5Eprivate.h \
../src/H5Epublic.h
tohdr.o: \
tohdr.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5Eprivate.h \
../src/H5Epublic.h \
../src/H5Ipublic.h \
../src/H5Iprivate.h \
../src/H5ACprivate.h \
../src/H5ACpublic.h \
../src/H5Fprivate.h \
../src/H5Fpublic.h \
../src/H5Pprivate.h \
../src/H5Ppublic.h \
../src/H5Dpublic.h \
../src/H5Gprivate.h \
../src/H5Gpublic.h \
../src/H5Bprivate.h \
../src/H5Bpublic.h \
../src/H5Oprivate.h \
../src/H5Opublic.h \
../src/H5Tprivate.h \
../src/H5Tpublic.h \
../src/H5Sprivate.h
tstab.o: \
tstab.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5Eprivate.h \
../src/H5Epublic.h \
../src/H5Ipublic.h \
../src/H5Iprivate.h \
../src/H5ACprivate.h \
../src/H5ACpublic.h \
../src/H5Fprivate.h \
../src/H5Fpublic.h \
../src/H5Pprivate.h \
../src/H5Ppublic.h \
../src/H5Dpublic.h \
../src/H5Gprivate.h \
../src/H5Gpublic.h \
../src/H5Bprivate.h \
../src/H5Bpublic.h \
../src/H5Oprivate.h \
../src/H5Opublic.h \
../src/H5Tprivate.h \
../src/H5Tpublic.h \
../src/H5Sprivate.h
th5s.o: \
th5s.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5Eprivate.h \
../src/H5Epublic.h \
../src/H5Ipublic.h \
../src/H5Bprivate.h \
../src/H5Bpublic.h \
../src/H5Fprivate.h \
../src/H5Fpublic.h \
../src/H5Sprivate.h \
../src/H5Spublic.h \
../src/H5Gprivate.h \
../src/H5Gpublic.h \
../src/H5Oprivate.h \
../src/H5Opublic.h \
../src/H5Tprivate.h \
../src/H5Tpublic.h \
../src/H5Pprivate.h \
../src/H5Ppublic.h
dtypes.o: \
dtypes.c \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Ipublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5Hpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5Iprivate.h \
../src/H5private.h \
../src/H5Tprivate.h \
../src/H5Gprivate.h \
../src/H5Bprivate.h
hyperslab.o: \
hyperslab.c \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5MMprivate.h \
../src/H5MMpublic.h
istore.o: \
istore.c \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5Iprivate.h \
../src/H5Ipublic.h \
../src/H5Pprivate.h \
../src/H5Ppublic.h \
../src/H5Dpublic.h \
../src/H5Fpublic.h \
../src/H5Fprivate.h \
../src/H5Gprivate.h \
../src/H5Gpublic.h \
../src/H5Bprivate.h \
../src/H5Bpublic.h \
../src/H5MMprivate.h \
../src/H5MMpublic.h \
../src/H5Oprivate.h \
../src/H5Opublic.h \
../src/H5Tprivate.h \
../src/H5Tpublic.h
dsets.o: \
dsets.c \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Ipublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5Hpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h
cmpd_dset.o: \
cmpd_dset.c \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Ipublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5Hpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Spublic.h
extend.o: \
extend.c \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Ipublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5Hpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h
external.o: \
external.c \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Ipublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5Hpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h
iopipe.o: \
iopipe.c \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Ipublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5Hpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h