diff --git a/compile.bat b/compile.bat index 921f37f..660075f 100644 --- a/compile.bat +++ b/compile.bat @@ -1,19 +1,13 @@ @echo off cd /d %~dp0 -rem ensure build directory exists +set "PATH=C:\msys64\mingw32\bin;%PATH%" + if not exist build mkdir build set buildargs=-Wall -Werror -m32 -shared -Isrc -Iinc/tsfuncs -Iinc/lua -lpsapi -L. -llua5.1 -static-libgcc -static-libstdc++ echo on - g++ src/bllua4.cpp %buildargs% -o build\BlockLua.dll -@rem g++ -DBLLUA_UNSAFE src/bllua4.cpp %buildargs% -o BlockLua-Unsafe.dll - +g++ -DBLLUA_UNSAFE src/bllua4.cpp %buildargs% -o build\BlockLua-Unsafe.dll @echo off - -rem objdump -d build\BlockLua.dll > build\BlockLua.dll.dump.txt -rem objdump -d build\BlockLua-Unsafe.dll > build\BlockLua-Unsafe.dll.dump.txt - -pause diff --git a/compiling.md b/compiling.md index 3d3fa93..0dd00b0 100644 --- a/compiling.md +++ b/compiling.md @@ -1,52 +1,52 @@ -## Compiling on Windows with MSYS2 (32-bit) - -Follow these steps to build `BlockLua.dll` for 32-bit Windows using MSYS2's MinGW-w64 i686 toolchain. - -### 1) Install MSYS2 - -- Download and install MSYS2 from `https://www.msys2.org/`. -- After installing, open the "MSYS2 MSYS" terminal once and update the package database if prompted. - -### 2) Install required packages (i686 / 32-bit) - -Run this in the "MSYS2 MSYS" or "MSYS2 MinGW 32-bit" terminal: - -```bash -pacman -Sy --needed mingw-w64-i686-toolchain mingw-w64-i686-binutils mingw-w64-i686-lua51 -``` - -What these packages are for: - -- mingw-w64-i686-toolchain: 32-bit C/C++ compiler suite (g++, libstdc++, runtime libs) to build Windows binaries. -- mingw-w64-i686-binutils: Linker and binary utilities (ld, as, objdump) used by the compiler and for optional inspection. -- mingw-w64-i686-lua51: Lua 5.1 development files for 32-bit (import library). We use its import library to link; at runtime you can use the provided `lua5.1.dll`. - -### 3) Build (PowerShell, recommended) - -- Open PowerShell in the repo root. -- Run the script: - -```powershell -msys_compile.bat -``` - -What the script does: - -- Temporarily prepends `C:\\msys64\\mingw32\\bin` to PATH so the 32-bit toolchain is used. -- Compiles the project with `-m32` and links against `lua5.1`. -- Produces `build\BlockLua.dll` and `build\BlockLua-Unsafe.dll`. - -### 4) Optional: Verify 32-bit output - -If you installed binutils, you can check the architecture: - -```powershell -objdump -f build\BlockLua.dll | Select-String i386 -``` - -You should see `architecture: i386` in the output. - -### Notes - -- Ensure you installed the i686 (32-bit) variants of the packages; x86_64 packages won’t work for a 32-bit build. -- If the linker cannot find `-llua5.1`, confirm `mingw-w64-i686-lua51` is installed and you are using the `mingw32` toolchain (not `x86_64`). +## Compiling on Windows with MSYS2 (32-bit) + +Follow these steps to build `BlockLua.dll` for 32-bit Windows using MSYS2's MinGW-w64 i686 toolchain. + +### 1) Install MSYS2 + +- Download and install MSYS2 from `https://www.msys2.org/`. +- After installing, open the "MSYS2 MSYS" terminal once and update the package database if prompted. + +### 2) Install required packages (i686 / 32-bit) + +Run this in the "MSYS2 MSYS" or "MSYS2 MinGW 32-bit" terminal: + +```bash +pacman -Sy --needed mingw-w64-i686-toolchain mingw-w64-i686-binutils mingw-w64-i686-lua51 +``` + +What these packages are for: + +- mingw-w64-i686-toolchain: 32-bit C/C++ compiler suite (g++, libstdc++, runtime libs) to build Windows binaries. +- mingw-w64-i686-binutils: Linker and binary utilities (ld, as, objdump) used by the compiler and for optional inspection. +- mingw-w64-i686-lua51: Lua 5.1 development files for 32-bit (import library). We use its import library to link; at runtime you can use the provided `lua5.1.dll`. + +### 3) Build (PowerShell, recommended) + +- Open PowerShell in the repo root. +- Run the script: + +```powershell +compile.bat +``` + +What the script does: + +- Temporarily prepends `C:\\msys64\\mingw32\\bin` to PATH so the 32-bit toolchain is used. +- Compiles the project with `-m32` and links against `lua5.1`. +- Produces `build\BlockLua.dll` and `build\BlockLua-Unsafe.dll`. + +### 4) Optional: Verify 32-bit output + +If you installed binutils, you can check the architecture: + +```powershell +objdump -f build\BlockLua.dll | Select-String i386 +``` + +You should see `architecture: i386` in the output. + +### Notes + +- Ensure you installed the i686 (32-bit) variants of the packages; x86_64 packages won’t work for a 32-bit build. +- If the linker cannot find `-llua5.1`, confirm `mingw-w64-i686-lua51` is installed and you are using the `mingw32` toolchain (not `x86_64`). diff --git a/msys_compile.bat b/msys_compile.bat deleted file mode 100644 index 2d3243b..0000000 --- a/msys_compile.bat +++ /dev/null @@ -1,13 +0,0 @@ -@echo off -cd /d %~dp0 - -set "PATH=C:\msys64\mingw32\bin;%PATH%" - -if not exist build mkdir build - -set buildargs=-Wall -Werror -m32 -shared -Isrc -Iinc/tsfuncs -Iinc/lua -lpsapi -L. -llua5.1 -static-libgcc -static-libstdc++ - -echo on -g++ src/bllua4.cpp %buildargs% -o build\BlockLua.dll -g++ -DBLLUA_UNSAFE src/bllua4.cpp %buildargs% -o build\BlockLua-Unsafe.dll -@echo off