[Debian-lego-team] BrickOS-Bibo Project Updates
Matthew Sheets
mesheets at hotmail.com
Thu May 8 17:39:08 BST 2025
With the latest commits to brickOS-bibo, there are several new features that might be of interest to some.
(1) Refactor of Makefiles: Included some reorganization, realignment, and consolidation of similar code that existed in different files.
[a] Makefile: For building the source tree
[b] Makefile.lxprog: For building *.lx RCX programs; when brickOS-bibo is installed, this file is renamed and installed as "Makefile" (following the existing pattern, as upon install, building RCX programs becomes the primary focus)
[c] Makefile.common: Includes targets and rules common to both source tree builds and RCX program builds
[d] Makefile.utility: Includes targets and rules that are common to multiple different projects under the GitHub BrickBot org, such as support for Stow
[e] Makefile.doxygen: A large chunk of Makefile support was dedicated to Doxygen; this has all been moved to its own file.
(2) Multi-kernel support: Working with kernels of different configurations out of a single source tree or installation is now possible. For building kernels other than the default, provide a KERNEL=<name> argument to Make, where <name> is the name of the kernel and matches the name of a folder under "kconfig" that also contains a "kernel-config.h" file. As an example of a "dcc" kernel adding DCC support, KERNEL=dcc would cause Make to setup the build to look for kernel-specific configuration in kconfig/dcc/kernel-config.h. This multi-kernel support also extends to the install setup, too. I would highly advise running "make realclean" (or at least "make kernel-realclean") when switching kernels, but
(3) Makefile target modularization: It is now easier to build/clean/install/uninstall just specific parts. While greater breakdown has been implemented, at the top level there are now three main targets of host, kernel, and demo. Host is intended to handle everything that is not bound to a specific kernel configuration, while kernel is intended to handle everything that is particular to and/or might change with a given kernel configuration. Demo builds the demo programs.
(4) Simpler building of *.lx programs: Building *.lx programs always seemed to require a bit of Makefile familiarity. To reduce the barriers to adoption and use, a makelx script now exists that will take the source file(s) to build as command-line arguments. If only one kernel is found locally, makelx will automatically use that kernel; otherwise, the desired kernel can be specified on the command line.
(5) Update the ./configure script to support cross-toolchains that might exists in a user's PATH and also add support for program suffixes that might be added to the cross-toolchain program names (e.g. "-3", "-4.4").
I would be interested in any feedback on these features; my hope is that this helps make it easier to work with and use brickOS-bibo.
- https://github.com/BrickBot/brickOS-bibo/
XS-Lisp integration is still a little rough around the edges, but it is functional. The more I look at brickEmu environment configuration, the more I lean towards pulling it into the brickOS-bibo tree, as its hooks for enhanced support when using a brickOS or bibo clone require everything to be "just so" in order for all the integrations to work, so installation and setup currently ends up being a bit manual and brittle. That will likely be a task for another day….
Thank you,
Matthew
More information about the Debian-lego-team
mailing list