This is make.info, produced by makeinfo version 4.13 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.71, last updated 19 July 2010, of `The GNU Make
Manual', for GNU `make' version 3.82.

   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010 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.2 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: 1319
make.info-2: 293656

Tag Table:
(Indirect)
Node: Top1319
Node: Overview14709
Node: Preparing15719
Node: Reading16690
Node: Bugs17617
Node: Introduction19446
Node: Rule Introduction21037
Node: Simple Makefile22970
Node: How Make Works26666
Node: Variables Simplify29321
Node: make Deduces31527
Node: Combine By Prerequisite33260
Node: Cleanup34289
Node: Makefiles35707
Node: Makefile Contents36543
Node: Makefile Names39649
Node: Include41260
Ref: Include-Footnote-145008
Node: MAKEFILES Variable45142
Node: Remaking Makefiles46683
Node: Overriding Makefiles50907
Node: Reading Makefiles52935
Node: Secondary Expansion55947
Node: Rules63388
Node: Rule Example66060
Node: Rule Syntax66914
Node: Prerequisite Types69507
Node: Wildcards72374
Node: Wildcard Examples74092
Node: Wildcard Pitfall75441
Node: Wildcard Function77230
Node: Directory Search79014
Node: General Search80148
Node: Selective Search81855
Node: Search Algorithm84843
Node: Recipes/Search87361
Node: Implicit/Search88684
Node: Libraries/Search89626
Node: Phony Targets91596
Node: Force Targets96665
Node: Empty Targets97702
Node: Special Targets99007
Node: Multiple Targets106862
Node: Multiple Rules108727
Node: Static Pattern110945
Node: Static Usage111597
Node: Static versus Implicit115316
Node: Double-Colon117057
Node: Automatic Prerequisites118817
Node: Recipes123095
Node: Recipe Syntax124268
Node: Splitting Lines126383
Node: Variables in Recipes129483
Node: Echoing130802
Node: Execution132077
Ref: Execution-Footnote-1133488
Node: One Shell133633
Node: Choosing the Shell136948
Node: Parallel141094
Node: Errors144815
Node: Interrupts148483
Node: Recursion150066
Node: MAKE Variable152164
Node: Variables/Recursion154411
Node: Options/Recursion159861
Node: -w Option165021
Node: Canned Recipes166016
Node: Empty Recipes169000
Node: Using Variables170148
Node: Reference173523
Node: Flavors175081
Node: Advanced180821
Node: Substitution Refs181326
Node: Computed Names182879
Node: Values187425
Node: Setting188342
Node: Appending190378
Node: Override Directive194304
Node: Multi-Line195931
Node: Undefine Directive198754
Node: Environment199840
Node: Target-specific202091
Node: Pattern-specific205108
Node: Suppressing Inheritance206954
Node: Special Variables208408
Node: Conditionals213121
Node: Conditional Example213834
Node: Conditional Syntax216397
Node: Testing Flags222127
Node: Functions223228
Node: Syntax of Functions224659
Node: Text Functions226858
Node: File Name Functions235429
Node: Conditional Functions240651
Node: Foreach Function243025
Node: Call Function246237
Node: Value Function249122
Node: Eval Function250559
Node: Origin Function252835
Node: Flavor Function256051
Node: Shell Function257117
Node: Make Control Functions258751
Node: Running260413
Node: Makefile Arguments262396
Node: Goals263112
Node: Instead of Execution267851
Node: Avoiding Compilation271433
Node: Overriding273407
Node: Testing275710
Node: Options Summary277594
Node: Implicit Rules287992
Node: Using Implicit290137
Node: Catalogue of Rules293656
Node: Implicit Variables303004
Node: Chained Rules307761
Node: Pattern Rules311772
Node: Pattern Intro313307
Node: Pattern Examples315895
Node: Automatic Variables317701
Node: Pattern Match325059
Node: Match-Anything Rules328382
Node: Canceling Rules332256
Node: Last Resort332970
Node: Suffix Rules334799
Node: Implicit Rule Search338524
Node: Archives342023
Node: Archive Members342721
Node: Archive Update344331
Node: Archive Symbols346242
Node: Archive Pitfalls347476
Node: Archive Suffix Rules348198
Node: Features349745
Node: Missing358290
Node: Makefile Conventions362017
Node: Makefile Basics362996
Node: Utilities in Makefiles366163
Node: Command Variables368661
Node: DESTDIR371900
Node: Directory Variables374067
Node: Standard Targets388682
Ref: Standard Targets-Footnote-1402458
Node: Install Command Categories402558
Node: Quick Reference407084
Node: Error Messages418767
Node: Complex Makefile426463
Node: GNU Free Documentation License434974
Node: Concept Index460136
Node: Name Index526637

End Tag Table
