As a side note, these two manual entries seem conflicting: The entry for the -M flag says: "The preprocessor outputs one make rule containing the object file name for that source file, a colon, and the names of all the included files [...]" The entry for the -MT flag says: "By default CPP takes the name of the main input file, _including any path_, deletes any file suffix such as .c, and appends the platform's usual object suffix. The result is the target." On Wednesday 30 July 2003 12:09, Mihnea Balta wrote: > Hello, > > I want to implement an automated system that generates dependency > information for my project's sources. I've used the standard technique: > > OBJS=a.o b.o ../../directory/c.o > > ... > > dep: > /bin/rm -f depend > for i in $(OBJS); do \ > $(CPP) -MM $(CPPFLAGS) `echo $$i | sed "s/\(.*\)\\.o$$/\1.cpp/"` >> > depend;\ done > > ifeq (depend,$(wildcard depend)) > include depend > endif > > The problem with this approach is that the following line: > g++ -MM ../../directory/c.cpp > outputs the following make rule: > c.o: ../../directory/c.cpp > > I would like it to output the rule as: > ../../directory/c.o: ../../directory/c.cpp > > Is there any way to do this with a g++ switch (I couldn't find one in the > manual), or do I have to write my own utility to perform that conversion? > > Thanks in advance. > > --------------------------------------------------------------- > Acasa.ro vine cu albumele, tu vino doar cu pozele ;) > http://poze.acasa.ro/