Phase 0.
This commit is contained in:
parent
1d8f869b5b
commit
0578b6243c
5 changed files with 118 additions and 10 deletions
57
docs/BUILD.md
Normal file
57
docs/BUILD.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# Build baseline
|
||||
|
||||
Phase 0 retains the existing layout: public C headers in `include/xtlite`,
|
||||
C implementation modules under `src`, optional C++ GUI under `src/gui`, and
|
||||
tests under `tests`. `src/main.c` is a minimal headless startup/shutdown check;
|
||||
it does not initialize audio devices or open a GUI.
|
||||
|
||||
## Commands
|
||||
|
||||
```sh
|
||||
make clean all test
|
||||
./build/xtlite-check
|
||||
make debug
|
||||
make gui
|
||||
```
|
||||
|
||||
`all` builds the static C library and startup check. `test` runs the existing
|
||||
core test and startup check. `debug` builds and tests separately in
|
||||
`build/debug`. `gui` builds the existing placeholder shell; it does not produce
|
||||
audio. Generated files remain under `build` and header changes trigger rebuilds.
|
||||
Compiler, flags, `BUILD_DIR`, `PKG_CONFIG`, `FLTK_CONFIG`, and installation
|
||||
`PREFIX` can be overridden through Make variables. C uses C99; GUI uses C++17.
|
||||
|
||||
## Inspected Linux toolchain (2026-10-26)
|
||||
|
||||
| Component | Available version | Role |
|
||||
| --- | --- | --- |
|
||||
| GCC / G++ | 16.2.1 | C core and optional C++ GUI |
|
||||
| GNU Make | 4.4.1 | Build and test driver |
|
||||
| pkg-config | 3.0.10 | Development package discovery |
|
||||
| FLTK | 1.4.5 | Optional GUI; discovered through `fltk-config` |
|
||||
| JACK | 3.1609.0 (pkg-config) | Candidate backend; not linked yet |
|
||||
| ALSA | 1.2.16.1 (pkg-config) | Future MIDI candidate; not linked yet |
|
||||
| Clang | 23.1.3 | Alternative compiler / diagnostics |
|
||||
|
||||
Valgrind is also available. The core tests use a small in-tree C test harness
|
||||
and require no external test framework. FLTK has no `fltk.pc` on this host;
|
||||
the Makefile tries pkg-config first, then `fltk-config`.
|
||||
|
||||
## Dependencies and licensing
|
||||
|
||||
No new dependencies are introduced. The core needs the C runtime and math
|
||||
library. The repository is MIT licensed. The optional GUI uses maintained
|
||||
FLTK 1.4 (LGPL with FLTK's static-linking exception); its platform link flags
|
||||
come from the installed package. Distribution still requires review of all
|
||||
linked dependencies and notices. JACK and ALSA remain candidates only; backend
|
||||
selection and license review belong to Phase 2. No packages or system settings
|
||||
are changed by these build commands.
|
||||
|
||||
## Next milestone
|
||||
|
||||
Phase 1 must replace insertion-order gain processing with a validated,
|
||||
topologically scheduled offline plan, preallocated buffers, oscillator, gain,
|
||||
meter and output nodes, and deterministic routing tests. The current gain
|
||||
prototype is not a real-time engine. Public project persistence declarations
|
||||
also remain unimplemented. Hardware playback and interactive GUI behavior are
|
||||
outside this baseline.
|
||||
|
|
@ -4,6 +4,10 @@
|
|||
Inspect repository/toolchain, verify Makefile and minimal executable, document
|
||||
dependencies. No system changes without permission.
|
||||
|
||||
Baseline implementation: headless startup/shutdown executable, core tests,
|
||||
separate debug build, optional FLTK shell build, and header dependencies.
|
||||
See [BUILD.md](BUILD.md) for toolchain, commands, licensing and limitations.
|
||||
|
||||
## Phase 1 — C core and offline processing
|
||||
Graph data structures, validation, cycle detection, topological ordering,
|
||||
preallocated buffers, test oscillator, gain and offline render tests.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue