[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