April 30, 2026
Example Project: MakeHex 🡵
Assuming you have a makefile, it seems you can use a program called CMake. Supposedly the best way to install this is with the Chocolatey Package manager. That can be installed with the following command:
Run the following in Powershell as Admin:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
If installation fails, run the following in an Admin CMD prompt
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Run the following in Powershell.
choco install make
You should be able to just make the file at this point. However, it seems like the makefile was built expecting tools that aren't natively in Windows, like rm or gcc++. There might be a solution. It seems that normally this wouldn't be an issue after acquiring Make from Chocolatey, but it does require that I have gcc++.
Sounds like I can install a program called MSYS2 to get the necessary requirements.
After installing MSYS2, I should then be able to install GCC and make
pacman -S mingw-w64-x86_64-gcc make
By running make in the target directory with MSYS2 MinGW x64, I should be able to compile. However, given that the commands are made for Linux, I still run into an issue. Since it's creating a .exe file, the strip command from the makefile doesn't work. I can fix this by adding .exe to the right locations in the makefile.
This seems to work, but the program requires MinGW’s standard C++ library, libstdc++-6.dll. This should be included with MSYS2, so I have to add it to PATH using an admin cmd.
setx PATH "C:\msys64\mingw64\bin;%PATH%" /M
After restarting CMD, this seems to work, allowing me to use encodeir as intended:
C:\Users\Games\Downloads\MakeHex-master\MakeHex-master>encodeir
Usage: encodeir <protocol> <device> <subdevice> <function>