1: $(DEPDIR)/deps-ver: $(top_srcdir)/deps-ver
2: @[ -f $@ ] || \
3: cp $(top_srcdir)/deps-ver $@
4: @[ -w $@ ] || \
5: chmod ug+w $@
6: @cmp $(top_srcdir)/deps-ver $@ > /dev/null || ( \
7: $(MAKE) clean && \
8: echo -n "Prior $(subdir)/$(DEPDIR) version " && \
9: cat $@ && \
10: rm -rf $(DEPDIR) && \
11: mkdir $(DEPDIR) && \
12: case "$(top_builddir)" in \
13: .) \
14: ./config.status Makefile depfiles \
15: ;; \
16: ..) \
17: cd .. && \
18: ./config.status $(subdir)/Makefile depfiles && \
19: cd $(subdir) \
20: ;; \
21: *) \
22: echo 'Fatal: depsver.mf Automake fragment limited' \
23: 'to immediate subdirectories.' && \
24: echo "top_builddir: $(top_builddir)" && \
25: echo "subdir: $(subdir)" && \
26: exit 1 \
27: ;; \
28: esac && \
29: echo -n "Cleaned $(subdir)/$(DEPDIR) version " && \
30: cat $(top_srcdir)/deps-ver \
31: )
32: cp $(top_srcdir)/deps-ver $@
33:
34: .deps-ver: $(top_srcdir)/deps-ver
35: @[ ! -d $(DEPDIR) ] || $(MAKE) $(DEPDIR)/deps-ver
36: @touch $@
37:
38: BUILT_SOURCES += .deps-ver
39: CLEANFILES += .deps-ver
40:
41: #
42: # depsver.mf included in Makefile.am for directories with .deps
43: #
44: # When building in the same directory with sources that change over
45: # time, such as when tracking using bk, the .deps files can become
46: # stale with respect to moved, deleted, or superceded headers. Most
47: # commonly, this would exhibit as make reporting a failure to make a
48: # header file which is no longer in the location given. To address
49: # this issue, we use a deps-ver file which is updated with each change
50: # that breaks old .deps files. A copy of deps-ver is made into
51: # $(DEPDIR) if not already present. If $(DEPDIR)/deps-ver is present
52: # with different contents than deps-ver, we make clean to ensure all
53: # .o files built before the incompatible change are rebuilt along with
54: # their updated .deps files, then remove $(DEPDIR) and recreate it as
55: # empty stubs.
56: #
57: # It is normal when configured with --disable-dependency-tracking for
58: # the DEPDIR to not have been created. For this reason, we use the
59: # intermediate target .deps-ver, which invokes make recursively if
60: # DEPDIR exists.
61: #
62: # If you modify depsver.mf, please make the changes to the master
63: # copy, the one in sntp is copied by the bootstrap script from it.
64: #
65: # This comment block follows rather than leads the related code so that
66: # it stays with it in the generated Makefile.in and Makefile.
67: #
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>