brickOS Installation - RFC

DRAFT: not quite ready for comment
Last update: 11 May 2002 16:04 MST

brickOS, today, does not install itself.  Most open source projects do have an install. A study of our typical use forms and the needs of those that package brickOS show we could benefit from having an install. This page is a proposal for adding the install capability to brickOS.


[Install-tree] [ChangeLog]

Background

We know of at least the following styles of brickOS use:
  1. a person wants to experiment with the brickOS operating system directly, modifying and testing it
  2. a person who is only interested in writing code for robots which are simply running a pre-built brickOS.
  3. a person who wants to do both from time to time.
Today all of these forms of use require downloading the source package and building the operating system and tools after which one can finally start writing code for the robots and/or modifying the operating system and testing it.

Why did I first think of needing an install make target for brickOS?

When I packaged brickOS for Debian where the most common model is for packages to be installed and ready for immediate use I created the first install of brickOS.  At the time I was not part of the brickOS team so I simply built from source and setup my packaging rules to find the appropriate pieces and copy them to the proper installed location.

This is why I first thought of adding install targets to brickOS.  Most packages which I maintain for Debian simply run the 'make depend; make all install' pattern and the Debian package-build then moves the parts the project install installed to the desired locations in the Debian file system structure.  In the case of brickOS I could not follow this patter because there was no install build rule.

Proposed Install Tree Shape

Typical project install target is /usr/local (meaning local to current machine).

So using /usr/local at the root, I propose the following install tree:

/usr/local/bin /usr/local/lib/{projectName} /usr/local/include/{projectName} /usr/local/doc/{projectName} /usr/local/man/man1

What changes in order to implement this?

Obviously, in order to have a new make target, Makefile's are going to need to change. There is a little more, however.

ChangeLog

As I alter content of this page I'll update this ChangeLog with what I've done. This way one can obtain a quick overview of changes since the document was last viewed.

May11
First draft

See Also: [release] [effort]

For details on brickOS at SourceForge, try the development page.
For discussion on brickOS, try the newsgroup at lugnet: lugnet.robotics.rcx.legos. This is definitely the best place to get brickOS questions answered ASAP.