# Building SFNetAdd32 v0.4b Beta 1

## Toolchain

The supplied build script is intended for a Linux or Unix shell with:

```text
clang 17 or newer
lld-link
python3
file
objdump
```

Run from the `source` directory:

```bash
chmod +x build.sh
./build.sh
```

Outputs are written to `source/build/`.

## Target

- C11
- PE32/i386
- Windows GUI OS/subsystem version 5.01
- Intended for 32-bit Windows XP SP2 and Windows 7
- Freestanding; no default C runtime
- No MSVCRT or UCRT dependency
- Conservative i386 code generation
- MMX, SSE, and SSE2 disabled
- ASLR disabled for XP loader compatibility
- Normal build uses `/Brepro`

Compiler warning policy:

```text
-std=c11 -Wall -Wextra -Werror
```

## Tests

```bash
python3 tests/sftoss_cfg_reference_test.py \
  tests/fixtures/SFTOSS-CFG --tmp build/cfg-generated-tests

python3 tests/unified_build_selftest.py \
  --mconf tests/fixtures/SFMCONF.DAT \
  --message-zip tests/fixtures/MESSAGE.zip \
  --na-root tests/fixtures/FTN-NA \
  --profiles SFNetAdd32-profiles.ini \
  --source-root . \
  --exe build/SFNetAdd32.exe \
  --debug-exe build/SFNetAdd32-debug.exe
```

The v0.4b parser is read-only. It supports legacy flat single-link and v1.07
named multi-link CFG files. Packet passwords are represented only by set/none.
