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 > <stefano.lattar...@gmail.com> 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