[MPlayer-dev-eng] Re: "dev-CVS-040828-23:58-3.2" data on builds incorrect

J. Grant jg at jguk.org
Sat Oct 16 17:02:46 CEST 2004


Hi Torinthiel,

Thanks for your email.

>> Some thinks I have noticed:
>> 1. "make distclean" does not remove version.h.
>> 2. "make distclean" does not create version.h if there is not one already.
> 
> I didn't say it does ;) In fact it would produce quite interesting
> results, as generating version.h runs make distclean. So generating
> version.h would delete version.h if 1) was true, and cleaning build tree
> would update version.h (not necessary an error, but pointless) if 2) was
> true.

Ok, thanks for the explanation.

>> >Yes, Makefile does it. IMHO no, as running it in Makefile is more
>> >general. Suppose you update something and don't run configure. If
>> >version.h is updated by configure it won't get run. But if run by
>> >Makefile then the version gets updated correctly.
>> 
>> Ok, that sounds good.  If it works.  The makefile only updates version.h if
>> config.h, config.mak, or Makefile have changed. I do not know if "cvs
>> update -d" will update those files.
> 
> Sometimes but very rarely Makefile. config.{h,mak} are generated by
> configure so CVS won't touch them.
> But: Makefile, lines 260 and later:
> [comment ommited]
> $(MPLAYER_DEP): version.h
> $(MENCODER_DEP): version.h
> 
> So every little thing requires version.h
> But then I've checked on my box that version.h depends on nothing if you
> have .developer file in main. This might be the reason. Else it depends
> on Makefile, both configs and CVS/Entries. And the last is updated by
> CVS on every cvs up, just checked.
> And if you have .developer in main than version.h is not dependant on
> anything and furthermore generating it does not run make distclean. So
> you don't have new version every time - that's the price for not having
> to rebuild whole tree after a single update that doesn't really cause
> much trouble. I'm using it for long, and I see no reason to have
> version.h updated periodically.
> 
>> Here is an example illustrainting the problem:
>> =================================
> [cut]
>> Can you repeat the steps and confirm if you too see this problem?
> 
> Done with two different situations - with and without .developer in
> main. With it behaves as you have said - version.h is not updated.
> Without however it updates correctly. Dont you have a stray one left
> behind? Remember it's hidden, so only ls -a will show it.

Yes, I have the .developer file. Is there a reason that .developer needs 
to effect version.h though?  I do not think that version.h should be a 
dependency on each object file.  I could not spot any gcc -MD etc.. 
maybe I am missing something?

version.h could simply be created when make is called (even if it
already already exist, as CVS/Entries may have changed).

This would avoid a cvs update -d causing all object files to need
recomping for one header. Unless gcc deps are used that is.

Kind regards

JG

-- 
Homepage: http://jguk.org/
Blog: http://jguk.org/#blog
Radio: http://jguk.org/#radio





More information about the MPlayer-dev-eng mailing list