DragonFly BSD
DragonFly kernel List (threaded) for 2005-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: link: "Recursive Make Considered Harmful"

From: Andrew Hacking <ahacking@xxxxxxxxxxxxxxx>
Date: Thu, 13 Jan 2005 14:35:49 +1000

On Wed, 2005-01-12 at 23:24, Jonas Sundström wrote:
> Andrew Hacking <ahacking@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
> {
> 	target="$(2)"
> 	case "$target" in
> 		/*) ;;
> 		*) target=`pwd`/"$target";;
> 	esac
> 	$(RM) "$(1)" && $(LN) -s "$target" "$(1)"
> }
> Snippet taken from here:
> http://cvs.sourceforge.net/viewcvs.py/*checkout*/open-beos/current/Jamfile?rev=1.28
> http://cvs.sourceforge.net/viewcvs.py/*checkout*/open-beos/current/Jamrules?rev=1.138
> (top level Jamfile and Jamrules)
> Two sub Jamfiles. Looks simple enough:
> http://cvs.sourceforge.net/viewcvs.py/*checkout*/open-beos/current/src/apps/showimage/Jamfile?rev=1.8
> http://cvs.sourceforge.net/viewcvs.py/*checkout*/open-beos/current/src/libs/zlib/Jamfile?rev=1.6
> /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
update/construction phase.

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.

-Andrew Hacking.

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