Die GNU autotools
Nadav Har'El
nyh at math.technion.ac.il
Tue Jan 11 16:35:08 IST 2011
On Tue, Jan 11, 2011, Shlomi Fish wrote about "Re: Die GNU autotools":
> Actually, CMake is not "imake done right", but actually is a better Autoconf.
> One can write build-time tests with it to test for features and configure the
> build accordingly, just like you can with Autoconf, only in a cleaner and
I stand corrected. I have to admit that whenever somebody pointed me to CMake
and I looked at its documentation, I never saw any mention of the ability to
do these tests. Now that I looked again (after your post), I did saw some
test functions mentioned deep inside the documentation, but am still missing
the big picture - what kind of tests can CMake do - is it just a few common
tests, or a huge variety of tests plus a general scripting capability to
test anything, like autoconf can do? Second, *when* does cmake do these
tests - every time? Just once? (in autoconf, "configure" and "make" are two
separate steps).
> Autoconf, aclocal, acinclude, autoscan, autoheader, libtool, intltool,
> automake, and lots of other technologies in a complex dependency graph:
In my view, as I explained in my previous message, "autoconf" is the only
one of those who are really vital. All the rest are fluff... (well, maybe
libtool is also important, but I don't like it - I can't even explain why).
> > m4/aclocal - I use it as part of the autoconf generation, but have never
> > bothered to learn it properly.
>
> m4 is very vile.
I agree that m4 was a really odd choice to use in autoconf - it's not like it
ever was a popular language outside the circle of Vax assembly-language
coders in Bell Labs...
Personally I would have loved to see an autoconf alternative with a saner
input language, which still generates a shell script (unlike cmake).
If I would write it myself, the language I would choose is Tcl - because
of its "{ ... }" quoting making it easy to include verbatim shell blurbs.
> Furthermore, while you already know Autotools, remember that you need to keep
> this knowledge resident in your memory, and that other people who wish to
> contribute to your projects will have to learn GNU Autotools up to the same
> level that your configuration files were written in (and to be able to handle
> other problems that crop).
You don't need to have the knowledge resident in your memory - to continue
your virtual-memory metaphore, only the working set (i.e., the script you
already wrote) needs to be resident, and all the rest can be demand-paged
from storage (i.e., the autoconf documentation) ;-)
--
Nadav Har'El | Tuesday, Jan 11 2011, 6 Shevat 5771
nyh at math.technion.ac.il |-----------------------------------------
Phone +972-523-790466, ICQ 13349191 |We are Microsoft. You will be
http://nadav.harel.org.il |assimilated. Resistance is futile.
More information about the Linux-il
mailing list