2018-05-25 23:37:53 +01:00
|
|
|
-*-mode:org-*-
|
|
|
|
|
2018-08-31 21:11:00 +01:00
|
|
|
M2-Planet being based on the goal of bootstrapping the Minimal C compiler
|
|
|
|
required to support structs, arrays, inline assembly and self hosting;
|
2018-05-25 23:37:53 +01:00
|
|
|
is rather small, under 1.7Kloc according to sloccount
|
|
|
|
|
|
|
|
* SETUP
|
|
|
|
The most obvious way to setup for M2-Planet development is to clone and setup mescc-tools first (https://github.com/oriansj/mescc-tools.git)
|
|
|
|
Then be sure to install any C compiler and make clone of your choice.
|
|
|
|
|
|
|
|
* BUILD
|
|
|
|
The standard C based approach to building M2-Planet is simply running:
|
|
|
|
make M2-Planet
|
|
|
|
|
|
|
|
Should you wish to verify that M2-Planet was built correctly run:
|
|
|
|
make test
|
|
|
|
|
|
|
|
* ROADMAP
|
2018-08-31 21:11:00 +01:00
|
|
|
M2-Planet V1.0 is the bedrock of all future M2-Planet versions. Any future
|
|
|
|
release that will depend upon a more advanced version to be compiled, will
|
|
|
|
require the version prior to it to be named V2.0 and the same properties apply
|
|
|
|
To all future release of M2-Planet. All minor releases are buildable by the last
|
|
|
|
major release and All major releases are buildable by the last major release.
|
2018-05-25 23:37:53 +01:00
|
|
|
|
|
|
|
* DEBUG
|
2018-08-31 21:11:00 +01:00
|
|
|
To get a properly debuggable binary: make M2-Planet-gcc
|
|
|
|
However if you are comfortable with gdb, knowing that function names are
|
|
|
|
prefixed with FUNCTION_ the M2-Planet binary is quite debuggable.
|
2018-05-25 23:37:53 +01:00
|
|
|
|
|
|
|
* Bugs
|
|
|
|
M2-Planet assumes a very heavily restricted subset of the C language and many C
|
|
|
|
programs will break hard when passed to M2-Planet.
|
|
|
|
|
|
|
|
M2-Planet does not actually implement any primitive functionality, it is assumed
|
|
|
|
that will be written in inline assembly by the programmer or provided by the
|
|
|
|
programmer durring the assembly and linking stages
|