Skip to content

Commit 5512e70

Browse files
dfa1claude
andcommitted
docs: document build requirements in CLAUDE
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent dc8b6e2 commit 5512e70

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,25 @@ zstd-java/ root pom, artifactId: parent
3434
`windows-x86_64`, `windows-aarch64`.
3535
- `third_party/zstd/` — pinned submodule; the only source of native code.
3636

37+
## Build requirements
38+
39+
Deliberately minimal — part of the hermetic goal is a tiny prerequisite set:
40+
41+
- **JDK 25+** — required for the stable `java.lang.foreign` API. Tested on
42+
Temurin/Zulu 25.
43+
- **Zig** on `PATH` — the C cross-compiler for the native library; this is the
44+
only native-toolchain dependency (no system clang/gcc, no CMake, no sysroot).
45+
Tested with `zig 0.16.0`.
46+
- **Git** — to fetch the `third_party/zstd` submodule
47+
(`git clone --recurse-submodules`, or `git submodule update --init`).
48+
- **A POSIX shell**`scripts/build-zstd.sh` is bash; cross-builds run from a
49+
Unix host (macOS/Linux). Windows targets are produced by cross-compiling, not
50+
by building on Windows.
51+
52+
Maven itself is **not** required: use the bundled wrapper `./mvnw`, which pins
53+
Maven 3.9.16. Runtime needs `--enable-native-access=ALL-UNNAMED` (already set for
54+
the test run via the surefire `argLine`).
55+
3756
## Native build
3857

3958
`scripts/build-zstd.sh <output-resources-dir> <classifier>` compiles the zstd

0 commit comments

Comments
 (0)