2205:
4021:
1808:
requiring the gcc compiler and GNU Make, here is a generic makefile that compiles all C files in a folder to the corresponding object files and then links them to the final executable. Before compilation takes place, dependencies are gathered in makefile-friendly format into a hidden file ".depend" that is then included to the makefile. Portable programs ought to avoid constructs used below.
4043:
419:) is the standard implementation of Make for Linux and macOS. It provides several extensions over the original Make, such as conditionals. It also provides many built-in functions which can be used to eliminate the need for shell-scripting in the makefile rules as well as to manipulate the variables set and used in the makefile. For example, the
815:
was brand new. I hadn't tried either, so I figured this would be a good excuse to learn. After getting myself snarled up with my first stab at Lex, I just did something simple with the pattern newline-tab. It worked, it stayed. And then a few weeks later I had a user population of about a dozen, most
1803:
That "helloworld.o" depends on "helloworld.c" is now automatically handled by Make. In such a simple example as the one illustrated here this hardly matters, but the real power of suffix rules becomes evident when the number of source files in a software project starts to grow. One only has to write
2169:
Makefile consist of dependencies and a forgotten or an extra one may not be immediately obvious to the user and may result in subtle bugs in the generated software that are hard to catch. Various approaches may be used to avoid this problem and keep dependencies in source and makefiles in sync. One
1807:
Simple suffix rules work well as long as the source files do not depend on each other and on other files such as header files. Another route to simplify the build process is to use so-called pattern matching rules that can be combined with compiler-assisted dependency generation. As a final example
571:
Make skips build actions if the target file timestamp is after that of the source files. Doing so optimizes the build process by skipping actions when the target file is up-to-date, but sometimes updates are skipped erroneously due to file timestamp issues including restoring an older version of a
513:
includes standardization of the basic features and operation of the Make utility, and is implemented with varying degrees of compatibility with Unix-based versions of Make. In general, simple makefiles may be used between various versions of Make with reasonable success. GNU Make, Makepp and some
301:
was therefore unaffected). As I had spent a part of the previous evening coping with the same disaster on a project I was working on, the idea of a tool to solve it came up. It began with an elaborate idea of a dependency analyzer, boiled down to something much simpler, and turned into Make that
1698:
Many systems come with predefined Make rules and macros to specify common tasks such as compilation based on file suffix. This lets users omit the actual (often unportable) instructions of how to generate the target from the source(s). On such a system the makefile above could be modified as
358:
Sun DevPro Make appeared in 1986 with SunOS-3.2. With SunOS-3.2. It was delivered as an optional program; with SunOS-4.0, SunPro Make was made the default Make program. In
December 2006, Sun DevPro Make was made open source as part of the efforts to open-source
366:
dmake or
Distributed Make that came with Sun Solaris Studio as its default Make, but not the default one on the Solaris Operating System (SunOS). It was originally required to build OpenOffice, but in 2009 the build system was rewritten to use GNU Make. While
1584:
Below is a simple makefile that by default (the "all" rule is listed first) compiles a source file called "helloworld.c" using the system's C compiler and also provides a "clean" target to remove the generated files if the user desires to start over. The
1301:
Suffix rules cannot have any prerequisites of their own. If they have any, they are treated as normal files with unusual names, not as suffix rules. GNU Make supports suffix rules for compatibility with old makefiles but otherwise encourages usage of
725:
indented command lines which define how to generate the target from the components (i.e. source files). If any prerequisite has a more recent timestamp than the target file or the target does not exist as a file, the recipe is performed.
330:
written for each program's codebase. Make's dependency ordering and out-of-date checking makes the build process more robust and more efficient. The makefile allowed for better organization of build logic and often fewer build files.
455:. It supports preprocessor directives such as includes and conditional expressions which use variables set on the command-line or within the makefiles. Inference rules differ from Make; for example they can include search paths.
576:
is a source of files and its clock or time zone is not synchronized with the machine running Make. Also, if a source file's timestamp is in the future, make repeatedly triggers unnecessary actions, causing longer build time.
514:
versions of BSD Make default to looking first for files named "GNUmakefile", "Makeppfile" and "BSDmakefile" respectively, which allows one to put makefiles which use implementation-defined behavior in separate locations.
409:. Distinctively, 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.
2957:
Mölder, Felix; Jablonski, Kim
Philipp; Letcher, Brice; Hall, Michael B.; Tomkins-Tinch, Christopher H.; Sochat, Vanessa; Forster, Jan; Lee, Soohyun; Twardziok, Sven O.; Kanitz, Alexander; Wilm, Andreas (2021-04-19).
434:
Rocky
Bernstein's Remake is a fork of GNU Make and provides several extensions over GNU Make, such as better location and error-location reporting, execution tracing, execution profiling, and it contains a
3098:
Adams, P. and
Solomon, M., 1993, An overview of the CAPITL software development environment. In International Workshop on Software Configuration Management (pp. 1-34). Berlin, Heidelberg: Springer Berlin
1027:
compiler. If used consistently throughout the makefile, then the compiler used can be changed by changing the value of the macro rather than changing each rule command that invokes the compiler.
580:
When Make starts, it uses the makefile specified on the command-line or if not specified, then uses the one found by via specific search rules. Generally, Make defaults to using the file in the
1804:
a rule for the linking step and declare the object files as prerequisites. Make will then implicitly determine how to make all the object files and look for changes in all the source files.
442:(unrelated to the same-named Microsoft variant) is incompatible with the UNIX variant, but provides features which, according to some, reduce the size of makefiles by a factor of 10.
297:(author of yacc, etc.), storming into my office, cursing the Fates that had caused him to waste a morning debugging a correct program (bug had been fixed, file hadn't been compiled,
2414:
2170:
approach is by using compiler to keep track of dependencies changes .e.g GCC can statically analyze the source code and produce rules for the given file automatically by using
3360:
2622:
550:
for use in a browser. Other examples include: convert a source image file to another format, copy a file to a content management system, and send e-mail about build status.
423:
function can be used to iterate over a list of values, such as the names of files in a given directory. GNU Make is required for building many software systems, including
3045:
481:, starting from version 9. A redesign of the original tool by Bell Labs programmer Andrew G. Hume, it features a different syntax. Mk became the standard build tool in
665:: defines when and how to remake a class of files based on their names; including how a target depends on a file with a name similar to the target and an update recipe
1593:
are two of the so-called internal macros (also known as automatic variables) and stand for the target name and "implicit" source, respectively. In the example below,
2865:
638:
where end conditions are described but the order in which actions are to be taken is not. This type of programming can be confusing to programmers used to
2243:
826:
GNU Make. since version 3.82, allows the choice of any symbol (one character) as the recipe prefix using the .RECIPEPREFIX special variable, for example:
2347:
In the general maintenance of DWB, we have used the Source Code
Control System and make utility provided by the PWB/UNIX* interactive operating system.
354:
numerous times, generally using the same makefile format and providing the same features, but some providing enhancements from the original. Examples:
3061:
856:. Since operating systems use different shells this can lead to unportable makefiles. For example, GNU Make (all POSIX Makes) executes commands with
302:
weekend. Use of tools that were still wet was part of the culture. Makefiles were text files, not magically encoded binaries, because that was the
3409:
568:
If no target is specified, Make updates the first target in the makefile which is often a phony target to perform the most commonly used action.
3130:
2372:
779:, Make requires tab. Since this often leads to confusion and mistakes, this aspect of makefile syntax is subject to criticism; described by
240:, even though many competing technologies and tools are available including: similar tools that perform actions based on dependencies, some
2210:
121:
2428:
2500:
1232:
and are used to launch actions based on file extension. In the command lines of suffix rules, POSIX specifies that the internal macro
245:
3111:
2783:
2224:
163:
3357:
3342:
2525:
1317:
can match any substring of zero or more characters, while other characters match only themselves. The prerequisites likewise use
4089:
4084:
4034:
4029:
906:. If file.html is newer than file.txt or file.txt does not exist, then the command is run to generate file.txt from file.html.
3149:
2454:
681:
260:
2685:
3077:
883:
Since a recipe is optional, the dependency line can consist solely of components that refer to other targets, for example:
289:
Feldman describes the inspiration to write Make came from a coworker's frustration with the available tooling of the time:
4079:
776:
2651:
2174:
switch. The other approach would be makefiles or third-party tools that would generate makefiles with dependencies (e.g.
2638:
Makefile inclusion, conditional structures and for loops reminiscent of the C programming language are provided in make.
264:
3402:
3322:
2753:
313:
2737:
2251:
705:
name followed by a colon (:) and optionally a list of targets on which the rule's target depends, its prerequisites.
3308:
3283:
702:
360:
101:
4069:
4006:
3976:
3241:
283:
4074:
3991:
3173:
1024:
785:
527:
458:
85:
41:
3185:
3165:
2388:
790:
635:
619:
522:
In general, based on a makefile, Make updates target files from source files if any source file has a newer
424:
45:
1240:
refers to the target. In this example, which converts any HTML file into text, the shell redirection token
1063:). The latter is safer since omitting the parentheses leads to Make interpreting the next letter after the
4047:
3752:
3421:
3395:
3387:
3058:
2925:
2282:
800:
639:
553:
A makefile defines targets where each is either a file to generate or is a user-defined concept, called a
181:
1354:
1013:
1009:
482:
351:
2718:
3235:
3922:
3870:
1597:
expands to a space delimited list of the prerequisites. There are a number of other internal macros.
1104:
496:
241:
173:
133:
36:
3127:
3017:
2667:
3031:
2287:
573:
188:
526:
than the target file or the target file does not exist. For example, this could include compiling
3595:
3585:
2338:
2300:
729:
The first command may appear on the same line after the prerequisites, separated by a semicolon,
394:
393:), which is derived from Adam de Boor's work on a version of Make capable of building targets in
294:
215:
192:
2558:
2544:
1067:
as the entire variable name. An equivalent form uses curly braces rather than parentheses, i.e.
3258:
2999:
2981:
2408:
2368:
2364:
1381:
1370:
581:
368:
223:
2572:
2321:
Thompson, T. J. (November 1980). "Designer's
Workbench: Providing a Production Environment".
1313:
character within the string. The target is considered a pattern for matching file names: the
1048:
A macro value can consist of other macro values. The value of macro is expanded on each use (
816:
of them friends, and I didn't want to screw up my embedded base. The rest, sadly, is history.
3822:
3727:
3722:
2989:
2971:
2432:
2330:
2292:
2218:
2190:
538:, then linking the object files into an executable program. Or this could include compiling
237:
211:
200:
92:
4001:
3850:
3651:
3554:
3364:
3346:
3221:
3153:
3134:
3115:
3108:
3065:
1049:
780:
772:
428:
318:
303:
154:
52:
2787:
2472:
1309:
A pattern rule looks like an ordinary rule, except that its target contains exactly one
954:
Ignoring errors and silencing echo can alternatively be obtained via the special targets
2897:
2851:
2837:
2823:
2809:
2703:
3940:
3875:
3860:
3797:
3757:
3636:
3600:
3494:
3245:
2994:
2959:
2334:
877:
812:
796:
503:
275:
256:
204:
57:
965:
Microsoft's NMAKE has predefined rules that can be omitted from these makefiles, e.g.
4063:
3981:
3842:
3777:
3549:
3524:
3425:
2273:
Feldman, S. I. (April 1979). "Make --- A Program for
Maintaining Computer Programs".
950:(+) specifies to execute the command even if Make is invoked in "do not execute" mode
722:
478:
452:
184:
3335:
2342:
2304:
1204:
A common syntax when defining macros, which works on BSD and GNU Make, is to use of
902:
The following example rule is evaluated when Make updates target file.txt; i.e. via
3955:
3855:
3772:
3767:
3671:
3580:
3544:
3499:
3146:
2976:
2893:
2786:. Information and Software Systems Research, AT&T Labs Research. Archived from
931:
327:
2899:
A Research Unix reader: annotated excerpts from the
Programmer's Manual, 1971–1986
789:
said "using tabs as part of the syntax is like one of those pungee stick traps in
427:(GCC) (since version 3.4), the Linux kernel, Apache OpenOffice, LibreOffice, and
371:
still contains a mixture of both build systems, the much more actively developed
222:. But, not limited to building, Make can perform any operation available via the
3891:
3865:
3802:
3792:
3782:
3747:
3737:
3732:
3615:
3605:
3559:
3193:
2179:
1358:
535:
372:
219:
108:
2073:# variables used here, the variable $ * that matches whatever % stands for
1324:
The example above of a suffix rule would look like the following pattern rule:
3707:
3666:
3469:
3439:
2200:
873:
853:
547:
539:
492:
464:
461:
make has a command-line option that "Causes MAKE to mimic
Microsoft's NMAKE.".
207:
150:
2985:
671:: associates a text value with a name that can be substituted into later text
603:
Make processes the options of the command-line based on the loaded makefile.
3996:
3950:
3930:
3827:
3807:
3762:
3610:
3534:
3519:
3504:
3489:
3484:
3479:
3474:
3085:
1108:
947:
865:
523:
445:
279:
234:
97:
3003:
2296:
656:(dependent targets) and commands that define the update action, called the
17:
927:
A command can have one or more of the following prefixes (after the tab):
282:. An early version was completed in April 1976. Feldman received the 2003
3912:
3692:
3268:
2597:
2175:
1031:
339:
2768:
1411:
The following commands are in the context of the makefile that follows.
994:
A makefile can define and use macros. Macros are usually referred to as
3717:
3641:
3264:
937:
406:
398:
158:
847:"recipe prefix symbol is set to '$ (.RECIPEPREFIX)'"
677:: instruction to do something special such as include another makefile
502:
Snakemake is a Python-driven implementation for compiling and running
3702:
3444:
3379:
402:
2070:# These are the pattern matching rules. In addition to the automatic
3935:
3832:
3812:
3742:
3661:
3564:
3539:
3514:
3464:
3459:
3454:
3449:
2186:
510:
2939:
799:
for an early implementation difficulty preserved by a desire for
771:
Each command line must begin with a tab character. Even though a
259:
with roughly the same functionality – including similar makefile
3986:
3960:
3896:
3817:
3712:
3697:
3656:
3646:
3590:
3418:
861:
808:
783:
as "one of the worst design botches in the history of Unix" and
335:
252:
230:
3391:
2917:
255:
tool, Make is also a technology since multiple tools have been
3787:
3687:
3631:
3529:
2769:"Remake – GNU Make with comprehensible tracing and a debugger"
1282:
When called from the command line, the example above expands.
1072:
1023:
is frequently used in makefiles to refer to the location of a
499:
for faster incremental builds (similar to the cmake metatool).
412:
378:
342:
1.0, which featured a variety of software development tools.
3509:
2501:"Apache OpenOffice Building Guide - Apache OpenOffice Wiki"
721:
A dependency line may be followed by a recipe; a series of
718:
Usually a rule has a single target, rather than multiple.
334:
Make is widely used in part due to its early inclusion in
2879:
2704:"GCC 3.4 Release Series Changes, New Features, and Fixes"
1428:# updates target 'dist' to build for distribution
491:
is Google's replacement of GNU Make, as of 2020 used in
3082:
Apple Developer Documentation: Uniform Type Identifiers
397:, and survives with varying degrees of modification in
1103:
Macros can be composed of shell commands by using the
3216:"Chapter 15. Tools: make: Automating Your Recipes",
868:
are normally used. In contrast to that, Microsoft's
3969:
3921:
3905:
3884:
3841:
3680:
3624:
3573:
3432:
2473:"Development/Gbuild - The Document Foundation Wiki"
2171:
1594:
1590:
1586:
1489:# note: variable LOGNAME comes from the environment
1385:
1321:to show how their names relate to the target name.
1318:
1314:
1310:
1245:
1241:
1237:
1233:
1229:
1228:Suffix rules have "targets" with names in the form
1162:
1158:
1135:The command-line syntax for overriding a macro is:
1112:
1068:
1064:
1020:
999:
966:
959:
955:
903:
686:
652:: defines when and how to update a target; listing
618:
543:
531:
298:
144:
132:
119:
107:
91:
81:
63:
51:
35:
326:Before Make, building on Unix mostly consisted of
2185:Another approach is to use meta-build tools like
934:(-) specifies to ignore an error from the command
588:. GNU Make searches for the first file matching:
2413:: CS1 maint: bot: original URL status unknown (
2221: – Directed graph representing dependencies
645:Makefiles can contain the following constructs:
3278:
3276:
2395:. Archived from the original on 22 January 2011
1424:# updates target 'help' to list targets
1369:A directive specifies special behavior such as
1008:. Macros in makefiles may be overridden in the
998:when they hold simple string definitions, like
805:
291:
2717:Javier Martinez Canillas (December 26, 2012).
795:". Feldman explains the choice as caused by a
560:Make updates the targets passed as arguments:
306:: printable, debuggable, understandable stuff.
3403:
3156:, Andrew W. Fitzgibbon and William A. Hoffman
2940:"google/kati: An experimental GNU make clone"
8:
3240: – Shell and Utilities Reference,
2539:
2537:
1391:target: component \ component
857:
613:
187:that performs actions ordered by configured
30:
4042:
3410:
3396:
3388:
3137:, from Christopher B Ferris on 2002-08-09
2960:"Sustainable data analysis with Snakemake"
2316:
2314:
1055:A macro is used by expanding either via $
29:
2993:
2975:
2286:
251:In addition to referring to the original
3059:How to sort Linux ls command file output
2916:Hume, Andrew G.; Flandrena, Bob (2002).
2905:(Technical report). Bell Labs. CSTR 139.
1520:# Display targets by searching this file
1400:
1396:
1392:
944:output the command before it is executed
713:
709:
495:builds. It translates the makefile into
485:, Bell Labs' intended successor to Unix.
2719:"Kbuild: the Linux Kernel Build System"
2235:
1248:is a macro referring to the HTML file:
852:Each command is executed in a separate
3212:
3210:
2406:
2043:"Generating dependencies..."
880:are available but not necessarily cp.
612:
375:only uses the modernized "gbuild" now.
2918:"Maintaining files on Plan 9 with Mk"
1417:# updates first target, 'all'
1236:refers to the first prerequisite and
1184:# echo components YOUNGER than TARGET
872:executes commands with cmd.exe where
7:
2810:"NMAKE Reference Visual Studio 2015"
2668:"8. Functions for Transforming Text"
2495:
2493:
2467:
2465:
2463:
2429:"OpenSolaris at Two (Jim Grisanzio)"
2211:Free and open-source software portal
1244:is part of the command line whereas
2928:from the original on July 11, 2015.
2824:"Makefile Preprocessing Directives"
1517:"Try 'make help'"
229:Make is widely used, especially in
140:BSD make, GNU make, Microsoft nmake
2838:"Makefile Preprocessing Operators"
2653:Unix in a Nutshell, Fourth Edition
2559:"fmake(1) General Commands Manual"
2431:. 12 December 2013. Archived from
2361:Practical Development Environments
2335:10.1002/j.1538-7305.1980.tb03063.x
2250:. 1 September 2013. Archived from
1291:lynx -dump file.html > file.txt
620:Uniform Type Identifier (UTI)
293:Make originated with a visit from
246:integrated development environment
25:
2706:. Free Software Foundation. 2006.
2275:Software: Practice and Experience
2225:List of build automation software
2076:# can be useful in special cases.
4041:
4020:
4019:
3323:"GNU make manual: pattern rules"
2782:Glenn Fowler (January 4, 2012).
2692:, Free Software Foundation, 2013
2674:, Free Software Foundation, 2013
2598:"make(1) - OpenBSD manual pages"
2203:
1511:, nothing to do by default"
1388:character at the end of a line.
1329:# From %.html to %.txt
1153:Makefiles can access predefined
3309:"GNU make manual: suffix rules"
3186:"Prerequisite Types (GNU make)"
923:lynx-dumpfile.html>file.txt
2977:10.12688/f1000research.29032.2
2924:. AT&T Bell Laboratories.
2527:FreeBSD 2.0.5 Make Source Code
1384:is indicated with a backslash
1016:are also available as macros.
27:Software build automation tool
1:
3242:The Single UNIX Specification
2323:Bell System Technical Journal
2244:"V7/usr/src/cmd/make/ident.c"
2182:, can do so automatically).
1395:command ; \
1071:, which is the style used in
1030:Macros are commonly named in
701:which consists of the rule's
113:
1816:# snippet to fail if not GNU
1012:passed to the Make utility.
3325:. Free Software Foundation.
3311:. Free Software Foundation.
3218:The Art of Unix Programming
3133:September 12, 2016, at the
3064:September 13, 2016, at the
3020:. Free Software Foundation.
2736:Greg Kroah-Hartman (2006),
2477:wiki.documentfoundation.org
1216:instead of the equal sign (
803:with the very first users:
451:is normally installed with
314:The Art of Unix Programming
69:; 48 years ago
4106:
3166:3.1 What Makefiles Contain
3118:, 2007/02/27, phoenix wiki
2922:Plan 9 Programmer’s Manual
2739:Linux Kernel in a Nutshell
2686:"8.5 The foreach Function"
199:. It is commonly used for
4015:
3128:Re: Choreography and REST
3114:October 23, 2007, at the
807:Why the tab in column 1?
471:tool is a clone of nmake.
284:ACM Software System Award
244:and interactively via an
149:
139:
127:
3174:Free Software Foundation
3152:January 7, 2010, at the
1810:
1701:
1599:
1432:
1413:
1399:command | \
1326:
1284:
1250:
1167:
1137:
1117:
1077:
1036:
908:
885:
828:
786:The Unix-Haters Handbook
751:
731:
697:Each rule begins with a
562:
3363:April 25, 2016, at the
3147:Target Junior Makefiles
2852:"Search Paths in Rules"
2650:Arnold Robbins (2005),
1764:helloworldhelloworld.o
1694:helloworldhelloworld.o
1019:For example, the macro
636:declarative programming
572:source file, or when a
425:GNU Compiler Collection
82:Implementation language
4090:Unix SUS2008 utilities
4085:Unix programming tools
4035:Unix SUS2008 utilities
4030:Standard Unix programs
3422:command-line interface
3340:in the SunPro man page
3338:Pattern Matching Rules
2297:10.1002/spe.4380090402
1530:"^# target:"
1010:command-line arguments
824:
801:backward compatibility
640:imperative programming
634:language is partially
324:
278:created Make while at
224:operating system shell
182:command-line interface
3345:May 29, 2014, at the
2868:. CodeGear(TM). 2008.
2455:The OpenSolaris Story
2359:Matthew Doar (2005).
1813:# Generic GNUMakefile
1452:"+%Y.%m%d%"
1357:are started with the
1107:operator, denoted by
1014:Environment variables
685:: line starting with
286:for authoring Make.
4080:GNU Project software
3923:Software development
2790:on September 2, 2015
2754:"Build Instructions"
1267:# From .html to .txt
1105:command substitution
174:software development
3358:Automatic Variables
3109:an overview on dsls
2946:. 30 November 2020.
2882:. Qt Project. 2021.
2577:NetBSD Manual Pages
2505:wiki.openoffice.org
2435:on 12 December 2013
2254:on 1 September 2013
2165:Dependency tracking
1341:lynx-dump$ <>
1275:lynx-dump$ <>
669:Variable definition
615:
64:First appeared
32:
2854:. Microsoft. 2014.
2840:. Microsoft. 2014.
2812:. Microsoft. 2015.
1373:another makefile.
1193:# echo TARGET name
860:by default, where
624:public.make-source
574:network filesystem
193:configuration file
4057:
4056:
3380:GNU Make homepage
3288:www.opengroup.org
3267:General Commands
3244:, Version 4 from
2767:Rocky Bernstein.
2374:978-0-596-00796-6
2178:toolchain by the
1382:Line continuation
1377:Line continuation
1147:"value"
940:(@) specifies to
628:
627:
582:working directory
477:replaced Make in
369:Apache OpenOffice
238:operating systems
170:
169:
16:(Redirected from
4097:
4070:Build automation
4045:
4044:
4023:
4022:
3625:User environment
3412:
3405:
3398:
3389:
3368:
3355:
3349:
3333:
3327:
3326:
3319:
3313:
3312:
3305:
3299:
3298:
3296:
3294:
3280:
3271:
3262:
3261:
3254:
3248:
3239:
3238:
3231:
3225:
3214:
3205:
3204:
3202:
3200:
3182:
3176:
3163:
3157:
3144:
3138:
3125:
3119:
3106:
3100:
3096:
3090:
3089:
3074:
3068:
3056:
3050:
3049:
3042:
3036:
3035:
3028:
3022:
3021:
3014:
3008:
3007:
2997:
2979:
2954:
2948:
2947:
2936:
2930:
2929:
2913:
2907:
2906:
2904:
2890:
2884:
2883:
2876:
2870:
2869:
2862:
2856:
2855:
2848:
2842:
2841:
2834:
2828:
2827:
2820:
2814:
2813:
2806:
2800:
2799:
2797:
2795:
2784:"nmake Overview"
2779:
2773:
2772:
2764:
2758:
2757:
2750:
2744:
2743:
2733:
2727:
2726:
2714:
2708:
2707:
2700:
2694:
2693:
2682:
2676:
2675:
2664:
2658:
2657:
2647:
2641:
2640:
2635:
2633:
2619:
2613:
2612:
2610:
2608:
2594:
2588:
2587:
2585:
2583:
2569:
2563:
2562:
2555:
2549:
2548:
2541:
2532:
2531:
2522:
2516:
2515:
2513:
2511:
2497:
2488:
2487:
2485:
2483:
2469:
2458:
2453:Grisanzio, Jim.
2451:
2445:
2444:
2442:
2440:
2425:
2419:
2418:
2412:
2404:
2402:
2400:
2385:
2379:
2378:
2356:
2350:
2349:
2329:(9): 1811–1825.
2318:
2309:
2308:
2290:
2270:
2264:
2263:
2261:
2259:
2240:
2219:Dependency graph
2213:
2208:
2207:
2206:
2173:
2160:
2157:
2154:
2151:
2148:
2144:
2140:
2137:
2133:
2129:
2125:
2122:
2118:
2115:
2111:
2108:
2105:
2101:
2097:
2094:
2090:
2087:
2083:
2080:
2077:
2074:
2071:
2068:
2067:-include .depend
2064:
2060:
2056:
2052:
2048:
2044:
2040:
2037:
2033:
2029:
2026:
2022:
2019:
2016:
2013:
2010:
2006:
2002:
1998:
1995:
1992:
1989:
1985:
1982:
1979:
1975:
1972:
1968:
1964:
1960:
1957:
1953:
1950:
1946:
1943:
1939:
1936:
1933:
1930:
1927:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1901:
1898:
1895:
1892:
1888:
1885:
1881:
1878:
1875:
1871:
1868:patsubst%.c,%.o,
1867:
1864:
1861:
1858:
1854:
1851:
1848:
1844:
1841:
1838:
1835:
1832:
1829:
1826:
1823:
1820:
1817:
1814:
1798:
1794:
1791:
1787:
1783:
1780:
1776:
1773:
1770:
1767:
1763:
1759:
1756:
1753:
1749:
1745:
1741:
1738:
1734:
1731:
1727:
1724:
1720:
1717:
1714:
1711:
1708:
1705:
1693:
1689:
1686:
1683:
1679:
1675:
1671:
1668:
1664:
1661:
1657:
1654:
1651:
1647:
1643:
1639:
1636:
1632:
1629:
1625:
1622:
1619:
1616:
1613:
1610:
1606:
1603:
1596:
1592:
1588:
1579:
1575:
1571:
1567:
1563:
1560:
1557:
1553:
1549:
1545:
1541:
1538:
1535:
1534:# Make a release
1531:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1486:# Default target
1484:
1480:
1476:
1472:
1469:
1466:
1462:
1459:
1456:
1453:
1449:
1446:
1443:
1439:
1436:
1429:
1425:
1422:
1418:
1387:
1344:
1340:
1336:
1333:
1330:
1320:
1316:
1312:
1292:
1288:
1278:
1274:
1271:
1268:
1265:
1261:
1257:
1254:
1247:
1243:
1239:
1235:
1231:
1219:
1215:
1211:
1207:
1200:
1197:
1194:
1191:
1188:
1185:
1181:
1177:
1174:
1171:
1164:
1160:
1148:
1145:
1142:
1131:
1127:
1124:
1121:
1114:
1099:
1095:
1091:
1087:
1084:
1081:
1070:
1066:
1043:
1040:
1022:
1007:
1005:
1002:
985:
984:
981:
978:
975:
972:
969:
961:
957:
922:
918:
915:
912:
905:
898:
895:
892:
889:
848:
845:
842:
839:
835:
832:
822:
792:The Green Berets
766:
762:
758:
755:
745:
741:
738:
735:
688:
616:
599:
595:
591:
587:
545:
533:
338:, starting with
322:
311:Stuart Feldman,
300:
201:build automation
191:as defined in a
77:
75:
70:
53:Designed by
33:
21:
4105:
4104:
4100:
4099:
4098:
4096:
4095:
4094:
4075:Compiling tools
4060:
4059:
4058:
4053:
4011:
3965:
3917:
3901:
3880:
3837:
3681:Text processing
3676:
3620:
3569:
3428:
3416:
3385:
3376:
3371:
3365:Wayback Machine
3356:
3352:
3347:Wayback Machine
3334:
3330:
3321:
3320:
3316:
3307:
3306:
3302:
3292:
3290:
3282:
3281:
3274:
3257:
3256:
3255:
3251:
3234:
3233:
3232:
3228:
3222:Eric S. Raymond
3215:
3208:
3198:
3196:
3184:
3183:
3179:
3164:
3160:
3154:Wayback Machine
3145:
3141:
3135:Wayback Machine
3126:
3122:
3116:Wayback Machine
3107:
3103:
3097:
3093:
3076:
3075:
3071:
3066:Wayback Machine
3057:
3053:
3046:"Free BSD make"
3044:
3043:
3039:
3030:
3029:
3025:
3016:
3015:
3011:
2956:
2955:
2951:
2938:
2937:
2933:
2915:
2914:
2910:
2902:
2892:
2891:
2887:
2880:"Jom - Qt Wiki"
2878:
2877:
2873:
2864:
2863:
2859:
2850:
2849:
2845:
2836:
2835:
2831:
2822:
2821:
2817:
2808:
2807:
2803:
2793:
2791:
2781:
2780:
2776:
2766:
2765:
2761:
2752:
2751:
2747:
2735:
2734:
2730:
2716:
2715:
2711:
2702:
2701:
2697:
2684:
2683:
2679:
2666:
2665:
2661:
2649:
2648:
2644:
2631:
2629:
2621:
2620:
2616:
2606:
2604:
2602:man.openbsd.org
2596:
2595:
2591:
2581:
2579:
2571:
2570:
2566:
2557:
2556:
2552:
2543:
2542:
2535:
2524:
2523:
2519:
2509:
2507:
2499:
2498:
2491:
2481:
2479:
2471:
2470:
2461:
2452:
2448:
2438:
2436:
2427:
2426:
2422:
2405:
2398:
2396:
2389:"Google Groups"
2387:
2386:
2382:
2375:
2358:
2357:
2353:
2320:
2319:
2312:
2272:
2271:
2267:
2257:
2255:
2242:
2241:
2237:
2233:
2209:
2204:
2202:
2199:
2167:
2162:
2161:
2158:
2155:
2152:
2149:
2146:
2142:
2138:
2135:
2131:
2127:
2123:
2120:
2116:
2113:
2109:
2106:
2103:
2099:
2095:
2092:
2088:
2085:
2081:
2078:
2075:
2072:
2069:
2066:
2062:
2058:
2054:
2050:
2046:
2042:
2038:
2035:
2031:
2027:
2024:
2020:
2017:
2014:
2011:
2008:
2004:
2000:
1996:
1993:
1990:
1987:
1983:
1980:
1977:
1973:
1970:
1966:
1962:
1958:
1955:
1951:
1948:
1944:
1941:
1937:
1934:
1931:
1928:
1925:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1899:
1896:
1893:
1890:
1889:-Wall-pedantic
1886:
1883:
1879:
1876:
1873:
1869:
1865:
1862:
1859:
1856:
1852:
1849:
1846:
1842:
1839:
1836:
1833:
1830:
1827:
1824:
1821:
1818:
1815:
1812:
1802:
1800:
1799:
1796:
1792:
1789:
1785:
1781:
1778:
1774:
1771:
1768:
1765:
1761:
1757:
1754:
1751:
1747:
1743:
1739:
1736:
1732:
1729:
1725:
1722:
1718:
1715:
1712:
1709:
1706:
1703:
1696:
1695:
1691:
1687:
1684:
1681:
1677:
1673:
1669:
1666:
1662:
1659:
1655:
1652:
1649:
1645:
1641:
1637:
1634:
1630:
1627:
1623:
1620:
1617:
1614:
1611:
1608:
1604:
1601:
1582:
1581:
1577:
1573:
1569:
1565:
1561:
1558:
1555:
1551:
1547:
1543:
1539:
1536:
1533:
1529:
1525:
1522:
1519:
1516:
1513:
1510:
1507:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1478:
1474:
1470:
1467:
1464:
1460:
1457:
1454:
1451:
1447:
1444:
1441:
1437:
1434:
1431:
1430:
1427:
1423:
1420:
1416:
1409:
1404:
1402:
1398:
1394:
1379:
1367:
1351:
1346:
1345:
1342:
1338:
1334:
1331:
1328:
1299:
1294:
1293:
1290:
1289:make-nfile.txt
1286:
1280:
1279:
1276:
1272:
1269:
1266:
1263:
1259:
1255:
1252:
1226:
1217:
1213:
1209:
1205:
1202:
1201:
1198:
1195:
1192:
1189:
1186:
1183:
1179:
1175:
1172:
1169:
1155:internal macros
1151:
1150:
1146:
1143:
1140:
1133:
1132:
1129:
1125:
1122:
1119:
1101:
1100:
1097:
1093:
1089:
1085:
1082:
1079:
1046:
1045:
1041:
1038:
1003:
1000:
992:
982:
979:
976:
973:
970:
967:
925:
924:
920:
916:
913:
910:
900:
899:
896:
893:
890:
887:
850:
849:
846:
843:
840:
837:
833:
830:
823:
820:
781:Eric S. Raymond
769:
768:
764:
760:
756:
753:
747:
746:
743:
739:
736:
733:
716:
715:
711:
699:dependency line
695:
609:
597:
593:
589:
585:
566:
565:
520:
438:Glenn Fowler's
429:Mozilla Firefox
348:
323:
319:Eric S. Raymond
310:
273:
208:executable code
128:BSD, GNU, nmake
122:implementations
73:
71:
68:
67:April 1976
28:
23:
22:
15:
12:
11:
5:
4103:
4101:
4093:
4092:
4087:
4082:
4077:
4072:
4062:
4061:
4055:
4054:
4052:
4051:
4039:
4038:
4037:
4032:
4016:
4013:
4012:
4010:
4009:
4007:true and false
4004:
3999:
3994:
3989:
3984:
3979:
3973:
3971:
3967:
3966:
3964:
3963:
3958:
3953:
3948:
3943:
3938:
3933:
3927:
3925:
3919:
3918:
3916:
3915:
3909:
3907:
3903:
3902:
3900:
3899:
3894:
3888:
3886:
3882:
3881:
3879:
3878:
3873:
3868:
3863:
3858:
3853:
3847:
3845:
3843:Shell builtins
3839:
3838:
3836:
3835:
3830:
3825:
3820:
3815:
3810:
3805:
3800:
3795:
3790:
3785:
3780:
3775:
3770:
3765:
3760:
3755:
3750:
3745:
3740:
3735:
3730:
3725:
3720:
3715:
3710:
3705:
3700:
3695:
3690:
3684:
3682:
3678:
3677:
3675:
3674:
3669:
3664:
3659:
3654:
3649:
3644:
3639:
3634:
3628:
3626:
3622:
3621:
3619:
3618:
3613:
3608:
3603:
3598:
3593:
3588:
3583:
3577:
3575:
3571:
3570:
3568:
3567:
3562:
3557:
3552:
3547:
3542:
3537:
3532:
3527:
3522:
3517:
3512:
3507:
3502:
3497:
3492:
3487:
3482:
3477:
3472:
3467:
3462:
3457:
3452:
3447:
3442:
3436:
3434:
3430:
3429:
3426:shell builtins
3417:
3415:
3414:
3407:
3400:
3392:
3383:
3382:
3375:
3374:External links
3372:
3370:
3369:
3350:
3328:
3314:
3300:
3272:
3249:
3246:The Open Group
3226:
3206:
3177:
3158:
3139:
3120:
3101:
3091:
3069:
3051:
3037:
3023:
3009:
2949:
2931:
2908:
2894:McIlroy, M. D.
2885:
2871:
2857:
2843:
2829:
2815:
2801:
2774:
2759:
2745:
2728:
2709:
2695:
2677:
2659:
2642:
2614:
2589:
2564:
2550:
2533:
2517:
2489:
2459:
2446:
2420:
2380:
2373:
2367:. p. 94.
2365:O'Reilly Media
2351:
2310:
2288:10.1.1.39.7058
2281:(4): 255–265.
2265:
2234:
2232:
2229:
2228:
2227:
2222:
2215:
2214:
2198:
2195:
2166:
2163:
1811:
1702:
1600:
1433:
1414:
1408:
1405:
1403:piped-command
1390:
1378:
1375:
1366:
1363:
1350:
1347:
1327:
1298:
1295:
1285:
1251:
1225:
1222:
1168:
1165:being common.
1138:
1118:
1078:
1037:
991:
988:
952:
951:
945:
935:
909:
886:
876:commands like
864:commands like
829:
821:Stuart Feldman
818:
752:
732:
712:. . .
707:
694:
691:
690:
689:
678:
672:
666:
660:
626:
625:
622:
608:
605:
563:
519:
516:
508:
507:
504:bioinformatics
500:
486:
472:
462:
456:
443:
436:
432:
410:
376:
364:
350:Make has been
347:
344:
308:
276:Stuart Feldman
272:
269:
168:
167:
147:
146:
142:
141:
137:
136:
130:
129:
125:
124:
117:
116:
111:
105:
104:
95:
89:
88:
83:
79:
78:
65:
61:
60:
58:Stuart Feldman
55:
49:
48:
39:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
4102:
4091:
4088:
4086:
4083:
4081:
4078:
4076:
4073:
4071:
4068:
4067:
4065:
4050:
4049:
4040:
4036:
4033:
4031:
4028:
4027:
4026:
4018:
4017:
4014:
4008:
4005:
4003:
4000:
3998:
3995:
3993:
3990:
3988:
3985:
3983:
3980:
3978:
3975:
3974:
3972:
3970:Miscellaneous
3968:
3962:
3959:
3957:
3954:
3952:
3949:
3947:
3944:
3942:
3939:
3937:
3934:
3932:
3929:
3928:
3926:
3924:
3920:
3914:
3911:
3910:
3908:
3906:Documentation
3904:
3898:
3895:
3893:
3890:
3889:
3887:
3883:
3877:
3874:
3872:
3869:
3867:
3864:
3862:
3859:
3857:
3854:
3852:
3849:
3848:
3846:
3844:
3840:
3834:
3831:
3829:
3826:
3824:
3821:
3819:
3816:
3814:
3811:
3809:
3806:
3804:
3801:
3799:
3796:
3794:
3791:
3789:
3786:
3784:
3781:
3779:
3776:
3774:
3771:
3769:
3766:
3764:
3761:
3759:
3756:
3754:
3751:
3749:
3746:
3744:
3741:
3739:
3736:
3734:
3731:
3729:
3726:
3724:
3721:
3719:
3716:
3714:
3711:
3709:
3706:
3704:
3701:
3699:
3696:
3694:
3691:
3689:
3686:
3685:
3683:
3679:
3673:
3670:
3668:
3665:
3663:
3660:
3658:
3655:
3653:
3650:
3648:
3645:
3643:
3640:
3638:
3635:
3633:
3630:
3629:
3627:
3623:
3617:
3614:
3612:
3609:
3607:
3604:
3602:
3599:
3597:
3594:
3592:
3589:
3587:
3584:
3582:
3579:
3578:
3576:
3572:
3566:
3563:
3561:
3558:
3556:
3553:
3551:
3548:
3546:
3543:
3541:
3538:
3536:
3533:
3531:
3528:
3526:
3523:
3521:
3518:
3516:
3513:
3511:
3508:
3506:
3503:
3501:
3498:
3496:
3493:
3491:
3488:
3486:
3483:
3481:
3478:
3476:
3473:
3471:
3468:
3466:
3463:
3461:
3458:
3456:
3453:
3451:
3448:
3446:
3443:
3441:
3438:
3437:
3435:
3431:
3427:
3424:programs and
3423:
3420:
3413:
3408:
3406:
3401:
3399:
3394:
3393:
3390:
3386:
3381:
3378:
3377:
3373:
3366:
3362:
3359:
3354:
3351:
3348:
3344:
3341:
3339:
3332:
3329:
3324:
3318:
3315:
3310:
3304:
3301:
3289:
3285:
3279:
3277:
3273:
3270:
3266:
3263: –
3260:
3253:
3250:
3247:
3243:
3237:
3230:
3227:
3223:
3219:
3213:
3211:
3207:
3195:
3191:
3187:
3181:
3178:
3175:
3171:
3167:
3162:
3159:
3155:
3151:
3148:
3143:
3140:
3136:
3132:
3129:
3124:
3121:
3117:
3113:
3110:
3105:
3102:
3095:
3092:
3087:
3083:
3079:
3073:
3070:
3067:
3063:
3060:
3055:
3052:
3047:
3041:
3038:
3033:
3027:
3024:
3019:
3013:
3010:
3005:
3001:
2996:
2991:
2987:
2983:
2978:
2973:
2969:
2965:
2964:F1000Research
2961:
2953:
2950:
2945:
2941:
2935:
2932:
2927:
2923:
2919:
2912:
2909:
2901:
2900:
2895:
2889:
2886:
2881:
2875:
2872:
2867:
2861:
2858:
2853:
2847:
2844:
2839:
2833:
2830:
2825:
2819:
2816:
2811:
2805:
2802:
2789:
2785:
2778:
2775:
2770:
2763:
2760:
2755:
2749:
2746:
2741:
2740:
2732:
2729:
2724:
2723:Linux Journal
2720:
2713:
2710:
2705:
2699:
2696:
2691:
2687:
2681:
2678:
2673:
2669:
2663:
2660:
2655:
2654:
2646:
2643:
2639:
2628:
2624:
2618:
2615:
2603:
2599:
2593:
2590:
2578:
2574:
2568:
2565:
2560:
2554:
2551:
2546:
2540:
2538:
2534:
2529:
2528:
2521:
2518:
2506:
2502:
2496:
2494:
2490:
2478:
2474:
2468:
2466:
2464:
2460:
2456:
2450:
2447:
2434:
2430:
2424:
2421:
2416:
2410:
2394:
2390:
2384:
2381:
2376:
2370:
2366:
2362:
2355:
2352:
2348:
2344:
2340:
2336:
2332:
2328:
2324:
2317:
2315:
2311:
2306:
2302:
2298:
2294:
2289:
2284:
2280:
2276:
2269:
2266:
2253:
2249:
2245:
2239:
2236:
2230:
2226:
2223:
2220:
2217:
2216:
2212:
2201:
2196:
2194:
2192:
2188:
2183:
2181:
2177:
2164:
1809:
1805:
1766:# suffix rule
1700:
1598:
1412:
1406:
1389:
1383:
1376:
1374:
1372:
1364:
1362:
1360:
1356:
1348:
1325:
1322:
1307:
1305:
1304:pattern rules
1297:Pattern rules
1296:
1283:
1249:
1223:
1221:
1166:
1156:
1136:
1116:
1110:
1106:
1076:
1074:
1062:
1058:
1053:
1051:
1035:
1033:
1028:
1026:
1017:
1015:
1011:
997:
989:
987:
963:
949:
946:
943:
939:
936:
933:
930:
929:
928:
907:
904:make file.txt
884:
881:
879:
875:
871:
867:
863:
859:
855:
831:.RECIPEPREFIX
827:
817:
814:
810:
804:
802:
798:
794:
793:
788:
787:
782:
778:
774:
750:
749:for example,
740:prerequisites
730:
727:
724:
719:
706:
704:
700:
692:
684:
683:
679:
676:
673:
670:
667:
664:
663:Implicit rule
661:
659:
655:
654:prerequisites
651:
650:Explicit rule
648:
647:
646:
643:
641:
637:
633:
623:
621:
617:
611:
606:
604:
601:
583:
578:
575:
569:
561:
558:
556:
551:
549:
541:
537:
529:
525:
517:
515:
512:
505:
501:
498:
494:
490:
487:
484:
480:
479:Research Unix
476:
473:
470:
466:
463:
460:
457:
454:
453:Visual Studio
450:
447:
444:
441:
437:
433:
430:
426:
422:
418:
414:
411:
408:
404:
400:
396:
392:
388:
384:
380:
377:
374:
370:
365:
362:
357:
356:
355:
353:
345:
343:
341:
337:
332:
329:
328:shell scripts
320:
316:
315:
307:
305:
296:
295:Steve Johnson
290:
287:
285:
281:
277:
270:
268:
266:
262:
258:
254:
249:
247:
243:
239:
236:
232:
227:
225:
221:
217:
213:
209:
206:
202:
198:
194:
190:
186:
185:software tool
183:
179:
175:
166:
165:
160:
156:
152:
148:
143:
138:
135:
131:
126:
123:
118:
115:
112:
110:
106:
103:
99:
96:
94:
90:
87:
84:
80:
66:
62:
59:
56:
54:
50:
47:
43:
40:
38:
34:
19:
4046:
4024:
3945:
3384:
3353:
3337:
3336:See section
3331:
3317:
3303:
3291:. Retrieved
3287:
3252:
3229:
3217:
3197:. Retrieved
3189:
3180:
3169:
3161:
3142:
3123:
3104:
3094:
3081:
3072:
3054:
3040:
3026:
3018:"GNU 'make'"
3012:
2967:
2963:
2952:
2943:
2934:
2921:
2911:
2898:
2888:
2874:
2860:
2846:
2832:
2818:
2804:
2792:. Retrieved
2788:the original
2777:
2762:
2748:
2738:
2731:
2722:
2712:
2698:
2689:
2680:
2671:
2662:
2652:
2645:
2637:
2630:. Retrieved
2626:
2617:
2605:. Retrieved
2601:
2592:
2580:. Retrieved
2576:
2567:
2553:
2526:
2520:
2508:. Retrieved
2504:
2480:. Retrieved
2476:
2449:
2437:. Retrieved
2433:the original
2423:
2397:. Retrieved
2392:
2383:
2360:
2354:
2346:
2326:
2322:
2278:
2274:
2268:
2256:. Retrieved
2252:the original
2247:
2238:
2184:
2168:
2065:@rm-fdepend
1806:
1801:
1697:
1650:helloworld.o
1583:
1576:RELEASE_FILE
1554:RELEASE_FILE
1501:"Hello
1465:RELEASE_FILE
1410:
1380:
1368:
1353:Single-line
1352:
1323:
1308:
1303:
1300:
1281:
1227:
1224:Suffix rules
1203:
1154:
1152:
1134:
1102:
1060:
1056:
1054:
1047:
1029:
1018:
995:
993:
964:
953:
941:
926:
901:
882:
869:
851:
825:
806:
791:
784:
770:
748:
728:
720:
717:
698:
696:
680:
674:
668:
662:
657:
653:
649:
644:
631:
629:
610:
602:
579:
570:
567:
559:
554:
552:
536:object files
521:
509:
488:
474:
468:
448:
439:
420:
416:
415:Make (short
390:
386:
382:
349:
333:
325:
312:
292:
288:
274:
250:
228:
196:
189:dependencies
177:
171:
162:
109:File formats
3433:File system
3199:15 December
3194:GNU Project
3099:Heidelberg.
2180:GNU Project
2141:rm-f.depend
2049:foreachvar,
1919:$ (PROGRAM)
1855:wildcard*.c
1568:RELEASE_DIR
1546:RELEASE_DIR
1458:RELEASE_DIR
1359:hash symbol
1044:definition
590:GNUmakefile
459:Embarcadero
373:LibreOffice
352:implemented
257:implemented
220:source code
210:(such as a
46:declarative
18:Make (Unix)
4064:Categories
4025:Categories
3367:GNU `make'
3078:"makefile"
2742:, O'Reilly
2656:, O'Reilly
2545:"Bmake(1)"
2393:arquivo.pt
2231:References
2102:-c$ <-o
2030:>> .
1719:helloworld
1713:helloworld
1710:helloworld
1656:helloworld
1624:helloworld
1618:helloworld
1615:helloworld
1559:&&
797:workaround
777:whitespace
708:target :
548:JavaScript
540:TypeScript
506:workflows.
493:Android OS
465:Qt Project
304:Unix ethos
145:Influenced
3885:Searching
3574:Processes
3086:Apple Inc
2986:2046-1402
2283:CiteSeerX
1819:ifneq (,)
1790:.SUFFIXES
1788:-c$ <
1699:follows:
1371:including
1365:Directive
1270:.html.txt
1253:.SUFFIXES
1180:component
1176:component
1109:backticks
1080:NEW_MACRO
996:variables
897:distclean
888:realclean
811:was new,
675:Directive
524:timestamp
446:Microsoft
435:debugger.
280:Bell Labs
265:semantics
242:compilers
235:Unix-like
195:called a
98:Unix-like
3693:basename
3361:Archived
3343:Archived
3293:18 March
3170:GNU make
3150:Archived
3131:Archived
3112:Archived
3062:Archived
3032:"Makepp"
3004:34035898
2926:Archived
2896:(1987).
2690:GNU make
2672:GNU make
2607:18 March
2510:18 March
2482:18 March
2439:18 March
2409:cite web
2399:18 March
2343:27213583
2305:33059412
2258:18 March
2248:tuhs.org
2197:See also
2176:Automake
1828:requires
1825:makefile
1532:akefile
1440:package
1426:makedist
1407:Examples
1355:comments
1230:.FROM.TO
1120:YYYYMMDD
1032:all-caps
911:file.txt
819:—
775:is also
742: ;
632:makefile
614:Makefile
607:Makefile
598:Makefile
594:makefile
586:Makefile
557:target.
395:parallel
346:Variants
340:PWB/UNIX
309:—
197:makefile
134:Dialects
114:Makefile
37:Paradigm
3798:strings
3718:dirname
3642:logname
3591:crontab
3265:FreeBSD
3259:make(1)
3190:GNU.org
2995:8114187
2826:. 2014.
2794:May 26,
2627:FreeBSD
2134:$ <
2053:C_FILES
2036:.depend
1991:.depend
1969:PROGRAM
1961:LDFLAGS
1913:PROGRAM
1891:LDFLAGS
1872:C_FILES
1847:C_FILES
1840:PROGRAM
1742:LDFLAGS
1680:$ <
1640:LDFLAGS
1506:LOGNAME
1481:VERSION
1473:PACKAGE
1442:VERSION
1435:PACKAGE
1349:Comment
1157:, with
1149:TARGET
960:.SILENT
956:.IGNORE
858:/bin/sh
767:"
744:command
734:targets
682:Comment
542:files (
534:) into
530:files (
421:foreach
407:OpenBSD
399:FreeBSD
361:Solaris
218:) from
216:library
212:program
159:MSBuild
102:Inferno
74:1976-04
72: (
3778:printf
3703:csplit
3445:chattr
3284:"make"
3269:Manual
3002:
2992:
2984:
2970:: 33.
2944:GitHub
2866:"MAKE"
2632:9 July
2623:"make"
2582:9 July
2573:"make"
2530:, 1993
2371:
2341:
2303:
2285:
2159:depend
2150:.PHONY
2126:CFLAGS
2098:CFLAGS
2032:depend
2028:depend
2012:depend
1988:depend
1981:depend
1976:LDLIBS
1947:CFLAGS
1926:depend
1897:LDLIBS
1884:CFLAGS
1784:CFLAGS
1735:CFLAGS
1672:CFLAGS
1602:CFLAGS
1591:$ <
1564:gzip-9
1542:tar-cf
1332:%.txt
1246:$ <
1234:$ <
1212:, and
1170:target
1096:MACRO2
1059:or $ (
1050:lazily
990:Macros
980:CFLAGS
844::@echo
763:"
703:target
658:recipe
584:named
483:Plan 9
403:NetBSD
381:Make (
299:cc *.o
271:Origin
261:syntax
164:others
161:, and
120:Major
4002:sleep
3956:strip
3936:ctags
3871:unset
3851:alias
3833:xargs
3813:troff
3773:patch
3768:paste
3743:iconv
3672:write
3662:uname
3565:umask
3555:touch
3545:split
3540:rmdir
3515:mkdir
3500:fuser
3465:cksum
3460:chgrp
3455:chown
3450:chmod
2903:(PDF)
2339:S2CID
2301:S2CID
2193:etc.
2191:Meson
2187:CMake
2156:clean
2136:clean
2041:@echo
1837:endif
1834:Make.
1752:clean
1682:clean
1580:.tar
1528:egrep
1401:Tab ↹
1397:Tab ↹
1393:Tab ↹
1361:(#).
1141:MACRO
1088:MACRO
1039:MACRO
1006:clang
968:c.obj
932:minus
894:clean
874:batch
870:nmake
854:shell
773:space
765:hello
754:hello
714:Tab ↹
710:Tab ↹
693:Rules
596:, or
564:make
555:phony
546:) to
511:POSIX
497:ninja
449:nmake
440:nmake
417:gmake
391:fmake
387:bmake
383:pmake
205:build
180:is a
42:macro
4048:List
3987:expr
3961:yacc
3946:make
3897:grep
3892:find
3876:wait
3866:test
3861:echo
3818:uniq
3803:tail
3793:sort
3783:read
3758:more
3748:join
3738:head
3733:fold
3713:diff
3698:comm
3657:tput
3652:talk
3647:mesg
3637:exit
3616:time
3606:nice
3601:kill
3560:type
3495:file
3419:Unix
3295:2018
3236:make
3224:2003
3201:2020
3000:PMID
2982:ISSN
2796:2014
2634:2020
2609:2018
2584:2020
2512:2018
2484:2018
2441:2018
2415:link
2401:2018
2369:ISBN
2260:2018
2145:OBJS
1954:OBJS
1932:OBJS
1902:-lm
1860:OBJS
1845:foo
1822:This
1769:.c.o
1750:$ ^
1676:-c-o
1648:$ ^
1589:and
1537:dist
1523:help
1514:echo
1498:echo
1450:date
1421:help
1419:make
1415:make
1339:html
1264:html
1242:>
1196:echo
1187:echo
1161:and
1139:make
1128:date
1069:$ {}
1061:NAME
1057:NAME
977:)$ (
958:and
948:plus
921:html
917:file
878:copy
862:Unix
809:Yacc
761:echo
630:The
544:*.ts
489:Kati
405:and
336:Unix
321:2003
263:and
253:Unix
233:and
231:Unix
178:Make
155:Rake
31:Make
3982:cal
3941:lex
3913:man
3788:sed
3708:cut
3688:awk
3667:who
3632:env
3550:tee
3530:pwd
3525:pax
3470:cmp
3440:cat
2990:PMC
2972:doi
2331:doi
2293:doi
2172:-MM
2143:$ (
2132:$ @
2124:$ (
2117:$ (
2104:$ @
2096:$ (
2089:$ (
2079:%.o
2061:cmd
2059:$ (
2051:$ (
2047:$ (
2025:cat
2018:var
2015:$ (
2001:gcc
1997:cmd
1974:$ (
1967:$ (
1959:$ (
1952:$ (
1945:$ (
1938:$ (
1929:$ (
1910:$ (
1904:all
1882:cc
1870:$ (
1866:$ (
1853:$ (
1831:GNU
1782:$ (
1775:$ (
1758:$ (
1748:$ @
1740:$ (
1733:$ (
1726:$ (
1704:all
1688:$ (
1678:$ @
1670:$ (
1663:$ (
1646:$ @
1638:$ (
1631:$ (
1609:all
1607:-g
1595:$ ^
1587:$ @
1574:$ (
1566:$ (
1552:$ (
1544:$ (
1504:$ (
1492:all
1479:$ (
1471:$ (
1463:..
1343:$ @
1287:$
1277:$ @
1260:txt
1238:$ @
1220:).
1199:$ @
1190:$ ?
1115:).
1094:$ (
1086:$ (
1073:BSD
1052:).
971:$ (
942:not
838:all
813:Lex
759:; @
723:TAB
532:*.c
518:Use
469:Jom
467:'s
413:GNU
389:or
379:BSD
214:or
203:to
172:In
151:Ant
4066::
3997:od
3992:lp
3977:bc
3951:nm
3931:ar
3856:cd
3828:wc
3823:vi
3808:tr
3763:nl
3753:m4
3728:ex
3723:ed
3611:ps
3596:fg
3586:bg
3581:at
3535:rm
3520:mv
3510:ls
3505:ln
3490:df
3485:du
3480:dd
3475:cp
3286:.
3275:^
3220:,
3209:^
3192:.
3188:.
3172:,
3168:,
3084:.
3080:.
2998:.
2988:.
2980:.
2968:10
2966:.
2962:.
2942:.
2920:.
2721:.
2688:,
2670:,
2636:.
2625:.
2600:.
2575:.
2536:^
2503:.
2492:^
2475:.
2462:^
2411:}}
2407:{{
2391:.
2363:.
2345:.
2337:.
2327:59
2325:.
2313:^
2299:.
2291:.
2277:.
2246:.
2189:,
2130:-o
2119:CC
2112:%.
2091:CC
2084:%.
2063:))
2034:;
2023:;
2009:MF
2005:MM
1999:=
1965:-o
1940:CC
1877:CC
1874:))
1863::=
1850::=
1777:CC
1760:RM
1746:-o
1728:CC
1690:RM
1665:CC
1644:-o
1633:CC
1605:?=
1337:%.
1306:.
1214:!=
1210:?=
1208:,
1206:+=
1182:2
1178:1
1075:.
1065:$
1034::
1021:CC
1001:CC
986:.
974:CC
962:.
938:at
866:cp
836::
834::=
642:.
600:.
592:,
475:Mk
401:,
385:,
317:,
267:.
248:.
226:.
176:,
157:,
153:,
100:,
93:OS
44:,
3411:e
3404:t
3397:v
3297:.
3203:.
3088:.
3048:.
3034:.
3006:.
2974::
2798:.
2771:.
2756:.
2725:.
2611:.
2586:.
2561:.
2547:.
2514:.
2486:.
2457:.
2443:.
2417:)
2403:.
2377:.
2333::
2307:.
2295::
2279:9
2262:.
2153::
2147:)
2139::
2128:)
2121:)
2114:o
2110::
2107:%
2100:)
2093:)
2086:c
2082::
2057:,
2055:)
2045:@
2039::
2021:)
2007:-
2003:-
1994::
1986:.
1984::
1978:)
1971:)
1963:)
1956:)
1949:)
1942:)
1935:)
1924:.
1922::
1916:)
1907::
1900:=
1894:=
1887:=
1880:=
1857:)
1843:=
1797:c
1795:.
1793::
1786:)
1779:)
1772::
1762:)
1755::
1744:)
1737:)
1730:)
1723:o
1721:.
1716::
1707::
1692:)
1685::
1674:)
1667:)
1660:c
1658:.
1653::
1642:)
1635:)
1628:o
1626:.
1621::
1612::
1578:)
1572:/
1570:)
1562:\
1556:)
1550:/
1548:)
1540::
1526::
1508:)
1495::
1483:)
1477:-
1475:)
1468:=
1461:=
1455:`
1448:`
1445:=
1438:=
1386:\
1335::
1319:%
1315:%
1311:%
1273::
1262:.
1258:.
1256::
1218:=
1173::
1163:@
1159:?
1144:=
1130:`
1126:`
1123:=
1113:`
1111:(
1098:)
1092:-
1090:)
1083:=
1042:=
1025:C
1004:=
983:)
919:.
914::
891::
841::
757::
737::
687:#
528:C
431:.
363:.
86:C
76:)
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.