The entire directory structure of the repository was updates so that Scout will be properly split up into 2 core parts:
- Core "server side" logic - C and Assembly files that work "as-is" regardless of the project that will use Scout
- Core python logic - "client side" + compilation scripts
This change means that no matter what project is using Scout, one can simply clone Scout to a given directory and install the python package. Every configuration (GlibC / uClibc, Architecture, etc.) will be fed to the compilation script (see updated examples) and there is no need any longer to modify core files of Scout for misc configurations.
In addition, the exposed Python API was drastically cleaned, removing all duplications and making the process of compiling a Scout version significantly smoother.
Last, but not least, compilation enhancements were introduced, and now PIC loaders are defined as "SCOUT_SLIM_SIZE" and are compiled into roughly 50% smaller binaries. An Arm Thumb TCP server loader now fits in less than 0x240 bytes, even with additional project-specific logic.