[clug] Why the autotools hate? (Was: Why isn't Java popular on the Linux Desktop?)

Brad Hards bradh at frogmouth.net
Fri Jul 10 01:03:39 MDT 2009


On Friday 10 July 2009 16:40:22 Jack Kelly wrote:
> On Fri, Jul 10, 2009 at 4:13 PM, Brad Hards<bradh at frogmouth.net> wrote:
> > My dislikes are based on some very unfortunate syntax changes, and some
> > not very good use of what autoconf (and to a lesser extent, automake) can
> > do. As examples:
>
> Can you elaborate w.r.t. the syntax changes? I only started using
> autotools at around autoconf 2.61 and automake 1.10 (or autoconf 2.56
> and automake 1.7 on MSYS.)
After you suggested that people don't read the documentation, I hesitate to 
point out
http://www.gnu.org/software/autoconf/manual/html_node/Autoconf-2_002e13.html#Autoconf-2_002e13

> Personally, I don't have experience with the GCC build system. From
> the sounds of it, it's something mortals Should Not Contemplate.
The bootstrap stuff is easy to run, but hard to maintain. However all we wanted 
to do was to install a couple of extra headers.

> > * I've seen a fair amount of stuff that attempted to deal with
> > portability problems on an ad-hoc basis (e.g. trying to find installed
> > include / lib directories without using pkg-config).
>
> In an ideal world, we'd all just use PKG_CHECK_MODULES in configure.ac
> . I've hit this with Tcl/Tk, which doesn't ship .pc files. It comes
> with a fairly hairy m4 file that turns up in /usr/share/aclocal.
> Partial points for effort, I guess.
Also not portable to non-unix platforms.


> CMake is very good (and pretty!), but the macros it ships with (the
> FindFoo.cmake ones) are a bit patchy, from memory. Not all of them
> respect the REQUIRED flag, for instance.
There are ongoing efforts to fix this (partly because of KDE usage), but this is 
very easy to work around, by just testing HAVE_FOO and reporting results.  For 
optional things, there are some nice KDE macros that give you a summary at the 
end. 

Its also easy to just import the macros into your own cmake/modules/ directory 
and make the minor changes that are required.

Brad



More information about the linux mailing list