automake
[Top][All Lists]
Advanced

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

Re: GNU Make Extensions


From: Ralf Wildenhues
Subject: Re: GNU Make Extensions
Date: Sun, 21 Dec 2008 17:57:55 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

* Duft Markus wrote on Tue, Dec 16, 2008 at 08:52:23AM CET:
> > On Tue, Dec 16, 2008 at 2:48 AM, NightStrike <address@hidden> wrote:
> > 
> > Oh, nevermind.. You're saying that make will invoke automake to check
> > to see if Makefile.in needs to be updated..... I understand, I think,
> > what you were saying.
> 
> Yeah, but how long can it take to resolve the wildcard for a given
> directory? If it's a few thousand files, it's done in a second or so...
> I don't think that the speed argument is valid in this discussion. Look
> at the way people work at the shell... if somebody really wants to have
> all .cc files for example, he/she will do "ls *.cc > xx" and copy the
> list over to Makefile.am. the ls won't take forever either. If this
> would be done _every_ single time I call automake, I wouldn't bother.
> _And_: if I really want to squeeze the last bit of performance out of
> automake, I can still paste in the whole list, right? So for small
> projects this feature would be really helpful, and for others it does
> not disturb in any way!

For what it's worth:  There are a few ways to deal with this issue.
If the list of files needs to be interpreted specially by Automake,
as for example source files, library or program names etc., then you
have basically no other choice as to regenerate Makefile.in each time
anyway.  So in this case you can make a rule to always update a fragment
to be included in Makefile.am.  This is not very efficient, and
incorporating wildcard functionality into automake wouldn't make it a
lot more efficient, unless the source file handling were largely
rewritten, for example.

OTOH, for things such as wildcards needed only for 'make install' or
'make dist', you can most likely just work around this by either:
writing appropriate *-local or *-hook rules, or having a rule that
updates Makefile.in upon these times, so that such wild cards are
expanded (again by a suitable script) into an included fragment file.

Yet another method to deal with, that helps for the latter cases, is
to require GNU make, and have a GNUmakefile in the respective build
directory which can include Makefile, and do extra stuff for which you
need GNU make.  Of course, this cannot help much in the situations where
'automake' needs to do special per-file handling.

Hope that helps.

Cheers,
Ralf





reply via email to

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