[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: automake 1.12.1 changes extension of bison-generated header files
From: |
Stefano Lattarini |
Subject: |
Re: automake 1.12.1 changes extension of bison-generated header files |
Date: |
Sat, 15 Sep 2012 10:16:12 +0200 |
On 09/15/2012 03:06 AM, Matt Turner wrote:
> I started thinking about this again recently, so I thought I'd respond.
>
> So, first thanks for the email and the suggestion.
>
> On Sat, Jul 14, 2012 at 1:42 AM, Stefano Lattarini
> <address@hidden> wrote:
>> On 07/13/2012 07:16 PM, Matt Turner wrote:
>>> Hi,
>>>
>>> In Mesa (http://www.mesa3d.org/) we generate some C++ code using
>>> Bison. The input is glsl_parser.yy and automake-1.11 and prior
>>> versions generated glsl_parser.h. 1.12 generates glsl_parser.hh, and
>>> if the input file is named .ypp it generates a .hpp file. How can we
>>> configure our build system such that it will work with 1.11 and 1.12?
>>>
>>> http://cgit.freedesktop.org/mesa/mesa/tree/configure.ac
>>> http://cgit.freedesktop.org/mesa/mesa/tree/src/glsl/Makefile.am
>>>
>> My suggestion would be to simply require Automake 1.12 from every
>> developer, and avoid such compatibilities headaches (1.12 still
>> requires just Autoconf 2.62 and perl 5.6, so that your developers
>> won't be forced to upgrade other tools in addition to Automake
>> itself).
>>
>> If you really *must* support both Automake 1.11 and 1.12: take a
>> look at the attached tarball; it should (hopefully) provide you
>> with enough inspiration to do so.
>>
>> HTH,
>> Stefano
>
> The NEWS item says "Slightly backward-incompatible change" but let's
> be clear: the change *broke* backward compatibility. It is impossible
> to have a C++ yacc parser built with automake 1.11 and 1.12. RHEL6
> ships with <automake-1.12. They're not going to update to 1.12. We
> can't require 1.12 in Mesa.
>
As I said, IMVHO, one can expect developers to be able to install by hand
some more modern versions of required development tool, when they are not
provided the distro. At least tools like Automake that are easy to build
and don't have too much dependencies.
> Seriously, this was a bad change.
>
I think it is a good change, since it improve consistency with the behaviour
of bison's '-o' option. What is really horrible is the transition (or lack
of thereof, more precisely) from the old behaviour to this one. This should
have been something planned and advertised better, and implemented with more
care (maybe with an option in 1.12 to retain the old behaviour), and certainly
more gradually. Anyway, now it's done, and it's no use crying over spilt
milk. I hope I'll do better next time.
> We've got a kind of hacky (and I fear half broken) rule to generate files
> compatible with the 1.11 naming now.
> http://cgit.freedesktop.org/mesa/mesa/commit/src/glsl/Makefile.am?id=81de0431d6f52084e01874163657e141e6beffdf
>
> I can't imagine that's the kind of stuff you want projects to be doing
> downstream.
>
Indeed no; I'd like them to be able to require and use modern Automake
versions ;-)
Regards,
Stefano