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.
We know of at least the following styles of brickOS use:
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.
- a person wants to experiment with the brickOS operating system directly, modifying and testing it
- a person who is only interested in writing code for robots which are simply running a pre-built brickOS.
- a person who wants to do both from time to time.
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.
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
- top level executables (dll, firmdl3)
- brickOS.srec, brickOS.lds, *.a (static library) files
- utilities (invoked from Makefile's: merge-map, makelx, genlds, fixdeps, fontdesign
- common Makefile parts: Makefile.common, and Makefile.user.
- our include sub-tree which (today) expands to:
- /usr/local/doc/brickos/ - general doc's ChangeLog, NEW, TODO, etc.
- /usr/local/doc/brickos/examples - our demo sub-tree
- /usr/local/doc/brickos/html - HTML based documentation: HOWTO, API doc's etc.
- dll.1 and firmdl3.1 man pages
Obviously, in order to have a new make target, Makefile's are going to need to change. There is a little more, however.
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.
- First draft
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.