imaging Re: link: "Recursive Make Considered Harmful"

George Georgalis george at galis.org
Tue Jan 11 21:28:19 PST 2005


On Wed, Jan 12, 2005 at 01:11:42PM +1000, Andrew Hacking wrote:
>
>Its interesting that this topic coming up at this point in time since I
>am currently developing a brave new build/make system at my workplace.
>The system I am working on needs to be multi-platform hosted, support
>cross-compilation, integrate with version control systems, and break the
>traditional hierarchical "ownership" directory structure so that the
>code base gets opened up for all to see and share. It must also be able
>to handle multiple versions of "components" and handle all of the
>dependencies both forward and reverse between different versions of
>components. It must also support "build profiles" akin to the system
>profile concept in gentoo.  I have been looking at both BSD ports,
>gentoo's portage and other build technologies for inspiration on aspects
>of the problem. The scons approach seems to have a lot of power and
>generalisation but the typical build fragments which end user developers
>have to deal with are just too python based for my liking, and I am sure
>I would end up with a revolution on my hands....


That's what I'm doing, heh not so many requirements though. Do you
call it brave because the development time is not 2x, but an order of
magnitude or two over forecasted? Between boot strapping a mini-root,
getting host parameters, binary packages, compiled sources, networking
and a bootloader installed, "function" tends to look like hack!

This type of project generally takes a long time because of all the
environment handoffs, reboots and data writes involved (use fast dev
hardware!). The process has been an interest of mine for 20 months or
so. A lot of my initial work is online [1] (uugh, old code), basically
I do a debian base install, download basechanges.sh which adds a suite
of packages and makes an archive of the image. Then from (whatever)
mini-root I image the target system with host specific parameters
(partitioning, networking, etc), boot and compile host specific
source. Several entry points are required to reduce development
time. My recent work is under contract but may be released in the
next 6 months. My first (private) go at it was a PXE method; then
I began (open) development of scripts to http/s download from a
knoppix mini root and go (I'm moving to BSD but Linux is still my
vocation). Presently I'm using Makefiles to manage the files for the
various targets.. If I where to start today, I'd take a close look at
radmind.

// George

[1]
http://galis.org/scripts/imagery/
http://galis.org/scripts/do_conf/

-- 
George Georgalis, systems architect, administrator Linux BSD IXOYE
http://galis.org/george/ cell:646-331-2027 mailto:george at xxxxxxxxx





More information about the Kernel mailing list