docs: fill out compat, lvglh, and toolchain documentation
continuous-integration/drone/push Build is failing
continuous-integration/drone/push Build is failing
Replace placeholder content in doc/compat/, doc/lvglh/, and doc/toolchain/ with comprehensive documentation derived from the source files. - compat: document Wasuro WASM VM compatibility shims - lvglh: document LVGL v9.2.2 configuration, fonts, and patches - toolchain: document all 13 build pipeline scripts
This commit is contained in:
1 parent
d059ff1ffb
commit
466173613f
19 files changed
+888
-32
No files matched your search
@@ -1 +1,55 @@
|
||||
# Placeholder
|
||||
# compile_sources.sh
|
||||
|
||||
Compiles the Asuro kernel Pascal sources with Free Pascal.
|
||||
|
||||
## Overview
|
||||
|
||||
`compile_sources.sh` invokes the Free Pascal Compiler (FPC) to compile the main kernel unit (`src/asuro.pas`) along with all dependent units. It dynamically discovers every subdirectory under `src/`, `wasuro/`, and `compat/` and passes them as unit search paths (`-Fu`) so that FPC can resolve all unit references.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- `fpc` (Free Pascal Compiler 3.2.2 or compatible) must be available.
|
||||
- `find` must be available.
|
||||
- The `src/`, `wasuro/`, and `compat/` directories must be populated with their respective Pascal sources.
|
||||
- The `lib/` output directory must exist.
|
||||
|
||||
## Inputs
|
||||
|
||||
| Source | Description |
|
||||
|--------|-------------|
|
||||
| `src/asuro.pas` | The top-level kernel program unit. |
|
||||
| `src/**/*.pas` | All kernel Pascal source units. |
|
||||
| `wasuro/**/*.pas` | Wasuro WASM runtime units (pulled by `compile_wasuro.sh`). |
|
||||
| `compat/**/*.pas` | Compatibility layer units. |
|
||||
|
||||
## Outputs
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `lib/*.o` | ELF object files for each compiled unit. |
|
||||
| `lib/*.ppu` | FPC precompiled unit files. |
|
||||
|
||||
## Behavior
|
||||
|
||||
1. Discovers all subdirectories under `src/`, `wasuro/`, and `compat/` using `find`.
|
||||
2. Builds a `-Fu` flag string containing every discovered directory.
|
||||
3. Invokes `fpc` with the following key flags:
|
||||
- `-Aelf` -- Output ELF-format assembly.
|
||||
- `-gw -g -gl` -- Generate DWARF debug info and line info.
|
||||
- `-n` -- Ignore `fpc.cfg`; do not load default configuration.
|
||||
- `-v0e` -- Verbosity: errors only.
|
||||
- `-O3` -- Aggressive optimization.
|
||||
- `-OpPENTIUM3` -- Optimize for Pentium III instruction scheduling.
|
||||
- `-Si -Sc -Sg` -- Enable inline, C-style operators, and goto support.
|
||||
- `-Xd` -- Do not search default library path.
|
||||
- `-CX -XXs` -- Create smartlinkable units and strip unused code.
|
||||
- `-CfSSE -CfSSE2` -- Use SSE/SSE2 floating-point.
|
||||
- `-Rintel` -- Use Intel assembler syntax.
|
||||
- `-Pi386 -Tlinux` -- Target i386 Linux (ELF).
|
||||
- `-FElib/` -- Output compiled files to `lib/`.
|
||||
|
||||
## Notes
|
||||
|
||||
- The `-n` flag is critical: it prevents FPC from loading any system-wide configuration that might introduce incompatible settings for the bare-metal target.
|
||||
- The `-Xd` flag ensures FPC does not try to link against system libraries, since the kernel is freestanding.
|
||||
- Object files produced here are later consumed by `compile_link.sh`.
|
||||
Reference in new issue
Block a user