automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automake a case study


From: Tom Tromey
Subject: Re: Automake a case study
Date: 24 Apr 2002 18:15:59 -0600

>>>>> "Calvin" == Calvin Arndt <address@hidden> writes:

Calvin> docs_DATA = project/docs/*

This won't really work.  Automake doesn't support globbing like that.
It may in the future (it is a debate topic), but it definitely doesn't
right now.

Calvin> project_SOURCES = *.c *.h

I'm surprised you get anything sensible with this.

Calvin> The hard problem is that on this list and in alot of other
Calvin> places I keep seeing references to "A really good book" and
Calvin> some other good docs on the "autotools"

Well, there are reference manuals for the tools available.  The
autoconf one is probably the best.  The autobook is available online.
Whether you like it or not seems a bit variable (I stopped reading the
Amazon reviews, but they seem distributed between "great" and "poorly
organized").  There is also some tutorial information available.  I
don't know if these things are all collected in one place; if not that
would be a nice project for the automake web page.

Calvin> Redhat did a great job writing that book but it's absolutely
Calvin> worthless.

First, Red Hat had nothing to do with the book.  Second, that
statement seems self-contradictory.  I'm not offended or anything, I
just thought it was funny :-)

Calvin> The book spends more than half of its breath talking about
Calvin> libtool libraries and 2/3 of whats left on autoconf and only
Calvin> lightly touches on automake. The examples for automake are
Calvin> poor.

The automake sections are my fault.  FWIW I agree with you (don't tell
the publisher :-).

Calvin> PRIMARIES are very briefly touched on but never fully explained
Calvin> and no where is there a list of all valid PRIMARIES

>From the reference manual:

       The current primary names are `PROGRAMS', `LIBRARIES', `LISP',
    `PYTHON', `JAVA', `SCRIPTS', `DATA', `HEADERS', `MANS', and `TEXINFOS'.

The reference manual is online, see the automake home page:

    http://sources.redhat.com/automake/

Calvin> For me noticing that made me wonder what else wasn't being said.

I hear you.

Calvin> I saw references to other parts of automake commands yet no
Calvin> lists of valid parts (keywords?) one specific example noinst
Calvin> ... If _DIST and _DATA are valid PRIMARIES what is noinst_ ?

_DIST isn't a primary.  A primary names a kind of object, like
_PROGRAMS or _HEADERS.

Things like noinst_ or nobase_ are prefixes that modify the automake's
behavior when dealing with a given primary.

Calvin> And this whole thing about invalid variables!!!! Never once
Calvin> does that book bother to drop to the level of explaining
Calvin> those! But I need that level of explanation and so do alot of
Calvin> other people!

I think development on the autobook has basically ceased.  I don't
work on it any more, anyway.  Meanwhile, the reference manual lives
on.  If you could think of things like this that you wanted to know,
but couldn't find out, and then look to make sure they aren't in the
reference manual, we'd appreciate it.  I'm interested in fixing that
manual to include all the relevant information.

Calvin> I don't have the time to learn 5 langs just to be able to use
Calvin> automake. And I should'nt have to.

Unfortunately you need to know several.  You have to use autoconf, so
you need to know some m4 and sh.  For automake you need to understand
Makefile syntax, sh syntax, Automake syntax, and how they interact.
It's horrible, but it is probably also unfixable.  (This is one of
many reason that a system written from scratch would be much nicer...)

Calvin> Linux is not just the reallm of college "CS" majors anymore!

I'm guessing most CS majors would spurn automake.  All that "automake
is 3vil" (actual quote) email has to come from somewhere :-)

Tom



reply via email to

[Prev in Thread] Current Thread [Next in Thread]