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