mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
Makefile: Fix dependency generation for files in sub-directories.
Otherwise, things in the lib sub-directory weren't getting recompiled even when lib/notmuch.h was changed. The original rule we were using came from the GNU Makefile manual, but only handled files in the current directory, not file in sub-directories as we use here with our non-recursive Makefile. So the .deps files being created were being put in the right place, (such as .deps/lib/database.d), but the compiler was generating a dependency for "database.o" rather than "lib/database.o" like we want. We were already trying to do a sed job on that name to add a dependency for the .d file as well. But the sed job was failing since the expected pattern wasn't there, (the directory name was missing). So the fix is simply to use basename to construct the search pattern, and then use the name with the directory in the replacement (rather than the back-reference).
This commit is contained in:
parent
c168e24174
commit
5f5e9b8662
1 changed files with 2 additions and 2 deletions
4
Makefile
4
Makefile
|
@ -27,13 +27,13 @@ include lib/Makefile.local
|
|||
.deps/%.d: %.c
|
||||
@set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
|
||||
$(CC) -M $(CPPFLAGS) $(CFLAGS) $< > $@.$$$$; \
|
||||
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
||||
sed 's,'$$(basename $*)'\.o[ :]*,$*.o $@ : ,g' < $@.$$$$ > $@; \
|
||||
rm -f $@.$$$$
|
||||
|
||||
.deps/%.d: %.cc
|
||||
@set -e; rm -f $@; mkdir -p $$(dirname $@) ; \
|
||||
$(CXX) -M $(CPPFLAGS) $(CXXFLAGS) $< > $@.$$$$; \
|
||||
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
||||
sed 's,'$$(basename $*)'\.o[ :]*,$*.o $@ : ,g' < $@.$$$$ > $@; \
|
||||
rm -f $@.$$$$
|
||||
|
||||
DEPS := $(SRCS:%.c=.deps/%.d)
|
||||
|
|
Loading…
Reference in a new issue