[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Automake a case study
Re: Automake a case study
Thu, 25 Apr 2002 06:09:17 +0000
On 24 Apr 2002 18:15:59 -0600
Tom Tromey <address@hidden> wrote:
> >>>>> "Calvin" == Calvin Arndt <address@hidden> writes:
Darn, I was trying to keep that address from getting poluted by being posted on
a freely accessible web page! please spank your mailer software for me! <GRIN>
> 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.
you can get the source rpm here:
and try it if you'd like! use automake 1.6.
> 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.
I have collected a vast array of stuff on automake. Collectively it's all been
helpful but is just tooo much.
> statement seems self-contradictory. I'm not offended or anything, I
> just thought it was funny :-)
Good, I spent probably 4 hours writing and rewriting that email in an attempt
to avoid offending anyone.
> The automake sections are my fault. FWIW I agree with you (don't tell
> the publisher :-).
> The current primary names are `PROGRAMS', `LIBRARIES', `LISP',
> `PYTHON', `JAVA', `SCRIPTS', `DATA', `HEADERS', `MANS', and `TEXINFOS'.
Ok, most obviously missing are `SOUNDS' and `IMAGES' ie the primary that both
installs and distributes, but doesn't try to "touch them" ie. automagically
creates a .PHONY target or better yet doesn't waste any time on them at all...
It seems real funny to me that DATA gets an install target but doesn't
automagically "dist" the data??? (how ya gonna install it if you didn't
> The reference manual is online, see the automake home page:
Over the past 2 years I've collected everything I've ever found on automake but
I missed that one. Thanks for the link! (And by the way this looks pretty nice
at first glance)
> _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.
I'll read up on these, again thanks.
> 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.
If you want me too I'l try to write a "twenty most confusing things" list for
ya. But it'll take a more than a day or two to organise those thoughts.
> Unfortunately you need to know several. You have to use autoconf, so
> you need to know some m4 and sh.
Actually I've pretty much gotten away without learning m4. Since I'm a pretty
good bash scripter _and_ it's pretty clear what things like AC_INIT() and
AC_SUBST(), AC_CHECK_FUNCS() do, just knowing that m4 is the macro processor
that these macro's are written in has been enough for me to this point...
Therein lies the real problem Tom, clarity...
In autoconf there is some connection between these things:
name of autconf Description:
parameter (for lack of
AC_INIT() Init autoconf
AC_DEFAULT_PREFIX() Set the default prefix
AC_SUBST() Do some substitutions
You can't get much more clear than that! However you cant get
much more obscure than this...
do this in a .am:
tuxtype_SOURCES = ............. (put in whatever source names you have)
bin_PROGRAMS = tuxtype
and you get this!
as opposed to:
invalid variable: bin_PROGAMS :-(
Consequently for a long time all I could do was scratch my head?
What variable? Is this the variable --- tuxtype_SOURCES or is this
the variable SOURCES or is it this: tuxtype
My thoughts at the time: do you see a variable here? I don't most like me
won't. And I RTFM !!!! Everyone I could find! And man did I have to dig! the
docs that are distributed with automake, are there any????
Today I ?think? I can answer that correctly but damn what a road to get here
from there.... And as you can see I'm still not certain!
More on clarity:
I've seen quite a few descriptions of automake that say
Automake: automatically generate make files?
admittedly most of those desc came from web sites trying to explain automake
usage. However thats exactly what it doesn't do, the configure script does
that!!! BUT that's what the name automake implies!!!! So a newbie goes off
looking for other problems, because thats so obviously correct! again NOT!!!
> For automake you need to understand
> Makefile syntax,
As I understand it now:
But then as a real newbie:
Hey wait a second automake, this is what your supposed to be helping me get
> sh syntax,
No biggie got that...
> Automake syntax,
# man automake
page not found!
I know what your thinking... It's an .info... But the distribution
I chose doesn't ship texinfo! and even if it did no docs are shipped with
> and how they interact.
That is the important part that I don't think is stressed enough...
> 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...)
I can't comment on that Tom, being a rather sophisticated "user" I know better
than most how important automake is. I just don't know all I need too to use it
> is 3vil" (actual quote) email has to come from somewhere :-)
Cute, but hate mail sucks...
I sure hope I've been clear, and another 4 hours have passed trying to be clear
and concise... Thanks for your time and attention.