Hi Matt, On Sat, Sep 24, 2011 at 6:06 PM, Matt Turner <[email protected]> wrote: > Signed-off-by: Matt Turner <[email protected]> > --- > The last discussion about using automake ("[RFC] Convert mesa to > automake/libtool") > ended without anything happening, probably because the branch wasn't ready. > > This patch is an attempt to get the ball rolling again. Without ripping out > the entire existing build system in one swat, it attempts to gradually replace > it directory by directory with automake. > > The patch has a few problems currently, and a few things that can possibly be > done better: > - Mainly, that building libmesa.a currently fails. > - Not sure how to handle shared/static dricore options. > - libtool defines VERSION (-DVERSION=...), which screws up the VERSION > token in glsl_lexer.ll and glsl_parser.yy. I trivially renamed it. > - libralloc.la can probably be combined into libglslcore.la, and not > have to be added to every _LDADD line. > - The rules for flex and bison can probably be eliminated by using > YFLAGS and LFLAGS. I tried, but ylwrap gave me some error. > > I also killed off what looks to be a stray autogen.sh in src/glsl/. > > Please give it a test.
Sorry for not replying sooner. I've been too busy to attend to my rapidly growing inbox. I agree wholeheartedly with the change to automake, although I think eventually you need Brian's buy in. Despite its flaws, the custom Makefile system has worked for a lot of years. That said, I think some of the issues can be conquered with documentation and education. I also think the best feature of the current system, the static configuration templates in configs/, can be emulated under autotools. Anyway, I haven't looked closely at the patch, but I would echo Gaetan's sentiment to start at the root Makefile.am and work down. I did some work on this before I got busy. The commits are not really clean, but you can get them in the automake branch in ~dbn/mesa.git on annarchy. I think there's definitely a way to move along piecemeal with a few suggestions: - Don't feel the need to completely transform a whole Makefile in one shot. This patch works on a fairly standalone piece, but once you get into the intertwined parts you either end up with a megacommit or find a way to work with smaller pieces. You can use the -local automake targets to point to the existing rules instead of changing to the automatic rules immediately. - Some of the current make variables are constructed in configs/default and configs/autoconf right now. You'll either need to expand those in each Makefile you convert or just continue to source $(top_builddir)/configs/current for a while. - The default targets in the old Makefiles need to be changed to all so the the root automaked Makefile calls the right thing when descending. I'm sure there's a ton of other gotchas. Anyway, I hope to get back to this sometime. -- Dan _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
