diff options
Diffstat (limited to 'c++/config/depend1.in')
-rw-r--r-- | c++/config/depend1.in | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/c++/config/depend1.in b/c++/config/depend1.in new file mode 100644 index 0000000..e07f4bf --- /dev/null +++ b/c++/config/depend1.in @@ -0,0 +1,50 @@ +## -*- 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. +## +$(srcdir)/Dependencies: .depend + @if test "$(srcdir)" != "."; then \ + echo '## This file is machine generated on GNU systems.' >$@; \ + echo '## Only temporary changes may be made here.' >>$@; \ + echo >>$@; \ + perl -p $(top_srcdir)/bin/distdep .depend >>$@; \ + else \ + echo 'Dependencies cannot be built when $$srcdir == $$builddir'; \ + fi + +.depend: $(LIB_SRC) $(TEST_SRC) $(PROG_SRC) + @touch .depend + @for dep in $? dummy; do \ + if [ $$dep != "dummy" ]; then \ + echo Building dependencies for $$dep; \ + obj=`basename $$dep .c`.lo; \ + sed '\%^'"$$obj"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \ + $(TRACE) $$dep; \ + $(CC) -M -MG $(CPPFLAGS) $$dep 2>/dev/null | \ + sed 's% $(srcdir)/% $$(srcdir)/%g' | \ + sed 's% $(top_srcdir)/% $$(top_srcdir)/%g' | \ + sed 's% $(top_builddir)/% $$(top_builddir)/%g' | \ + sed 's/\.o/.lo/' >>$@; \ + fi; \ + done; + +-include .depend + |