link: "Recursive Make Considered Harmful"
ahacking at optusnet.com.au
Wed Jan 12 20:37:00 PST 2005
On Wed, 2005-01-12 at 23:24, Jonas Sundström wrote:
> Andrew Hacking <ahacking at xxxxxxxxxxxxxxx> wrote:
> > My interpretation of the documentation was that it is impossible to
> > invoke an external tool and assign the output of a command to a
> > variable. This seemed a serious limitation _if_ that is the case,
> > and
> > rules out interfacing source code control systems, or whatever.
> It looks possible, but I'm not that familiar with Jam.
> actions AbsSymLink
> case "$target" in
> /*) ;;
> *) target=`pwd`/"$target";;
> $(RM) "$(1)" && $(LN) -s "$target" "$(1)"
> Snippet taken from here:
> (top level Jamfile and Jamrules)
> Two sub Jamfiles. Looks simple enough:
> /Jonas Sundström. www.kirilla.com
Jam actions are used during the updating/construction phase, not the
parsing phase, so the above does not allow variables to be assigned that
could affect the dependency graph which is built _prior_ to the
This would appear to inhibit the possibility of any dependency handling
where source code and/or additional jam files need to be checked out or
fetched as part of the build. It would prevent fetching code, extracting
tar-balls, patching and building like the ports system does.
It would seem that systems which require *all dependency knowledge* up
front are inappropriate where it is desirable to _not_ have a
pre-patched universe checked out on your machine, unless of course you
recursively used the build tool..and now we have come full circle to the
typical recursive make approach.
More information about the Kernel