Die GNU autotools

Die GNU autotools

Tzafrir Cohen tzafrir at cohens.org.il
Tue Jan 11 00:03:43 IST 2011


On Mon, Jan 10, 2011 at 11:22:46PM +0200, Elazar Leibovich wrote:
> On Mon, Jan 10, 2011 at 9:56 PM, Tzafrir Cohen <tzafrir at cohens.org.il>wrote:
> 
> > [snipped]
> > Yeah. You have your own hand-crafted Makefiles. With the only
> > special-case of Darwin. No need to be portable.
> >
> 
> All your issues are valid from purity POV. Indeed in some rare cases
> compiling C files with g++, when cross compiling from Mac OS X to other
> platform (wow, when would that happen?), you'll have to edit a single, easy
> to understand line in the top of the makefile, and make distclean doesn't
> make sense really, it should be dropped altogether (care to issue a bug
> report?).

Too lazy, sorry.

(The bad thing is that in some places you use 'g++' directly, regardless
of what is defined in CC. Not to mention some environments would
override CC with some other cc)

> 
> But then again, this software is usable today on many platforms, and it
> makes life easier maintainance-wise for 99.9% of the use cases, and using it
> in a special way is possible without too much hassle.
> 
> Let's compare the situation there with the situation of VLC which uses
> autotools.

And has tons of other dependencies:

Build dependecies:
http://packages.debian.org/source/sid/vlc
http://packages.debian.org/source/experimental/re2

VLC has many media types to support. Many features are optional. Many
features depend on the libraries available. Some features could be
provided by more than one library.

I could go and rewrite re2's build system in autotools. It wouldn't be a
problem. Now you go and rewite VLC in plain makefiles.

> I had once the doubted pleasure of cross-compiling version 0.86 of VLC to
> windows on Linux (as recommended by the docs) with a modern distribution
> software today.

Who needs to cross-compile to Windows on Linux? That's a crasy thing.

> As expected this beast didn't compile even though I had the very same
> version of gcc and the exact binary libraries required by 0.86. What
> happened is that for some reason (maybe the autotools version wasn't 100%
> the same of the autotools version they originally used to build 0.86, or I
> don't know what) the autogenerated libtool script was broken, reading it and
> editing the m4 file which generated it was a very difficult job. So I ended
> up reimplementing libtool with python.
> 
> So yes, you'll have errors even with autotools, but I'd rather debug the
> errors of a hand written readable Makefile than the errors of autotools
> script. (BTW m4 and bash are indeed Turing complete, but they make great job
> obfuscating your Turing machine ;-)

Sounds like you never got to write code for a real Turing machine. :-)

-- 
Tzafrir Cohen         | tzafrir at jabber.org | VIM is
http://tzafrir.org.il |                    | a Mutt's
tzafrir at cohens.org.il |                    |  best
tzafrir at debian.org    |                    | friend



More information about the Linux-il mailing list