X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=subdirmk%2Fcdeps.sd.mk;h=402e687c6aa63153951e95e704d02f488a77d547;hb=5c99a7202fe6895190cbc7e3fdc0948e04ab73d1;hp=aeb35bf88427385246cf02a841b544325f22d9c1;hpb=21f1f96d711d4e745a87bc1561143887c02f1031;p=subdirmk.git diff --git a/subdirmk/cdeps.sd.mk b/subdirmk/cdeps.sd.mk index aeb35bf..402e687 100644 --- a/subdirmk/cdeps.sd.mk +++ b/subdirmk/cdeps.sd.mk @@ -1,5 +1,24 @@ +# subdirmk - useful rules for making and using cpp .*.d files +# Copyright 2019 Mark Wooding +# Copyright 2019 Ian Jackson +# SPDX-License-Identifier: LGPL-2.0-or-later + +&# Usage: +&# &:include subdirmk/cdeps.sd.mk +&# (probably in Perdir.sd.mk) +&# +&# Arranges for automatic #include dependency tracking for +&# C compilation. The compiler is asked to write the dependencies to +&# .*.d and these are automatically included. +&# +&# There is a bug: if a #included file is deleted and all references +&# in .c files to it removed, `make' will complain that it is needed +&# and can't be built. `make clean' will fix this. + +CDEPS_CFLAGS ?= -MD -MF $(*D)/.$(*F).d &DEPFILES += $(foreach b,$(patsubst %.o,%,$(&OBJECTS)), \ $(dir $b).$(notdir $b).d) -include $(&DEPFILES) +&CLEAN += $(&DEPFILES)