This is make.info, produced by makeinfo version 5.2 from make.texi.

This file documents the GNU 'make' utility, which determines
automatically which pieces of a large program need to be recompiled, and
issues the commands to recompile them.

   This is Edition 0.74, last updated 3 January 2017, of 'The GNU Make
Manual', for GNU 'make' version 4.2.90.

   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.3 or any later version published by the Free Software
     Foundation; with no Invariant Sections, with the Front-Cover Texts
     being "A GNU Manual," and with the Back-Cover Texts as in (a)
     below.  A copy of the license is included in the section entitled
     "GNU Free Documentation License."

     (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
     modify this GNU manual.  Buying copies from the FSF supports it in
     developing GNU and promoting software freedom."
INFO-DIR-SECTION Software development
START-INFO-DIR-ENTRY
* Make: (make).            Remake files automatically.
END-INFO-DIR-ENTRY


Indirect:
make.info-1: 1357
make.info-2: 307029

Tag Table:
(Indirect)
Node: Top1357
Node: Overview16543
Node: Preparing17556
Node: Reading18524
Node: Bugs19451
Node: Introduction21280
Node: Rule Introduction22873
Node: Simple Makefile24806
Node: How Make Works28542
Node: Variables Simplify31191
Node: make Deduces33397
Node: Combine By Prerequisite35130
Node: Cleanup36159
Node: Makefiles37577
Node: Makefile Contents38413
Node: Splitting Lines41586
Node: Makefile Names43346
Node: Include44953
Ref: Include-Footnote-148697
Node: MAKEFILES Variable48831
Node: Remaking Makefiles50372
Node: Overriding Makefiles54597
Node: Reading Makefiles56625
Node: Secondary Expansion60087
Node: Rules67548
Node: Rule Example70221
Node: Rule Syntax71074
Node: Prerequisite Types73669
Node: Wildcards76536
Node: Wildcard Examples78255
Node: Wildcard Pitfall79605
Node: Wildcard Function81394
Node: Directory Search83178
Node: General Search84313
Node: Selective Search86020
Node: Search Algorithm89010
Node: Recipes/Search91528
Node: Implicit/Search92851
Node: Libraries/Search93793
Node: Phony Targets95764
Node: Force Targets100601
Node: Empty Targets101638
Node: Special Targets102940
Node: Multiple Targets110740
Node: Multiple Rules112600
Node: Static Pattern114818
Node: Static Usage115470
Node: Static versus Implicit119189
Node: Double-Colon120929
Node: Automatic Prerequisites122689
Node: Recipes126950
Node: Recipe Syntax128122
Node: Splitting Recipe Lines130237
Node: Variables in Recipes133390
Node: Echoing134716
Node: Execution135928
Ref: Execution-Footnote-1137341
Node: One Shell137486
Node: Choosing the Shell140804
Node: Parallel144948
Node: Parallel Output147617
Node: Parallel Input152044
Node: Errors153163
Node: Interrupts156827
Node: Recursion158410
Node: MAKE Variable160507
Node: Variables/Recursion162750
Node: Options/Recursion168195
Node: -w Option174201
Node: Canned Recipes175196
Node: Empty Recipes178179
Node: Using Variables179619
Node: Reference183047
Node: Flavors184605
Node: Advanced190584
Node: Substitution Refs191089
Node: Computed Names192642
Node: Values197190
Node: Setting198107
Node: Appending201146
Node: Override Directive205088
Node: Multi-Line206715
Node: Undefine Directive209539
Node: Environment210628
Node: Target-specific212880
Node: Pattern-specific215907
Node: Suppressing Inheritance217754
Node: Special Variables219207
Node: Conditionals225616
Node: Conditional Example226329
Node: Conditional Syntax228892
Node: Testing Flags234652
Node: Functions235753
Node: Syntax of Functions237313
Node: Text Functions239647
Node: File Name Functions248212
Node: Conditional Functions253438
Node: Foreach Function255813
Node: File Function259026
Node: Call Function261583
Node: Value Function264468
Node: Eval Function265905
Node: Origin Function268181
Node: Flavor Function271407
Node: Make Control Functions272451
Node: Shell Function274137
Node: Guile Function275896
Node: Running276646
Node: Makefile Arguments278627
Node: Goals279343
Node: Instead of Execution284082
Node: Avoiding Compilation287797
Node: Overriding289772
Node: Testing292084
Node: Options Summary293968
Node: Implicit Rules307029
Node: Using Implicit309166
Node: Catalogue of Rules312685
Node: Implicit Variables322029
Node: Chained Rules327102
Node: Pattern Rules331112
Node: Pattern Intro332646
Node: Pattern Examples335228
Node: Automatic Variables337035
Node: Pattern Match344385
Node: Match-Anything Rules347708
Node: Canceling Rules351587
Node: Last Resort352301
Node: Suffix Rules354130
Node: Implicit Rule Search357855
Node: Archives361354
Node: Archive Members362059
Node: Archive Update363669
Node: Archive Symbols365580
Node: Archive Pitfalls366813
Node: Archive Suffix Rules367535
Node: Extending make369083
Node: Guile Integration370228
Node: Guile Types371456
Node: Guile Interface373876
Node: Guile Example375162
Node: Loading Objects377353
Node: load Directive378843
Node: Remaking Loaded Objects381597
Node: Loaded Object API382231
Node: Loaded Object Example388993
Node: Integrating make391240
Node: Job Slots391991
Node: POSIX Jobserver395423
Node: Windows Jobserver397817
Node: Terminal Output399170
Node: Features401559
Node: Missing410728
Node: Makefile Conventions414453
Node: Makefile Basics415432
Node: Utilities in Makefiles418599
Node: Command Variables421098
Node: DESTDIR424338
Node: Directory Variables426505
Node: Standard Targets441862
Node: Install Command Categories455968
Node: Quick Reference460494
Node: Error Messages473208
Node: Complex Makefile481162
Node: GNU Free Documentation License489780
Node: Concept Index514922
Node: Name Index586511

End Tag Table
