Re: Dependency generation with -MM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nevermind. It's as easy as replacing the Makefile line:

$(CPP) -MM $(CPPFLAGS) `echo $$i | sed "s/\(.*\)\\.o$$/\1.cpp/"` >> depend

with:

$(CPP) -MM -MT $$i $(CPPFLAGS) `echo $$i | sed "s/\(.*\)\\.o$$/\1.cpp/"` >> 
depend

Sorry for the spam :)

On Wednesday 30 July 2003 12:17, Mihnea Balta wrote:
> 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/
>
> ---------------------------------------------------------------
> Acasa.ro vine cu albumele, tu vino doar cu pozele ;)
> http://poze.acasa.ro/


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux