Commits on Sep 14, 2026
-
Add build.exe: one-click Windows builder, vendor jni.h
…
build.exe downloads a portable mingw toolchain (w64devkit, pinned) into a subfolder on first run — nothing installed system-wide, no admin — then compiles the DLL and loader directly with g++, mirroring the Makefile's flags and source list, and prints the DLL imports to confirm the static link held. Source is build_bootstrap.c. jni.h is now vendored under third_party/jni, so no JDK is needed by either build.exe or make. JAVA_INC is optional and only overrides the vendored header; the Makefile picks up third_party/jni and adds -I<JAVA_INC> only when set. BUILD.md leads with build.exe; the make paths (Linux, MSYS2, WinLibs) stay for anyone who prefers it. Verified the exact recipe build.exe runs still links to a DLL importing only KERNEL32/USER32/GDI32/OPENGL32/msvcrt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Kretrod committed 5 hours ago -
Makefile: build on Windows too, and add BUILD.md
…
A cloner on Windows hit `make` failing with "The syntax of the command is incorrect." The recipes used a Unix shell — `mkdir -p`, `rm -rf`, and an `objdump | grep | sort` pipeline — which cmd.exe cannot run, so the build died before the compiler was ever invoked. Detect the OS (make sets OS=Windows_NT there) and pick the directory-make, tree-remove and dependency-dump commands each shell understands; use `$(@D)` so there is no trailing slash to trip cmd's quoting. JAVA_INC include is now quoted so a path like "C:/Program Files/Java/..." survives, and BUILD.md spells out the toolchain, the MSYS2/WinLibs paths, and the JDK include requirement. CXX/CC/OBJDUMP stay `:=`, not `?=`: make has a built-in default for CXX/CC (the host g++/cc), and `?=` would leave that in place and quietly build for the wrong platform. A command-line `make CXX=g++` still overrides `:=`. No change to the build output — same DLL, still importing only KERNEL32, USER32, GDI32, OPENGL32 and msvcrt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Kretrod committed 5 hours ago
NewerOlder