]> FriiDump Source - friidump.git/blob - docs/BUILDING.md
Document exact-release Linux hardware validation
[friidump.git] / docs / BUILDING.md
1 # Building FriiDump
2
3 ## Windows
4
5 The maintained direct build path is:
6
7 ```powershell
8 .\build_msvc32.cmd
9 ```
10
11 It calls `.vscode\msvc32.cmd`, which currently locates the Visual Studio 2019
12 Build Tools 32-bit environment, then invokes:
13
14 ```text
15 cl @msvc32_friidump.rsp
16 ```
17
18 The build script runs `friidump.exe --help` after compilation and packages a
19 local result ZIP. These generated files are ignored by Git.
20
21 ## Linux / Unix
22
23 ```bash
24 cmake -S . -B build -DBUILD_STATIC_BINARY=ON
25 cmake --build build
26 ./build/src/friidump --help
27 ```
28
29 The Linux configure step prints an explicit warning: a normal build does not
30 install `CAP_SYS_RAWIO`. This is intentional. Build systems must not silently
31 invoke `sudo` or elevate their output.
32
33 After validating the exact executable, install only the capability required for
34 vendor-specific SCSI commands:
35
36 ```bash
37 bash ./validation/friidump-linux-rawio-capability.sh install   ./build/src/friidump
38 ```
39
40 Do not run FriiDump itself with `sudo`. Rebuilding, relinking, copying, or
41 replacing the executable clears file capabilities; reapply and verify after
42 every build intended for GC/Wii memory-dump or Xbox vendor-unlock hardware use.
43 See [`LINUX.md`](LINUX.md) for the complete permission model.
44
45 The inherited `libfriidump/rs.c` shift-count warning remains open and should be
46 corrected only as a separately reviewed source change.
47
48 ## External runtime requirements
49
50 Dumping requires operating-system access to the selected optical drive. Linux
51 vendor-command paths require both device-node access and effective
52 `CAP_SYS_RAWIO` on the exact validated executable. Grant only the minimum
53 required authority.