[Mesa-dev] [RFC] Convert mesa to automake/libtool

Ben Gamari bgamari.foss at gmail.com
Tue May 4 12:27:57 PDT 2010


On Tue, 04 May 2010 10:19:41 -0700, Keith Packard <keithp at keithp.com> wrote:
> On Tue, 4 May 2010 08:34:00 -0400, Ben Gamari <bgamari.foss at gmail.com> wrote:
> 
> > a standard non-recursive makefile structure, as is used
> > in, say, Keith Packard's notmuch[1] project.
> 
> That's Carl Worth's notmuch project, and it was his idea to build using
> make alone. I'd have to say that while it makes the build system easier
> to understand and works fairly well on Linux, I'm not sold on the idea
> yet as it doesn't make things like dependencies work reliably and that's
> one area where Mesa currently suffers more than any project I know. I
> believe his stuff also works only with gnumake.

Oops! This is why I shouldn't be allowed to check email before 9AM. My
apologies, sorry Carl! You are likely right in saying that it requires
gnumake. I know that the build system I wrote would certainly not run
without gnu make and the implementation of some facets would have been
rather tricky with gnu make's extensions.

> > Not sure what to say about this. It seems like it wouldn't be too
> > difficult to implement a robust tarball rule, but maybe I'm missing
> > something.
> 
> As much as I hate defending autotools, it's areas like this that make it
> a useful system -- someone else is dealing with creating all of the
> underlying rules that make things like this 'just work' - 'make
> distcheck' creates the tarball and then verifies that it actually works
> as advertised.
> 
Fair enough. I certainly see the appeal here, although I do wish there
was a better option than autotools. That being said, again, my opinion
is really of no value here.

> > Yeah, you still need makedepend, but I don't really view this as a
> > problem.
> 
> Anything where you're depending on Mesa developers to ensure that the
> build system has correct dependencies will fail often enough to make
> people stop trusting them and routinely run 'make clean' or equivalent
> before every build. That's what I do today, fortunately ccache helps
> enough that I don't scream in pain (nor do I build mesa fifty times a
> day).

I'm not entirely sure I follow. Makedepend is merely responsible for
finding header dependencies. The developer shouldn't need to specify
much of anything in way of dependencies.

> 
> > This is true. For the rest of us who run like children whenever
> > autotools is in the room, it would be unfortunate.
> 
> Yeah, I'm no autotools fan, but the option of building a custom
> replacement just doesn't excite me.
> 
Fair enough. Build systems aren't exactly sexy.

> Btw, in case you haven't heard, autotools also encourages people to
> make a non-recursive build system, so these aren't mutually exclusive,
> just that we don't see it used very often (and, no, I don't know why).
> 
I didn't know that. It would be nice to see autotools used more in this
manner.

> > Documentation can be written for any build system, although in my
> > experience, a non-recursive build system is quite straightforward
> > and the fact that it's pure make means that pretty much anyone can
> > grok it.
> 
> Do you really want to write a build system? Is that how you envision
> spending your time as a Mesa developer?
> 
You are certainly right in saying there are many other tasks more
deserving of developer time. If there was serious interest in such a
build system, I could certainly put together a patch set. However, given
the above considerations, it sounds like the project might be better
served by autotools.

- Ben


More information about the mesa-dev mailing list