From 2fd149a5824c22920d2102b97db8478b2f61d5dd Mon Sep 17 00:00:00 2001 From: Robb Matzke Date: Wed, 18 Mar 1998 13:09:16 -0500 Subject: [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'. --- MANIFEST | 3 + Makefile.in | 6 -- bin/distdep | 6 ++ config/conclude.in | 13 ++- config/depend.in | 17 ++-- configure | 12 ++- configure.in | 6 +- src/H5config.h.in | 3 + src/Makefile.in | 28 +++--- test/.distdep | 264 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 323 insertions(+), 35 deletions(-) create mode 100644 bin/distdep create mode 100644 test/.distdep diff --git a/MANIFEST b/MANIFEST index c674fd1..2e7ecc6 100644 --- a/MANIFEST +++ b/MANIFEST @@ -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 diff --git a/Makefile.in b/Makefile.in index 83bd9cf..9b7ef97 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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@ diff --git a/bin/distdep b/bin/distdep new file mode 100644 index 0000000..287ce84 --- /dev/null +++ b/bin/distdep @@ -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; diff --git a/config/conclude.in b/config/conclude.in index 62b48be..84b1058 100644 --- a/config/conclude.in +++ b/config/conclude.in @@ -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@ diff --git a/config/depend.in b/config/depend.in index 46dac4e..dae45ce 100644 --- a/config/depend.in +++ b/config/depend.in @@ -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 diff --git a/configure b/configure index 95f3d31..bd18570 100755 --- a/configure +++ b/configure @@ -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 diff --git a/configure.in b/configure.in index 7f48014..a05925e 100644 --- a/configure.in +++ b/configure.in @@ -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 diff --git a/src/H5config.h.in b/src/H5config.h.in index b573774..e61769c 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -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 header file. */ #undef HAVE_UNISTD_H diff --git a/src/Makefile.in b/src/Makefile.in index cf1a963..aff0d60 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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 diff --git a/test/.distdep b/test/.distdep new file mode 100644 index 0000000..cb9225b --- /dev/null +++ b/test/.distdep @@ -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 -- cgit v0.12