legOS Installation - RFC

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

legOS, 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 legOS show we could benefit from having an install. This page is a proposal for adding the install capability to legOS.


[Install-tree] [ChangeLog]

Background

We know of at least the following styles of legOS use:
  1. a person wants to experiment with the legOS 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 legOS.
  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 legOS?

When I packaged legOS for Debian where the most common model is for packages to be installed and ready for immediate use I created the first install of legOS.  At the time I was not part of the legOS 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 legOS.  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 legOS 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 legOS at sourceforge, try the development page.
For discussion on legOS, try the newsgroup at lugnet: lugnet.robotics.rcx.legos. This is definitely the best place to get legOS questions answered ASAP.
Most of all, remember: Have fun.

Hosted by:

SourceForge Logo