NetBSD/external/bsd/ntp/dist/depsver.mf

68 lines
2.4 KiB
Plaintext

$(DEPDIR)/deps-ver: $(top_srcdir)/deps-ver
@[ -f $@ ] || \
cp $(top_srcdir)/deps-ver $@
@[ -w $@ ] || \
chmod ug+w $@
@cmp $(top_srcdir)/deps-ver $@ > /dev/null || ( \
$(MAKE) clean && \
echo -n "Prior $(subdir)/$(DEPDIR) version " && \
cat $@ && \
rm -rf $(DEPDIR) && \
mkdir $(DEPDIR) && \
case "$(top_builddir)" in \
.) \
./config.status Makefile depfiles \
;; \
..) \
cd .. && \
./config.status $(subdir)/Makefile depfiles && \
cd $(subdir) \
;; \
*) \
echo 'Fatal: depsver.mf Automake fragment limited' \
'to immediate subdirectories.' && \
echo "top_builddir: $(top_builddir)" && \
echo "subdir: $(subdir)" && \
exit 1 \
;; \
esac && \
echo -n "Cleaned $(subdir)/$(DEPDIR) version " && \
cat $(top_srcdir)/deps-ver \
)
cp $(top_srcdir)/deps-ver $@
.deps-ver: $(top_srcdir)/deps-ver
@[ ! -d $(DEPDIR) ] || $(MAKE) $(DEPDIR)/deps-ver
@touch $@
BUILT_SOURCES += .deps-ver
CLEANFILES += .deps-ver
#
# depsver.mf included in Makefile.am for directories with .deps
#
# When building in the same directory with sources that change over
# time, such as when tracking using bk, the .deps files can become
# stale with respect to moved, deleted, or superceded headers. Most
# commonly, this would exhibit as make reporting a failure to make a
# header file which is no longer in the location given. To address
# this issue, we use a deps-ver file which is updated with each change
# that breaks old .deps files. A copy of deps-ver is made into
# $(DEPDIR) if not already present. If $(DEPDIR)/deps-ver is present
# with different contents than deps-ver, we make clean to ensure all
# .o files built before the incompatible change are rebuilt along with
# their updated .deps files, then remove $(DEPDIR) and recreate it as
# empty stubs.
#
# It is normal when configured with --disable-dependency-tracking for
# the DEPDIR to not have been created. For this reason, we use the
# intermediate target .deps-ver, which invokes make recursively if
# DEPDIR exists.
#
# If you modify depsver.mf, please make the changes to the master
# copy, the one in sntp is copied by the bootstrap script from it.
#
# This comment block follows rather than leads the related code so that
# it stays with it in the generated Makefile.in and Makefile.
#