Commits on Sep 14, 2026
-
build.exe: mkdirs must create only parent dirs, not the .o path
…
Second issue from the clean-box test: g++ failed with "can't create build/src/main.cpp.o: Permission denied" because mkdirs() created the full object path — filename included — as a directory, so a directory sat where the object file needed to be written. Create only the directories above the final path component. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Kretrod committed 5 hours ago -
build.exe: put w64devkit\bin on PATH so g++ can find as/ld
…
Tested from a clean Windows box: the download and unpack worked, but the first g++ invocation failed with "cannot execute 'as'". w64devkit expects its bin directory on PATH; called by a bare relative path it could not find the assembler or linker it shells out to. Prepend the toolchain's absolute bin to PATH before compiling; system() children inherit it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Kretrod committed 5 hours ago -
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
NewerOlder