#1522: Improve determining make dependencies --------------------------+------------------------------------------------- Reporter: eschnett | Owner: Type: enhancement | Status: new Priority: major | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment (by sbrandt):
I created a small copy of this code and tested it. Here's what I got in my tst.d. Note what happens to the appended piece. I think
{{{ /usr/include/c++/4.8.2/bits/basic_ios.tcc \ /usr/include/c++/4.8.2/bits/ostream.tcc /usr/include/c++/4.8.2/istream \ /usr/include/c++/4.8.2/bits/istream.tcc tst.cc /usr/include/stdc-predef.h header.h : /usr/include/c++/4.8.2/iostream : /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h : /usr/include/bits/wordsize.h : ... /usr/include/c++/4.8.2/bits/basic_ios.tcc \ /usr/include/c++/4.8.2/bits/ostream.tcc /usr/include/c++/4.8.2/istream \ /usr/include/c++/4.8.2/bits/istream.tcc tst.cc /usr/include/stdc-predef.h header.h : /usr/include/c++/4.8.2/iostream : /usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h : /usr/include/bits/wordsize.h : }}}
I think you want something more like this:
{{{ PROCESS_DEPENDENCIES = \ sed -e 's/$@.tmp/$@/g' < $*.o.d > $*.d && \ sed -e 's/#.*//' \ -e 's/^[^:]*: *//' \ -e '/^$$/ d' \ -e 's/$<[ ]/$< : /' < $*.o.d >> $*.d
%.o: %.cc ${CXX} -MD ${CPPFLAGS} ${CXXFLAGS} -o $@.tmp -c $*.cc ${PROCESS_DEPENDENCIES} mv $@.tmp $@
-include ${DEPS} }}}