How to run a makefile in Windows?
WindowsMakefileWindows Problem Overview
I have some demos that I downloaded and they come with a Makefile.win and a Makefile.sgi. How can I run these in Windows to compile the demos?
Windows Solutions
Solution 1 - Windows
You can install GNU make with chocolatey, a well-maintained package manager, which will add make
to the global path and runs on all CLIs (powershell, git bash, cmd, etc…) saving you a ton of time in both maintenance and initial setup to get make running.
-
Install the chocolatey package manager for Windows
compatible to Windows 7+ / Windows Server 2003+ -
Run
choco install make
I am not affiliated with choco, but I highly recommend it, so far it has never let me down and I do have a talent for breaking software unintentionally.
Solution 2 - Windows
If you have Visual Studio, run the Visual Studio Command prompt from the Start menu, change to the directory containing Makefile.win
and type this:
nmake -f Makefile.win
You can also use the normal command prompt and run vsvars32.bat (c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools for VS2008). This will set up the environment to run nmake and find the compiler tools.
Solution 3 - Windows
Check out cygwin, a Unix alike environment for Windows
Solution 4 - Windows
Check out GnuWin's make (for windows), which provides a native port for Windows (without requiring a full runtime environment like Cygwin)
If you have winget, you can install via the CLI like this:
winget install GnuWin32.Make
Also, be sure to add the install path to your system PATH
:
C:\Program Files (x86)\GnuWin32\bin
Solution 5 - Windows
Here is my quick and temporary way to run a Makefile
- download make from SourceForge: gnuwin32
- install it
- go to the install folder
> C:\Program Files (x86)\GnuWin32\bin
- copy the all files in the bin to the folder that contains Makefile
> libiconv2.dll libintl3.dll make.exe
- open the cmd (you can do it with right click with shift) in the folder that contains Makefile and run
> make.exe
done.
Plus, you can add arguments after the command, such as
> make.exe skel
Solution 6 - Windows
If you install Cygwin. Make sure to select make in the installer. You can then run the following command provided you have a Makefile.
make -f Makefile
https://cygwin.com/install.html
Solution 7 - Windows
I tried all of the above. What helps me:
- Download the mingw-get.
- Setup it.
- Add something like this
C:\MinGW\bin
to environment variables. - Launch (!important) git bash. Power shell, developer vs cmd, system cmd etc didn't help.
- Type
mingw-get
into the command line. - After type
mingw-get install mingw32-make
.
Done! Now You might be able to use make-commands from any folder that contains Makefile.
Solution 8 - Windows
With Visual Studio 2017 I had to add this folder to my Windows 10 path env variable:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64
There's also HostX86
Solution 9 - Windows
I use MinGW tool set which provides mingw32-make
build tool, if you have it in your PATH
system variables, in Windows Command Prompt just go into the directory containing the files and type this command:
mingw32-make -f Makefile.win
and it's done.
Solution 10 - Windows
If it is a "NMake Makefile", that is to say the syntax and command is compatible with NMake, it will work natively on Windows. Usually Makefile.win
(the .win
suffix) indicates it's a makefile compatible with Windows NMake. So you could try nmake -f Makefile.win
.
Often standard Linux Makefiles are provided and NMake
looks promising. However, the following link takes a simple Linux Makefile and explains some fundamental issues that one may encounter. It also suggests a few alternatives to handling Linux Makefiles on Windows.
Solution 11 - Windows
Firstly, add path of visual studio common tools (c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools
) into the system path. To learn how to add a path into system path, please check this website:
http://www.computerhope.com/issues/ch000549.htm. You just need to this once.
After that, whenever you need, open a command line and execute vsvars32.bat
to add all required visual studio tools' paths into the system path.
Then, you can call nmake -f makefile.mak
PS: Path of visual studio common tools might be different in your system. Please change it accordingly.
Solution 12 - Windows
I tried with cygwin & gnuwin, and didn't worked for me, I guess because the makefile used mainly specific linux code.
What it worked was use Ubuntu Bash for Windows 10. This is a Marvel if you come from MAC as it is my case:
- To install the Ubuntu Bash: https://itsfoss.com/install-bash-on-windows/
- Once in the console, to install make simply type "make" and it gives the instructions to download it.
Extras:
- Useful enable copy / paste on bash: https://stackoverflow.com/questions/38832230/copy-paste-in-bash-on-ubuntu-on-windows
- In my case the make called Maven, so I have to install it as well: https://askubuntu.com/questions/722993/unable-to-locate-package-maven
- To access windows filesystem C: drive, for example: "cd /mnt/c/"
Hope it helps
Solution 13 - Windows
- Download from https://sourceforge.net/projects/gnuwin32/
- Set the variable path in advance setting for recognize in command prompt (C:\Program Files (x86)\GnuWin32\bin)
Solution 14 - Windows
Install msys2 with make dependency add both to PATH variable. (The second option is GNU ToolChain for Windows. MinGW version has already mingw32-make included.)
Install Git Bash. Run mingw32-make from Git Bash.
Solution 15 - Windows
I am assuming you added mingw32/bin
is added to environment variables else please add it and I am assuming it as gcc compiler and you have mingw installer.
First step: download mingw32-make.exe
from mingw installer, or please check mingw/bin
folder first whether mingw32-make.exe
exists or not, else than install it, rename it to make.exe
.
After renaming it to make.exe
, just go and run this command in the directory where makefile
is located. Instead of renaming it you can directly run it as mingw32-make
.
After all, a command is just exe file or a software, we use its name to execute the software, we call it as command.
Solution 16 - Windows
So if you're using Vscode and Mingw then you should first make sure that the bin
folder of the mingw
is included in the environment path and it is preferred to change the mingw32-make.exe
to make
to ease the task and then create a makefile
and include this code in it .
all:
gcc -o filename filename.c
./filename
Then save the makefile and open Vscode Code
terminal and write make
. Then makefile will get executed.
Solution 17 - Windows
> May be it can work.
pip install Makefile