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
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.)

🌐
GeeksforGeeks
geeksforgeeks.org › installation guide › how-to-install-make-on-ubuntu
How to install make on Ubuntu - GeeksforGeeks
July 23, 2025 - The 'make' command is a crucial tool for developers working on Linux, especially for compiling large projects with many files. Here we have learned the detailed step-by-step process to install make on Ubuntu, verify the installation, and troubleshoot common issues.
🌐
SourceForge
gnuwin32.sourceforge.net › packages › make.htm
make for Windows
If you download the package as Zip files, then you must download and install the dependencies zip file yourself. Developer files (header files and libraries) from other packages are however not included; so if you wish to develop your own applications, you must separately install the required ...
🌐
GNU
gnu.org › software › libc › manual › › html_node › Running-make-install.html
Running make install (The GNU C Library)
To install the library and its header files, and the Info files of the manual, type make install. This will build things, if necessary, before installing them; however, you should still compile everything first. If you are installing the GNU C Library as your primary C library, we recommend ...
Find elsewhere
🌐
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.
🌐
GNU
gnu.org › software › make
Make - GNU Project - Free Software Foundation
Make gets its knowledge of how to build your program from a file called the makefile, which lists each of the non-source files and how to compute it from other files. When you write a program, you should write a makefile for it, so that it is possible to use Make to build and install the program.
🌐
iO Flood
ioflood.com › blog › install-make-command-linux
Intro to 'make' Linux Command: Installation and Usage
April 26, 2024 - In this guide, we will walk you through the process of installing and using the ‘make’ command in Linux. We will cover methods for APT-based distributions like Debian and Ubuntu, as well as YUM-based distributions like CentOS and AlmaLinux.
🌐
GNU
gnu.org › software › make › manual › html_node › Install-Command-Categories.html
Install Command Categories (GNU make)
Category lines are no-ops in ordinary execution because these three Make variables are normally undefined (and you should not define them in the makefile). Here are the three possible category lines, each with a comment that explains what it means: $(PRE_INSTALL) # Pre-install commands follow.
🌐
Linux Hint
linuxhint.com › install-make-ubuntu
How to install make on Ubuntu – Linux Hint
If the directory is available then you can use the “make” utility; if it displays an error as shown below then there is a way to solve this problem as well: By installing the build-essential package you get rid of this error. It is also known as a meta-package, and you can use it to install a make package and several other packages as well.
🌐
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
Traditionally associated with Unix-like systems, make reads instructions from a Makefile to determine which parts of a project need updating (e.g., compiling code, running scripts, or packaging files). While many guides for Windows focus on installing make via GNU tools like MinGW or Cygwin (which bundle compilers and Unix utilities), this tutorial targets users who need make without relying on GNU compilers or heavy Unix emulation layers.
🌐
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 - Now open a fresh CMD/Terminal and type make and and hit Enter. ... Then run choco install make from a fresh terminal.
🌐
The Linux Documentation Project
tldp.org › HOWTO › Software-Building-HOWTO-3.html
Building and Installing Software Packages for Linux: Using Make
Invoking make usually involves just typing make. This generally builds all the necessary executable files for the package in question. However, make can also do other tasks, such as installing the files in their proper directories (make install) and removing stale object files (make clean).
🌐
DEV Community
dev.to › skypy › linux-make-install-command-2dd6
Linux make install command - DEV Community
September 1, 2021 - $ sudo make install ./installer.sh /opt/testapp kiwi kiwi 'testapp' -> '/opt/testapp/bin/testapp' (backup: '/opt/testapp/bin/testapp~') 'testapp.conf' -> '/opt/testapp/etc/testapp.conf' (backup: '/opt/testapp/etc/testapp.conf~') installation ...
🌐
Linux Hint
linuxhint.com › install-use-make-windows
How to Install and Use make in Windows – Linux Hint
One of the easiest methods to install the make command utility on Windows is using the “Chocolatey” package manager on PowerShell. For this purpose, first, open Windows PowerShell and install the Chocolatey package manager. After that, install the make utility using the “choco install ...