%% Vol I, Appendix A — Build and Deployment
%% SOURCE: .claude/CLAUDE.md (Build Commands, Running sections)
%%         docs/working/scratch/src/build-and-tooling/BUILD_OPTIONS.adoc
%%         docs/working/architecture/getting-started/DEVELOPER.md

\chapter{Build and Deployment}
\label{vol1:app:build}

\section{Prerequisites}
\label{vol1:sec:build:prereqs}

%% TODO(bob): list build prerequisites (GCC, make, pdflatex, Isabelle).
%% Source: DEVELOPER.md in docs/working/architecture/getting-started/

\section{Build Targets}
\label{vol1:sec:build:targets}

%% SOURCE: .claude/CLAUDE.md (Build Commands)
%% The primary build targets are:

\begin{lstlisting}[language=bash, caption={StarForth build targets}]
make               # Standard optimized build (auto-detects architecture)
make fastest       # Maximum performance (ASM + LTO + direct threading)
make pgo           # Profile-guided optimization
make debug         # Debug build with symbols
make test          # Full test suite (936+ tests)
make bench         # Quick benchmark
make clean         # Remove build artifacts
\end{lstlisting}

\section{Build Flags}
\label{vol1:sec:build:flags}

%% SOURCE: docs/working/scratch/src/build-and-tooling/BUILD_OPTIONS.adoc
%% TODO(bob): reproduce the key build flags table from BUILD_OPTIONS.adoc.
%% Key flags from .claude/CLAUDE.md:
%%   STRICT_PTR=1, USE_ASM_OPT=1, ENABLE_HOTWORDS_CACHE=1,
%%   ENABLE_PIPELINING=1, HEARTBEAT_THREAD_ENABLED=1,
%%   STARFORTH_ENABLE_VM=1, PARITY_MODE=1, EMERGENCY_CONSOLE_ENABLED=1

\section{Running}
\label{vol1:sec:build:run}

\begin{lstlisting}[language=bash, caption={Running StarForth}]
./build/amd64/standard/starforth              # Interactive REPL
./build/amd64/standard/starforth --run-tests  # Tests then REPL
./build/amd64/standard/starforth -c "1 2 + . BYE"  # Inline code
./build/amd64/fastest/starforth --doe         # DoE mode
\end{lstlisting}

\section{Test Suite}
\label{vol1:sec:build:tests}

%% TODO(bob): describe the 936+ test structure (POST order, 22 categories,
%% unit/integration/stress/adversarial). Reference make test and FAIL_FAST=1.
