Make
Make[edit | edit source]
Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles, which specify how to derive the target program. It was originally created by Stuart Feldman in 1976 at Bell Labs.
Overview[edit | edit source]
Make is a tool that controls the generation of executables and other non-source files of a program from the program's source files. Users can specify dependencies between files and the commands needed to update them. Make is widely used in software development to manage and automate the build process.
Makefiles[edit | edit source]
A Makefile is a special file that contains shell commands and directives for Make. It defines a set of tasks to be executed. Makefiles specify how to derive the target program from the source files. They contain rules in the form of:
``` target: dependencies \tcommand ```
- Target: The file to be generated. - Dependencies: Files that the target depends on. - Command: The shell command to execute to create or update the target.
Basic Concepts[edit | edit source]
- Targets: The files that Make should create or update. - Dependencies: Files that are used as input to create the target. - Rules: Instructions on how to build the targets. - Variables: Used to store values that can be reused in the Makefile.
Example[edit | edit source]
Here is a simple example of a Makefile:
```
- This is a comment
all: myprogram
myprogram: main.o utils.o \tgcc -o myprogram main.o utils.o
main.o: main.c \tgcc -c main.c
utils.o: utils.c \tgcc -c utils.c
clean: \trm -f myprogram main.o utils.o ```
In this example, `myprogram` is the target, and it depends on `main.o` and `utils.o`. The `clean` target is a common convention to remove all generated files.
History[edit | edit source]
Make was created by Stuart Feldman in 1976 at Bell Labs. It was designed to simplify the process of compiling and linking programs. Over the years, Make has become a standard tool in Unix-based systems and has influenced many other build automation tools.
Variants[edit | edit source]
Several variants of Make exist, including:
- GNU Make: The most widely used version, which includes many extensions and improvements over the original. - BSD Make: The version used in BSD operating systems. - CMake: A cross-platform tool that generates Makefiles.
Also see[edit | edit source]
Part of a series on |
Software development |
---|
Search WikiMD
Ad.Tired of being Overweight? Try W8MD's physician weight loss program.
Semaglutide (Ozempic / Wegovy and Tirzepatide (Mounjaro / Zepbound) available.
Advertise on WikiMD
WikiMD's Wellness Encyclopedia |
Let Food Be Thy Medicine Medicine Thy Food - Hippocrates |
Translate this page: - East Asian
中文,
日本,
한국어,
South Asian
हिन्दी,
தமிழ்,
తెలుగు,
Urdu,
ಕನ್ನಡ,
Southeast Asian
Indonesian,
Vietnamese,
Thai,
မြန်မာဘာသာ,
বাংলা
European
español,
Deutsch,
français,
Greek,
português do Brasil,
polski,
română,
русский,
Nederlands,
norsk,
svenska,
suomi,
Italian
Middle Eastern & African
عربى,
Turkish,
Persian,
Hebrew,
Afrikaans,
isiZulu,
Kiswahili,
Other
Bulgarian,
Hungarian,
Czech,
Swedish,
മലയാളം,
मराठी,
ਪੰਜਾਬੀ,
ગુજરાતી,
Portuguese,
Ukrainian
Medical Disclaimer: WikiMD is not a substitute for professional medical advice. The information on WikiMD is provided as an information resource only, may be incorrect, outdated or misleading, and is not to be used or relied on for any diagnostic or treatment purposes. Please consult your health care provider before making any healthcare decisions or for guidance about a specific medical condition. WikiMD expressly disclaims responsibility, and shall have no liability, for any damages, loss, injury, or liability whatsoever suffered as a result of your reliance on the information contained in this site. By visiting this site you agree to the foregoing terms and conditions, which may from time to time be changed or supplemented by WikiMD. If you do not agree to the foregoing terms and conditions, you should not enter or use this site. See full disclaimer.
Credits:Most images are courtesy of Wikimedia commons, and templates Wikipedia, licensed under CC BY SA or similar.
Contributors: Prab R. Tumpati, MD