summaryrefslogtreecommitdiffstats
path: root/config/depend1.in
diff options
context:
space:
mode:
Diffstat (limited to 'config/depend1.in')
-rw-r--r--config/depend1.in51
1 files changed, 51 insertions, 0 deletions
diff --git a/config/depend1.in b/config/depend1.in
new file mode 100644
index 0000000..0e714b9
--- /dev/null
+++ b/config/depend1.in
@@ -0,0 +1,51 @@
+## -*- 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
+## we remove its record from .depend and regenerate its dependencies,
+## tacking them onto the end of .depend. By including the .depend file
+## into the makefile, we're telling make that the makefile depends on
+## the dependency list in the .depend file.
+##
+## This is as fast as the `.d' method described in the GNU make manual
+## for automatic dependencies, but has the added advantage that all
+## dependencies are stored in one place. The advantage over the
+## `makedepend' program is that only those files that are out of date
+## have dependency information rebuilt, and the Makefile is not
+## modified.
+##
+## This is also where tracing information is updated. The $(TRACE)
+## program is run on each source file to make sure that the H5TRACE()
+## macros are up to date. If they are then the file is not modified,
+## otherwise the file is changed and a backup is saved by appending a
+## tilde to the file name.
+##
+.PRECIOUS: $(srcdir)/Dependencies
+$(srcdir)/Dependencies: .depend
+ -@echo '## This file is machine generated on GNU systems.' >$@
+ -@echo '## Only temporary changes may be made here.' >>@
+ -@echo >>@
+ -srcdir=$(srcdir) perl -p $(top_srcdir)/bin/distdep .depend >>$@
+
+.PRECIOUS: .depend
+.depend: $(LIB_SRC) $(TEST_SRC) $(PROG_SRC)
+ @touch .depend
+ @for dep in $? dummy; do \
+ if [ $$dep != "dummy" ]; then \
+ echo Building dependencies for $$dep; \
+ obj=`echo $$dep | sed 's/\.c/\\\\.lo/'`; \
+ sed '\%$$obj%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \
+ $(TRACE) $$dep; \
+ $(CC) -M -MG $(CPPFLAGS) $$dep 2>/dev/null | \
+ sed 's/\.o/.lo/' >>$@; \
+ fi; \
+ done;
+ -@echo '## This file is machine generated on GNU systems.' \
+ >$(srcdir)/Dependencies
+ -@echo '## Only temporary changes may be made here.' \
+ >>$(srcdir)/Dependencies
+ -@echo >>$(srcdir)/Dependencies
+ -perl -p $(top_srcdir)/bin/distdep .depend >>$(srcdir)/Dependencies
+
+-include .depend
+