automake
[Top][All Lists]
Advanced

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

Re: Automake a case study


From: Calvin Arndt
Subject: Re: Automake a case study
Date: 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:

http://tux4kids.carrolltoncityschools.net/~calarndt/current/tuxtype-1.0-2.src.rpm

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 :-).

I won't!

>        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 
distribute it?) 

> 
> The reference manual is online, see the automake home page:
> 
>     http://sources.redhat.com/automake/

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
better word)
__________________________________________________________
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)

without this:

bin_PROGRAMS = tuxtype

and you get this!

invalid variable:

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!!! 
Gottcha!

> For automake you need to understand
> Makefile syntax,

As I understand it now:
How true,

But then as a real newbie:
Hey wait a second automake, this is what your supposed to be helping me get 
around!

> sh syntax,
No biggie got that...

> Automake syntax,

here again:

# 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 
automake!

> 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 
effectively.

> 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.

Calvin...



reply via email to

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