Building the Project Oberon OS
Posted: Sat Jul 25, 2015 2:57 am
The Astrobe for RISC5 Build command automatically works out the import dependency tree of the module you are currently working on. When you Build a module it works out which imported (directly and indirectly) symbol files / object files are out of date, and automatically compiles them in the correct sequence first. Rebuild does the same except that it recompiles everything in the correct dependency sequence regardless of dates.
For example, the following dummy module which references the top-level Project Oberon modules can be used to rebuild the entire operating system with just one command. When you Rebuild BuildCore it will automatically recompile ALL 23 core modules of the operating system - about 9000 lines in total. The whole process (including generating the disassembly listings) takes less than 700 millseconds on my PC.
If, for example, you edit the compiler module ORB (referenced by ORP) without changing its exported items and then Build BuildCore, only ORB will be compiled. However, if you change the interface of ORB by adding a new exported item then Build BuildCore will automatically recompile ORP and ORG as well because they both import ORB.
For example, the following dummy module which references the top-level Project Oberon modules can be used to rebuild the entire operating system with just one command. When you Rebuild BuildCore it will automatically recompile ALL 23 core modules of the operating system - about 9000 lines in total. The whole process (including generating the disassembly listings) takes less than 700 millseconds on my PC.
If, for example, you edit the compiler module ORB (referenced by ORP) without changing its exported items and then Build BuildCore, only ORB will be compiled. However, if you change the interface of ORB by adding a new exported item then Build BuildCore will automatically recompile ORP and ORG as well because they both import ORB.