Other Makes
In computer programming, make is a utility for automatically building large applications. Files specifying instructions for make are called Makefiles. make is most commonly used in C/C++ projects, but in principle it can be used with almost any compiled language. more...
Home
AMC
Acura
Alfa Romeo
Aston Martin
Audi
Austin
Austin Healey
BMW
Bentley
Buick
Cadillac
Chevrolet
Chrysler
Citroen
Cord
Daewoo
Datsun
DeLorean
DeSoto
Dodge
Eagle
Edsel
Ferrari
Fiat
Ford
GMC
Geo
Honda
Hummer
Hyundai
Infiniti
International Harvester
Isuzu
Jaguar
Jeep
Kia
Lamborghini
Lancia
Land Rover
Lexus
Lincoln
Lotus
MG
Maserati
Mazda
Mercedes-Benz
Mercury
Mini
Mitsubishi
Nash
Nissan
Oldsmobile
Opel
Other Makes
Packard
Peugeot
Plymouth
Pontiac
Porsche
Renault
Replica/Kit Makes
Rolls-Royce
Saab
Saturn
Scion
Shelby
Studebaker
Subaru
Suzuki
Toyota
Triumph
Volkswagen
Volvo
Willys
The basic tool for building an application from source code is the compiler. make is a separate, higher-level utility which tells the compiler which source code files to process. It tracks which ones have changed since the last time the project was built and invokes the compiler on only the components that depend on those files. Although in principle one could always just write a simple shell script to recompile everything at every build, in large projects this would consume a prohibitive amount of time. Thus, a makefile can be seen as a kind of advanced shell script which tracks dependencies instead of following a fixed sequence of steps.
Today, programmers increasingly rely on Integrated Development Environments and language-specific compiler features to manage the build process for them instead of manually specifying dependencies in makefiles. However, make remains widely used, especially in Unix-based platforms.
Origin
There are now a number of dependency-tracking build utilities, but make is one of the most wide-spread, primarily due to its inclusion in Unix, starting with the PWB/UNIX 1.0, which featured a variety of tools targeting software development workloads. It was originally created by Stuart Feldman in 1977 at Bell Labs. In 2003 Dr. Feldman received the ACM Software System Award for the invention of this important tool.
Before make's introduction, the Unix build system would most likely consist of "make" and "install" shell scripts accompanying a program's source. Being able to combine the commands for the different targets into a single file, and being able to abstract out dependency tracking and archive handling, was an important step in the direction of modern build environments.
Modern versions
Make has gone through a number of rewrites, and a number of from-scratch variants which used the same file format and basic algorithmic principles, and also provided a number of their own non-standard enhancements, in the time that followed. Some of them are:
BSD make, which is derived from Adam de Boor's work on a version of make capable of building targets in parallel, and survives with varying degrees of modification in FreeBSD, NetBSD and OpenBSD. Most notably, it has conditionals and iterative loops which are applied at the parsing stage and may be used to conditionally, and programmatically, construct the makefile, including generation of targets at runtime.;
GNU make, which is part of most GNU/Linux installations and is frequently used in conjunction with the GNU build system. Its notable departures from traditional make are most noticeable in pattern-matching in dependency graphs and build targets, as well as a number of functions which may be invoked to have the make utility do things like collect a list of all files in the current directory. Where BSD make has a rich set of internal macros at parse time, GNU make typically encourages the use of an external macro package like m4.;
Microsoft nmake, commonly available on Windows. It is fairly basic, offering only a subset of the features of the two above makes. Note that there exists another, incompatible program also called nmake from AT&T for Unix.;
Read more at Wikipedia.org
|