make is a GNU command, so the only way you can get it on Windows is installing a Windows version like the one provided by GNUWin32. Anyway, there are several options for getting that:

  1. Directly download from Make for Windows

  2. Using Chocolatey. First, you need to install this package manager. Once installed, you simply need to install make (you may need to run it in an elevated/administrator command prompt):

    choco install make
    
  3. Another recommended option is installing a Windows Subsystem for Linux (WSL or WSL 2), so you'll have a Linux distribution of your choice embedded in Windows 10, where you'll be able to install make, gcc, and all the tools you need to build C programs.

  4. For older Windows versions (Microsoft Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, or Windows 7 with msvcrt.dll) you can use GnuWin32.

An outdated alternative was MinGW, but the project seems to be abandoned, so it's better to go for one of the previous choices.

Answer from Eduardo Yáñez Parareda on Stack Overflow
🌐
Medium
leangaurav.medium.com › how-to-setup-install-gnu-make-on-windows-324480f1da69
How to setup/install GNU make on Windows | by leangaurav | Medium
September 9, 2023 - We need to add the path to the make binary to PATH variable. Go to the install location and then go to bin folder ... Note: if you don’t have persmission to edit system env vars, then choose edit env vars for your account. Click Environment Variables. ... Under user variables, find Path and click Edit. Hit New, paste the copied path and hit Ok. Hit OK on all other windows also.
Discussions

how to install 'make' on Windows?
If you're using WSL, why not just sudo apt-get install make? More on reddit.com
🌐 r/learnprogramming
10
2
April 13, 2022
unix - Why always ./configure; make; make install; as 3 separate steps? - Stack Overflow
From my point of view it would make totally sense to have a ./install.sh script automatically delivered with the source code which contains the following text: ... If the build system is written correctly - and it usually is - you can omit the second step. ... Your question is not stupid. You can build your program in Linux environment and after that you can use by some virtualization application or you can build directly in windows ... More on stackoverflow.com
🌐 stackoverflow.com
I want an extreme minimal Windows 10 install
If I understand your intent, I think Windows 10 is not a suitable choice for what you describe. It receives regular servicing and major feature updates every 6 months that will undo whatever hacks you manage to achieve. My suggestion: either accept Windows 10 as it is and use it as intended (you can uninstall or disable anything you like if there is a supported mechanism to do so), or find a copy Windows 8.1 and hack it as you choose. At this point it is receiving only security patches, so whatever "minifying" you manage to achieve will likely stick around for awhile. Good luck. More on reddit.com
🌐 r/Windows10
9
0
March 26, 2019
Run a DHCP server in windows 10
No, why would a server function be built into a client OS? More on reddit.com
🌐 r/windows
6
12
March 12, 2016
Top answer
1 of 5
78

Make is a general purpose workflow program, usually used for compilation. But it can be used for anything.

When you do something like "make all", the make program executes a rule named "all" from a file in current directory named "Makefile". This rule usually calls the compiler to compile some source code into binaries.

When you do "make install", the make program takes the binaries from the previous step and copies them into some appropriate locations so that they can be accessed. Unlike on Windows, installation just requires copying some libraries and executables and there is no registry requirement as such. In short, "make install" just copies compiled files into appropriate locations.

2 of 5
54

make install does whatever the Makefile author wants it to do. Typically, by this point, it is too late to change the install directory, as it is often known earlier, during the build, so help files and configuration files can be referenced with the correct pathnames.

Many projects use the GNU Autotools to try to improve their portability among hardware and operating system differences. (Different Unix variants use slightly different headers for declarations of functions that are slightly off the usual path -- except most programs need one or another of the ones declared in different locations.)

When a project does use the Autotools, the normal mantra to install it is:

./configure
make
make install

The ./configure typically allows you to use a command line option like --prefix /opt/apache or something similar to specify a different pathname. /usr/local/ is a common default prefix. It is far easier for locally built software to live in one place and distribution-provided software to live in the "main directories": /usr/ /bin/, and so on. (Packagers are very careful to never touch files in /usr/local/ -- they know it is exclusively for system administrators.)

Anyway, the ./configure --prefix /path/to/new/prefix will set a variable in the Makefile that is available when compiling the program, modifying the manual pages so they point to the correct locations for files, modifying configuration files, etc. So make will build the software specifically for the install location you want and make install will install it into that location.

Most programs can run even without the final make install step -- just ./program_name will often start them up. This is definitely a per-project thing -- some, like postfix, qmail, etc., are made up of many different moving pieces and rely on them all working together. Others, like ls or su might be self-contained enough to execute fine from the directory they were built in. (This is not often useful -- but sometimes very useful.)

However, not all projects use the Autotools -- they are huge, complicated, and miserable to maintain. Hand-written Makefiles are much simpler to write, and I personally think just distributing a simple Makefile with configuration variables available is a lot easier on developers and users both. (Though the ./configure ; make ; make install mantra is really easy on users when it works.)

🌐
SourceForge
gnuwin32.sourceforge.net › packages › make.htm
make for Windows
If msvcrt.dll or msvcp60.dll is not in your Windows/System folder, get them from Microsoft, or (msvcrt.dll only) by installing Internet Explorer 4.0 or higher. ... make,3.81,gnu,win32,win32s,win64,gnuwin32,i386,ia64,x86-64, gnuwin64,gnuwin,mswindows,ms-windows,windows,95,98,me,nt,2000,2k,x...
🌐
Reddit
reddit.com › r/learnprogramming › how to install 'make' on windows?
r/learnprogramming on Reddit: how to install 'make' on Windows?
April 13, 2022 -

Can anyone tell me the simplest and safest way to install make on windows? I have linux shell if that could make things easier.

I searched online and it takes me to sketchy websites with unsecured connection or tell me to install random packages like chocolaty etc-

🌐
Linux Hint
linuxhint.com › install-use-make-windows
How to Install and Use make in Windows – Linux Hint
To install and use make on Windows, first, install the Chocolatey package manager. Then, install the make utility using the “choco install make” command.
🌐
Thrive My Way
thrivemyway.com › home › software › how to install and use “make” in windows – practical tips
How To Install And Use "Make" In Windows - Practical Tips - Learn Digital Marketing
September 20, 2023 - To install Make, download the Cygwin installer and select the ‘Devel’ category to find and install the ‘make’ package. It provides a robust Unix-like environment on Windows.
Find elsewhere
🌐
Windows Forum
windowsforum.com › forums › windows help and support forums › windows news
How to Install and Use Makefiles on Windows 11: A Complete Guide | Windows Forum
April 20, 2025 - They are integral to managing complex program builds on Unix-based systems but can also be harnessed on Windows 11 with the right setup. Here’s everything you need to know about installing and running Makefiles on Windows. A Makefile is a configuration file utilized by the make utility, which ...
🌐
codestudy
codestudy.net › blog › how-to-install-and-use-make-in-windows
How to Install and Use 'make' Command in Windows Without GNU Compiler: Step-by-Step Setup Guide — codestudy.net
To use make without GNU compilers (e.g., MinGW, Cygwin), we need a native Windows port. The easiest options are: Recommendation: Use Chocolatey (a popular Windows package manager) for simplicity. It automatically installs and configures make with minimal effort.
🌐
PäksTech
pakstech.com › blog › make-windows
Use Make on Windows | PäksTech
July 24, 2021 - However, if you want to have the command available natively on a normal terminal prompt then you need to install a Windows-specific version. The easiest way to configure Make is to use the Chocolatey package manager for Windows.
🌐
Microdata
handbook.microdata.io › tools › make › make-in-windows
Make in Windows | Handbook
March 16, 2023 - Description of how to install and use Make in Windows OS.
🌐
Stat545
stat545.com › make-windows.html
Chapter 34 make: special considerations for Windows | STAT 545
November 17, 2015 - Go to the end of the line and add a semicolon ;, followed by the path where the program was installed, followed by \bin. Typical example of what one might add: ;C:\Program Files (x86)\GnuWin32\bin · Click Okay and close all the windows that you opened. Quit RStudio and open it again. You should now be able to use make from RStudio and the command line.
🌐
MoldStud
moldstud.com › articles › developers faq › makefile developers questions
How do I run a makefile on Windows? | MoldStud
October 13, 2024 - Select based on your needs. Visit the MinGW or Cygwin websiteFind the installer for your choice. Download the installerFollow the prompts to save it. Check your download folderEnsure the installer is present.
🌐
Tech News Today
technewstoday.com › home › software › how to install and use "make" in windows
How to Install and Use "Make" in Windows - Tech News Today
November 20, 2021 - Press Win + R together to open the Run window. Type cmd and press Enter to bring up the Command Prompt. Type the command Winget install GnuWin32.make and press Enter.
🌐
Thoughtbot
thoughtbot.com › blog › the-magic-behind-configure-make-make-install
The magic behind configure, make, and make install
August 5, 2024 - A guide on how UNIX ./configure && make && make install utility works and where it comes from.
Top answer
1 of 4
130

Because each step does different things

Prepare(setup) environment for building

./configure

This script has lots of options that you should change. Like --prefix or --with-dir=/foo. That means every system has a different configuration. Also ./configure checks for missing libraries that should be installed. Anything wrong here causes not to build your application. That's why distros have packages that are installed on different places, because every distro thinks it's better to install certain libraries and files to certain directories. It is said to run ./configure, but in fact you should change it always.

For example have a look at the Arch Linux packages site. Here you'll see that any package uses a different configure parameter (assume they are using autotools for the build system).

Building the system

make

This is actually make all by default. And every make has different actions to do. Some do building, some do tests after building, some do checkout from external SCM repositories. Usually you don't have to give any parameters, but again some packages execute them differently.

Install to the system

make install

This installs the package in the place specified with configure. If you want you can specify ./configure to point to your home directory. However, lots of configure options are pointing to /usr or /usr/local. That means then you have to use actually sudo make install because only root can copy files to /usr and /usr/local.


Now you see that each step is a pre-requirement for next step. Each step is a preparation to make things work in a problemless flow. Distros use this metaphor to build packages (like RPM, deb, etc.).

Here you'll see that each step is actually a different state. That's why package managers have different wrappers. Below is an example of a wrapper that lets you build the whole package in one step. But remember that each application has a different wrapper (actually these wrappers have a name like spec, PKGBUILD, etc.):

def setup:
... #use ./configure if autotools is used

def build:
... #use make if autotools is used

def install:
... #use make all if autotools is used

Here one can use autotools, that means ./configure, make and make install. But another one can use SCons, Python related setup or something different.

As you see splitting each state makes things much easier for maintaining and deployment, especially for package maintainers and distros.

2 of 4
33

First, it should be ./configure && make && make install since each depends on the success of the former. Part of the reason is evolution and part of the reason is convenience for the development workflow.

Originally, most Makefiles would only contain the commands to compile a program and installation was left to the user. An extra rule allows make install to place the compiled output in a place that might be correct; there are still plenty of good reasons that you might not want to do this, including not being the system administrator, not want to install it at all. Moreover, if I am developing the software, I probably don't want to install it. I want to make some changes and test the version sitting in my directory. This becomes even more salient if I'm going to have multiple versions lying around.

./configure goes and detects what is available in the environment and/or is desired by the user to determine how to build the software. This is not something that needs to change very often and can often take some time. Again, if I am a developer, it's not worth the time to reconfigure constantly. More importantly, since make uses timestamps to rebuild modules, if I rerun configure there is a possibility that flags will change and now some of the components in my build will be compile with one set of flags and others with a different set of flags that might lead to different, incompatible behaviour. So long as I don't rerun configure, I know that my compilation environment remains the same even if I change my sources. If I rerun configure, I should make clean first, to remove any built sources to ensure things are built uniformly.

The only case where the three command are run in a row are when users install the program or a package is built (e.g., Debian's debuild or RedHat's rpmbuild). And that assumes that the package can be given a plain configure, which is not usually the case for packaging, where, at least, --prefix=/usr is desired. And pacakgers are like to have to deal with fake-roots when doing the make install part. Since there are lots of exceptions, making ./configure && make && make install the rule would be inconvenient for a lot of people who do it on a far more frequent basis!

🌐
Medium
medium.com › @samsorrahman › how-to-run-a-makefile-in-windows-b4d115d7c516
How to Run a Makefile in Windows. Makefile is a special file containing… | by Samsor Rahman | Medium
September 22, 2023 - Follow the below-mentioned steps to create a simply programmed Makefile in Windows. ... Makefile is a special file containing information related to the program’s flow, targets, and libraries. It is also called a description file. Makefile contains a group of targets and sources on which they are dependent. The Makefile also contains libraries that support source code. This type of file is executed using the make command. This article will go through the method to install and run Makefile on Windows.
🌐
Tilburg Science Hub
tilburgsciencehub.com › building-blocks › configure-your-computer › automation-and-workflows › make
Set up Make - Tilburg Science Hub
Choose `Edit`. - **Windows 7 and 8 machines:** If you chose your installation directory to be `C:\Program Files\GnuWin32\bin` during your installation (i.e., you did use the default directory), copy and paste the following string without spaces at the start or end: `;C:\Program Files (x86)\GnuWin32\bin` - **Windows 10 machines:** - Click `New` and paste the following string: `C:\Program Files (x86)\GnuWin32\bin` - Click on `OK` as often as needed. Please install X-code command line tools, which includes make.
🌐
Earthly
earthly.dev › blog › makefiles-on-windows
How To Use Makefiles on Windows - Earthly Blog
July 11, 2023 - Now you can finish the installation by clicking Next in the bottom right corner. Once the installation is done, you can open up Cygwin and verify that make has been installed by executing make --version. One of the alternatives that you’ll often hear about regarding running Makefiles on Windows is NMAKE.
🌐
Readthedocs
config-cli-gui.readthedocs.io › en › stable › develop › make_windows
🛠️ How to Use make on Windows - config-cli-gui
This guide explains how to install and use make on Windows, with three different options depending on your preference and environment.