AF:
NF:0
PS:10
SRH:1
SFN:
DSR:
MID:<20061207123556.52cf47d9@ripper.onstor.net>
CFG:
PT:0
S:andy.sharp@onstor.com
RQ:
SSV:onstor-exch02.onstor.net
NSV:
SSH:
R:<larry.scheer@onstor.com>,<tim.gardner@onstor.com>,<jay.michlin@onstor.com>
MAID:1
X-Sylpheed-Privacy-System:
X-Sylpheed-Sign:0
SCF:#mh/Mailbox/sent
X-Sylpheed-End-Special-Headers: 1
Date: Thu, 7 Dec 2006 12:38:43 -0800
From: Andrew Sharp <andy.sharp@onstor.com>
To: Larry Scheer <larry.scheer@onstor.com>, Tim Gardner
 <tim.gardner@onstor.com>, Jay Michlin <jay.michlin@onstor.com>
Subject: build/makefile refactoring
Message-ID: <20061207123843.6b30224d@ripper.onstor.net>
Organization: Onstor
X-Mailer: Sylpheed-Claws 2.5.6 (GTK+ 2.8.20; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

One of the items delineated in my Linux Migration plan document
that I handed out in the meeting yesterday was the refactoring of the
build/makefile setup as it relates to building the OS, libraries and
utilities, and the root file system.

I'm pulling this out as a separate plan because it needs to be done
regardless of OS selection, and so needs to be addressed unconnected
from that process.



Problem description:

Our current directory layout and build system is not conducive to
having multiple operating systems with our application and embedded
code portable between them.  Fixing this situation is a prerequisite
to migrating to a new OS.



Problem solution:

Refacter the directory layout in such a way that adding Linux not be
a bag on the side of OpenBSD, and the entire build process for both
OpenBSD and Linux be smooth and extensible.  Capture and simplify
the build process.




1.  The build process needs to be encapsulated.  By that I mean
    understandable, modifiable, source controlled and repeatable.
    Despite various protestations and exclamations, all that is needed
    to build the OS and libraries, and possibly other parts of the
    software, is not captured in the tree.  There is no simple set
    of steps that will build OpenBSD every time on every machine
    (within limits, of course ~:^) ). This needs to be fixed.

    Steps to fixing this:

    a.  [re]figure out exactly what is needed to do a build, and
	completely enter that into documentation.  Put another
	way, make my workstation capable of doing a complete build.
    b.  figure out how to capture the missing bits into the tree and
	make the build process reliable and repeatable, without
	any undue lore or ringer build machines.  I have several
	ideas on how to do this without wasting too much storage
	on source controlled binaries and without being too
	complicated or time consuming to implement.

2.  Pull the building of the non-OpenBSD, non-Onstor utilities and
    libraries (ie., open source packages) into one place, not under
    the nfx tree.

3.  Pull the file system build stuff into a top level directory so that
    there can be multiple such directories: 1 for OpenBSD; 1 for Linux.




Resources:

Larry Scheer and Andy Sharp



Time estimate:

4 man weeks, two calendar weeks.

