On 02/22/2012 04:29 PM, Kenneth Graunke wrote:
> On 02/22/2012 04:06 PM, Chad Versace wrote:
>> On 02/22/2012 02:22 PM, Ian Romanick wrote:
>>> On 02/22/2012 02:17 PM, Paul Berry wrote:
>>>> On 22 February 2012 13:52, Ian Romanick<i...@freedesktop.org
>>>> <mailto:i...@freedesktop.org>>  wrote:
>>>>
>>>>      On 02/22/2012 01:41 PM, Paul Berry wrote:
>>>>
>>>>            From
>>>>          http://www.opengl.org/__registry/specs/ARB/seamless___cube_map.txt
>>>>          <http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt>:
>>>>
>>>>               Accepted by the<cap>   parameter of Enable, Disable and
>>>>          IsEnabled,
>>>>               and by the<pname>   parameter of GetBooleanv, GetIntegerv,
>>>>          GetFloatv
>>>>               and GetDoublev:
>>>>
>>>>               TEXTURE_CUBE_MAP_SEAMLESS                   0x884F
>>>>
>>>>
>>>>      Oops.  That was my typo.  You'll also have to regenerate the various
>>>>      files that depend on the XML definitions.  I think this change
>>>>      should only cause changes in src/mesa/main/enums.c.
>>>>
>>>>      Reviewed-by: Ian Romanick<ian.d.roman...@intel.com
>>>>      <mailto:ian.d.roman...@intel.com>>
>>>>
>>>>
>>>> Oops.  I didn't realize that those files weren't built automatically.
>>>> I'll send an updated patch.
>>>
>>> Dear god, no!  The patch will be huge.
>>
>>>> Is there any good reason why we don't automatically generate files like
>>>> enum.c as part of the mesa build process?  The comment at the top of
>>>> src/mapi/glapi/gen/Makefile says "This file isn't used during a normal
>>>> compilation since we don't want to require Python in order to compile
>>>> Mesa."  But I don't think that makes sense anymore, because Python is
>>>> required to build files like src/mapi/es2api/glapi_mapi_tmp.h, as well
>>>> as some files in src/glsl.
>>>>
>>>> In point of fact, it seems really strange that a file like
>>>> src/mapi/es2api/glapi_mapi_tmp.h is autogenerated during the build
>>>> process, but src/mesa/main/enums.c isn't, since both files are built
>>>> from the same set of xml sources.
>>>
>>> A couple reasons:
>>
>> I really want to see all *build* artifacts removed from Mesa's *source* 
>> control. I recall the
>> pain of having the bison and flex output managed by git, and I don't like 
>> continuing that fallacy.
>>
>>> 1. The generated files really, really, really should be in git so that 
>>> accidental changes will be noticed.  This has bitten us a couple times.
>>
>> Wouldn't `git log *.xml *.py` also alert you that the generated headers have 
>> changed?
> 
> Not if you remove them from git...

Since the generated headers are exclusively generated by the xml and python 
scripts in src/mapi, I insist that
`git log *.xml *.py` is a very good indicator that the generated headers have 
changed.

>>> 2. Changes to the XML files frequently precipitate changes to files in the 
>>> xserver.  There's no way to automatically handle that.
>>
>> I don't understand how 2 affects this discussion. Is it that the xserver 
>> build relies on these generated headers? If so, then
>> we can move the generated headers to the xserver repo and merrily remove 
>> these build artifacts from Mesa's source control.
>> Afterwards, it would be the xserver's devs responsibility to manually update 
>> their headers, or fix their makefiles to gen them
>> at build time.
> 
> I'll let Ian explain it, but essentially two things are generated from these 
> XML files:
> 
> 1. Mesa headers/code
> 2. X server headers/code
> 
> So if you change them, you still need to manually regenerate the X server 
> code and commit those to the xserver repository.  In other words, integrating 
> this into the build system doesn't eliminate manual steps (and perhaps gives 
> you the illusion that everything happens automatically).
> 
> It would be nice to solve this problem, but I'm not sure how.

I don't understand your rebuttal to my point 2. Actually, it seems that you 
agree with my proposal.
To "manually regenerate the X server code and commit those to the xserver 
repository" is exactly what I suggested.
Is there any reason why this proposal is unacceptable? It just moves the burden 
of manually updating the headers
to the project that will consume those headers.
 
>>> 3. Several of the scripts take a really, really long time to run.  I'm not 
>>> eager to add a few minutes to my clean-build times.
>>
>> $ cd src/mapi/glapi/gen
>> $ make mesa
>> real    0m5.634s
>>
>> I don't think an adding 5 seconds to a clean build is cause for concern if 
>> the addition allows us
>> to remove build artifacts from source control.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to