VirtualBox

Changeset 1989 in kBuild


Ignore:
Timestamp:
Oct 28, 2008 11:02:45 PM (16 years ago)
Author:
bird
Message:

Load gnumake-2008-10-28-CVS into vendor/gnumake/current.

Location:
vendor/gnumake/current
Files:
1 deleted
122 edited

Legend:

Unmodified
Added
Removed
  • vendor/gnumake/current/AUTHORS

    r501 r1989  
    6161  Carl Staelin (Princeton University)
    6262  Ian Stewartson (Data Logic Limited)
     63  Ramon Garcia Fernandez <[email protected]>
    6364
    6465With suggestions/comments/bug reports from a cast of ... well ...
     
    6667
    6768-------------------------------------------------------------------------------
    68 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     69Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
    6970Free Software Foundation, Inc.
    7071This file is part of GNU Make.
     
    7273GNU Make is free software; you can redistribute it and/or modify it under the
    7374terms of the GNU General Public License as published by the Free Software
    74 Foundation; either version 2, or (at your option) any later version.
     75Foundation; either version 3 of the License, or (at your option) any later
     76version.
    7577
    7678GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    7981
    8082You should have received a copy of the GNU General Public License along with
    81 GNU Make; see the file COPYING.  If not, write to the Free Software
    82 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     83this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/COPYING

    r152 r1989  
    1                     GNU GENERAL PUBLIC LICENSE
    2                        Version 2, June 1991
    3 
    4  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
    5                           59 Temple Place - Suite 330, Boston, MA
    6                           02111-1307, USA.
     1                    GNU GENERAL PUBLIC LICENSE
     2                       Version 3, 29 June 2007
     3
     4 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
    75 Everyone is permitted to copy and distribute verbatim copies
    86 of this license document, but changing it is not allowed.
    97
    10                             Preamble
    11 
    12   The licenses for most software are designed to take away your
    13 freedom to share and change it.  By contrast, the GNU General Public
    14 License is intended to guarantee your freedom to share and change free
    15 software--to make sure the software is free for all its users.  This
    16 General Public License applies to most of the Free Software
    17 Foundation's software and to any other program whose authors commit to
    18 using it.  (Some other Free Software Foundation software is covered by
    19 the GNU Library General Public License instead.)  You can apply it to
     8                            Preamble
     9
     10  The GNU General Public License is a free, copyleft license for
     11software and other kinds of works.
     12
     13  The licenses for most software and other practical works are designed
     14to take away your freedom to share and change the works.  By contrast,
     15the GNU General Public License is intended to guarantee your freedom to
     16share and change all versions of a program--to make sure it remains free
     17software for all its users.  We, the Free Software Foundation, use the
     18GNU General Public License for most of our software; it applies also to
     19any other work released this way by its authors.  You can apply it to
    2020your programs, too.
    2121
     
    2323price.  Our General Public Licenses are designed to make sure that you
    2424have the freedom to distribute copies of free software (and charge for
    25 this service if you wish), that you receive source code or can get it
    26 if you want it, that you can change the software or use pieces of it
    27 in new free programs; and that you know you can do these things.
    28 
    29   To protect your rights, we need to make restrictions that forbid
    30 anyone to deny you these rights or to ask you to surrender the rights.
    31 These restrictions translate to certain responsibilities for you if you
    32 distribute copies of the software, or if you modify it.
     25them if you wish), that you receive source code or can get it if you
     26want it, that you can change the software or use pieces of it in new
     27free programs, and that you know you can do these things.
     28
     29  To protect your rights, we need to prevent others from denying you
     30these rights or asking you to surrender the rights.  Therefore, you have
     31certain responsibilities if you distribute copies of the software, or if
     32you modify it: responsibilities to respect the freedom of others.
    3333
    3434  For example, if you distribute copies of such a program, whether
    35 gratis or for a fee, you must give the recipients all the rights that
    36 you have.  You must make sure that they, too, receive or can get the
    37 source code.  And you must show them these terms so they know their
    38 rights.
    39 
    40   We protect your rights with two steps: (1) copyright the software, and
    41 (2) offer you this license which gives you legal permission to copy,
    42 distribute and/or modify the software.
    43 
    44   Also, for each author's protection and ours, we want to make certain
    45 that everyone understands that there is no warranty for this free
    46 software.  If the software is modified by someone else and passed on, we
    47 want its recipients to know that what they have is not the original, so
    48 that any problems introduced by others will not reflect on the original
    49 authors' reputations.
    50 
    51   Finally, any free program is threatened constantly by software
    52 patents.  We wish to avoid the danger that redistributors of a free
    53 program will individually obtain patent licenses, in effect making the
    54 program proprietary.  To prevent this, we have made it clear that any
    55 patent must be licensed for everyone's free use or not licensed at all.
     35gratis or for a fee, you must pass on to the recipients the same
     36freedoms that you received.  You must make sure that they, too, receive
     37or can get the source code.  And you must show them these terms so they
     38know their rights.
     39
     40  Developers that use the GNU GPL protect your rights with two steps:
     41(1) assert copyright on the software, and (2) offer you this License
     42giving you legal permission to copy, distribute and/or modify it.
     43
     44  For the developers' and authors' protection, the GPL clearly explains
     45that there is no warranty for this free software.  For both users' and
     46authors' sake, the GPL requires that modified versions be marked as
     47changed, so that their problems will not be attributed erroneously to
     48authors of previous versions.
     49
     50  Some devices are designed to deny users access to install or run
     51modified versions of the software inside them, although the manufacturer
     52can do so.  This is fundamentally incompatible with the aim of
     53protecting users' freedom to change the software.  The systematic
     54pattern of such abuse occurs in the area of products for individuals to
     55use, which is precisely where it is most unacceptable.  Therefore, we
     56have designed this version of the GPL to prohibit the practice for those
     57products.  If such problems arise substantially in other domains, we
     58stand ready to extend this provision to those domains in future versions
     59of the GPL, as needed to protect the freedom of users.
     60
     61  Finally, every program is threatened constantly by software patents.
     62States should not allow patents to restrict development and use of
     63software on general-purpose computers, but in those that do, we wish to
     64avoid the special danger that patents applied to a free program could
     65make it effectively proprietary.  To prevent this, the GPL assures that
     66patents cannot be used to render the program non-free.
    5667
    5768  The precise terms and conditions for copying, distribution and
    5869modification follow.
    5970
    60 
    61                     GNU GENERAL PUBLIC LICENSE
    62    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    63 
    64   0. This License applies to any program or other work which contains
    65 a notice placed by the copyright holder saying it may be distributed
    66 under the terms of this General Public License.  The "Program", below,
    67 refers to any such program or work, and a "work based on the Program"
    68 means either the Program or any derivative work under copyright law:
    69 that is to say, a work containing the Program or a portion of it,
    70 either verbatim or with modifications and/or translated into another
    71 language.  (Hereinafter, translation is included without limitation in
    72 the term "modification".)  Each licensee is addressed as "you".
    73 
    74 Activities other than copying, distribution and modification are not
    75 covered by this License; they are outside its scope.  The act of
    76 running the Program is not restricted, and the output from the Program
    77 is covered only if its contents constitute a work based on the
    78 Program (independent of having been made by running the Program).
    79 Whether that is true depends on what the Program does.
    80 
    81   1. You may copy and distribute verbatim copies of the Program's
    82 source code as you receive it, in any medium, provided that you
    83 conspicuously and appropriately publish on each copy an appropriate
    84 copyright notice and disclaimer of warranty; keep intact all the
    85 notices that refer to this License and to the absence of any warranty;
    86 and give any other recipients of the Program a copy of this License
    87 along with the Program.
    88 
    89 You may charge a fee for the physical act of transferring a copy, and
    90 you may at your option offer warranty protection in exchange for a fee.
    91 
    92   2. You may modify your copy or copies of the Program or any portion
    93 of it, thus forming a work based on the Program, and copy and
    94 distribute such modifications or work under the terms of Section 1
    95 above, provided that you also meet all of these conditions:
    96 
    97     a) You must cause the modified files to carry prominent notices
    98     stating that you changed the files and the date of any change.
    99 
    100     b) You must cause any work that you distribute or publish, that in
    101     whole or in part contains or is derived from the Program or any
    102     part thereof, to be licensed as a whole at no charge to all third
    103     parties under the terms of this License.
    104 
    105     c) If the modified program normally reads commands interactively
    106     when run, you must cause it, when started running for such
    107     interactive use in the most ordinary way, to print or display an
    108     announcement including an appropriate copyright notice and a
    109     notice that there is no warranty (or else, saying that you provide
    110     a warranty) and that users may redistribute the program under
    111     these conditions, and telling the user how to view a copy of this
    112     License.  (Exception: if the Program itself is interactive but
    113     does not normally print such an announcement, your work based on
    114     the Program is not required to print an announcement.)
    115 
    116 
    117 These requirements apply to the modified work as a whole.  If
    118 identifiable sections of that work are not derived from the Program,
    119 and can be reasonably considered independent and separate works in
    120 themselves, then this License, and its terms, do not apply to those
    121 sections when you distribute them as separate works.  But when you
    122 distribute the same sections as part of a whole which is a work based
    123 on the Program, the distribution of the whole must be on the terms of
    124 this License, whose permissions for other licensees extend to the
    125 entire whole, and thus to each and every part regardless of who wrote it.
    126 
    127 Thus, it is not the intent of this section to claim rights or contest
    128 your rights to work written entirely by you; rather, the intent is to
    129 exercise the right to control the distribution of derivative or
    130 collective works based on the Program.
    131 
    132 In addition, mere aggregation of another work not based on the Program
    133 with the Program (or with a work based on the Program) on a volume of
    134 a storage or distribution medium does not bring the other work under
    135 the scope of this License.
    136 
    137   3. You may copy and distribute the Program (or a work based on it,
    138 under Section 2) in object code or executable form under the terms of
    139 Sections 1 and 2 above provided that you also do one of the following:
    140 
    141     a) Accompany it with the complete corresponding machine-readable
    142     source code, which must be distributed under the terms of Sections
    143     1 and 2 above on a medium customarily used for software interchange; or,
    144 
    145     b) Accompany it with a written offer, valid for at least three
    146     years, to give any third party, for a charge no more than your
    147     cost of physically performing source distribution, a complete
    148     machine-readable copy of the corresponding source code, to be
    149     distributed under the terms of Sections 1 and 2 above on a medium
    150     customarily used for software interchange; or,
    151 
    152     c) Accompany it with the information you received as to the offer
    153     to distribute corresponding source code.  (This alternative is
    154     allowed only for noncommercial distribution and only if you
    155     received the program in object code or executable form with such
    156     an offer, in accord with Subsection b above.)
    157 
    158 The source code for a work means the preferred form of the work for
    159 making modifications to it.  For an executable work, complete source
    160 code means all the source code for all modules it contains, plus any
    161 associated interface definition files, plus the scripts used to
    162 control compilation and installation of the executable.  However, as a
    163 special exception, the source code distributed need not include
    164 anything that is normally distributed (in either source or binary
    165 form) with the major components (compiler, kernel, and so on) of the
    166 operating system on which the executable runs, unless that component
    167 itself accompanies the executable.
    168 
    169 If distribution of executable or object code is made by offering
    170 access to copy from a designated place, then offering equivalent
    171 access to copy the source code from the same place counts as
    172 distribution of the source code, even though third parties are not
    173 compelled to copy the source along with the object code.
    174 
    175 
    176   4. You may not copy, modify, sublicense, or distribute the Program
    177 except as expressly provided under this License.  Any attempt
    178 otherwise to copy, modify, sublicense or distribute the Program is
    179 void, and will automatically terminate your rights under this License.
    180 However, parties who have received copies, or rights, from you under
    181 this License will not have their licenses terminated so long as such
    182 parties remain in full compliance.
    183 
    184   5. You are not required to accept this License, since you have not
    185 signed it.  However, nothing else grants you permission to modify or
    186 distribute the Program or its derivative works.  These actions are
    187 prohibited by law if you do not accept this License.  Therefore, by
    188 modifying or distributing the Program (or any work based on the
    189 Program), you indicate your acceptance of this License to do so, and
    190 all its terms and conditions for copying, distributing or modifying
    191 the Program or works based on it.
    192 
    193   6. Each time you redistribute the Program (or any work based on the
    194 Program), the recipient automatically receives a license from the
    195 original licensor to copy, distribute or modify the Program subject to
    196 these terms and conditions.  You may not impose any further
    197 restrictions on the recipients' exercise of the rights granted herein.
    198 You are not responsible for enforcing compliance by third parties to
     71                       TERMS AND CONDITIONS
     72
     73  0. Definitions.
     74
     75  "This License" refers to version 3 of the GNU General Public License.
     76
     77  "Copyright" also means copyright-like laws that apply to other kinds of
     78works, such as semiconductor masks.
     79
     80  "The Program" refers to any copyrightable work licensed under this
     81License.  Each licensee is addressed as "you".  "Licensees" and
     82"recipients" may be individuals or organizations.
     83
     84  To "modify" a work means to copy from or adapt all or part of the work
     85in a fashion requiring copyright permission, other than the making of an
     86exact copy.  The resulting work is called a "modified version" of the
     87earlier work or a work "based on" the earlier work.
     88
     89  A "covered work" means either the unmodified Program or a work based
     90on the Program.
     91
     92  To "propagate" a work means to do anything with it that, without
     93permission, would make you directly or secondarily liable for
     94infringement under applicable copyright law, except executing it on a
     95computer or modifying a private copy.  Propagation includes copying,
     96distribution (with or without modification), making available to the
     97public, and in some countries other activities as well.
     98
     99  To "convey" a work means any kind of propagation that enables other
     100parties to make or receive copies.  Mere interaction with a user through
     101a computer network, with no transfer of a copy, is not conveying.
     102
     103  An interactive user interface displays "Appropriate Legal Notices"
     104to the extent that it includes a convenient and prominently visible
     105feature that (1) displays an appropriate copyright notice, and (2)
     106tells the user that there is no warranty for the work (except to the
     107extent that warranties are provided), that licensees may convey the
     108work under this License, and how to view a copy of this License.  If
     109the interface presents a list of user commands or options, such as a
     110menu, a prominent item in the list meets this criterion.
     111
     112  1. Source Code.
     113
     114  The "source code" for a work means the preferred form of the work
     115for making modifications to it.  "Object code" means any non-source
     116form of a work.
     117
     118  A "Standard Interface" means an interface that either is an official
     119standard defined by a recognized standards body, or, in the case of
     120interfaces specified for a particular programming language, one that
     121is widely used among developers working in that language.
     122
     123  The "System Libraries" of an executable work include anything, other
     124than the work as a whole, that (a) is included in the normal form of
     125packaging a Major Component, but which is not part of that Major
     126Component, and (b) serves only to enable use of the work with that
     127Major Component, or to implement a Standard Interface for which an
     128implementation is available to the public in source code form.  A
     129"Major Component", in this context, means a major essential component
     130(kernel, window system, and so on) of the specific operating system
     131(if any) on which the executable work runs, or a compiler used to
     132produce the work, or an object code interpreter used to run it.
     133
     134  The "Corresponding Source" for a work in object code form means all
     135the source code needed to generate, install, and (for an executable
     136work) run the object code and to modify the work, including scripts to
     137control those activities.  However, it does not include the work's
     138System Libraries, or general-purpose tools or generally available free
     139programs which are used unmodified in performing those activities but
     140which are not part of the work.  For example, Corresponding Source
     141includes interface definition files associated with source files for
     142the work, and the source code for shared libraries and dynamically
     143linked subprograms that the work is specifically designed to require,
     144such as by intimate data communication or control flow between those
     145subprograms and other parts of the work.
     146
     147  The Corresponding Source need not include anything that users
     148can regenerate automatically from other parts of the Corresponding
     149Source.
     150
     151  The Corresponding Source for a work in source code form is that
     152same work.
     153
     154  2. Basic Permissions.
     155
     156  All rights granted under this License are granted for the term of
     157copyright on the Program, and are irrevocable provided the stated
     158conditions are met.  This License explicitly affirms your unlimited
     159permission to run the unmodified Program.  The output from running a
     160covered work is covered by this License only if the output, given its
     161content, constitutes a covered work.  This License acknowledges your
     162rights of fair use or other equivalent, as provided by copyright law.
     163
     164  You may make, run and propagate covered works that you do not
     165convey, without conditions so long as your license otherwise remains
     166in force.  You may convey covered works to others for the sole purpose
     167of having them make modifications exclusively for you, or provide you
     168with facilities for running those works, provided that you comply with
     169the terms of this License in conveying all material for which you do
     170not control copyright.  Those thus making or running the covered works
     171for you must do so exclusively on your behalf, under your direction
     172and control, on terms that prohibit them from making any copies of
     173your copyrighted material outside their relationship with you.
     174
     175  Conveying under any other circumstances is permitted solely under
     176the conditions stated below.  Sublicensing is not allowed; section 10
     177makes it unnecessary.
     178
     179  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
     180
     181  No covered work shall be deemed part of an effective technological
     182measure under any applicable law fulfilling obligations under article
     18311 of the WIPO copyright treaty adopted on 20 December 1996, or
     184similar laws prohibiting or restricting circumvention of such
     185measures.
     186
     187  When you convey a covered work, you waive any legal power to forbid
     188circumvention of technological measures to the extent such circumvention
     189is effected by exercising rights under this License with respect to
     190the covered work, and you disclaim any intention to limit operation or
     191modification of the work as a means of enforcing, against the work's
     192users, your or third parties' legal rights to forbid circumvention of
     193technological measures.
     194
     195  4. Conveying Verbatim Copies.
     196
     197  You may convey verbatim copies of the Program's source code as you
     198receive it, in any medium, provided that you conspicuously and
     199appropriately publish on each copy an appropriate copyright notice;
     200keep intact all notices stating that this License and any
     201non-permissive terms added in accord with section 7 apply to the code;
     202keep intact all notices of the absence of any warranty; and give all
     203recipients a copy of this License along with the Program.
     204
     205  You may charge any price or no price for each copy that you convey,
     206and you may offer support or warranty protection for a fee.
     207
     208  5. Conveying Modified Source Versions.
     209
     210  You may convey a work based on the Program, or the modifications to
     211produce it from the Program, in the form of source code under the
     212terms of section 4, provided that you also meet all of these conditions:
     213
     214    a) The work must carry prominent notices stating that you modified
     215    it, and giving a relevant date.
     216
     217    b) The work must carry prominent notices stating that it is
     218    released under this License and any conditions added under section
     219    7.  This requirement modifies the requirement in section 4 to
     220    "keep intact all notices".
     221
     222    c) You must license the entire work, as a whole, under this
     223    License to anyone who comes into possession of a copy.  This
     224    License will therefore apply, along with any applicable section 7
     225    additional terms, to the whole of the work, and all its parts,
     226    regardless of how they are packaged.  This License gives no
     227    permission to license the work in any other way, but it does not
     228    invalidate such permission if you have separately received it.
     229
     230    d) If the work has interactive user interfaces, each must display
     231    Appropriate Legal Notices; however, if the Program has interactive
     232    interfaces that do not display Appropriate Legal Notices, your
     233    work need not make them do so.
     234
     235  A compilation of a covered work with other separate and independent
     236works, which are not by their nature extensions of the covered work,
     237and which are not combined with it such as to form a larger program,
     238in or on a volume of a storage or distribution medium, is called an
     239"aggregate" if the compilation and its resulting copyright are not
     240used to limit the access or legal rights of the compilation's users
     241beyond what the individual works permit.  Inclusion of a covered work
     242in an aggregate does not cause this License to apply to the other
     243parts of the aggregate.
     244
     245  6. Conveying Non-Source Forms.
     246
     247  You may convey a covered work in object code form under the terms
     248of sections 4 and 5, provided that you also convey the
     249machine-readable Corresponding Source under the terms of this License,
     250in one of these ways:
     251
     252    a) Convey the object code in, or embodied in, a physical product
     253    (including a physical distribution medium), accompanied by the
     254    Corresponding Source fixed on a durable physical medium
     255    customarily used for software interchange.
     256
     257    b) Convey the object code in, or embodied in, a physical product
     258    (including a physical distribution medium), accompanied by a
     259    written offer, valid for at least three years and valid for as
     260    long as you offer spare parts or customer support for that product
     261    model, to give anyone who possesses the object code either (1) a
     262    copy of the Corresponding Source for all the software in the
     263    product that is covered by this License, on a durable physical
     264    medium customarily used for software interchange, for a price no
     265    more than your reasonable cost of physically performing this
     266    conveying of source, or (2) access to copy the
     267    Corresponding Source from a network server at no charge.
     268
     269    c) Convey individual copies of the object code with a copy of the
     270    written offer to provide the Corresponding Source.  This
     271    alternative is allowed only occasionally and noncommercially, and
     272    only if you received the object code with such an offer, in accord
     273    with subsection 6b.
     274
     275    d) Convey the object code by offering access from a designated
     276    place (gratis or for a charge), and offer equivalent access to the
     277    Corresponding Source in the same way through the same place at no
     278    further charge.  You need not require recipients to copy the
     279    Corresponding Source along with the object code.  If the place to
     280    copy the object code is a network server, the Corresponding Source
     281    may be on a different server (operated by you or a third party)
     282    that supports equivalent copying facilities, provided you maintain
     283    clear directions next to the object code saying where to find the
     284    Corresponding Source.  Regardless of what server hosts the
     285    Corresponding Source, you remain obligated to ensure that it is
     286    available for as long as needed to satisfy these requirements.
     287
     288    e) Convey the object code using peer-to-peer transmission, provided
     289    you inform other peers where the object code and Corresponding
     290    Source of the work are being offered to the general public at no
     291    charge under subsection 6d.
     292
     293  A separable portion of the object code, whose source code is excluded
     294from the Corresponding Source as a System Library, need not be
     295included in conveying the object code work.
     296
     297  A "User Product" is either (1) a "consumer product", which means any
     298tangible personal property which is normally used for personal, family,
     299or household purposes, or (2) anything designed or sold for incorporation
     300into a dwelling.  In determining whether a product is a consumer product,
     301doubtful cases shall be resolved in favor of coverage.  For a particular
     302product received by a particular user, "normally used" refers to a
     303typical or common use of that class of product, regardless of the status
     304of the particular user or of the way in which the particular user
     305actually uses, or expects or is expected to use, the product.  A product
     306is a consumer product regardless of whether the product has substantial
     307commercial, industrial or non-consumer uses, unless such uses represent
     308the only significant mode of use of the product.
     309
     310  "Installation Information" for a User Product means any methods,
     311procedures, authorization keys, or other information required to install
     312and execute modified versions of a covered work in that User Product from
     313a modified version of its Corresponding Source.  The information must
     314suffice to ensure that the continued functioning of the modified object
     315code is in no case prevented or interfered with solely because
     316modification has been made.
     317
     318  If you convey an object code work under this section in, or with, or
     319specifically for use in, a User Product, and the conveying occurs as
     320part of a transaction in which the right of possession and use of the
     321User Product is transferred to the recipient in perpetuity or for a
     322fixed term (regardless of how the transaction is characterized), the
     323Corresponding Source conveyed under this section must be accompanied
     324by the Installation Information.  But this requirement does not apply
     325if neither you nor any third party retains the ability to install
     326modified object code on the User Product (for example, the work has
     327been installed in ROM).
     328
     329  The requirement to provide Installation Information does not include a
     330requirement to continue to provide support service, warranty, or updates
     331for a work that has been modified or installed by the recipient, or for
     332the User Product in which it has been modified or installed.  Access to a
     333network may be denied when the modification itself materially and
     334adversely affects the operation of the network or violates the rules and
     335protocols for communication across the network.
     336
     337  Corresponding Source conveyed, and Installation Information provided,
     338in accord with this section must be in a format that is publicly
     339documented (and with an implementation available to the public in
     340source code form), and must require no special password or key for
     341unpacking, reading or copying.
     342
     343  7. Additional Terms.
     344
     345  "Additional permissions" are terms that supplement the terms of this
     346License by making exceptions from one or more of its conditions.
     347Additional permissions that are applicable to the entire Program shall
     348be treated as though they were included in this License, to the extent
     349that they are valid under applicable law.  If additional permissions
     350apply only to part of the Program, that part may be used separately
     351under those permissions, but the entire Program remains governed by
     352this License without regard to the additional permissions.
     353
     354  When you convey a copy of a covered work, you may at your option
     355remove any additional permissions from that copy, or from any part of
     356it.  (Additional permissions may be written to require their own
     357removal in certain cases when you modify the work.)  You may place
     358additional permissions on material, added by you to a covered work,
     359for which you have or can give appropriate copyright permission.
     360
     361  Notwithstanding any other provision of this License, for material you
     362add to a covered work, you may (if authorized by the copyright holders of
     363that material) supplement the terms of this License with terms:
     364
     365    a) Disclaiming warranty or limiting liability differently from the
     366    terms of sections 15 and 16 of this License; or
     367
     368    b) Requiring preservation of specified reasonable legal notices or
     369    author attributions in that material or in the Appropriate Legal
     370    Notices displayed by works containing it; or
     371
     372    c) Prohibiting misrepresentation of the origin of that material, or
     373    requiring that modified versions of such material be marked in
     374    reasonable ways as different from the original version; or
     375
     376    d) Limiting the use for publicity purposes of names of licensors or
     377    authors of the material; or
     378
     379    e) Declining to grant rights under trademark law for use of some
     380    trade names, trademarks, or service marks; or
     381
     382    f) Requiring indemnification of licensors and authors of that
     383    material by anyone who conveys the material (or modified versions of
     384    it) with contractual assumptions of liability to the recipient, for
     385    any liability that these contractual assumptions directly impose on
     386    those licensors and authors.
     387
     388  All other non-permissive additional terms are considered "further
     389restrictions" within the meaning of section 10.  If the Program as you
     390received it, or any part of it, contains a notice stating that it is
     391governed by this License along with a term that is a further
     392restriction, you may remove that term.  If a license document contains
     393a further restriction but permits relicensing or conveying under this
     394License, you may add to a covered work material governed by the terms
     395of that license document, provided that the further restriction does
     396not survive such relicensing or conveying.
     397
     398  If you add terms to a covered work in accord with this section, you
     399must place, in the relevant source files, a statement of the
     400additional terms that apply to those files, or a notice indicating
     401where to find the applicable terms.
     402
     403  Additional terms, permissive or non-permissive, may be stated in the
     404form of a separately written license, or stated as exceptions;
     405the above requirements apply either way.
     406
     407  8. Termination.
     408
     409  You may not propagate or modify a covered work except as expressly
     410provided under this License.  Any attempt otherwise to propagate or
     411modify it is void, and will automatically terminate your rights under
     412this License (including any patent licenses granted under the third
     413paragraph of section 11).
     414
     415  However, if you cease all violation of this License, then your
     416license from a particular copyright holder is reinstated (a)
     417provisionally, unless and until the copyright holder explicitly and
     418finally terminates your license, and (b) permanently, if the copyright
     419holder fails to notify you of the violation by some reasonable means
     420prior to 60 days after the cessation.
     421
     422  Moreover, your license from a particular copyright holder is
     423reinstated permanently if the copyright holder notifies you of the
     424violation by some reasonable means, this is the first time you have
     425received notice of violation of this License (for any work) from that
     426copyright holder, and you cure the violation prior to 30 days after
     427your receipt of the notice.
     428
     429  Termination of your rights under this section does not terminate the
     430licenses of parties who have received copies or rights from you under
     431this License.  If your rights have been terminated and not permanently
     432reinstated, you do not qualify to receive new licenses for the same
     433material under section 10.
     434
     435  9. Acceptance Not Required for Having Copies.
     436
     437  You are not required to accept this License in order to receive or
     438run a copy of the Program.  Ancillary propagation of a covered work
     439occurring solely as a consequence of using peer-to-peer transmission
     440to receive a copy likewise does not require acceptance.  However,
     441nothing other than this License grants you permission to propagate or
     442modify any covered work.  These actions infringe copyright if you do
     443not accept this License.  Therefore, by modifying or propagating a
     444covered work, you indicate your acceptance of this License to do so.
     445
     446  10. Automatic Licensing of Downstream Recipients.
     447
     448  Each time you convey a covered work, the recipient automatically
     449receives a license from the original licensors, to run, modify and
     450propagate that work, subject to this License.  You are not responsible
     451for enforcing compliance by third parties with this License.
     452
     453  An "entity transaction" is a transaction transferring control of an
     454organization, or substantially all assets of one, or subdividing an
     455organization, or merging organizations.  If propagation of a covered
     456work results from an entity transaction, each party to that
     457transaction who receives a copy of the work also receives whatever
     458licenses to the work the party's predecessor in interest had or could
     459give under the previous paragraph, plus a right to possession of the
     460Corresponding Source of the work from the predecessor in interest, if
     461the predecessor has it or can get it with reasonable efforts.
     462
     463  You may not impose any further restrictions on the exercise of the
     464rights granted or affirmed under this License.  For example, you may
     465not impose a license fee, royalty, or other charge for exercise of
     466rights granted under this License, and you may not initiate litigation
     467(including a cross-claim or counterclaim in a lawsuit) alleging that
     468any patent claim is infringed by making, using, selling, offering for
     469sale, or importing the Program or any portion of it.
     470
     471  11. Patents.
     472
     473  A "contributor" is a copyright holder who authorizes use under this
     474License of the Program or a work on which the Program is based.  The
     475work thus licensed is called the contributor's "contributor version".
     476
     477  A contributor's "essential patent claims" are all patent claims
     478owned or controlled by the contributor, whether already acquired or
     479hereafter acquired, that would be infringed by some manner, permitted
     480by this License, of making, using, or selling its contributor version,
     481but do not include claims that would be infringed only as a
     482consequence of further modification of the contributor version.  For
     483purposes of this definition, "control" includes the right to grant
     484patent sublicenses in a manner consistent with the requirements of
    199485this License.
    200486
    201   7. If, as a consequence of a court judgment or allegation of patent
    202 infringement or for any other reason (not limited to patent issues),
    203 conditions are imposed on you (whether by court order, agreement or
     487  Each contributor grants you a non-exclusive, worldwide, royalty-free
     488patent license under the contributor's essential patent claims, to
     489make, use, sell, offer for sale, import and otherwise run, modify and
     490propagate the contents of its contributor version.
     491
     492  In the following three paragraphs, a "patent license" is any express
     493agreement or commitment, however denominated, not to enforce a patent
     494(such as an express permission to practice a patent or covenant not to
     495sue for patent infringement).  To "grant" such a patent license to a
     496party means to make such an agreement or commitment not to enforce a
     497patent against the party.
     498
     499  If you convey a covered work, knowingly relying on a patent license,
     500and the Corresponding Source of the work is not available for anyone
     501to copy, free of charge and under the terms of this License, through a
     502publicly available network server or other readily accessible means,
     503then you must either (1) cause the Corresponding Source to be so
     504available, or (2) arrange to deprive yourself of the benefit of the
     505patent license for this particular work, or (3) arrange, in a manner
     506consistent with the requirements of this License, to extend the patent
     507license to downstream recipients.  "Knowingly relying" means you have
     508actual knowledge that, but for the patent license, your conveying the
     509covered work in a country, or your recipient's use of the covered work
     510in a country, would infringe one or more identifiable patents in that
     511country that you have reason to believe are valid.
     512
     513  If, pursuant to or in connection with a single transaction or
     514arrangement, you convey, or propagate by procuring conveyance of, a
     515covered work, and grant a patent license to some of the parties
     516receiving the covered work authorizing them to use, propagate, modify
     517or convey a specific copy of the covered work, then the patent license
     518you grant is automatically extended to all recipients of the covered
     519work and works based on it.
     520
     521  A patent license is "discriminatory" if it does not include within
     522the scope of its coverage, prohibits the exercise of, or is
     523conditioned on the non-exercise of one or more of the rights that are
     524specifically granted under this License.  You may not convey a covered
     525work if you are a party to an arrangement with a third party that is
     526in the business of distributing software, under which you make payment
     527to the third party based on the extent of your activity of conveying
     528the work, and under which the third party grants, to any of the
     529parties who would receive the covered work from you, a discriminatory
     530patent license (a) in connection with copies of the covered work
     531conveyed by you (or copies made from those copies), or (b) primarily
     532for and in connection with specific products or compilations that
     533contain the covered work, unless you entered into that arrangement,
     534or that patent license was granted, prior to 28 March 2007.
     535
     536  Nothing in this License shall be construed as excluding or limiting
     537any implied license or other defenses to infringement that may
     538otherwise be available to you under applicable patent law.
     539
     540  12. No Surrender of Others' Freedom.
     541
     542  If conditions are imposed on you (whether by court order, agreement or
    204543otherwise) that contradict the conditions of this License, they do not
    205 excuse you from the conditions of this License.  If you cannot
    206 distribute so as to satisfy simultaneously your obligations under this
    207 License and any other pertinent obligations, then as a consequence you
    208 may not distribute the Program at all.  For example, if a patent
    209 license would not permit royalty-free redistribution of the Program by
    210 all those who receive copies directly or indirectly through you, then
    211 the only way you could satisfy both it and this License would be to
    212 refrain entirely from distribution of the Program.
    213 
    214 If any portion of this section is held invalid or unenforceable under
    215 any particular circumstance, the balance of the section is intended to
    216 apply and the section as a whole is intended to apply in other
    217 circumstances.
    218 
    219 It is not the purpose of this section to induce you to infringe any
    220 patents or other property right claims or to contest validity of any
    221 such claims; this section has the sole purpose of protecting the
    222 integrity of the free software distribution system, which is
    223 implemented by public license practices.  Many people have made
    224 generous contributions to the wide range of software distributed
    225 through that system in reliance on consistent application of that
    226 system; it is up to the author/donor to decide if he or she is willing
    227 to distribute software through any other system and a licensee cannot
    228 impose that choice.
    229 
    230 This section is intended to make thoroughly clear what is believed to
    231 be a consequence of the rest of this License.
    232 
    233 
    234   8. If the distribution and/or use of the Program is restricted in
    235 certain countries either by patents or by copyrighted interfaces, the
    236 original copyright holder who places the Program under this License
    237 may add an explicit geographical distribution limitation excluding
    238 those countries, so that distribution is permitted only in or among
    239 countries not thus excluded.  In such case, this License incorporates
    240 the limitation as if written in the body of this License.
    241 
    242   9. The Free Software Foundation may publish revised and/or new versions
    243 of the General Public License from time to time.  Such new versions will
     544excuse you from the conditions of this License.  If you cannot convey a
     545covered work so as to satisfy simultaneously your obligations under this
     546License and any other pertinent obligations, then as a consequence you may
     547not convey it at all.  For example, if you agree to terms that obligate you
     548to collect a royalty for further conveying from those to whom you convey
     549the Program, the only way you could satisfy both those terms and this
     550License would be to refrain entirely from conveying the Program.
     551
     552  13. Use with the GNU Affero General Public License.
     553
     554  Notwithstanding any other provision of this License, you have
     555permission to link or combine any covered work with a work licensed
     556under version 3 of the GNU Affero General Public License into a single
     557combined work, and to convey the resulting work.  The terms of this
     558License will continue to apply to the part which is the covered work,
     559but the special requirements of the GNU Affero General Public License,
     560section 13, concerning interaction through a network will apply to the
     561combination as such.
     562
     563  14. Revised Versions of this License.
     564
     565  The Free Software Foundation may publish revised and/or new versions of
     566the GNU General Public License from time to time.  Such new versions will
    244567be similar in spirit to the present version, but may differ in detail to
    245568address new problems or concerns.
    246569
    247 Each version is given a distinguishing version number.  If the Program
    248 specifies a version number of this License which applies to it and "any
    249 later version", you have the option of following the terms and conditions
    250 either of that version or of any later version published by the Free
    251 Software Foundation.  If the Program does not specify a version number of
    252 this License, you may choose any version ever published by the Free Software
    253 Foundation.
    254 
    255   10. If you wish to incorporate parts of the Program into other free
    256 programs whose distribution conditions are different, write to the author
    257 to ask for permission.  For software which is copyrighted by the Free
    258 Software Foundation, write to the Free Software Foundation; we sometimes
    259 make exceptions for this.  Our decision will be guided by the two goals
    260 of preserving the free status of all derivatives of our free software and
    261 of promoting the sharing and reuse of software generally.
    262 
    263                             NO WARRANTY
    264 
    265   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    266 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
    267 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    268 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
    269 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    270 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
    271 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
    272 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
    273 REPAIR OR CORRECTION.
    274 
    275   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    276 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    277 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
    278 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
    279 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
    280 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
    281 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
    282 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
    283 POSSIBILITY OF SUCH DAMAGES.
    284 
    285                      END OF TERMS AND CONDITIONS
    286 
    287 
    288         Appendix: How to Apply These Terms to Your New Programs
     570  Each version is given a distinguishing version number.  If the
     571Program specifies that a certain numbered version of the GNU General
     572Public License "or any later version" applies to it, you have the
     573option of following the terms and conditions either of that numbered
     574version or of any later version published by the Free Software
     575Foundation.  If the Program does not specify a version number of the
     576GNU General Public License, you may choose any version ever published
     577by the Free Software Foundation.
     578
     579  If the Program specifies that a proxy can decide which future
     580versions of the GNU General Public License can be used, that proxy's
     581public statement of acceptance of a version permanently authorizes you
     582to choose that version for the Program.
     583
     584  Later license versions may give you additional or different
     585permissions.  However, no additional obligations are imposed on any
     586author or copyright holder as a result of your choosing to follow a
     587later version.
     588
     589  15. Disclaimer of Warranty.
     590
     591  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
     592APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
     593HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
     594OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
     595THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     596PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
     597IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
     598ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
     599
     600  16. Limitation of Liability.
     601
     602  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
     603WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
     604THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
     605GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
     606USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
     607DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
     608PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
     609EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
     610SUCH DAMAGES.
     611
     612  17. Interpretation of Sections 15 and 16.
     613
     614  If the disclaimer of warranty and limitation of liability provided
     615above cannot be given local legal effect according to their terms,
     616reviewing courts shall apply local law that most closely approximates
     617an absolute waiver of all civil liability in connection with the
     618Program, unless a warranty or assumption of liability accompanies a
     619copy of the Program in return for a fee.
     620
     621                     END OF TERMS AND CONDITIONS
     622
     623            How to Apply These Terms to Your New Programs
    289624
    290625  If you develop a new program, and you want it to be of the greatest
     
    294629  To do so, attach the following notices to the program.  It is safest
    295630to attach them to the start of each source file to most effectively
    296 convey the exclusion of warranty; and each file should have at least
     631state the exclusion of warranty; and each file should have at least
    297632the "copyright" line and a pointer to where the full notice is found.
    298633
    299634    <one line to give the program's name and a brief idea of what it does.>
    300     Copyright (C) 19yy  <name of author>
    301 
    302     This program is free software; you can redistribute it and/or modify
     635    Copyright (C) <year>  <name of author>
     636
     637    This program is free software: you can redistribute it and/or modify
    303638    it under the terms of the GNU General Public License as published by
    304     the Free Software Foundation; either version 2 of the License, or
     639    the Free Software Foundation, either version 3 of the License, or
    305640    (at your option) any later version.
    306641
     
    311646
    312647    You should have received a copy of the GNU General Public License
    313     along with this program; if not, write to the Free Software
    314     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     648    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    315649
    316650Also add information on how to contact you by electronic and paper mail.
    317651
    318 If the program is interactive, make it output a short notice like this
    319 when it starts in an interactive mode:
    320 
    321     Gnomovision version 69, Copyright (C) 19yy name of author
    322     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     652  If the program does terminal interaction, make it output a short
     653notice like this when it starts in an interactive mode:
     654
     655    <program>  Copyright (C) <year>  <name of author>
     656    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    323657    This is free software, and you are welcome to redistribute it
    324658    under certain conditions; type `show c' for details.
    325659
    326660The hypothetical commands `show w' and `show c' should show the appropriate
    327 parts of the General Public License.  Of course, the commands you use may
    328 be called something other than `show w' and `show c'; they could even be
    329 mouse-clicks or menu items--whatever suits your program.
    330 
    331 You should also get your employer (if you work as a programmer) or your
    332 school, if any, to sign a "copyright disclaimer" for the program, if
    333 necessary.  Here is a sample; alter the names:
    334 
    335   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
    336   `Gnomovision' (which makes passes at compilers) written by James Hacker.
    337 
    338   <signature of Ty Coon>, 1 April 1989
    339   Ty Coon, President of Vice
    340 
    341 This General Public License does not permit incorporating your program into
    342 proprietary programs.  If your program is a subroutine library, you may
    343 consider it more useful to permit linking proprietary applications with the
    344 library.  If this is what you want to do, use the GNU Library General
    345 Public License instead of this License.
     661parts of the General Public License.  Of course, your program's commands
     662might be different; for a GUI interface, you would use an "about box".
     663
     664  You should also get your employer (if you work as a programmer) or school,
     665if any, to sign a "copyright disclaimer" for the program, if necessary.
     666For more information on this, and how to apply and follow the GNU GPL, see
     667<http://www.gnu.org/licenses/>.
     668
     669  The GNU General Public License does not permit incorporating your program
     670into proprietary programs.  If your program is a subroutine library, you
     671may consider it more useful to permit linking proprietary applications with
     672the library.  If this is what you want to do, use the GNU Lesser General
     673Public License instead of this License.  But first, please read
     674<http://www.gnu.org/philosophy/why-not-lgpl.html>.
  • vendor/gnumake/current/ChangeLog

    r900 r1989  
     12008-09-30  Eli Zaretskii  <[email protected]>
     2
     3        * build_w32.bat (GCCBuild): Use "-gdwarf-2 -g3" instead of
     4        "-gstabs+ -ggdb3".
     5
     6        * w32/subproc/build.bat (GCCBuild): Likewise.
     7
     82008-09-30  David Russo  <[email protected]>  (tiny change)
     9
     10        * job.c (construct_command_argv_internal): Avoid extra backslash
     11        in batch-mode Unixy shells.  Under DB_JOBS, display the contents
     12        of the batch file.
     13
     142008-05-31  Eli Zaretskii  <[email protected]>
     15
     16        * README.W32.template: Remove obsolete text about non-support for
     17        -jN without Unixy shell.  Remove obsolete text about not supplying
     18        Visual Studio project files (we do supply them).  Modify text to
     19        prefer GCC builds to MSC builds.
     20
     212008-04-02  Ralf Wildenhues  <[email protected]>
     22
     23        * doc/make.texi (Empty Targets): Fix typo.
     24
     252008-03-27  Paul Smith  <[email protected]>
     26
     27        Fix Savannah bug #22379:
     28        * ar.c (ar_glob_match): Zero the allocated structure.
     29        * read.c (parse_file_seq): Ditto.
     30
     312008-03-08  Brian Dessent  <[email protected]>
     32
     33        * maintMakefile: Update Translation Project location.
     34
     352008-01-26  Eli Zaretskii  <[email protected]>
     36
     37        * variable.c (target_environment): Don't use shell_var if its
     38        `value' field is NULL.
     39
     402007-12-22  Eli Zaretskii  <[email protected]>
     41
     42        Suggested by Juan Manuel Guerrero <[email protected]>:
     43
     44        * Makefile.DOS.template (info_TEXINFOS): Remove unused variable.
     45        (TEXINFOS): Value changed to `doc/make.texi'.
     46        (.SUFFIXES): Use .texi instead of .texinfo.
     47        (make.info, make.dvi): Depend on doc/make.texi.
     48        (.texi.info): New target, instead of ".texinfo.info".  Change -I
     49        switch to $(MAKEINFO) to look in doc/.  Use --no-split.
     50        (.texi): New target, instead of ".texinfo".  Change -I switch to
     51        $(MAKEINFO) to look in doc/.  Use --no-split.
     52        (.texi.dvi): New target, instead of ".texinfo.dvi".  Change -I
     53        switch to $(MAKEINFO) to look in doc/.
     54        (install-info-am, uninstall-info): Don't look for "*.i[0-9]" and
     55        "*.i[0-9][0-9]" (due to --no-split above).
     56        (noinst_TEXINFOS, TEXI2HTML, TEXI2HTML_FLAGS): New variables.
     57        (html, make_1.html): New targets.
     58        (.PHONY): Add "html".
     59        (.SUFFIXES): Add .html.
     60
     612007-12-22  Juan Manuel Guerrero  <[email protected]>  (tiny change)
     62
     63        * configh.dos.template [__DJGPP__]: Replace HAVE_SYS_SIGLIST with
     64        HAVE_DECL_SYS_SIGLIST.
     65
     66        * job.c (child_execute_job): Remove __MSDOS__ because MSDOS/DJGPP
     67        build does not use child_execute_job.
     68
     69        * variable.c (define_automatic_variables) [__MSDOS__]: Always
     70        export the SHELL environment variable to the child.
     71
     722007-12-22  Eli Zaretskii  <[email protected]>
     73
     74        * config.h.W32: Include sys/types.h.
     75        [!_PID_T_] (pid_t): Define only if not already defined by sys/types.h.
     76
     77        * vpath.c (construct_vpath_list) [HAVE_DOS_PATHS]: Support VPATH
     78        values that use `:' in drive letters, when PATH_SEPARATOR_CHAR is
     79        also `:'.
     80
     812007-11-04  Paul Smith  <[email protected]>
     82
     83        * doc/make.texi: Convert references to "commands", "command
     84        lines", and "command script" to "recipe".
     85        * NEWS: Ditto.
     86        * commands.c, file.c, job.c, remake.c, read.c, variable.c, main.c:
     87        Ditto.
     88
     892007-10-27  Bruno Haible  <[email protected]>
     90
     91        * remake.c (f_mtime): Print time difference values between 100 and
     92        ULONG_MAX in fixed-point notation rather than in exponention notation.
     93
     942007-10-12  Eli Zaretskii  <[email protected]>
     95
     96        * variable.c (do_variable_definition): Allow $(SHELL) to expand to
     97        a more complex value than a simple shell: if it's not a default
     98        shell now then expand it and see if is a default shell then.
     99
     1002007-10-10  Eli Zaretskii  <[email protected]>
     101
     102        * dir.c (find_directory) [WINDOWS32]: Remove trailing slashes from
     103        pathnames, with const strings.
     104        * build_w32.bat [WINDOWS32]: If no config.h.W32 exists, create one
     105        from the template (used for building from CVS, not a dist).
     106
     1072007-10-10  Paul Smith  <[email protected]>
     108
     109        * make.h: Add a prototype for w32_kill() (change suggested by
     110        Yongwei Wu <[email protected]>).
     111
     1122007-09-21  Eli Zaretskii  <[email protected]>
     113
     114        * w32/pathstuff.c (convert_Path_to_windows32): Handle quoted
     115        directories in Path.
     116
     1172007-09-12  Paul Smith  <[email protected]>
     118
     119        * doc/make.texi: Applied wording cleanups from Savannah patch #6195.
     120        Provided by Diego Biurrun <[email protected]>
     121        (Complex Makefile): Remove .PHONY setting for tar: patch #6196.
     122        Provided by Diego Biurrun <[email protected]>
     123
     1242007-09-11  Paul Smith  <[email protected]>
     125
     126        * doc/make.texi (Special Variables): Moved this into the "How to
     127        Use Variables" chapter.  Added a table entry for .RECIPEPREFIX.
     128        (MAKEFILE_LIST) No longer a section; this was added into the
     129        "Special Variables" section.
     130        (Rule Introduction): Reference .RECIPEPREFIX.
     131        (Simple Makefile): Ditto.
     132        (Rule Syntax): Ditto.
     133        (Command Syntax): Ditto.
     134        (Error Messages): Ditto.
     135
     1362007-09-10  Paul Smith  <[email protected]>
     137
     138        * commands.c (print_commands): Don't print an extra line in the
     139        command scripts.  Prefix the command scripts with cmd_prefix, not \t.
     140
     141        * read.c (construct_include_path): Add the full string to the cache; we
     142        were chopping the last char.
     143
     144        * NEWS: Announce the .RECIPEPREFIX special variable.
     145        * variable.c (lookup_special_var): Rename from handle_special_var().
     146        (lookup_variable): Call the new name.
     147        (set_special_var): New function: handle setting of special variables.
     148        When setting .RECIPEPREFIX, reset the cmd_prefix global variable.
     149        (do_variable_definition): Call it.
     150        * make.h (RECIPEPREFIX_DEFAULT): Define the default command prefix char.
     151        (RECIPEPREFIX_NAME): Define the command prefix special variable name.
     152        * main.c (main): Create the .RECIPEPREFIX special variable.
     153        * read.c (eval): Remove the cmd_prefix characters from the command
     154        scripts here, so they're not stored in the commands array at all,
     155        rather than waiting and stripping them out during command construction.
     156        * job.c (construct_command_argv_internal): Don't skip cmd_prefix here.
     157
     1582007-08-15  Paul Smith  <[email protected]>
     159
     160        * doc/make.texi (GNU Free Documentation License): The fdl.texi
     161        file has had the section info removed, so add some to make.texi
     162        before we include it.
     163
     1642007-08-15  Icarus Sparry  <[email protected]>
     165
     166        * remake.c (check_dep): Reset the target state for intermediate
     167        files.  They might have been considered before but not updated
     168        then (order-only for example) but they will be this time.
     169        Fixes Savannah bug #'s 3330 and 15919.
     170
     1712007-07-21  Eli Zaretskii  <[email protected]>
     172
     173        Fix Savannah bug #20549:
     174        * function.c (func_shell): Call construct_command_argv with zero
     175        value of FLAGS.
     176        * job.c (construct_command_argv_internal): New argument FLAGS; all
     177        callers changed.
     178        [WINDOWS32]: If FLAGS has the COMMANDS_RECURSE bit set, ignore
     179        just_print_flag.
     180        * job.h (construct_command_argv_internal): Update prototype.
     181
     1822007-07-13  Paul Smith  <[email protected]>
     183
     184        * file.c (expand_deps): Use variable_buffer as the start of the
     185        buffer, not the original pointer (in case it was reallocated).
     186        Fix suggested by Rafi Einstein <[email protected]>.
     187        Fixes Savannah bug #20452.
     188
     1892007-07-04  Paul Smith  <[email protected]>
     190
     191        * (ALL FILES): Update to GPLv3.
     192        * (ALL FILES): Update copyright for 2007.
     193
     194        * main.c (print_version): Move the host type info to the second line.
     195
     1962007-06-29  Thiemo Seufer  <[email protected]>
     197
     198        * maintMakefile: Update Translation Project location.
     199
     2002007-06-13  Paul Smith  <[email protected]>
     201
     202        * doc/make.texi (Reading Makefiles): "Expansion of deferred" ->
     203        "Expansion of a deferred"
     204        Fixes Savannah bug #20018.
     205
     206        * expand.c (variable_expand_for_file): Preserve the value of
     207        reading_file rather than setting it to 0 at the end.
     208        Fixes Savannah bug #20033.
     209
    12102007-05-11  Paul Smith  <[email protected]>
    2211
     
    29553164
    29563165
    2957 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     3166Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    29583167Foundation, Inc.
    29593168This file is part of GNU Make.
     
    29613170GNU Make is free software; you can redistribute it and/or modify it under the
    29623171terms of the GNU General Public License as published by the Free Software
    2963 Foundation; either version 2, or (at your option) any later version.
     3172Foundation; either version 3 of the License, or (at your option) any later
     3173version.
    29643174
    29653175GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    29683178
    29693179You should have received a copy of the GNU General Public License along with
    2970 GNU Make; see the file COPYING.  If not, write to the Free Software
    2971 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     3180this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/ChangeLog.1

    r900 r1989  
    49844984
    49854985Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    4986 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
     49861998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation,
     4987Inc.
    49874988This file is part of GNU Make.
    49884989
    49894990GNU Make is free software; you can redistribute it and/or modify it under the
    49904991terms of the GNU General Public License as published by the Free Software
    4991 Foundation; either version 2, or (at your option) any later version.
     4992Foundation; either version 3 of the License, or (at your option) any later
     4993version.
    49924994
    49934995GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    49964998
    49974999You should have received a copy of the GNU General Public License along with
    4998 GNU Make; see the file COPYING.  If not, write to the Free Software
    4999 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     5000this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/ChangeLog.2

    r900 r1989  
    66406640
    66416641Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
    6642 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
     66422001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
    66436643This file is part of GNU Make.
    66446644
    66456645GNU Make is free software; you can redistribute it and/or modify it under the
    66466646terms of the GNU General Public License as published by the Free Software
    6647 Foundation; either version 2, or (at your option) any later version.
     6647Foundation; either version 3 of the License, or (at your option) any later
     6648version.
    66486649
    66496650GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    66526653
    66536654You should have received a copy of the GNU General Public License along with
    6654 GNU Make; see the file COPYING.  If not, write to the Free Software
    6655 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     6655this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/Makefile.DOS.template

    r900 r1989  
    33#
    44# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    5 # 2004, 2005, 2006 Free Software Foundation, Inc.
     5# 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    66# This file is part of GNU Make.
    77#
    8 # GNU Make is free software; you can redistribute it and/or modify it under the
    9 # terms of the GNU General Public License as published by the Free Software
    10 # Foundation; either version 2, or (at your option) any later version.
     8# GNU Make is free software; you can redistribute it and/or modify it under
     9# the terms of the GNU General Public License as published by the Free Software
     10# Foundation; either version 3 of the License, or (at your option) any later
     11# version.
    1112#
    1213# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    14 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     15# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     16# details.
    1517#
    1618# You should have received a copy of the GNU General Public License along with
    17 # GNU Make; see the file COPYING.  If not, write to the Free Software
    18 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     19# this program.  If not, see <http://www.gnu.org/licenses/>.
    1920
    2021SHELL = /bin/sh
     
    8384make_LDADD =      glob/libglob.a
    8485
    85 info_TEXINFOS = make.texinfo
    8686man_MANS =      make.1
    8787
     
    118118INFO_DEPS = make.info
    119119DVIS = make.dvi
    120 TEXINFOS = make.texinfo
     120TEXINFOS = doc/make.texi
     121noinst_TEXINFOS = doc/fdl.texi doc/make-stds.texi
    121122man1dir = $(mandir)/man1
    122123MANS = $(man_MANS)
     124
     125TEXI2HTML = texi2html
     126TEXI2HTML_FLAGS = -split_chapter
    123127
    124128NROFF = nroff
     
    136140
    137141.SUFFIXES:
    138 .SUFFIXES: .c .dvi .info .o .obj .ps .texinfo .tex
     142.SUFFIXES: .c .dvi .info .o .obj .ps .texi .tex .html
    139143
    140144mostlyclean-hdr:
     
    186190        $(LINK) $(make_LDFLAGS) $(make_OBJECTS) $(make_LDADD) $(LIBS)
    187191
    188 make.info: make.texinfo
    189 make.dvi: make.texinfo
     192# Documentation
     193
     194make.info: doc/make.texi
     195make.dvi: doc/make.texi
    190196
    191197
    192198DVIPS = dvips
    193199
    194 .texinfo.info:
     200.texi.info:
    195201        @command.com /c if exist make.info* del make.info*
    196202        @command.com /c if exist make.i* del make.i*
    197         $(MAKEINFO) -I$(srcdir) $< -o ./$@
    198 
    199 .texinfo:
     203        $(MAKEINFO) -I$(srcdir)/doc --no-split $< -o ./$@
     204
     205.texi:
    200206        @command.com /c if exist make.info* del make.info*
    201207        @command.com /c if exist make.i* del make.i*
    202         $(MAKEINFO) -I$(srcdir) $< -o ./$@
    203 
    204 .texinfo.dvi:
    205         TEXINPUTS="$(srcdir);$$TEXINPUTS"    MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
    206 
     208        $(MAKEINFO) -I$(srcdir)/doc --no-split $< -o ./$@
     209
     210.texi.dvi:
     211        TEXINPUTS="$(srcdir)/doc;$$TEXINPUTS"    MAKEINFO='$(MAKEINFO) -I $(srcdir)/doc' $(TEXI2DVI) $<
    207212
    208213.dvi.ps:
    209214        $(DVIPS) $< -o $@
     215
     216# Other documentation formats
     217
     218html: make_1.html
     219
     220make_1.html: $(TEXINFOS) $(noinst_TEXINFOS)
     221        $(TEXI2HTML) $(TEXI2HTML_FLAGS) $(srcdir)/doc/make.texi
    210222
    211223install-info-am: $(INFO_DEPS)
    212224        @$(NORMAL_INSTALL)
    213225        $(mkinstalldirs) $(DESTDIR)$(infodir)
    214         @for file in $(INFO_DEPS) make.i; do    d=$(srcdir);    for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9] $$file[0-9] $$file[0-9][0-9]`; do      if test -f $$d/$$ifile; then        echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; else : ; fi;    done;  done
     226        @for file in $(INFO_DEPS); do    d=$(srcdir);    for ifile in `cd $$d && echo $$file`; do      if test -f $$d/$$ifile; then        echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; else : ; fi;    done;  done
    215227        @$(POST_INSTALL)
    216228        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then    for file in $(INFO_DEPS); do      echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";     install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;   done;  else : ; fi
     
    220232        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then    ii=yes;  else ii=; fi;  for file in $(INFO_DEPS); do    test -z $ii || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file;  done
    221233        $(NORMAL_UNINSTALL)
    222         for file in $(INFO_DEPS) make.i; do    (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9] $$file[0-9] $$file[0-9][0-9]);  done
     234        for file in $(INFO_DEPS); do (cd $(DESTDIR)$(infodir) && rm -f $$file);  done
    223235
    224236dist-info: $(INFO_DEPS)
     
    235247
    236248maintainer-clean-aminfo:
    237         for i in $(INFO_DEPS) make.i; do rm -f `eval echo $$i*`; done
     249        for i in $(INFO_DEPS); do rm -f $$i*; done
    238250
    239251install-man1:
     
    455467install-exec install-data install uninstall all installdirs \
    456468mostlyclean-generic distclean-generic clean-generic \
    457 maintainer-clean-generic clean mostlyclean distclean maintainer-clean
     469maintainer-clean-generic clean mostlyclean distclean maintainer-clean \
     470html
    458471
    459472
  • vendor/gnumake/current/Makefile.am

    r900 r1989  
    11# This is a -*-Makefile-*-, or close enough
    22#
    3 # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    4 # Free Software Foundation, Inc.
     3# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     4# 2007 Free Software Foundation, Inc.
    55# This file is part of GNU Make.
    66#
    7 # GNU Make is free software; you can redistribute it and/or modify it under the
    8 # terms of the GNU General Public License as published by the Free Software
    9 # Foundation; either version 2, or (at your option) any later version.
     7# GNU Make is free software; you can redistribute it and/or modify it under
     8# the terms of the GNU General Public License as published by the Free Software
     9# Foundation; either version 3 of the License, or (at your option) any later
     10# version.
    1011#
    1112# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    12 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    13 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     14# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     15# details.
    1416#
    1517# You should have received a copy of the GNU General Public License along with
    16 # GNU Make; see the file COPYING.  If not, write to the Free Software
    17 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     18# this program.  If not, see <http://www.gnu.org/licenses/>.
    1819
    1920AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news
  • vendor/gnumake/current/Makefile.ami

    r501 r1989  
    55#
    66# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    7 # 2005, 2006 Free Software Foundation, Inc.
     7# 2005, 2006, 2007 Free Software Foundation, Inc.
    88# This file is part of GNU Make.
    99#
    10 # GNU Make is free software; you can redistribute it and/or modify it under the
    11 # terms of the GNU General Public License as published by the Free Software
    12 # Foundation; either version 2, or (at your option) any later version.
     10# GNU Make is free software; you can redistribute it and/or modify it under
     11# the terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 3 of the License, or (at your option) any later
     13# version.
    1314#
    1415# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    15 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    16 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     16# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     17# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     18# details.
    1719#
    1820# You should have received a copy of the GNU General Public License along with
    19 # GNU Make; see the file COPYING.  If not, write to the Free Software
    20 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     21# this program.  If not, see <http://www.gnu.org/licenses/>.
    2122
    2223#
  • vendor/gnumake/current/NEWS

    r900 r1989  
    1515* Compiling GNU make now requires a conforming ISO C 1989 compiler and
    1616  standard runtime library.
     17
     18* New special variable: .RECIPEPREFIX allows you to reset the recipe
     19  introduction character from the default (TAB) to something else.  The
     20  first character of this variable value is the new recipe introduction
     21  character.  If the variable is set to the empty string, TAB is used
     22  again.  It can be set and reset at will; rules will be parsed
     23  according to the current value.
    1724
    1825
     
    5360
    5461* WARNING: Backward-incompatibility!
     62
    5563  In order to comply with POSIX, the way in which GNU make processes
    56   backslash-newline sequences in command strings has changed.  If your
    57   makefiles use backslash-newline sequences inside of single-quoted
    58   strings in command scripts you will be impacted by this change.  See
    59   the GNU make manual subsection "Splitting Command Lines" (node
    60   "Splitting Lines"), in section "Command Syntax", chapter "Writing the
    61   Commands in Rules", for details.
     64  backslash-newline sequences in recipes has changed.  If your makefiles
     65  use backslash-newline sequences inside of single-quoted strings in
     66  recipes you will be impacted by this change.  See the GNU make manual
     67  subsection "Splitting Recipe Lines" (node "Splitting Lines"), in
     68  section "Recipe Syntax", chapter "Writing Recipe in Rules", for
     69  details.
    6270
    6371* WARNING: Backward-incompatibility!
     
    6876  backslash is now preserved, so you'll need to remove it.
    6977
    70 * New command-line option: -L (--check-symlink-times).  On systems that
     78* New command line option: -L (--check-symlink-times).  On systems that
    7179  support symbolic links, if this option is given then GNU make will
    7280  use the most recent modification time of any symbolic links that are
     
    129137
    130138* Changes made for POSIX compatibility:
    131    - Only touch targets (under -t) if they have at least one command.
     139   - Only touch targets (under -t) if they have a recipe.
    132140   - Setting the SHELL make variable does NOT change the value of the
    133141     SHELL environment variable given to programs invoked by make.  As
     
    203211  makefiles at that moment.
    204212
    205 * A new command-line option is defined, -B or --always-make.  If
     213* A new command line option is defined, -B or --always-make.  If
    206214  specified GNU make will consider all targets out-of-date even if they
    207215  would otherwise not be.
     
    493501* The `MAKEFLAGS' variable (in the environment or in a makefile) can now
    494502  contain variable definitions itself; these are treated just like
    495   command-line variable definitions.  Make will automatically insert any
     503  command line variable definitions.  Make will automatically insert any
    496504  variable definitions from the environment value of `MAKEFLAGS' or from
    497505  the command line, into the `MAKEFLAGS' value exported to children.  The
     
    502510
    503511* If `.DELETE_ON_ERROR' appears as a target, Make will delete the target of
    504   a rule if it has changed when its commands exit with a nonzero status,
    505   just as when the commands get a signal.
     512  a rule if it has changed when its recipe exits with a nonzero status,
     513  just as when the recipe gets a signal.
    506514
    507515* The automatic variable `$+' is new.  It lists all the dependencies like
     
    513521  dependencies to limit their effects to those files.  If a file appears as
    514522  a dependency of `.IGNORE', then errors will be ignored while running the
    515   commands to update that file.  Likewise if a file appears as a dependency
    516   of `.SILENT', then the commands to update that file will not be printed
    517   before they are run.  (This change was made to conform to POSIX.2.)
     523  recipe to update that file.  Likewise if a file appears as a dependency
     524  of `.SILENT', then the recipe to update that file will not be printed
     525  before it is run.  (This change was made to conform to POSIX.2.)
    518526
    519527
     
    566574  Thus the value (in this release) is something like `3.69' or `3.69-Customs'.
    567575
    568 * Commands in an invocation of the `shell' function are no longer run with
    569   a modified environment like target commands are.  As in versions before
     576* Commands in an invocation of the `shell' function are no longer run
     577  with a modified environment like recipes are.  As in versions before
    570578  3.68, they now run with the environment that `make' started with.  We
    571579  have reversed the change made in version 3.68 because it turned out to
     
    574582        export variable = $(shell echo value)
    575583
    576   When Make attempted to put this variable in the environment for a target
    577   command, it would try expand the value by running the shell command
     584  When Make attempted to put this variable in the environment for a
     585  recipe, it would try expand the value by running the shell command
    578586  `echo value'.  In version 3.68, because it constructed an environment
    579587  for that shell command in the same way, Make would begin to go into an
    580588  infinite loop and then get a fatal error when it detected the loop.
    581589
    582 * The commands given for `.DEFAULT' are now used for phony targets with no
    583   commands.
     590* The recipe given for `.DEFAULT' is now used for phony targets with no
     591  recipe.
    584592
    585593
     
    606614
    607615* Commands in an invocation of the `shell' function are now run with a
    608   modified environment like target commands are, so you can use `export' et
    609   al to set up variables for them.  They used to run with the environment
     616  modified environment like recipes are, so you can use `export' et al
     617  to set up variables for them.  They used to run with the environment
    610618  that `make' started with.
    611619
     
    655663
    656664* Multiple double-colon rules for the same target will no longer have their
    657   commands run simultaneously under -j, as this could result in the two
    658   commands trying to change the file at the same time and interfering with
     665  recipes run simultaneously under -j, as this could result in the two
     666  recipes trying to change the file at the same time and interfering with
    659667  one another.
    660668
     
    668676
    669677* There are two new directives: `export' and `unexport'.  All variables are
    670   no longer automatically put into the environments of the commands that
     678  no longer automatically put into the environments of the recipe lines that
    671679  Make runs.  Instead, only variables specified on the command line or in
    672680  the environment are exported by default.  To export others, use:
     
    683691  for a full description.
    684692
    685 * The commands from the `.DEFAULT' special target are only applied to
    686   targets which have no rules at all, not all targets with no commands.
     693* The recipe from the `.DEFAULT' special target is only applied to
     694  targets which have no rules at all, not all targets with no recipe.
    687695  This change was made for compatibility with Unix make.
    688696
     
    737745  We still recommend that you use `.cc' instead.
    738746
    739 * If commands are given too many times for a single target,
    740   the last set given is used, and a warning message is printed.
     747* If a recipe is given too many times for a single target, the last one
     748  given is used, and a warning message is printed.
    741749
    742750* Error messages about makefiles are in standard GNU error format,
     
    756764* Archives on AIX now supposedly work.
    757765
    758 * When the commands specified for .DEFAULT are used to update a target,
     766* When the recipes specified for .DEFAULT are used to update a target,
    759767  the $< automatic variable is given the same value as $@ for that target.
    760768  This is how Unix make behaves, and this behavior is mandated by POSIX.2.
     
    785793Version 3.55
    786794
    787 * There is now a Unix man page for GNU Make.  It is certainly not a replacement
    788 for the Texinfo manual, but it documents the basic functionality and the
    789 switches.  For full documentation, you should still read the Texinfo manual.
    790 Thanks to Dennis Morse of Stanford University for contributing the initial
    791 version of this.
    792 
    793 * Variables which are defined by default (e.g., `CC') will no longer be put
    794 into the environment for child processes.  (If these variables are reset by the
    795 environment, makefiles, or the command line, they will still go into the
    796 environment.)
    797 
    798 * Makefiles which have commands but no dependencies (and thus are always
     795* There is now a Unix man page for GNU Make.  It is certainly not a
     796  replacement for the Texinfo manual, but it documents the basic
     797  functionality and the switches.  For full documentation, you should
     798  still read the Texinfo manual.  Thanks to Dennis Morse of Stanford
     799  University for contributing the initial version of this.
     800
     801* Variables which are defined by default (e.g., `CC') will no longer be
     802  put into the environment for child processes.  (If these variables are
     803  reset by the environment, makefiles, or the command line, they will
     804  still go into the environment.)
     805
     806* Makefiles which have recipes but no dependencies (and thus are always
    799807  considered out of date and in need of remaking), will not be remade (if they
    800808  were being remade only because they were makefiles).  This means that GNU
     
    809817
    810818* When removing intermediate files, only one `rm' command line is printed,
    811 listing all file names.
     819  listing all file names.
    812820
    813821* There are now automatic variables `$(^D)', `$(^F)', `$(?D)', and `$(?F)'.
    814 These are the directory-only and file-only versions of `$^' and `$?'.
     822  These are the directory-only and file-only versions of `$^' and `$?'.
    815823
    816824* Library dependencies given as `-lNAME' will use "libNAME.a" in the current
    817 directory if it exists.
     825  directory if it exists.
    818826
    819827* The automatic variable `$($/)' is no longer defined.
    820828
    821 * Leading `+' characters on a command line make that line be executed even
    822 under -n, -t, or -q (as if the line contained `$(MAKE)').
    823 
    824 * For command lines containing `$(MAKE)', `${MAKE}', or leading `+' characters,
    825 only those lines are executed, not their entire rules.
    826 (This is how Unix make behaves for lines containing `$(MAKE)' or `${MAKE}'.)
     829* Leading `+' characters on a recipe line make that line be executed even
     830  under -n, -t, or -q (as if the line contained `$(MAKE)').
     831
     832* For recipe lines containing `$(MAKE)', `${MAKE}', or leading `+' characters,
     833  only those lines are executed, not the entire recipe.
     834  (This is how Unix make behaves for lines containing `$(MAKE)' or `${MAKE}'.)
    827835
    828836
     
    832840
    833841* The `-p' output has been changed so it can be used as a makefile.
    834 (All information that isn't specified by makefiles is prefaced with comment
    835 characters.)
     842  (All information that isn't specified by makefiles is prefaced with comment
     843  characters.)
    836844
    837845
     
    839847
    840848* The % character can be quoted with backslash in implicit pattern rules,
    841 static pattern rules, `vpath' directives, and `patsubst', `filter', and
    842 `filter-out' functions.  A warning is issued if a `vpath' directive's
    843 pattern contains no %.
     849  static pattern rules, `vpath' directives, and `patsubst', `filter', and
     850  `filter-out' functions.  A warning is issued if a `vpath' directive's
     851  pattern contains no %.
    844852
    845853* The `wildcard' variable expansion function now expands ~ and ~USER.
    846854
    847 * Messages indicating failed commands now contain the target name:
     855* Messages indicating failed recipe lines now contain the target name:
    848856        make: *** [target] Error 1
    849857
    850858* The `-p' output format has been changed somewhat to look more like
    851 makefile rules and to give all information that Make has about files.
     859  makefile rules and to give all information that Make has about files.
    852860
    853861
     
    860868
    861869* When the `-w' switch is in effect, and Make has updated makefiles,
    862 it will write a `Leaving directory' messagfe before re-executing itself.
    863 This makes the `directory change tracking' changes to Emacs's compilation
    864 commands work properly.
     870  it will write a `Leaving directory' message before re-executing itself.
     871  This makes the `directory change tracking' changes to Emacs's compilation
     872  commands work properly.
    865873
    866874
     
    868876
    869877* The automatic variable `$*' is now defined for explicit rules,
    870 as it is in Unix make.
     878  as it is in Unix make.
    871879
    872880
     
    874882
    875883* The `-j' switch is now put in the MAKEFLAGS and MFLAGS variables when
    876 specified without an argument (indicating infinite jobs).
    877 The `-l' switch is not always put in the MAKEFLAGS and MFLAGS variables.
    878 
    879 * Make no longer checks hashed directories after running commands.
    880 The behavior implemented in 3.41 caused too much slowdown.
     884  specified without an argument (indicating infinite jobs).
     885  The `-l' switch is not always put in the MAKEFLAGS and MFLAGS variables.
     886
     887* Make no longer checks hashed directories after running recipes.
     888  The behavior implemented in 3.41 caused too much slowdown.
    881889
    882890
     
    884892
    885893* A dependency is NOT considered newer than its dependent if
    886 they have the same modification time.  The behavior implemented
    887 in 3.43 conflicts with RCS.
     894  they have the same modification time.  The behavior implemented
     895  in 3.43 conflicts with RCS.
    888896
    889897
     
    893901
    894902* A dependency is considered newer than its dependent if
    895 they have the same modification time.
     903  they have the same modification time.
    896904
    897905
     
    899907
    900908* The variables F77 and F77FLAGS are now set by default to $(FC) and
    901 $(FFLAGS).  Makefiles designed for System V make may use these variables in
    902 explicit rules and expect them to be set.  Unfortunately, there is no way to
    903 make setting these affect the Fortran implicit rules unless FC and FFLAGS
    904 are not used (and these are used by BSD make).
     909  $(FFLAGS).  Makefiles designed for System V make may use these variables in
     910  explicit rules and expect them to be set.  Unfortunately, there is no way to
     911  make setting these affect the Fortran implicit rules unless FC and FFLAGS
     912  are not used (and these are used by BSD make).
    905913
    906914
    907915Version 3.41
    908916
    909 * Make now checks to see if its hashed directories are changed by commands.
    910 Other makes that hash directories (Sun, 4.3 BSD) don't do this.
     917* Make now checks to see if its hashed directories are changed by recipes.
     918  Other makes that hash directories (Sun, 4.3 BSD) don't do this.
    911919
    912920
     
    919927
    920928* A file beginning with a dot can be the default target if it also contains
    921 a slash (e.g., `../bin/foo').  (Unix make allows this as well.)
     929  a slash (e.g., `../bin/foo').  (Unix make allows this as well.)
    922930
    923931
     
    929937
    930938* Minimal support for Microport System V (a 16-bit machine and a
    931 brain-damaged compiler).  This has even lower priority than other USG
    932 support, so if it gets beyond trivial, I will take it out completely.
     939  brain-damaged compiler).  This has even lower priority than other USG
     940  support, so if it gets beyond trivial, I will take it out completely.
    933941
    934942* Revamped default implicit rules (not much visible change).
     
    942950
    943951* A variable reference like `$(foo:a=b)', if `a' contains a `%', is
    944 equivalent to `$(patsubst a,b,$(foo))'.
    945 
    946 * Defining .DEFAULT with no deps or commands clears its commands.
    947 
    948 * New default implicit rules for .S (cpp, then as), and .sh (copy and make
    949 executable).  All default implicit rules that use cpp (even indirectly), use
    950 $(CPPFLAGS).
     952  equivalent to `$(patsubst a,b,$(foo))'.
     953
     954* Defining .DEFAULT with no deps or recipe clears its recipe.
     955
     956* New default implicit rules for .S (cpp, then as), and .sh (copy and
     957  make executable).  All default implicit rules that use cpp (even
     958  indirectly), use $(CPPFLAGS).
    951959
    952960
     
    959967
    960968* New option: "-l LOAD" says not to start any new jobs while others are
    961 running if the load average is not below LOAD (a floating-point number).
     969  running if the load average is not below LOAD (a floating-point number).
    962970
    963971* There is support in place for implementations of remote command execution
    964 in Make.  See the file remote.c.
     972  in Make.  See the file remote.c.
    965973
    966974
     
    968976
    969977* No more than 10 directories will be kept open at once.
    970 (This number can be changed by redefining MAX_OPEN_DIRECTORIES in dir.c.)
     978  (This number can be changed by redefining MAX_OPEN_DIRECTORIES in dir.c.)
    971979
    972980
     
    974982
    975983* Archive files will have their modification times recorded before doing
    976 anything that might change their modification times by updating an archive
    977 member.
     984  anything that might change their modification times by updating an archive
     985  member.
    978986
    979987
     
    986994
    987995* The recursion level indications in error messages are much shorter than
    988 they were in version 3.14.
     996  they were in version 3.14.
    989997
    990998
     
    9941002
    9951003* Included makefiles can determine the default goal target.
    996 (System V Make does it this way, so we are being compatible).
     1004  (System V Make does it this way, so we are being compatible).
    9971005
    9981006
     
    10001008
    10011009* Variables that are defaults built into Make will not be put in the
    1002 environment for children.  This just saves some environment space and,
    1003 except under -e, will be transparent to sub-makes.
     1010  environment for children.  This just saves some environment space and,
     1011  except under -e, will be transparent to sub-makes.
    10041012
    10051013* Error messages from sub-makes will indicate the level of recursion.
    10061014
    10071015* Hopefully some speed-up for large directories due to a change in the
    1008 directory hashing scheme.
     1016  directory hashing scheme.
    10091017
    10101018* One child will always get a standard input that is usable.
     
    10161024
    10171025* Count parentheses inside expansion function calls so you can
    1018 have nested calls: `$(sort $(foreach x,a b,$(x)))'.
     1026  have nested calls: `$(sort $(foreach x,a b,$(x)))'.
    10191027
    10201028
     
    10331041* Makefiles will be updated and re-read if necessary.
    10341042
    1035 * Can now run several commands at once (parallelism), -j option.
     1043* Can now run several recipes at once (parallelism), -j option.
    10361044
    10371045* Error messages will contain the level of Make recursion, if any.
    10381046
    10391047* The `MAKEFLAGS' and `MFLAGS' variables will be scanned for options after
    1040 makefiles are read.
    1041 
    1042 * A double-colon rule with no dependencies will always have its commands run.
    1043 (This is how both the BSD and System V versions of Make do it.)
     1048  makefiles are read.
     1049
     1050* A double-colon rule with no dependencies will always have its recipe run.
     1051  (This is how both the BSD and System V versions of Make do it.)
    10441052
    10451053
     
    10511059-------------------------------------------------------------------------------
    10521060Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    1053 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     10611998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    10541062Foundation, Inc.
    10551063This file is part of GNU Make.
     
    10571065GNU Make is free software; you can redistribute it and/or modify it under the
    10581066terms of the GNU General Public License as published by the Free Software
    1059 Foundation; either version 2, or (at your option) any later version.
     1067Foundation; either version 3 of the License, or (at your option) any later
     1068version.
    10601069
    10611070GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    10641073
    10651074You should have received a copy of the GNU General Public License along with
    1066 GNU Make; see the file COPYING.  If not, write to the Free Software
    1067 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     1075this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/NMakefile.template

    r900 r1989  
    55#
    66# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    7 # 2006 Free Software Foundation, Inc.
     7# 2006, 2007 Free Software Foundation, Inc.
    88# This file is part of GNU Make.
    99#
    10 # GNU Make is free software; you can redistribute it and/or modify it under the
    11 # terms of the GNU General Public License as published by the Free Software
    12 # Foundation; either version 2, or (at your option) any later version.
     10# GNU Make is free software; you can redistribute it and/or modify it under
     11# the terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 3 of the License, or (at your option) any later
     13# version.
    1314#
    1415# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    15 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    16 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     16# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     17# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     18# details.
    1719#
    1820# You should have received a copy of the GNU General Public License along with
    19 # GNU Make; see the file COPYING.  If not, write to the Free Software
    20 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     21# this program.  If not, see <http://www.gnu.org/licenses/>.
    2122
    2223LINK = link
  • vendor/gnumake/current/README.Amiga

    r501 r1989  
    6464-------------------------------------------------------------------------------
    6565Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    66 2005, 2006 Free Software Foundation, Inc.
     662005, 2006, 2007 Free Software Foundation, Inc.
    6767This file is part of GNU Make.
    6868
    6969GNU Make is free software; you can redistribute it and/or modify it under the
    7070terms of the GNU General Public License as published by the Free Software
    71 Foundation; either version 2, or (at your option) any later version.
     71Foundation; either version 3 of the License, or (at your option) any later
     72version.
    7273
    7374GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    7677
    7778You should have received a copy of the GNU General Public License along with
    78 GNU Make; see the file COPYING.  If not, write to the Free Software
    79 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     79this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/README.DOS.template

    r900 r1989  
    327327-------------------------------------------------------------------------------
    328328Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    329 2006 Free Software Foundation, Inc.
     3292006, 2007 Free Software Foundation, Inc.
    330330This file is part of GNU Make.
    331331
    332332GNU Make is free software; you can redistribute it and/or modify it under the
    333333terms of the GNU General Public License as published by the Free Software
    334 Foundation; either version 2, or (at your option) any later version.
     334Foundation; either version 3 of the License, or (at your option) any later
     335version.
    335336
    336337GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    339340
    340341You should have received a copy of the GNU General Public License along with
    341 GNU Make; see the file COPYING.  If not, write to the Free Software
    342 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     342this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/README.OS2.template

    r900 r1989  
    162162
    163163-------------------------------------------------------------------------------
    164 Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     164Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    165165This file is part of GNU Make.
    166166
    167167GNU Make is free software; you can redistribute it and/or modify it under the
    168168terms of the GNU General Public License as published by the Free Software
    169 Foundation; either version 2, or (at your option) any later version.
     169Foundation; either version 3 of the License, or (at your option) any later
     170version.
    170171
    171172GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    174175
    175176You should have received a copy of the GNU General Public License along with
    176 GNU Make; see the file COPYING.  If not, write to the Free Software
    177 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     177this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/README.W32.template

    r900 r1989  
    22It has also been used on Windows 95/98/NT, and on OS/2.
    33
    4 It builds natively with MSVC 2.x, 4.x, 5.x, 6.x, and 2003 as well as
    5 .NET 7.x and .NET 2003.
    6 
    7 It builds with the MinGW port of GCC 3.x (tested with GCC 3.4.2).
     4It builds with the MinGW port of GCC (tested with GCC 3.4.2).
     5
     6It also builds with MSVC 2.x, 4.x, 5.x, 6.x, and 2003 as well as
     7with .NET 7.x and .NET 2003.
    88
    99The Windows 32-bit port of GNU make is maintained jointly by various
     
    2828
    2929 2. Open make_msvc_net2003.vcproj in MSVS71 or MSVC71 or any compatible IDE,
    30     then build this project as usual.
     30    then build this project as usual.  There's also a solution file for
     31    Studio 2003.
    3132
    3233
     
    6970
    7071        This version of make is ported natively to Windows32 platforms
    71         (Windows NT 3.51, Windows NT 4.0, Windows 95, and Windows 98). It
    72         does not rely on any 3rd party software or add-on packages for
    73         building. The only thing needed is a version of Visual C++,
    74         which is the predominant compiler used on Windows32 platforms.
     72        (Windows NT 3.51, Windows NT 4.0, Windows 2000, Windows XP,
     73        Windows 95, and Windows 98). It does not rely on any 3rd party
     74        software or add-on packages for building. The only thing
     75        needed is a Windows compiler.  Two compilers supported
     76        officially are the MinGW port of GNU GCC, and the various
     77        versions of the Microsoft C compiler.
    7578
    7679        Do not confuse this port of GNU make with other Windows32 projects
     
    8083GNU make and sh.exe:
    8184
    82         This port prefers you have a working sh.exe somewhere on your
    83         system. If you don't have sh.exe, the port falls back to
    84         MSDOS mode for launching programs (via a batch file).
    85         The MSDOS mode style execution has not been tested that
    86         carefully though (The author uses GNU bash as sh.exe).
     85        This port prefers if you have a working sh.exe somewhere on
     86        your system. If you don't have sh.exe, the port falls back to
     87        MSDOS mode for launching programs (via a batch file).  The
     88        MSDOS mode style execution has not been tested that carefully
     89        though (The author uses GNU bash as sh.exe).
    8790
    8891        There are very few true ports of Bourne shell for NT right now.
     
    109112        A native Windows32 system with no Bourne shell will also run
    110113        in batch mode.  All command lines will be put into batch files
    111         and executed via $(COMSPEC) (%COMSPEC%).  Note that parallel
    112         builds (-j) require a working Bourne shell; they will not work
    113         with COM.
     114        and executed via $(COMSPEC) (%COMSPEC%).  However, parallel
     115        builds ARE supported with Windows shells (cmd.exe and
     116        command.com).  See the next section about some peculiarities
     117        of parallel builds on Windows.
     118
     119Support for parallel builds
     120
     121        Parallel builds (-jN) are supported in this port, with 2
     122        limitations:
     123
     124          - The number of concurrent processes has a hard limit of 64,
     125            due to the way this port implements waiting for its
     126            subprocesses;
     127
     128          - The job server method (available when Make runs on Posix
     129            platforms) is not supported, which means you must pass an
     130            explicit -jN switch to sub-Make's in a recursive Makefile.
     131            If a sub-Make does not receive an explicit -jN switch, it
     132            will default to -j1, i.e. no parallelism in sub-Make's.
    114133
    115134GNU make and Cygnus GNU Windows32 tools:
     
    172191        sh.exe.  Tests were performed on both Windows NT and Windows 95.
    173192
    174 Building GNU make on Windows NT and Windows 95/98 with Microsoft Visual C:
    175 
    176         I did not provide a Visual C project file with this port as
    177         the project file would not be considered freely distributable
    178         (or so I think). It is easy enough to create one, though, if
    179         you know how to use Visual C.
    180 
    181         I build the program statically to avoid problems locating DLL's
    182         on machines that may not have MSVC runtime installed. If you
    183         prefer, you can change make to build with shared libraries by
    184         changing /MT to /MD in the NMakefile (or in build_w32.bat).
    185 
    186         The program has not been built for non-Intel architectures (yet).
    187 
    188         I have not tried to build with any other compilers than MSVC. I
    189         have heard that this is possible though so don't be afraid to
    190         notify me of your successes!
    191 
    192193Pathnames and white space:
    193194
    194195        Unlike Unix, Windows 95/NT systems encourage pathnames which
    195196        contain white space (e.g. C:\Program Files\). These sorts of
    196         pathnames are legal under Unix too, but are never encouraged.
     197        pathnames are valid on Unix too, but are never encouraged.
    197198        There is at least one place in make (VPATH/vpath handling) where
    198199        paths containing white space will simply not work. There may be
     
    274275-------------------------------------------------------------------------------
    275276Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    276 2006 Free Software Foundation, Inc.
     2772006, 2007, 2008 Free Software Foundation, Inc.
    277278This file is part of GNU Make.
    278279
    279280GNU Make is free software; you can redistribute it and/or modify it under the
    280281terms of the GNU General Public License as published by the Free Software
    281 Foundation; either version 2, or (at your option) any later version.
     282Foundation; either version 3 of the License, or (at your option) any later
     283version.
    282284
    283285GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    286288
    287289You should have received a copy of the GNU General Public License along with
    288 GNU Make; see the file COPYING.  If not, write to the Free Software
    289 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     290this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/README.customs

    r501 r1989  
    9898
    9999-------------------------------------------------------------------------------
    100 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    101 Free Software Foundation, Inc.
     100Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free
     101Software Foundation, Inc.
    102102This file is part of GNU Make.
    103103
    104104GNU Make is free software; you can redistribute it and/or modify it under the
    105105terms of the GNU General Public License as published by the Free Software
    106 Foundation; either version 2, or (at your option) any later version.
     106Foundation; either version 3 of the License, or (at your option) any later
     107version.
    107108
    108109GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    111112
    112113You should have received a copy of the GNU General Public License along with
    113 GNU Make; see the file COPYING.  If not, write to the Free Software
    114 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     114this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/README.cvs

    r900 r1989  
    22
    33-------------------------------------------------------------------------------
    4 Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     4Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    55This file is part of GNU Make.
    66
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17this program.  If not, see <http://www.gnu.org/licenses/>.
    1818-------------------------------------------------------------------------------
    1919
  • vendor/gnumake/current/README.template

    r900 r1989  
    174174-------------------------------------------------------------------------------
    175175Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    176 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
    177 Inc.
     1761998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
     177Foundation, Inc.
    178178This file is part of GNU Make.
    179179
    180180GNU Make is free software; you can redistribute it and/or modify it under the
    181181terms of the GNU General Public License as published by the Free Software
    182 Foundation; either version 2, or (at your option) any later version.
     182Foundation; either version 3 of the License, or (at your option) any later
     183version.
    183184
    184185GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    187188
    188189You should have received a copy of the GNU General Public License along with
    189 GNU Make; see the file COPYING.  If not, write to the Free Software
    190 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     190this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/SMakefile.template

    r900 r1989  
    55#
    66# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    7 # 2005, 2006 Free Software Foundation, Inc.
     7# 2005, 2006, 2007 Free Software Foundation, Inc.
    88# This file is part of GNU Make.
    99#
    10 # GNU Make is free software; you can redistribute it and/or modify it under the
    11 # terms of the GNU General Public License as published by the Free Software
    12 # Foundation; either version 2, or (at your option) any later version.
     10# GNU Make is free software; you can redistribute it and/or modify it under
     11# the terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 3 of the License, or (at your option) any later
     13# version.
    1314#
    1415# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    15 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    16 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     16# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     17# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     18# details.
    1719#
    1820# You should have received a copy of the GNU General Public License along with
    19 # GNU Make; see the file COPYING.  If not, write to the Free Software
    20 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     21# this program.  If not, see <http://www.gnu.org/licenses/>.
    2122
    2223#
  • vendor/gnumake/current/TODO.private

    r900 r1989  
    130130
    131131-------------------------------------------------------------------------------
    132 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
    133 Software Foundation, Inc.
     132Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
     133Free Software Foundation, Inc.
    134134This file is part of GNU Make.
    135135
    136136GNU Make is free software; you can redistribute it and/or modify it under the
    137137terms of the GNU General Public License as published by the Free Software
    138 Foundation; either version 2, or (at your option) any later version.
     138Foundation; either version 3 of the License, or (at your option) any later
     139version.
    139140
    140141GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    143144
    144145You should have received a copy of the GNU General Public License along with
    145 GNU Make; see the file COPYING.  If not, write to the Free Software
    146 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     146this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/acinclude.m4

    r900 r1989  
    22dnl
    33dnl Automake will incorporate this into its generated aclocal.m4.
    4 dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     4dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
    55dnl Free Software Foundation, Inc.
    66dnl This file is part of GNU Make.
    77dnl
    8 dnl GNU Make is free software; you can redistribute it and/or modify it
    9 dnl under the terms of the GNU General Public License as published by
    10 dnl the Free Software Foundation; either version 2, or (at your option)
     8dnl GNU Make is free software; you can redistribute it and/or modify it under
     9dnl the terms of the GNU General Public License as published by the Free
     10dnl Software Foundation; either version 3 of the License, or (at your option)
    1111dnl any later version.
    1212dnl
    13 dnl GNU Make is distributed in the hope that it will be useful, but
    14 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
    15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    16 dnl General Public License for more details.
     13dnl GNU Make is distributed in the hope that it will be useful, but WITHOUT
     14dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     15dnl FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
     16dnl more details.
    1717dnl
    18 dnl You should have received a copy of the GNU General Public License
    19 dnl along with GNU Make; see the file COPYING.  If not, write to the
    20 dnl Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
    21 dnl MA 02110-1301 USA.
    22 
     18dnl You should have received a copy of the GNU General Public License along
     19dnl with this program.  If not, see <http://www.gnu.org/licenses/>.
    2320
    2421dnl ---------------------------------------------------------------------------
  • vendor/gnumake/current/amiga.c

    r501 r1989  
    11/* Running commands on Amiga
    22Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    3 2005, 2006 Free Software Foundation, Inc.
     32005, 2006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#include "make.h"
     
    117117    return o;
    118118}
    119 
  • vendor/gnumake/current/amiga.h

    r900 r1989  
    11/* Definitions for amiga specific things
    22Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    3 2005, 2006 Free Software Foundation, Inc.
     32005, 2006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818int MyExecute (char ** argv);
  • vendor/gnumake/current/ar.c

    r900 r1989  
    11/* Interface to `ar' archives for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    200200      /* We have a match.  Add it to the chain.  */
    201201      struct nameseq *new = xmalloc (state->size);
     202      memset (new, '\0', state->size);
    202203      new->name = strcache_add (concat (state->arname, mem, ")"));
    203204      new->next = state->chain;
  • vendor/gnumake/current/arscan.c

    r900 r1989  
    11/* Library function for scanning an archive file.
    22Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
    4 Inc.
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
     4Foundation, Inc.
    55This file is part of GNU Make.
    66
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    565565          /* If the member name is "//" or "ARFILENAMES/" this may be
    566566             a list of file name mappings.  The maximum file name
    567              length supported by the standard archive format is 14
    568              characters.  This member will actually always be the
    569              first or second entry in the archive, but we don't check
    570              that.  */
    571           is_namemap = (!strcmp (name, "//")
     567             length supported by the standard archive format is 14
     568             characters.  This member will actually always be the
     569             first or second entry in the archive, but we don't check
     570             that.  */
     571          is_namemap = (!strcmp (name, "//")
    572572                        || !strcmp (name, "ARFILENAMES/"));
    573573#endif  /* Not AIAMAG. */
     
    577577
    578578#ifndef AIAMAG
    579           /* If the member name starts with a space or a slash, this
    580              is an index into the file name mappings (used by GNU ar).
    581              Otherwise if the member name looks like #1/NUMBER the
    582              real member name appears in the element data (used by
    583              4.4BSD).  */
    584           if (! is_namemap
    585               && (name[0] == ' ' || name[0] == '/')
    586               && namemap != 0)
     579          /* If the member name starts with a space or a slash, this
     580             is an index into the file name mappings (used by GNU ar).
     581             Otherwise if the member name looks like #1/NUMBER the
     582             real member name appears in the element data (used by
     583             4.4BSD).  */
     584          if (! is_namemap
     585              && (name[0] == ' ' || name[0] == '/')
     586              && namemap != 0)
    587587            {
    588588              name = namemap + atoi (name + 1);
    589589              long_name = 1;
    590590            }
    591           else if (name[0] == '#'
    592                    && name[1] == '1'
    593                    && name[2] == '/')
    594             {
    595               int namesize = atoi (name + 3);
    596 
    597               name = alloca (namesize + 1);
    598               nread = read (desc, name, namesize);
    599               if (nread != namesize)
    600                 {
    601                   close (desc);
    602                   return -2;
    603                 }
    604               name[namesize] = '\0';
     591          else if (name[0] == '#'
     592                   && name[1] == '1'
     593                   && name[2] == '/')
     594            {
     595              int namesize = atoi (name + 3);
     596
     597              name = alloca (namesize + 1);
     598              nread = read (desc, name, namesize);
     599              if (nread != namesize)
     600                {
     601                  close (desc);
     602                  return -2;
     603                }
     604              name[namesize] = '\0';
    605605
    606606              long_name = 1;
    607             }
     607            }
    608608#endif /* Not AIAMAG. */
    609609        }
     
    646646#ifdef AIAMAGBIG
    647647        if (big_archive)
    648           sscanf (member_header_big.ar_nxtmem, "%20ld", &member_offset);
     648         sscanf (member_header_big.ar_nxtmem, "%20ld", &member_offset);
    649649        else
    650650#endif
     
    658658#else
    659659
    660         /* If this member maps archive names, we must read it in.  The
    661            name map will always precede any members whose names must
    662            be mapped.  */
     660        /* If this member maps archive names, we must read it in.  The
     661           name map will always precede any members whose names must
     662           be mapped.  */
    663663        if (is_namemap)
    664           {
    665             char *clear;
    666             char *limit;
    667 
    668             namemap = alloca (eltsize);
    669             nread = read (desc, namemap, eltsize);
    670             if (nread != eltsize)
    671               {
    672                 (void) close (desc);
    673                 return -2;
    674               }
    675 
    676             /* The names are separated by newlines.  Some formats have
    677                a trailing slash.  Null terminate the strings for
    678                convenience.  */
    679             limit = namemap + eltsize;
    680             for (clear = namemap; clear < limit; clear++)
    681               {
    682                 if (*clear == '\n')
    683                   {
    684                     *clear = '\0';
    685                     if (clear[-1] == '/')
    686                       clear[-1] = '\0';
    687                   }
    688               }
     664          {
     665            char *clear;
     666            char *limit;
     667
     668            namemap = alloca (eltsize);
     669            nread = read (desc, namemap, eltsize);
     670            if (nread != eltsize)
     671              {
     672                (void) close (desc);
     673                return -2;
     674              }
     675
     676            /* The names are separated by newlines.  Some formats have
     677               a trailing slash.  Null terminate the strings for
     678               convenience.  */
     679            limit = namemap + eltsize;
     680            for (clear = namemap; clear < limit; clear++)
     681              {
     682                if (*clear == '\n')
     683                  {
     684                    *clear = '\0';
     685                    if (clear[-1] == '/')
     686                      clear[-1] = '\0';
     687                  }
     688              }
    689689
    690690            is_namemap = 0;
    691           }
     691          }
    692692
    693693        member_offset += AR_HDR_SIZE + eltsize;
  • vendor/gnumake/current/build.template

    r900 r1989  
    44
    55# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    6 # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     6# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    77# This file is part of GNU Make.
    88#
    9 # GNU Make is free software; you can redistribute it and/or modify it under the
    10 # terms of the GNU General Public License as published by the Free Software
    11 # Foundation; either version 2, or (at your option) any later version.
     9# GNU Make is free software; you can redistribute it and/or modify it under
     10# the terms of the GNU General Public License as published by the Free Software
     11# Foundation; either version 3 of the License, or (at your option) any later
     12# version.
    1213#
    1314# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    14 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    15 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     15# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     16# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     17# details.
    1618#
    1719# You should have received a copy of the GNU General Public License along with
    18 # GNU Make; see the file COPYING.  If not, write to the Free Software
    19 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     20# this program.  If not, see <http://www.gnu.org/licenses/>.
    2021
    2122# See Makefile.in for comments describing these variables.
  • vendor/gnumake/current/build_w32.bat

    r501 r1989  
    11@echo off
    22rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 rem 2006 Free Software Foundation, Inc.
     3rem 2006, 2007 Free Software Foundation, Inc.
    44rem This file is part of GNU Make.
     5rem
     6rem GNU Make is free software; you can redistribute it and/or modify it under
     7rem the terms of the GNU General Public License as published by the Free
     8rem Software Foundation; either version 3 of the License, or (at your option)
     9rem any later version.
     10rem
     11rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
     12rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
     14rem more details.
     15rem
     16rem You should have received a copy of the GNU General Public License along
     17rem with this program.  If not, see <http://www.gnu.org/licenses/>.
    518
    6 rem GNU Make is free software; you can redistribute it and/or modify it under the
    7 rem terms of the GNU General Public License as published by the Free Software
    8 rem Foundation; either version 2, or (at your option) any later version.
    9 
    10 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 rem WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 rem A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    13 
    14 rem You should have received a copy of the GNU General Public License along with
    15 rem GNU Make; see the file COPYING.  If not, write to the Free Software
    16 rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    17 
     19if exist config.h.W32 GoTo NotCVS
     20sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.in > config.h.W32.sed
     21echo s,%%PACKAGE%%,make,g >> config.h.W32.sed
     22sed -f config.h.W32.sed config.h.W32.template > config.h.W32
     23:NotCVS
    1824if not exist config.h copy config.h.W32 config.h
    1925cd w32\subproc
     
    165171:GCCBuild
    166172echo on
    167 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c variable.c
    168 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c rule.c
    169 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remote-stub.c
    170 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c commands.c
    171 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c file.c
    172 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getloadavg.c
    173 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c default.c
    174 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c signame.c
    175 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c expand.c
    176 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c dir.c
    177 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c main.c
    178 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt1.c
    179 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c job.c
    180 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c read.c
    181 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c version.c
    182 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt.c
    183 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c arscan.c
    184 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remake.c
    185 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c hash.c
    186 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c strcache.c
    187 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c misc.c
    188 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ar.c
    189 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c function.c
    190 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c vpath.c
    191 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c implicit.c
    192 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/glob.c -o glob.o
    193 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o
    194 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o
    195 gcc -mthreads -gstabs+ -ggdb3 -o gnumake.exe variable.o rule.o remote-stub.o commands.o file.o getloadavg.o default.o signame.o expand.o dir.o main.o getopt1.o job.o read.o version.o getopt.o arscan.o remake.o misc.o hash.o strcache.o ar.o function.o vpath.o implicit.o glob.o fnmatch.o pathstuff.o w32_misc.o sub_proc.o w32err.o -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32
     173gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c variable.c
     174gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c rule.c
     175gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remote-stub.c
     176gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c commands.c
     177gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c file.c
     178gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getloadavg.c
     179gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c default.c
     180gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c signame.c
     181gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c expand.c
     182gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c dir.c
     183gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c main.c
     184gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt1.c
     185gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c job.c
     186gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c read.c
     187gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c version.c
     188gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt.c
     189gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c arscan.c
     190gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remake.c
     191gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c hash.c
     192gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c strcache.c
     193gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c misc.c
     194gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ar.c
     195gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c function.c
     196gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c vpath.c
     197gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c implicit.c
     198gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/glob.c -o glob.o
     199gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o
     200gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o
     201gcc -mthreads -gdwarf-2 -g3 -o gnumake.exe variable.o rule.o remote-stub.o commands.o file.o getloadavg.o default.o signame.o expand.o dir.o main.o getopt1.o job.o read.o version.o getopt.o arscan.o remake.o misc.o hash.o strcache.o ar.o function.o vpath.o implicit.o glob.o fnmatch.o pathstuff.o w32_misc.o sub_proc.o w32err.o -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32
    196202:BuildEnd
    197203echo on
  • vendor/gnumake/current/commands.c

    r900 r1989  
    11/* Command processing for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    603603  const char *s;
    604604
    605   fputs (_("#  commands to execute"), stdout);
     605  fputs (_("#  recipe to execute"), stdout);
    606606
    607607  if (cmds->fileinfo.filenm == 0)
     
    616616      const char *end;
    617617
    618       while (isspace ((unsigned char)*s))
    619         ++s;
    620 
    621618      end = strchr (s, '\n');
    622619      if (end == 0)
    623620        end = s + strlen (s);
    624621
    625       printf ("\t%.*s\n", (int) (end - s), s);
    626 
    627       s = end;
     622      printf ("%c%.*s\n", cmd_prefix, (int) (end - s), s);
     623
     624      s = end + (end[0] == '\n');
    628625    }
    629626}
  • vendor/gnumake/current/commands.h

    r900 r1989  
    11/* Definition of data structures describing shell commands for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919/* Structure that gives the commands to make a file
  • vendor/gnumake/current/config.ami.template

    r900 r1989  
    11/* config.h -- hand-massaged for Amiga                                  -*-C-*-
    22Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    3 2005, 2006 Free Software Foundation, Inc.
     32005, 2006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818/* Define if on AIX 3.
  • vendor/gnumake/current/config.h-vms.template

    r900 r1989  
    22
    33Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    4 2006 Free Software Foundation, Inc.
     42006, 2007 Free Software Foundation, Inc.
    55This file is part of GNU Make.
    66
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919/* config.h.  Generated automatically by configure.  */
  • vendor/gnumake/current/config.h.W32.template

    r900 r1989  
    22
    33Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    4 2006 Free Software Foundation, Inc.
     42006, 2007 Free Software Foundation, Inc.
    55This file is part of GNU Make.
    66
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919/* Suppress some Visual C++ warnings.
     
    419419/* #undef const */
    420420
     421#include <sys/types.h>
     422
    421423/* Define to `int' if <sys/types.h> doesn't define. */
    422424#define gid_t int
    423425
    424426/* Define to `int' if <sys/types.h> does not define. */
     427/* GCC 4.x reportedly defines pid_t.  */
     428#ifndef _PID_T_
    425429#define pid_t int
     430#endif
    426431
    427432/* Define to `int' if <sys/types.h> doesn't define. */
  • vendor/gnumake/current/config/ChangeLog

    r501 r1989  
    3030
    3131
    32 Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     32Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    3333This file is part of GNU Make.
    3434
    3535GNU Make is free software; you can redistribute it and/or modify it under the
    3636terms of the GNU General Public License as published by the Free Software
    37 Foundation; either version 2, or (at your option) any later version.
     37Foundation; either version 3 of the License, or (at your option) any later
     38version.
    3839
    3940GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    4243
    4344You should have received a copy of the GNU General Public License along with
    44 GNU Make; see the file COPYING.  If not, write to the Free Software
    45 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     45this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/config/Makefile.am

    r501 r1989  
    11# -*-Makefile-*-, or close enough
    2 # Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     2# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
     3# Inc.
    34# This file is part of GNU Make.
    45#
    5 # GNU Make is free software; you can redistribute it and/or modify it under the
    6 # terms of the GNU General Public License as published by the Free Software
    7 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free
     8# Software Foundation; either version 3 of the License, or (at your option)
     9# any later version.
    810#
    911# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    10 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    11 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1215#
    1316# You should have received a copy of the GNU General Public License along with
    14 # GNU Make; see the file COPYING.  If not, write to the Free Software
    15 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1618
    1719EXTRA_DIST =    codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 nls.m4 \
  • vendor/gnumake/current/config/dospaths.m4

    r900 r1989  
    11# Test if the system uses DOS-style pathnames (drive specs and backslashes)
    22# By Paul Smith <[email protected]>.  Based on dos.m4 by Jim Meyering.
    3 
     3#
    44# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    5 # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     5# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    66# This file is part of GNU Make.
    77#
    8 # GNU Make is free software; you can redistribute it and/or modify it under the
    9 # terms of the GNU General Public License as published by the Free Software
    10 # Foundation; either version 2, or (at your option) any later version.
     8# GNU Make is free software; you can redistribute it and/or modify it under
     9# the terms of the GNU General Public License as published by the Free Software
     10# Foundation; either version 3 of the License, or (at your option) any later
     11# version.
    1112#
    1213# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    14 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     15# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     16# details.
    1517#
    1618# You should have received a copy of the GNU General Public License along with
    17 # GNU Make; see the file COPYING.  If not, write to the Free Software
    18 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     19# this program.  If not, see <http://www.gnu.org/licenses/>.
    1920
    2021AC_DEFUN([pds_AC_DOS_PATHS],
  • vendor/gnumake/current/configh.dos.template

    r900 r1989  
    22
    33Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    4 2004, 2005, 2006 Free Software Foundation, Inc.
     42004, 2005, 2006, 2007 Free Software Foundation, Inc.
    55This file is part of GNU Make.
    66
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919/* Many things are defined already by a system header.  */
     
    2626
    2727/* Define to 1 if the C library defines the variable `_sys_siglist'.  */
    28 # define HAVE_SYS_SIGLIST 1
     28# define HAVE_DECL_SYS_SIGLIST 1
    2929
    3030#else
  • vendor/gnumake/current/configure.bat

    r501 r1989  
    11@echo off
    22rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    3 rem 2004, 2005, 2006 Free Software Foundation, Inc.
     3rem 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    44rem This file is part of GNU Make.
    5 
     5rem
    66rem GNU Make is free software; you can redistribute it and/or modify it under
    77rem the terms of the GNU General Public License as published by the Free
    8 rem Software Foundation; either version 2, or (at your option) any later
    9 rem version.
    10 
     8rem Software Foundation; either version 3 of the License, or (at your option)
     9rem any later version.
     10rem
    1111rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
    1212rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13 rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
    1414rem more details.
    15 
     15rem
    1616rem You should have received a copy of the GNU General Public License along
    17 rem with GNU Make; see the file COPYING.  If not, write to the Free Software
    18 rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17rem with this program.  If not, see <http://www.gnu.org/licenses/>.
    1918
    2019echo Configuring MAKE for DJGPP
  • vendor/gnumake/current/configure.in

    r900 r1989  
    22#
    33# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    4 # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     4# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    55# This file is part of GNU Make.
    66#
    7 # GNU Make is free software; you can redistribute it and/or modify it under the
    8 # terms of the GNU General Public License as published by the Free Software
    9 # Foundation; either version 2, or (at your option) any later version.
     7# GNU Make is free software; you can redistribute it and/or modify it under
     8# the terms of the GNU General Public License as published by the Free Software
     9# Foundation; either version 3 of the License, or (at your option) any later
     10# version.
    1011#
    1112# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    12 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    13 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     14# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     15# details.
    1416#
    1517# You should have received a copy of the GNU General Public License along with
    16 # GNU Make; see the file COPYING.  If not, write to the Free Software
    17 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     18# this program.  If not, see <http://www.gnu.org/licenses/>.
    1819
    1920AC_INIT([GNU make],[3.81.90],[[email protected]])
    2021
    2122AC_PREREQ(2.59)
    22 AC_REVISION([[$Id: configure.in,v 1.147 2007/05/09 02:01:53 psmith Exp $]])
     23AC_REVISION([[$Id: configure.in,v 1.148 2007/07/04 19:35:17 psmith Exp $]])
    2324
    2425# Autoconf setup
  • vendor/gnumake/current/debug.h

    r501 r1989  
    11/* Debugging macros and interface.
    2 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
    3 Foundation, Inc.
     2Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free
     3Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#define DB_NONE         (0x000)
  • vendor/gnumake/current/default.c

    r900 r1989  
    11/* Data base of default implicit rules for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
  • vendor/gnumake/current/dep.h

    r900 r1989  
    11/* Definitions of dependency data structures for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919/* Flag bits for the second argument to `read_makefile'.
  • vendor/gnumake/current/dir.c

    r900 r1989  
    11/* Directory hashing for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    458458         Find its device and inode numbers, and look it up by them.  */
    459459
    460 #ifdef WINDOWS32
    461       /* Remove any trailing '\'.  Windows32 stat fails even on valid
    462          directories if they end in '\'. */
    463       if (p[-1] == '\\')
    464         p[-1] = '\0';
    465 #endif
    466 
    467460#ifdef VMS
    468461      r = vmsstat_dir (name, &st);
     462#elif defined(WINDOWS32)
     463      {
     464        char tem[MAXPATHLEN], *tstart, *tend;
     465
     466        /* Remove any trailing slashes.  Windows32 stat fails even on
     467           valid directories if they end in a slash. */
     468        memcpy (tem, name, p - name + 1);
     469        tstart = tem;
     470        if (tstart[1] == ':')
     471          tstart += 2;
     472        for (tend = tem + (p - name - 1);
     473             tend > tstart && (*tend == '/' || *tend == '\\');
     474             tend--)
     475          *tend = '\0';
     476
     477        r = stat (tem, &st);
     478      }
    469479#else
    470480      EINTRLOOP (r, stat (name, &st));
    471 #endif
    472 
    473 #ifdef WINDOWS32
    474       /* Put back the trailing '\'.  If we don't, we're permanently
    475          truncating the value!  */
    476       if (p[-1] == '\0')
    477         p[-1] = '\\';
    478481#endif
    479482
  • vendor/gnumake/current/doc/Makefile.am

    r501 r1989  
    11# -*-Makefile-*-, or close enough
    2 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     2# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    33# Foundation, Inc.
    44# This file is part of GNU Make.
    55#
    6 # GNU Make is free software; you can redistribute it and/or modify it under the
    7 # terms of the GNU General Public License as published by the Free Software
    8 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 3 of the License, or (at your option) any later
     9# version.
    910#
    1011# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1315#
    1416# You should have received a copy of the GNU General Public License along with
    15 # GNU Make; see the file COPYING.  If not, write to the Free Software
    16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1718
    1819TEXI2HTML = texi2html
  • vendor/gnumake/current/doc/make.texi

    r900 r1989  
    55@include version.texi
    66@set EDITION 0.70
    7 @set RCSID $Id: make.texi,v 1.47 2007/05/11 20:57:21 psmith Exp $
     7@set RCSID $Id: make.texi,v 1.52 2008/05/18 15:11:40 psmith Exp $
    88
    99@settitle GNU @code{make}
     
    2727
    2828Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
    29 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
     291996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007
    3030Free Software Foundation, Inc.
    3131
     
    3939License.''
    4040
    41 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
    42 this GNU Manual, like GNU software.  Copies published by the Free
    43 Software Foundation raise funds for GNU development.''
     41(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
     42this GNU Manual. Buying copies from GNU Press supports the FSF in
     43developing GNU and promoting software freedom.''
    4444@end quotation
    4545@end copying
     
    9292* Makefiles::                   Makefiles tell @code{make} what to do.
    9393* Rules::                       Rules describe when a file must be remade.
    94 * Commands::                    Commands say how to remake a file.
     94* Recipes::                     Recipes say how to remake a file.
    9595* Using Variables::             You can use variables to avoid repetition.
    9696* Conditionals::                Use or ignore parts of the makefile based
     
    119119Overview of @code{make}
    120120
    121 * Preparing::                   Preparing and Running Make
    122 * Reading::                     On Reading this Text
    123 * Bugs::                        Problems and Bugs
     121* Preparing::                   Preparing and running make
     122* Reading::                     On reading this text
     123* Bugs::                        Problems and bugs
    124124
    125125An Introduction to Makefiles
    126126
    127127* Rule Introduction::           What a rule looks like.
    128 * Simple Makefile::             A Simple Makefile
    129 * How Make Works::              How @code{make} Processes This Makefile
    130 * Variables Simplify::          Variables Make Makefiles Simpler
    131 * make Deduces::                Letting @code{make} Deduce the Commands
    132 * Combine By Prerequisite::     Another Style of Makefile
    133 * Cleanup::                     Rules for Cleaning the Directory
     128* Simple Makefile::             A simple makefile
     129* How Make Works::              How @code{make} processes this makefile
     130* Variables Simplify::          Variables make makefiles simpler
     131* make Deduces::                Letting @code{make} deduce the recipe
     132* Combine By Prerequisite::     Another style of makefile
     133* Cleanup::                     Rules for cleaning the directory
    134134
    135135Writing Makefiles
     
    139139* Include::                     How one makefile can use another makefile.
    140140* MAKEFILES Variable::          The environment can specify extra makefiles.
    141 * MAKEFILE_LIST Variable::      Discover which makefiles have been read.
    142 * Special Variables::           Other special variables.
    143141* Remaking Makefiles::          How makefiles get remade.
    144142* Overriding Makefiles::        How to override part of one makefile
     
    155153* Directory Search::            Searching other directories for source files.
    156154* Phony Targets::               Using a target that is not a real file's name.
    157 * Force Targets::               You can use a target without commands
     155* Force Targets::               You can use a target without a recipe
    158156                                  or prerequisites to mark other targets
    159157                                  as phony.
     
    185183                                  for a specified class of names.
    186184* Search Algorithm::            When and how search paths are applied.
    187 * Commands/Search::             How to write shell commands that work together
     185* Recipes/Search::              How to write recipes that work together
    188186                                  with search paths.
    189187* Implicit/Search::             How search paths affect implicit rules.
     
    195193* Static versus Implicit::      When are they better than implicit rules?
    196194
    197 Writing the Commands in Rules
    198 
    199 * Command Syntax::              Command syntax features and pitfalls.
    200 * Echoing::                     How to control when commands are echoed.
    201 * Execution::                   How commands are executed.
    202 * Parallel::                    How commands can be executed in parallel.
    203 * Errors::                      What happens after a command execution error.
    204 * Interrupts::                  What happens when a command is interrupted.
     195Writing Recipes in Rules
     196
     197* Recipe Syntax::               Recipe syntax features and pitfalls.
     198* Echoing::                     How to control when recipes are echoed.
     199* Execution::                   How recipes are executed.
     200* Parallel::                    How recipes can be executed in parallel.
     201* Errors::                      What happens after a recipe execution error.
     202* Interrupts::                  What happens when a recipe is interrupted.
    205203* Recursion::                   Invoking @code{make} from makefiles.
    206 * Sequences::                   Defining canned sequences of commands.
    207 * Empty Commands::              Defining useful, do-nothing commands.
    208 
    209 Command Syntax
    210 
    211 * Splitting Lines::             Breaking long command lines for readability.
    212 * Variables in Commands::       Using @code{make} variables in commands.
    213 
    214 Command Execution
     204* Sequences::                   Defining canned recipes.
     205* Empty Recipes::               Defining useful, do-nothing recipes.
     206
     207Recipe Syntax
     208
     209* Splitting Lines::             Breaking long recipe lines for readability.
     210* Variables in Recipes::        Using @code{make} variables in recipes.
     211
     212Recipe Execution
    215213
    216214* Choosing the Shell::          How @code{make} chooses the shell used
    217                                   to run commands.
     215                                  to run recipes.
    218216
    219217Recursive Use of @code{make}
     
    243241* Pattern-specific::            Target-specific variable values can be applied
    244242                                  to a group of targets that match a pattern.
     243* Special Variables::           Variables with special meaning or behavior.
    245244
    246245Advanced Features for Reference to Variables
     
    277276                                  parts of the makefile to use.
    278277* Instead of Execution::        How to use mode flags to specify what
    279                                   kind of thing to do with the commands
     278                                  kind of thing to do with the recipes
    280279                                  in the makefile other than simply
    281280                                  execute them.
     
    290289
    291290* Using Implicit::              How to use an existing implicit rule
    292                                   to get the commands for updating a file.
     291                                  to get the recipe for updating a file.
    293292* Catalogue of Rules::          A list of built-in implicit rules.
    294293* Implicit Variables::          How to change what predefined rules do.
    295294* Chained Rules::               How to use a chain of implicit rules.
    296295* Pattern Rules::               How to define new implicit rules.
    297 * Last Resort::                 How to define commands for rules which
     296* Last Resort::                 How to define a recipe for rules which
    298297                                  cannot find any.
    299298* Suffix Rules::                The old-fashioned style of implicit rule.
     
    306305* Pattern Examples::            Examples of pattern rules.
    307306* Automatic Variables::         How to use automatic variables in the
    308                                   commands of implicit rules.
     307                                  recipe of implicit rules.
    309308* Pattern Match::               How patterns match.
    310309* Match-Anything Rules::        Precautions you should take prior to
     
    378377uses the makefile data base and the last-modification times of the files to
    379378decide which of the files need to be updated.  For each of those files, it
    380 issues the commands recorded in the data base.
     379issues the recipes recorded in the data base.
    381380
    382381You can provide command line arguments to @code{make} to control which
     
    432431these messages: it's best to cut and paste them into your report.
    433432When generating this small makefile, be sure to not use any non-free
    434 or unusual tools in your commands: you can almost always emulate what
     433or unusual tools in your recipes: you can almost always emulate what
    435434such a tool would do with simple shell commands.  Finally, be sure to
    436435explain what you expected to occur; this will help us decide whether
     
    490489* How Make Works::              How @code{make} Processes This Makefile
    491490* Variables Simplify::          Variables Make Makefiles Simpler
    492 * make Deduces::                Letting @code{make} Deduce the Commands
     491* make Deduces::                Letting @code{make} Deduce the Recipes
    493492* Combine By Prerequisite::     Another Style of Makefile
    494493* Cleanup::                     Rules for Cleaning the Directory
     
    506505@cindex targets, introduction to
    507506@cindex prerequisites, introduction to
    508 @cindex commands, introduction to
     507@cindex recipes, introduction to
    509508@example
    510509@group
    511510@var{target} @dots{} : @var{prerequisites} @dots{}
    512         @var{command}
     511        @var{recipe}
    513512        @dots{}
    514513        @dots{}
     
    525524
    526525@cindex tabs in rules
    527 A @dfn{command} is an action that @code{make} carries out.
    528 A rule may have more than one command, each on its own line.
     526A @dfn{recipe} is an action that @code{make} carries out.
     527A recipe may have more than one command, each on its own line.
    529528@strong{Please note:} you need to put a tab character at the beginning of
    530 every command line!  This is an obscurity that catches the unwary.
    531 
    532 Usually a command is in a rule with prerequisites and serves to create a
     529every command line!  This is an obscurity that catches the unwary.  If
     530you prefer to prefix your recipes with a character other than tab,
     531you can set the @code{.CMDPREFIX} variable to an alternate character
     532(@pxref{Special Variables}).
     533
     534Usually a recipe is in a rule with prerequisites and serves to create a
    533535target file if any of the prerequisites change.  However, the rule that
    534 specifies commands for the target need not have prerequisites.  For
     536specifies a recipe for the target need not have prerequisites.  For
    535537example, the rule containing the delete command associated with the
    536538target @samp{clean} does not have prerequisites.
     
    538540A @dfn{rule}, then, explains how and when to remake certain files
    539541which are the targets of the particular rule.  @code{make} carries out
    540 the commands on the prerequisites to create or update the target.  A
     542the recipe on the prerequisites to create or update the target.  A
    541543rule can also explain how and when to carry out an action.
    542544@xref{Rules, , Writing Rules}.
     
    615617prerequisites are files such as @samp{main.c} and @samp{defs.h}.
    616618In fact, each @samp{.o} file is both a target and a prerequisite.
    617 Commands include @w{@samp{cc -c main.c}} and @w{@samp{cc -c kbd.c}}.
     619Recipes include @w{@samp{cc -c main.c}} and @w{@samp{cc -c kbd.c}}.
    618620
    619621When a target is a file, it needs to be recompiled or relinked if any
     
    624626on the header file @file{defs.h}.
    625627
    626 A shell command follows each line that contains a target and
    627 prerequisites.  These shell commands say how to update the target file.
    628 A tab character must come at the beginning of every command line to
    629 distinguish command lines from other lines in the makefile.  (Bear in
    630 mind that @code{make} does not know anything about how the commands
    631 work.  It is up to you to supply commands that will update the target
    632 file properly.  All @code{make} does is execute the commands in the rule
    633 you have specified when the target file needs to be updated.)
    634 @cindex shell command
     628A recipe may follow each line that contains a target and
     629prerequisites.  These recipes say how to update the target file.  A
     630tab character (or whatever character is specified by the
     631@code{.CMDPREFIX} variable; @pxref{Special Variables}) must come at
     632the beginning of every line in the recipe to distinguish recipes from
     633other lines in the makefile.  (Bear in mind that @code{make} does not
     634know anything about how the recipes work.  It is up to you to supply
     635recipes that will update the target file properly.  All @code{make}
     636does is execute the commands in the recipe you have specified when the
     637target file needs to be updated.)@refill
     638@cindex recipe
    635639
    636640The target @samp{clean} is not a file, but merely the name of an
    637 action.  Since you
    638 normally
    639 do not want to carry out the actions in this rule, @samp{clean} is not a prerequisite of any other rule.
     641action.  Since you normally do not want to carry out the actions in
     642this rule, @samp{clean} is not a prerequisite of any other rule.
    640643Consequently, @code{make} never does anything with it unless you tell
    641 it specifically.  Note that this rule not only is not a prerequisite, it
    642 also does not have any prerequisites, so the only purpose of the rule
    643 is to run the specified commands.  Targets that do not refer to files
    644 but are just actions are called @dfn{phony targets}.  @xref{Phony
    645 Targets}, for information about this kind of target.  @xref{Errors, ,
    646 Errors in Commands}, to see how to cause @code{make} to ignore errors
    647 from @code{rm} or any other command.
     644it specifically.  Note that this rule not only is not a prerequisite,
     645it also does not have any prerequisites, so the only purpose of the
     646rule is to run the specified recipe.  Targets that do not refer to
     647files but are just actions are called @dfn{phony targets}.
     648@xref{Phony Targets}, for information about this kind of target.
     649@xref{Errors, , Errors in Recipes}, to see how to cause @code{make}
     650to ignore errors from @code{rm} or any other command.
    648651@cindex @code{clean} target
    649652@cindex @code{rm} (shell command)
     
    793796
    794797@node make Deduces, Combine By Prerequisite, Variables Simplify, Introduction
    795 @section Letting @code{make} Deduce the Commands
    796 @cindex deducing commands (implicit rules)
     798@section Letting @code{make} Deduce the Recipes
     799@cindex deducing recipes (implicit rules)
    797800@cindex implicit rule, introduction to
    798801@cindex rule, implicit, introduction to
    799802
    800 It is not necessary to spell out the commands for compiling the individual
     803It is not necessary to spell out the recipes for compiling the individual
    801804C source files, because @code{make} can figure them out: it has an
    802805@dfn{implicit rule} for updating a @samp{.o} file from a correspondingly
    803806named @samp{.c} file using a @samp{cc -c} command.  For example, it will
    804 use the command @samp{cc -c main.c -o main.o} to compile @file{main.c} into
    805 @file{main.o}.  We can therefore omit the commands from the rules for the
     807use the recipe @samp{cc -c main.c -o main.o} to compile @file{main.c} into
     808@file{main.o}.  We can therefore omit the recipes from the rules for the
    806809object files.  @xref{Implicit Rules, ,Using Implicit Rules}.@refill
    807810
    808811When a @samp{.c} file is used automatically in this way, it is also
    809812automatically added to the list of prerequisites.  We can therefore omit
    810 the @samp{.c} files from the prerequisites, provided we omit the commands.
     813the @samp{.c} files from the prerequisites, provided we omit the recipe.
    811814
    812815Here is the entire example, with both of these changes, and a variable
     
    839842This is how we would write the makefile in actual practice.  (The
    840843complications associated with @samp{clean} are described elsewhere.
    841 See @ref{Phony Targets}, and @ref{Errors, ,Errors in Commands}.)
     844See @ref{Phony Targets}, and @ref{Errors, ,Errors in Recipes}.)
    842845
    843846Because implicit rules are so convenient, they are important.  You
     
    912915called @file{clean} and causes it to continue in spite of errors from
    913916@code{rm}.  (See @ref{Phony Targets}, and @ref{Errors, ,Errors in
    914 Commands}.)
     917Recipes}.)
    915918
    916919@noindent
     
    937940* Include::                     How one makefile can use another makefile.
    938941* MAKEFILES Variable::          The environment can specify extra makefiles.
    939 * MAKEFILE_LIST Variable::      Discover which makefiles have been read.
    940 * Special Variables::           Other special variables.
    941942* Remaking Makefiles::          How makefiles get remade.
    942943* Overriding Makefiles::        How to override part of one makefile
     
    961962called the rule's @dfn{targets}.  It lists the other files that the
    962963targets depend on, called the @dfn{prerequisites} of the target, and
    963 may also give commands to use to create or update the targets.
     964may also give a recipe to use to create or update the targets.
    964965@xref{Rules, ,Writing Rules}.
    965966
     
    969970An @dfn{implicit rule} says when and how to remake a class of files
    970971based on their names.  It describes how a target may depend on a file
    971 with a name similar to the target and gives commands to create or
     972with a name similar to the target and gives a recipe to create or
    972973update such a target.  @xref{Implicit Rules, ,Using Implicit Rules}.
    973974
     
    982983@cindex directive
    983984@item
    984 A @dfn{directive} is a command for @code{make} to do something special while
    985 reading the makefile.  These include:
     985A @dfn{directive} is an instruction for @code{make} to do something
     986special while reading the makefile.  These include:
    986987
    987988@itemize @bullet
     
    10141015start of a comment) inside a variable reference or function call.
    10151016
    1016 Within a command script (if the line begins with a TAB character) the
    1017 entire line is passed to the shell, just as with any other line that
    1018 begins with a TAB.  The shell decides how to interpret the text:
    1019 whether or not this is a comment is up to the shell.
     1017Comments within a recipe are passed to the shell, just as with any
     1018other recipe text.  The shell decides how to interpret it: whether or
     1019not this is a comment is up to the shell.
    10201020
    10211021Within a @code{define} directive, comments are not ignored during the
    10221022definition of the variable, but rather kept intact in the value of the
    10231023variable.  When the variable is expanded they will either be treated
    1024 as @code{make} comments or as command script text, depending on the
    1025 context in which the variable is evaluated.
     1024as @code{make} comments or as recipe text, depending on the context in
     1025which the variable is evaluated.
    10261026@end itemize
    10271027
     
    10961096
    10971097Extra spaces are allowed and ignored at the beginning of the line, but
    1098 a tab is not allowed.  (If the line begins with a tab, it will be
    1099 considered a command line.)  Whitespace is required between
     1098the first character must not be a tab (or the value of
     1099@code{.CMDPREFIX})---if the line begins with a tab, it will be
     1100considered a recipe line.  Whitespace is required between
    11001101@code{include} and the file names, and between file names; extra
    11011102whitespace is ignored there and at the end of the directive.  A
     
    11821183@code{sinclude} is another name for @w{@code{-include}}.
    11831184
    1184 @node MAKEFILES Variable, MAKEFILE_LIST Variable, Include, Makefiles
     1185@node MAKEFILES Variable, Remaking Makefiles, Include, Makefiles
    11851186@section The Variable @code{MAKEFILES}
    11861187@cindex makefile, and @code{MAKEFILES} variable
     
    12121213in the makefiles.  @xref{Include, , Including Other Makefiles}.
    12131214
    1214 @node MAKEFILE_LIST Variable, Special Variables, MAKEFILES Variable, Makefiles
    1215 @comment  node-name,  next,  previous,  up
    1216 @section The Variable @code{MAKEFILE_LIST}
    1217 @cindex makefiles, and @code{MAKEFILE_LIST} variable
    1218 @cindex including (@code{MAKEFILE_LIST} variable)
    1219 @vindex MAKEFILE_LIST
    1220 
    1221 As @code{make} reads various makefiles, including any obtained from the
    1222 @code{MAKEFILES} variable, the command line, the default files, or
    1223 from @code{include} directives, their names will be automatically
    1224 appended to the @code{MAKEFILE_LIST} variable.  They are added right
    1225 before @code{make} begins to parse them.
    1226 
    1227 This means that if the first thing a makefile does is examine the last
    1228 word in this variable, it will be the name of the current makefile.
    1229 Once the current makefile has used @code{include}, however, the last
    1230 word will be the just-included makefile.
    1231 
    1232 If a makefile named @code{Makefile} has this content:
    1233 
    1234 @example
    1235 @group
    1236 name1 := $(lastword $(MAKEFILE_LIST))
    1237 
    1238 include inc.mk
    1239 
    1240 name2 := $(lastword $(MAKEFILE_LIST))
    1241 
    1242 all:
    1243         @@echo name1 = $(name1)
    1244         @@echo name2 = $(name2)
    1245 @end group
    1246 @end example
    1247 
    1248 @noindent
    1249 then you would expect to see this output:
    1250 
    1251 @example
    1252 @group
    1253 name1 = Makefile
    1254 name2 = inc.mk
    1255 @end group
    1256 @end example
    1257 
    1258 @xref{Text Functions}, for more information on the @code{lastword}
    1259 function used above.  @xref{Flavors, The Two Flavors of Variables},
    1260 for more information on simply-expanded (@code{:=}) variable
    1261 definitions.
    1262 
    1263 @node Special Variables, Remaking Makefiles, MAKEFILE_LIST Variable, Makefiles
    1264 @comment  node-name,  next,  previous,  up
    1265 @section Other Special Variables
    1266 @cindex makefiles, and special variables
    1267 @cindex special variables
    1268 
    1269 GNU @code{make} also supports other special variables.  Unless
    1270 otherwise documented here, these values lose their special properties
    1271 if they are set by a makefile or on the command line.
    1272 
    1273 @table @code
    1274 
    1275 @vindex .DEFAULT_GOAL @r{(define default goal)}
    1276 @item .DEFAULT_GOAL
    1277 Sets the default goal to be used if no targets were specified on the
    1278 command line (@pxref{Goals, , Arguments to Specify the Goals}).  The
    1279 @code{.DEFAULT_GOAL} variable allows you to discover the current
    1280 default goal, restart the default goal selection algorithm by clearing
    1281 its value, or to explicitly set the default goal.  The following
    1282 example illustrates these cases:
    1283 
    1284 @example
    1285 @group
    1286 # Query the default goal.
    1287 ifeq ($(.DEFAULT_GOAL),)
    1288   $(warning no default goal is set)
    1289 endif
    1290 
    1291 .PHONY: foo
    1292 foo: ; @@echo $@@
    1293 
    1294 $(warning default goal is $(.DEFAULT_GOAL))
    1295 
    1296 # Reset the default goal.
    1297 .DEFAULT_GOAL :=
    1298 
    1299 .PHONY: bar
    1300 bar: ; @@echo $@@
    1301 
    1302 $(warning default goal is $(.DEFAULT_GOAL))
    1303 
    1304 # Set our own.
    1305 .DEFAULT_GOAL := foo
    1306 @end group
    1307 @end example
    1308 
    1309 This makefile prints:
    1310 
    1311 @example
    1312 @group
    1313 no default goal is set
    1314 default goal is foo
    1315 default goal is bar
    1316 foo
    1317 @end group
    1318 @end example
    1319 
    1320 Note that assigning more than one target name to @code{.DEFAULT_GOAL} is
    1321 illegal and will result in an error.
    1322 
    1323 @vindex MAKE_RESTARTS @r{(number of times @code{make} has restarted)}
    1324 @item MAKE_RESTARTS
    1325 This variable is set only if this instance of @code{make} has
    1326 restarted (@pxref{Remaking Makefiles, , How Makefiles Are Remade}): it
    1327 will contain the number of times this instance has restarted.  Note
    1328 this is not the same as recursion (counted by the @code{MAKELEVEL}
    1329 variable).  You should not set, modify, or export this variable.
    1330 
    1331 @vindex .VARIABLES @r{(list of variables)}
    1332 @item .VARIABLES
    1333 Expands to a list of the @emph{names} of all global variables defined
    1334 so far.  This includes variables which have empty values, as well as
    1335 built-in variables (@pxref{Implicit Variables, , Variables Used by
    1336 Implicit Rules}), but does not include any variables which are only
    1337 defined in a target-specific context.  Note that any value you assign
    1338 to this variable will be ignored; it will always return its special
    1339 value.
    1340 
    1341 @c @vindex .TARGETS @r{(list of targets)}
    1342 @c @item .TARGETS
    1343 @c The second special variable is @code{.TARGETS}.  When expanded, the
    1344 @c value consists of a list of all targets defined in all makefiles read
    1345 @c up until that point.  Note it's not enough for a file to be simply
    1346 @c mentioned in the makefile to be listed in this variable, even if it
    1347 @c would match an implicit rule and become an ``implicit target''.  The
    1348 @c file must appear as a target, on the left-hand side of a ``:'', to be
    1349 @c considered a target for the purposes of this variable.
    1350 
    1351 @vindex .FEATURES @r{(list of supported features)}
    1352 @item .FEATURES
    1353 Expands to a list of special features supported by this version of
    1354 @code{make}.  Possible values include:
    1355 
    1356 @table @samp
    1357 
    1358 @item archives
    1359 Supports @code{ar} (archive) files using special filename syntax.
    1360 @xref{Archives, ,Using @code{make} to Update Archive Files}.
    1361 
    1362 @item check-symlink
    1363 Supports the @code{-L} (@code{--check-symlink-times}) flag.
    1364 @xref{Options Summary, ,Summary of Options}.
    1365 
    1366 @item else-if
    1367 Supports ``else if'' non-nested conditionals.  @xref{Conditional
    1368 Syntax, ,Syntax of Conditionals}.
    1369 
    1370 @item jobserver
    1371 Supports ``job server'' enhanced parallel builds.  @xref{Parallel,
    1372 ,Parallel Execution}.
    1373 
    1374 @item second-expansion
    1375 Supports secondary expansion of prerequisite lists.
    1376 
    1377 @item order-only
    1378 Supports order-only prerequisites.  @xref{Prerequisite Types, ,Types
    1379 of Prerequisites}.
    1380 
    1381 @item target-specific
    1382 Supports target-specific and pattern-specific variable assignments.
    1383 @xref{Target-specific, ,Target-specific Variable Values}.
    1384 
    1385 @end table
    1386 
    1387 @vindex .INCLUDE_DIRS @r{(list of include directories)}
    1388 @item .INCLUDE_DIRS
    1389 Expands to a list of directories that @code{make} searches for
    1390 included makefiles (@pxref{Include, , Including Other Makefiles}).
    1391 
    1392 @end table
    1393 
    1394 @node Remaking Makefiles, Overriding Makefiles, Special Variables, Makefiles
     1215@node Remaking Makefiles, Overriding Makefiles, MAKEFILES Variable, Makefiles
    13951216@section How Makefiles Are Remade
    13961217
     
    14131234date.)@refill
    14141235
    1415 If you know that one or more of your makefiles cannot be remade and you
    1416 want to keep @code{make} from performing an implicit rule search on
    1417 them, perhaps for efficiency reasons, you can use any normal method of
    1418 preventing implicit rule lookup to do so.  For example, you can write an
    1419 explicit rule with the makefile as the target, and an empty command
    1420 string (@pxref{Empty Commands, ,Using Empty Commands}).
     1236If you know that one or more of your makefiles cannot be remade and
     1237you want to keep @code{make} from performing an implicit rule search
     1238on them, perhaps for efficiency reasons, you can use any normal method
     1239of preventing implicit rule lookup to do so.  For example, you can
     1240write an explicit rule with the makefile as the target, and an empty
     1241recipe (@pxref{Empty Recipes, ,Using Empty Recipes}).
    14211242
    14221243If the makefiles specify a double-colon rule to remake a file with
    1423 commands but no prerequisites, that file will always be remade
     1244a recipe but no prerequisites, that file will always be remade
    14241245(@pxref{Double-Colon}).  In the case of makefiles, a makefile that has a
    1425 double-colon rule with commands but no prerequisites will be remade every
     1246double-colon rule with a recipe but no prerequisites will be remade every
    14261247time @code{make} is run, and then again after @code{make} starts over
    14271248and reads the makefiles in again.  This would cause an infinite loop:
     
    14291250else.  So, to avoid this, @code{make} will @strong{not} attempt to
    14301251remake makefiles which are specified as targets of a double-colon rule
    1431 with commands but no prerequisites.@refill
     1252with a recipe but no prerequisites.@refill
    14321253
    14331254If you do not specify any makefiles to be read with @samp{-f} or
     
    14481269
    14491270When you use the @samp{-t} or @samp{--touch} option
    1450 (@pxref{Instead of Execution, ,Instead of Executing the Commands}),
     1271(@pxref{Instead of Execution, ,Instead of Executing the Recipe}),
    14511272you would not want to use an out-of-date makefile to decide which
    14521273targets to touch.  So the @samp{-t} option has no effect on updating
     
    14561277out-of-date makefile would result in the wrong output for other targets.
    14571278Thus, @samp{make -f mfile -n foo} will update @file{mfile}, read it in,
    1458 and then print the commands to update @file{foo} and its prerequisites
    1459 without running them.  The commands printed for @file{foo} will be those
     1279and then print the recipe to update @file{foo} and its prerequisites
     1280without running it.  The recipe printed for @file{foo} will be the one
    14601281specified in the updated contents of @file{mfile}.
    14611282
     
    14671288
    14681289Thus, @samp{make -f mfile -n mfile foo} would read the makefile
    1469 @file{mfile}, print the commands needed to update it without actually
    1470 running them, and then print the commands needed to update @file{foo}
    1471 without running them.  The commands for @file{foo} will be those
     1290@file{mfile}, print the recipe needed to update it without actually
     1291running it, and then print the recipe needed to update @file{foo}
     1292without running that.  The recipe for @file{foo} will be the one
    14721293specified by the existing contents of @file{mfile}.
    14731294
     
    14801301another makefile.  You can often use the @samp{include} directive to
    14811302include one in the other, and add more targets or variable definitions.
    1482 However, if the two makefiles give different commands for the same
    1483 target, @code{make} will not let you just do this.  But there is another way.
     1303However, it is illegal for two makefiles to give different recipes for
     1304the same target.  But there is another way.
    14841305
    14851306@cindex match-anything rule, used to override
     
    15041325
    15051326If you say @samp{make foo}, @code{make} will find @file{GNUmakefile},
    1506 read it, and see that to make @file{foo}, it needs to run the command
     1327read it, and see that to make @file{foo}, it needs to run the recipe
    15071328@samp{frobnicate > foo}.  If you say @samp{make bar}, @code{make} will
    15081329find no way to make @file{bar} in @file{GNUmakefile}, so it will use the
    1509 commands from the pattern rule: @samp{make -f Makefile bar}.  If
     1330recipe from the pattern rule: @samp{make -f Makefile bar}.  If
    15101331@file{Makefile} provides a rule for updating @file{bar}, @code{make}
    15111332will apply the rule.  And likewise for any other target that
     
    15141335The way this works is that the pattern rule has a pattern of just
    15151336@samp{%}, so it matches any target whatever.  The rule specifies a
    1516 prerequisite @file{force}, to guarantee that the commands will be run even
    1517 if the target file already exists.  We give @file{force} target empty
    1518 commands to prevent @code{make} from searching for an implicit rule to
     1337prerequisite @file{force}, to guarantee that the recipe will be run even
     1338if the target file already exists.  We give the @file{force} target an
     1339empty recipe to prevent @code{make} from searching for an implicit rule to
    15191340build it---otherwise it would apply the same match-anything rule to
    15201341@file{force} itself and create a prerequisite loop!
     
    15421363construct as the makefile is parsed.  We say that expansion is
    15431364@dfn{deferred} if expansion is not performed immediately.  Expansion of
    1544 deferred construct is not performed until either the construct appears
     1365a deferred construct is not performed until either the construct appears
    15451366later in an immediate context, or until the second phase.
    15461367
     
    15731394(@samp{:=}), and deferred otherwise.
    15741395
    1575 @subheading Conditional Statements
     1396@subheading Conditional Directives
    15761397@cindex ifdef, expansion
    15771398@cindex ifeq, expansion
     
    15791400@cindex ifneq, expansion
    15801401
    1581 All instances of conditional syntax are parsed immediately, in their
    1582 entirety; this includes the @code{ifdef}, @code{ifeq}, @code{ifndef},
    1583 and @code{ifneq} forms.  Of course this means that automatic variables
    1584 cannot be used in conditional statements, as automatic variables are
    1585 not set until the command script for that rule is invoked.  If you
    1586 need to use automatic variables in a conditional you @emph{must} use
    1587 shell conditional syntax, in your command script proper, for these
    1588 tests, not @code{make} conditionals.
     1402Conditional directives are parsed immediately.  This means, for
     1403example, that automatic variables cannot be used in conditional
     1404directives, as automatic variables are not set until the recipe for
     1405that rule is invoked.  If you need to use automatic variables in a
     1406conditional directive you @emph{must} move the condition into the
     1407recipe and use shell conditional syntax instead.
    15891408
    15901409@subheading Rule Definition
     
    16031422
    16041423That is, the target and prerequisite sections are expanded immediately,
    1605 and the commands used to construct the target are always deferred.  This
     1424and the recipe used to construct the target is always deferred.  This
    16061425general rule is true for explicit rules, pattern rules, suffix rules,
    16071426static pattern rules, and simple prerequisite definitions.
     
    16771496target.  This means that you can use variables such as @code{$@@},
    16781497@code{$*}, etc. during the second expansion and they will have their
    1679 expected values, just as in the command script.  All you have to do is
    1680 defer the expansion by escaping the @code{$}.  Also, secondary
    1681 expansion occurs for both explicit and implicit (pattern) rules.
    1682 Knowing this, the possible uses for this feature increase
    1683 dramatically.  For example:
     1498expected values, just as in the recipe.  All you have to do is defer
     1499the expansion by escaping the @code{$}.  Also, secondary expansion
     1500occurs for both explicit and implicit (pattern) rules.  Knowing this,
     1501the possible uses for this feature increase dramatically.  For
     1502example:
    16841503
    16851504@example
     
    16991518@code{$(lib_OBJS)}, or @code{lib.o api.o}.
    17001519
    1701 You can also mix functions here, as long as they are properly escaped:
     1520You can also mix in functions here, as long as they are properly escaped:
    17021521
    17031522@example
     
    17151534Evaluation of automatic variables during the secondary expansion
    17161535phase, especially of the target name variable @code{$$@@}, behaves
    1717 similarly to evaluation within command scripts.  However, there are
    1718 some subtle differences and ``corner cases'' which come into play for
    1719 the different types of rule definitions that @code{make} understands.
    1720 The subtleties of using the different automatic variables are
    1721 described below.
     1536similarly to evaluation within recipes.  However, there are some
     1537subtle differences and ``corner cases'' which come into play for the
     1538different types of rule definitions that @code{make} understands.  The
     1539subtleties of using the different automatic variables are described
     1540below.
    17221541
    17231542@subheading Secondary Expansion of Explicit Rules
     
    17521571
    17531572Rules undergo secondary expansion in makefile order, except that
    1754 the rule with the command script is always evaluated last.
     1573the rule with the recipe is always evaluated last.
    17551574
    17561575The variables @code{$$?} and @code{$$*} are not available and expand
     
    18091628@code{$$*} instead of @code{%} in the prerequisites list.
    18101629
    1811 @node Rules, Commands, Makefiles, Top
     1630@node Rules, Recipes, Makefiles, Top
    18121631@chapter Writing Rules
    18131632@cindex writing rules
     
    18191638certain files, called the rule's @dfn{targets} (most often only one per rule).
    18201639It lists the other files that are the @dfn{prerequisites} of the target, and
    1821 @dfn{commands} to use to create or update the target.
     1640the @dfn{recipe} to use to create or update the target.
    18221641
    18231642@cindex default goal
     
    18451664* Directory Search::            Searching other directories for source files.
    18461665* Phony Targets::               Using a target that is not a real file's name.
    1847 * Force Targets::               You can use a target without commands
     1666* Force Targets::               You can use a target without recipes
    18481667                                  or prerequisites to mark other targets
    18491668                                  as phony.
     
    18741693
    18751694Its target is @file{foo.o} and its prerequisites are @file{foo.c} and
    1876 @file{defs.h}.  It has one command, which is @samp{cc -c -g foo.c}.
    1877 The command line starts with a tab to identify it as a command.
     1695@file{defs.h}.  It has one command in the recipe: @samp{cc -c -g foo.c}.
     1696The recipe starts with a tab to identify it as a recipe.
    18781697
    18791698This rule says two things:
     
    18871706@item
    18881707How to update the file @file{foo.o}: by running @code{cc} as stated.
    1889 The command does not explicitly mention @file{defs.h}, but we presume
     1708The recipe does not explicitly mention @file{defs.h}, but we presume
    18901709that @file{foo.c} includes it, and that that is why @file{defs.h} was
    18911710added to the prerequisites.
     
    19021721@example
    19031722@var{targets} : @var{prerequisites}
    1904         @var{command}
     1723        @var{recipe}
    19051724        @dots{}
    19061725@end example
     
    19101729
    19111730@example
    1912 @var{targets} : @var{prerequisites} ; @var{command}
    1913         @var{command}
     1731@var{targets} : @var{prerequisites} ; @var{recipe}
     1732        @var{recipe}
    19141733        @dots{}
    19151734@end example
     
    19261745(@pxref{Multiple Targets, , Multiple Targets in a Rule}).@refill
    19271746
    1928 @cindex commands
     1747@cindex recipes
    19291748@cindex tab character (in commands)
    1930 The @var{command} lines start with a tab character.  The first command may
    1931 appear on the line after the prerequisites, with a tab character, or may
    1932 appear on the same line, with a semicolon.  Either way, the effect is the
    1933 same.  There are other differences in the syntax of command lines.
    1934 @xref{Commands, ,Writing the Commands in Rules}.
     1749The @var{recipe} lines start with a tab character (or the first
     1750character in the value of the @code{.CMDPREFIX} variable;
     1751@pxref{Special Variables}).  The first recipe line may appear on the line
     1752after the prerequisites, with a tab character, or may appear on the
     1753same line, with a semicolon.  Either way, the effect is the same.
     1754There are other differences in the syntax of recipes.
     1755@xref{Recipes, ,Writing Recipes in Rules}.
    19351756
    19361757@cindex dollar sign (@code{$}), in rules
     
    19641785valid.
    19651786
    1966 How to update is specified by @var{commands}.  These are lines to be
    1967 executed by the shell (normally @samp{sh}), but with some extra features
    1968 (@pxref{Commands, ,Writing the Commands in Rules}).
     1787How to update is specified by a @var{recipe}.  This is one or more
     1788lines to be executed by the shell (normally @samp{sh}), but with some
     1789extra features (@pxref{Recipes, ,Writing Recipes in Rules}).
    19691790
    19701791@node Prerequisite Types, Wildcards, Rule Syntax, Rules
     
    19821803previous section, and @dfn{order-only} prerequisites.  A normal
    19831804prerequisite makes two statements: first, it imposes an order of
    1984 execution of build commands: any commands necessary to build any of a
    1985 target's prerequisites will be fully executed before any commands
     1805execution of recipes: any recipes necessary to build any of a
     1806target's prerequisites will be fully executed before any recipe
    19861807necessary to build the target.  Second, it imposes a dependency
    19871808relationship: if any prerequisite is newer than the target, then the
     
    20701891
    20711892Wildcard expansion is performed by @code{make} automatically in
    2072 targets and in prerequisites.  In commands the shell is responsible
     1893targets and in prerequisites.  In recipes, the shell is responsible
    20731894for wildcard expansion.  In other contexts, wildcard expansion happens
    20741895only if you request it explicitly with the @code{wildcard} function.
     
    20891910@subsection Wildcard Examples
    20901911
    2091 Wildcards can be used in the commands of a rule, where they are expanded
     1912Wildcards can be used in the recipe of a rule, where they are expanded
    20921913by the shell.  For example, here is a rule to delete all the object files:
    20931914
     
    21291950then the value of the variable @code{objects} is the actual string
    21301951@samp{*.o}.  However, if you use the value of @code{objects} in a target,
    2131 prerequisite or command, wildcard expansion will take place at that time.
     1952prerequisite, or recipe, wildcard expansion will take place at that time.
    21321953To set @code{objects} to the expansion, instead use:
    21331954
     
    22762097                                  for a specified class of names.
    22772098* Search Algorithm::            When and how search paths are applied.
    2278 * Commands/Search::             How to write shell commands that work together
     2099* Recipes/Search::             How to write recipes that work together
    22792100                                  with search paths.
    22802101* Implicit/Search::             How search paths affect implicit rules.
     
    22972118them, that file may become the prerequisite (see below).  Rules may then
    22982119specify the names of files in the prerequisite list as if they all
    2299 existed in the current directory.  @xref{Commands/Search, ,Writing Shell
    2300 Commands with Directory Search}.
     2120existed in the current directory.  @xref{Recipes/Search, ,Writing Recipes with Directory Search}.
    23012121
    23022122In the @code{VPATH} variable, directory names are separated by colons or
     
    24332253@file{bar}, then @file{blish}.
    24342254
    2435 @node Search Algorithm, Commands/Search, Selective Search, Directory Search
     2255@node Search Algorithm, Recipes/Search, Selective Search, Directory Search
    24362256@subsection How Directory Searches are Performed
    24372257@cindex algorithm for directory search
     
    25002320rebuilt using the expanded path.
    25012321
    2502 @node Commands/Search, Implicit/Search, Search Algorithm, Directory Search
    2503 @subsection Writing Shell Commands with Directory Search
    2504 @cindex shell command, and directory search
    2505 @cindex directory search (@code{VPATH}), and shell commands
     2322@node Recipes/Search, Implicit/Search, Search Algorithm, Directory Search
     2323@subsection Writing Recipes with Directory Search
     2324@cindex recipes, and directory search
     2325@cindex directory search (@code{VPATH}), and recipes
    25062326
    25072327When a prerequisite is found in another directory through directory search,
    2508 this cannot change the commands of the rule; they will execute as written.
    2509 Therefore, you must write the commands with care so that they will look for
     2328this cannot change the recipe of the rule; they will execute as written.
     2329Therefore, you must write the recipe with care so that it will look for
    25102330the prerequisite in the directory where @code{make} finds it.
    25112331
     
    25292349
    25302350Often the prerequisites include header files as well, which you do not
    2531 want to mention in the commands.  The automatic variable @samp{$<} is
     2351want to mention in the recipe.  The automatic variable @samp{$<} is
    25322352just the first prerequisite:
    25332353
     
    25382358@end example
    25392359
    2540 @node Implicit/Search, Libraries/Search, Commands/Search, Directory Search
     2360@node Implicit/Search, Libraries/Search, Recipes/Search, Directory Search
    25412361@subsection Directory Search and Implicit Rules
    25422362@cindex @code{VPATH}, and implicit rules
     
    25592379directories, the implicit rule for C compilation is applied.
    25602380
    2561 The commands of implicit rules normally use automatic variables as a
     2381The recipes of implicit rules normally use automatic variables as a
    25622382matter of necessity; consequently they will use the file names found by
    25632383directory search with no extra effort.
     
    26302450@cindex targets without a file
    26312451
    2632 A phony target is one that is not really the name of a file.  It is just a
    2633 name for some commands to be executed when you make an explicit request.
    2634 There are two reasons to use a phony target: to avoid a conflict with
    2635 a file of the same name, and to improve performance.
    2636 
    2637 If you write a rule whose commands will not create the target file, the
    2638 commands will be executed every time the target comes up for remaking.
     2452A phony target is one that is not really the name of a file; rather it
     2453is just a name for a recipe to be executed when you make an explicit
     2454request.  There are two reasons to use a phony target: to avoid a
     2455conflict with a file of the same name, and to improve performance.
     2456
     2457If you write a rule whose recipe will not create the target file, the
     2458recipe will be executed every time the target comes up for remaking.
    26392459Here is an example:
    26402460
     
    26562476named @file{clean} in this directory.  Since it has no prerequisites, the
    26572477file @file{clean} would inevitably be considered up to date, and its
    2658 commands would not be executed.  To avoid this problem, you can explicitly
     2478recipe would not be executed.  To avoid this problem, you can explicitly
    26592479declare the target to be phony, using the special target @code{.PHONY}
    26602480(@pxref{Special Targets, ,Special Built-in Target Names}) as follows:
     
    26652485
    26662486@noindent
    2667 Once this is done, @samp{make clean} will run the commands regardless of
     2487Once this is done, @samp{make clean} will run the recipe regardless of
    26682488whether there is a file named @file{clean}.
    26692489
     
    26902510makefile will often contain a variable which lists a number of
    26912511subdirectories to be built.  One way to handle this is with one rule
    2692 whose command is a shell loop over the subdirectories, like this:
     2512whose recipe is a shell loop over the subdirectories, like this:
    26932513
    26942514@example
     
    27032523@end example
    27042524
    2705 There are a few problems with this method, however.  First, any error
    2706 detected in a submake is not noted by this rule, so it will continue to
    2707 build the rest of the directories even when one fails.  This can be
     2525There are problems with this method, however.  First, any error
     2526detected in a submake is ignored by this rule, so it will continue
     2527to build the rest of the directories even when one fails.  This can be
    27082528overcome by adding shell commands to note the error and exit, but then
    2709 it will do so even if @code{make} is invoked with the @code{-k} option,
    2710 which is unfortunate.  Second, and perhaps more importantly, you cannot
    2711 take advantage of @code{make}'s ability to build targets in parallel
    2712 (@pxref{Parallel, ,Parallel Execution}), since there is only one rule.
     2529it will do so even if @code{make} is invoked with the @code{-k}
     2530option, which is unfortunate.  Second, and perhaps more importantly,
     2531you cannot take advantage of @code{make}'s ability to build targets in
     2532parallel (@pxref{Parallel, ,Parallel Execution}), since there is only
     2533one rule.
    27132534
    27142535By declaring the subdirectories as phony targets (you must do this as
     
    27372558
    27382559A phony target should not be a prerequisite of a real target file; if it
    2739 is, its commands are run every time @code{make} goes to update that
     2560is, its recipe will be run every time @code{make} goes to update that
    27402561file.  As long as a phony target is never a prerequisite of a real
    2741 target, the phony target commands will be executed only when the phony
     2562target, the phony target recipe will be executed only when the phony
    27422563target is a specified goal (@pxref{Goals, ,Arguments to Specify the
    27432564Goals}).
     
    27882609
    27892610@node Force Targets, Empty Targets, Phony Targets, Rules
    2790 @section Rules without Commands or Prerequisites
     2611@section Rules without Recipes or Prerequisites
    27912612@cindex force targets
    27922613@cindex targets, force
    27932614@cindex @code{FORCE}
    2794 @cindex rule, no commands or prerequisites
    2795 
    2796 If a rule has no prerequisites or commands, and the target of the rule
     2615@cindex rule, no recipe or prerequisites
     2616
     2617If a rule has no prerequisites or recipe, and the target of the rule
    27972618is a nonexistent file, then @code{make} imagines this target to have
    27982619been updated whenever its rule is run.  This implies that all targets
    2799 depending on this one will always have their commands run.
     2620depending on this one will always have their recipe run.
    28002621
    28012622An example will illustrate this:
     
    28102631
    28112632Here the target @samp{FORCE} satisfies the special conditions, so the
    2812 target @file{clean} that depends on it is forced to run its commands.
    2813 There is nothing special about the name @samp{FORCE}, but that is one name
    2814 commonly used this way.
     2633target @file{clean} that depends on it is forced to run its recipe.
     2634There is nothing special about the name @samp{FORCE}, but that is one
     2635name commonly used this way.
    28152636
    28162637As you can see, using @samp{FORCE} this way has the same results as using
     
    28282649
    28292650The @dfn{empty target} is a variant of the phony target; it is used to hold
    2830 commands for an action that you request explicitly from time to time.
     2651recipes for an action that you request explicitly from time to time.
    28312652Unlike a phony target, this target file can really exist; but the file's
    28322653contents do not matter, and usually are empty.
    28332654
    28342655The purpose of the empty target file is to record, with its
    2835 last-modification time, when the rule's commands were last executed.  It
    2836 does so because one of the commands is a @code{touch} command to update the
    2837 target file.
     2656last-modification time, when the rule's recipe was last executed.  It
     2657does so because one of the commands in the recipe is a @code{touch}
     2658command to update the target file.
    28382659
    28392660The empty target file should have some prerequisites (otherwise it
    28402661doesn't make sense).  When you ask to remake the empty target, the
    2841 commands are executed if any prerequisite is more recent than the target;
     2662recipe is executed if any prerequisite is more recent than the target;
    28422663in other words, if a prerequisite has changed since the last time you
    28432664remade the target.  Here is an example:
     
    28722693The prerequisites of the special target @code{.PHONY} are considered to
    28732694be phony targets.  When it is time to consider such a target,
    2874 @code{make} will run its commands unconditionally, regardless of
     2695@code{make} will run its recipe unconditionally, regardless of
    28752696whether a file with that name exists or what its last-modification
    28762697time is.  @xref{Phony Targets, ,Phony Targets}.
     
    28862707@item .DEFAULT
    28872708
    2888 The commands specified for @code{.DEFAULT} are used for any target for
     2709The recipe specified for @code{.DEFAULT} is used for any target for
    28892710which no rules are found (either explicit rules or implicit rules).
    2890 @xref{Last Resort}.  If @code{.DEFAULT} commands are specified, every
     2711@xref{Last Resort}.  If a @code{.DEFAULT} recipe is specified, every
    28912712file mentioned as a prerequisite, but not as a target in a rule, will have
    2892 these commands executed on its behalf.  @xref{Implicit Rule Search,
     2713that recipe executed on its behalf.  @xref{Implicit Rule Search,
    28932714,Implicit Rule Search Algorithm}.
    28942715
     
    29002721The targets which @code{.PRECIOUS} depends on are given the following
    29012722special treatment: if @code{make} is killed or interrupted during the
    2902 execution of their commands, the target is not deleted.
     2723execution of their recipes, the target is not deleted.
    29032724@xref{Interrupts, ,Interrupting or Killing @code{make}}.  Also, if the
    29042725target is an intermediate file, it will not be deleted after it is no
     
    29472768If @code{.DELETE_ON_ERROR} is mentioned as a target anywhere in the
    29482769makefile, then @code{make} will delete the target of a rule if it has
    2949 changed and its commands exit with a nonzero exit status, just as it
    2950 does when it receives a signal.  @xref{Errors, ,Errors in Commands}.
     2770changed and its recipe exits with a nonzero exit status, just as it
     2771does when it receives a signal.  @xref{Errors, ,Errors in Recipes}.
    29512772
    29522773@findex .IGNORE
     
    29542775
    29552776If you specify prerequisites for @code{.IGNORE}, then @code{make} will
    2956 ignore errors in execution of the commands run for those particular
    2957 files.  The commands for @code{.IGNORE} are not meaningful.
     2777ignore errors in execution of the recipe for those particular files.
     2778The recipe for @code{.IGNORE} (if any) is ignored.
    29582779
    29592780If mentioned as a target with no prerequisites, @code{.IGNORE} says to
    2960 ignore errors in execution of commands for all files.  This usage of
     2781ignore errors in execution of recipes for all files.  This usage of
    29612782@samp{.IGNORE} is supported only for historical compatibility.  Since
    2962 this affects every command in the makefile, it is not very useful; we
     2783this affects every recipe in the makefile, it is not very useful; we
    29632784recommend you use the more selective ways to ignore errors in specific
    2964 commands.  @xref{Errors, ,Errors in Commands}.
     2785recipes.  @xref{Errors, ,Errors in Recipes}.
    29652786
    29662787@findex .LOW_RESOLUTION_TIME
     
    29692790If you specify prerequisites for @code{.LOW_RESOLUTION_TIME},
    29702791@command{make} assumes that these files are created by commands that
    2971 generate low resolution time stamps.  The commands for
    2972 @code{.LOW_RESOLUTION_TIME} are not meaningful.
    2973 
    2974 The high resolution file time stamps of many modern hosts lessen the
    2975 chance of @command{make} incorrectly concluding that a file is up to
    2976 date.  Unfortunately, these hosts provide no way to set a high
    2977 resolution file time stamp, so commands like @samp{cp -p} that
    2978 explicitly set a file's time stamp must discard its subsecond part.  If
    2979 a file is created by such a command, you should list it as a
    2980 prerequisite of @code{.LOW_RESOLUTION_TIME} so that @command{make} does
    2981 not mistakenly conclude that the file is out of date.  For example:
     2792generate low resolution time stamps.  The recipe for the
     2793@code{.LOW_RESOLUTION_TIME} target are ignored.
     2794
     2795The high resolution file time stamps of many modern file systems
     2796lessen the chance of @command{make} incorrectly concluding that a file
     2797is up to date.  Unfortunately, some hosts do not provide a way to set a
     2798high resolution file time stamp, so commands like @samp{cp -p} that
     2799explicitly set a file's time stamp must discard its subsecond part.
     2800If a file is created by such a command, you should list it as a
     2801prerequisite of @code{.LOW_RESOLUTION_TIME} so that @command{make}
     2802does not mistakenly conclude that the file is out of date.  For
     2803example:
    29822804
    29832805@example
     
    30042826
    30052827If you specify prerequisites for @code{.SILENT}, then @code{make} will
    3006 not print the commands to remake those particular files before executing
    3007 them.  The commands for @code{.SILENT} are not meaningful.
     2828not print the recipe used to remake those particular files before
     2829executing them.  The recipe for @code{.SILENT} is ignored.
    30082830
    30092831If mentioned as a target with no prerequisites, @code{.SILENT} says not
    3010 to print any commands before executing them.  This usage of
     2832to print any recipes before executing them.  This usage of
    30112833@samp{.SILENT} is supported only for historical compatibility.  We
    3012 recommend you use the more selective ways to silence specific commands.
    3013 @xref{Echoing, ,Command Echoing}.  If you want to silence all commands
     2834recommend you use the more selective ways to silence specific recipes.
     2835@xref{Echoing, ,Recipe Echoing}.  If you want to silence all recipes
    30142836for a particular run of @code{make}, use the @samp{-s} or
    30152837@w{@samp{--silent}} option (@pxref{Options Summary}).
     
    30302852of @code{make} will be run serially, even if the @samp{-j} option is
    30312853given.  Any recursively invoked @code{make} command will still run
    3032 commands in parallel (unless its makefile also contains this target).
     2854recipes in parallel (unless its makefile also contains this target).
    30332855Any prerequisites on this target are ignored.
    30342856@end table
     
    30512873
    30522874A rule with multiple targets is equivalent to writing many rules, each with
    3053 one target, and all identical aside from that.  The same commands apply to
    3054 all the targets, but their effects may vary because you can substitute the
    3055 actual target name into the command using @samp{$@@}.  The rule contributes
     2875one target, and all identical aside from that.  The same recipe applies to
     2876all the targets, but its effect may vary because you can substitute the
     2877actual target name into the recipe using @samp{$@@}.  The rule contributes
    30562878the same prerequisites to all the targets also.
    30572879
     
    30602882@itemize @bullet
    30612883@item
    3062 You want just prerequisites, no commands.  For example:
     2884You want just prerequisites, no recipe.  For example:
    30632885
    30642886@example
     
    30712893
    30722894@item
    3073 Similar commands work for all the targets.  The commands do not need
     2895Similar recipes work for all the targets.  The recipes do not need
    30742896to be absolutely identical, since the automatic variable @samp{$@@}
    30752897can be used to substitute the particular target to be remade into the
     
    31022924@end itemize
    31032925
    3104 Suppose you would like to vary the prerequisites according to the target,
    3105 much as the variable @samp{$@@} allows you to vary the commands.
    3106 You cannot do this with multiple targets in an ordinary rule, but you can
    3107 do it with a @dfn{static pattern rule}.
    3108 @xref{Static Pattern, ,Static Pattern Rules}.
     2926Suppose you would like to vary the prerequisites according to the
     2927target, much as the variable @samp{$@@} allows you to vary the recipe.
     2928You cannot do this with multiple targets in an ordinary rule, but you
     2929can do it with a @dfn{static pattern rule}.  @xref{Static Pattern,
     2930,Static Pattern Rules}.
    31092931
    31102932@node Multiple Rules, Static Pattern, Multiple Targets, Rules
     
    31182940mentioned in all the rules are merged into one list of prerequisites for
    31192941the target.  If the target is older than any prerequisite from any rule,
    3120 the commands are executed.
    3121 
    3122 There can only be one set of commands to be executed for a file.  If
    3123 more than one rule gives commands for the same file, @code{make} uses
    3124 the last set given and prints an error message.  (As a special case,
    3125 if the file's name begins with a dot, no error message is printed.
    3126 This odd behavior is only for compatibility with other implementations
    3127 of @code{make}@dots{} you should avoid using it).  Occasionally it is
    3128 useful to have the same target invoke multiple commands which are
     2942the recipe is executed.
     2943
     2944There can only be one recipe to be executed for a file.  If more than
     2945one rule gives a recipe for the same file, @code{make} uses the last
     2946one given and prints an error message.  (As a special case, if the
     2947file's name begins with a dot, no error message is printed.  This odd
     2948behavior is only for compatibility with other implementations of
     2949@code{make}@dots{} you should avoid using it).  Occasionally it is
     2950useful to have the same target invoke multiple recipes which are
    31292951defined in different parts of your makefile; you can use
    31302952@dfn{double-colon rules} (@pxref{Double-Colon}) for this.
     
    31482970you wish to add the additional prerequisite intermittently.
    31492971
    3150 Another wrinkle is that the additional prerequisites could be specified with
    3151 a variable that you set with a command argument to @code{make}
    3152 (@pxref{Overriding, ,Overriding Variables}).  For example,
     2972Another wrinkle is that the additional prerequisites could be
     2973specified with a variable that you set with a command line argument to
     2974@code{make} (@pxref{Overriding, ,Overriding Variables}).  For example,
    31532975
    31542976@example
     
    31642986will not.
    31652987
    3166 If none of the explicit rules for a target has commands, then @code{make}
    3167 searches for an applicable implicit rule to find some commands
     2988If none of the explicit rules for a target has a recipe, then @code{make}
     2989searches for an applicable implicit rule to find one
    31682990@pxref{Implicit Rules, ,Using Implicit Rules}).
    31692991
     
    31963018@example
    31973019@var{targets} @dots{}: @var{target-pattern}: @var{prereq-patterns} @dots{}
    3198         @var{commands}
     3020        @var{recipe}
    31993021        @dots{}
    32003022@end example
     
    33113133
    33123134An implicit rule @emph{can} apply to any target that matches its pattern,
    3313 but it @emph{does} apply only when the target has no commands otherwise
     3135but it @emph{does} apply only when the target has no recipe otherwise
    33143136specified, and only when the prerequisites can be found.  If more than one
    33153137implicit rule appears applicable, only one applies; the choice depends on
     
    33193141that you specify in the rule.  It cannot apply to any other target and it
    33203142invariably does apply to each of the targets specified.  If two conflicting
    3321 rules apply, and both have commands, that's an error.
     3143rules apply, and both have recipes, that's an error.
    33223144
    33233145The static pattern rule can be better than an implicit rule for these
     
    33523174When a target appears in multiple rules, all the rules must be the same
    33533175type: all ordinary, or all double-colon.  If they are double-colon, each
    3354 of them is independent of the others.  Each double-colon rule's commands
    3355 are executed if the target is older than any prerequisites of that rule.
    3356 If there are no prerequisites for that rule, its commands are always
     3176of them is independent of the others.  Each double-colon rule's recipe
     3177is executed if the target is older than any prerequisites of that rule.
     3178If there are no prerequisites for that rule, its recipe is always
    33573179executed (even if the target already exists).  This can result in
    33583180executing none, any, or all of the double-colon rules.
     
    33643186The double-colon rules for a target are executed in the order they appear
    33653187in the makefile.  However, the cases where double-colon rules really make
    3366 sense are those where the order of executing the commands would not matter.
     3188sense are those where the order of executing the recipes would not matter.
    33673189
    33683190Double-colon rules are somewhat obscure and not often very useful; they
     
    33713193cases are rare.
    33723194
    3373 Each double-colon rule should specify commands; if it does not, an
     3195Each double-colon rule should specify a recipe; if it does not, an
    33743196implicit rule will be used if one applies.
    33753197@xref{Implicit Rules, ,Using Implicit Rules}.
     
    35163338@xref{How Make Works}.
    35173339
    3518 @node Commands, Using Variables, Rules, Top
    3519 @chapter Writing the Commands in Rules
    3520 @cindex commands, how to write
    3521 @cindex rule commands
    3522 @cindex writing rule commands
    3523 
    3524 The commands of a rule consist of one or more shell command lines to
     3340@node Recipes, Using Variables, Rules, Top
     3341@chapter Writing Recipes in Rules
     3342@cindex recipes
     3343@cindex recipes, how to write
     3344@cindex writing recipes
     3345
     3346The recipe of a rule consists of one or more shell command lines to
    35253347be executed, one at a time, in the order they appear.  Typically, the
    35263348result of executing these commands is that the target of the rule is
    35273349brought up to date.
    35283350
    3529 Users use many different shell programs, but commands in makefiles are
     3351Users use many different shell programs, but recipes in makefiles are
    35303352always interpreted by @file{/bin/sh} unless the makefile specifies
    35313353otherwise.  @xref{Execution, ,Command Execution}.
    35323354
    35333355@menu
    3534 * Command Syntax::              Command syntax features and pitfalls.
    3535 * Echoing::                     How to control when commands are echoed.
    3536 * Execution::                   How commands are executed.
    3537 * Parallel::                    How commands can be executed in parallel.
    3538 * Errors::                      What happens after a command execution error.
    3539 * Interrupts::                  What happens when a command is interrupted.
     3356* Recipe Syntax::               Recipe syntax features and pitfalls.
     3357* Echoing::                     How to control when recipes are echoed.
     3358* Execution::                   How recipes are executed.
     3359* Parallel::                    How recipes can be executed in parallel.
     3360* Errors::                      What happens after a recipe execution error.
     3361* Interrupts::                  What happens when a recipe is interrupted.
    35403362* Recursion::                   Invoking @code{make} from makefiles.
    3541 * Sequences::                   Defining canned sequences of commands.
    3542 * Empty Commands::              Defining useful, do-nothing commands.
     3363* Sequences::                   Defining canned recipes.
     3364* Empty Recipes::               Defining useful, do-nothing recipes.
    35433365@end menu
    35443366
    3545 @node Command Syntax, Echoing, Commands, Commands
    3546 @section Command Syntax
    3547 @cindex command syntax
    3548 @cindex syntax of commands
     3367@node Recipe Syntax, Echoing, Recipes, Recipes
     3368@section Recipe Syntax
     3369@cindex recipe syntax
     3370@cindex syntax of recipe
    35493371
    35503372Makefiles have the unusual property that there are really two distinct
    35513373syntaxes in one file.  Most of the makefile uses @code{make} syntax
    3552 (@pxref{Makefiles, ,Writing Makefiles}).  However, commands are meant to be
    3553 interpreted by the shell and so they are written using shell syntax.
    3554 The @code{make} program does not try to understand shell syntax: it
    3555 performs only a very few specific translations on the content of the
    3556 command before handing it to the shell.
    3557 
    3558 Each command line must start with a tab, except that the first command
    3559 line may be attached to the target-and-prerequisites line with a
    3560 semicolon in between.  @emph{Any} line in the makefile that begins
    3561 with a tab and appears in a ``rule context'' (that is, after a rule
    3562 has been started until another rule or variable definition) will be
    3563 considered a command line for that rule.  Blank lines and lines of
    3564 just comments may appear among the command lines; they are ignored.
     3374(@pxref{Makefiles, ,Writing Makefiles}).  However, recipes are meant
     3375to be interpreted by the shell and so they are written using shell
     3376syntax.  The @code{make} program does not try to understand shell
     3377syntax: it performs only a very few specific translations on the
     3378content of the recipe before handing it to the shell.
     3379
     3380Each line in the recipe must start with a tab (or the first character
     3381in the value of the @code{.CMDPREFIX} variable; @pxref{Special
     3382Variables}), except that the first recipe line may be attached to the
     3383target-and-prerequisites line with a semicolon in between.  @emph{Any}
     3384line in the makefile that begins with a tab and appears in a ``rule
     3385context'' (that is, after a rule has been started until another rule
     3386or variable definition) will be considered part of a recipe for that
     3387rule.  Blank lines and lines of just comments may appear among the
     3388recipe lines; they are ignored.
    35653389
    35663390Some consequences of these rules include:
     
    35693393@item
    35703394A blank line that begins with a tab is not blank: it's an empty
    3571 command (@pxref{Empty Commands}).
    3572 
    3573 @cindex comments, in commands
    3574 @cindex commands, comments in
    3575 @cindex @code{#} (comments), in commands
     3395recipe (@pxref{Empty Recipes}).
     3396
     3397@cindex comments, in recipes
     3398@cindex recipes, comments in
     3399@cindex @code{#} (comments), in recipes
    35763400@item
    3577 A comment in a command line is not a @code{make} comment; it will be
     3401A comment in a recipe is not a @code{make} comment; it will be
    35783402passed to the shell as-is.  Whether the shell treats it as a comment
    35793403or not depends on your shell.
     
    35813405@item
    35823406A variable definition in a ``rule context'' which is indented by a tab
    3583 as the first character on the line, will be considered a command line,
    3584 not a @code{make} variable definition, and passed to the shell.
     3407as the first character on the line, will be considered part of a
     3408recipe, not a @code{make} variable definition, and passed to the
     3409shell.
    35853410
    35863411@item
     
    35883413etc. @pxref{Conditional Syntax, ,Syntax of Conditionals}) in a ``rule
    35893414context'' which is indented by a tab as the first character on the
    3590 line, will be considered a command line and be passed to the shell.
     3415line, will be considered part of a recipe and be passed to the shell.
    35913416
    35923417@end itemize
    35933418
    35943419@menu
    3595 * Splitting Lines::             Breaking long command lines for readability.
    3596 * Variables in Commands::       Using @code{make} variables in commands.
     3420* Splitting Lines::             Breaking long recipe lines for readability.
     3421* Variables in Recipes::        Using @code{make} variables in recipes.
    35973422@end menu
    35983423
    3599 @node Splitting Lines, Variables in Commands, Command Syntax, Command Syntax
    3600 @subsection Splitting Command Lines
    3601 @cindex commands, splitting
    3602 @cindex splitting commands
    3603 @cindex commands, backslash (@code{\}) in
    3604 @cindex commands, quoting newlines in
    3605 @cindex backslash (@code{\}), in commands
    3606 @cindex @code{\} (backslash), in commands
    3607 @cindex quoting newline, in commands
    3608 @cindex newline, quoting, in commands
    3609 
    3610 One of the few ways in which @code{make} does interpret command lines
    3611 is checking for a backslash just before the newline.  As in normal
    3612 makefile syntax, a single command can be split into multiple lines in
    3613 the makefile by placing a backslash before each newline.  A sequence
    3614 of lines like this is considered a single command, and one instance of
    3615 the shell will be invoked to run it.
     3424@node Splitting Lines, Variables in Recipes, Recipe Syntax, Recipe Syntax
     3425@subsection Splitting Recipe Lines
     3426@cindex recipes, splitting
     3427@cindex splitting recipes
     3428@cindex recipes, backslash (@code{\}) in
     3429@cindex recipes, quoting newlines in
     3430@cindex backslash (@code{\}), in recipes
     3431@cindex @code{\} (backslash), in recipes
     3432@cindex quoting newline, in recipes
     3433@cindex newline, quoting, in recipes
     3434
     3435One of the few ways in which @code{make} does interpret recipes is
     3436checking for a backslash just before the newline.  As in normal
     3437makefile syntax, a single logical recipe line can be split into
     3438multiple physical lines in the makefile by placing a backslash before
     3439each newline.  A sequence of lines like this is considered a single
     3440recipe line, and one instance of the shell will be invoked to run it.
    36163441
    36173442However, in contrast to how they are treated in other places in a
    36183443makefile, backslash-newline pairs are @emph{not} removed from the
    3619 command.  Both the backslash and the newline characters are preserved
     3444recipe.  Both the backslash and the newline characters are preserved
    36203445and passed to the shell.  How the backslash-newline is interpreted
    3621 depends on your shell.  If the first character of the next line
    3622 after the backslash-newline is a tab, then that tab (and only that
    3623 tab) is removed.  Whitespace is never added to the command.
    3624 
    3625 For example, this makefile:
     3446depends on your shell.  If the first character of the next line after
     3447the backslash-newline is the recipe prefix character (a tab by
     3448default; @pxref{Special Variables}), then that character (and only
     3449that character) is removed.  Whitespace is never added to the recipe.
     3450
     3451For example, the recipe for the all target in this makefile:
    36263452
    36273453@example
     
    36623488
    36633489@noindent
    3664 will run one shell with a command script of:
     3490will invoke one shell with a command of:
    36653491
    36663492@example
     
    36973523or even be a syntax error.  One simple way of handling this is to
    36983524place the quoted string, or even the entire command, into a
    3699 @code{make} variable then use the variable in the command.  In this
     3525@code{make} variable then use the variable in the recipe.  In this
    37003526situation the newline quoting rules for makefiles will be used, and
    37013527the backslash-newline will be removed.  If we rewrite our example
     
    37223548If you like, you can also use target-specific variables
    37233549(@pxref{Target-specific, ,Target-specific Variable Values}) to obtain
    3724 a tighter correspondence between the variable and the command that
     3550a tighter correspondence between the variable and the recipe that
    37253551uses it.
    37263552
    3727 @node Variables in Commands,  , Splitting Lines, Command Syntax
    3728 @subsection Using Variables in Commands
    3729 @cindex variable references in commands
    3730 @cindex commands, using variables in
    3731 
    3732 The other way in which @code{make} processes commands is by expanding
     3553@node Variables in Recipes,  , Splitting Lines, Recipe Syntax
     3554@subsection Using Variables in Recipes
     3555@cindex variable references in recipes
     3556@cindex recipes, using variables in
     3557
     3558The other way in which @code{make} processes recipes is by expanding
    37333559any variable references in them (@pxref{Reference,Basics of Variable
    37343560References}).  This occurs after make has finished reading all the
    37353561makefiles and the target is determined to be out of date; so, the
    3736 commands for targets which are not rebuilt are never expanded.
    3737 
    3738 Variable and function references in commands have identical syntax and
     3562recipes for targets which are not rebuilt are never expanded.
     3563
     3564Variable and function references in recipes have identical syntax and
    37393565semantics to references elsewhere in the makefile.  They also have the
    37403566same quoting rules: if you want a dollar sign to appear in your
    3741 command, you must double it (@samp{$$}).  For shells like the default
     3567recipe, you must double it (@samp{$$}).  For shells like the default
    37423568shell, that use dollar signs to introduce variables, it's important to
    37433569keep clear in your mind whether the variable you want to reference is
     
    37773603@end example
    37783604
    3779 @node Echoing, Execution, Command Syntax, Commands
    3780 @section Command Echoing
    3781 @cindex echoing of commands
     3605@node Echoing, Execution, Recipe Syntax, Recipes
     3606@section Recipe Echoing
     3607@cindex echoing of recipes
    37823608@cindex silent operation
    3783 @cindex @code{@@} (in commands)
    3784 @cindex commands, echoing
    3785 @cindex printing of commands
    3786 
    3787 Normally @code{make} prints each command line before it is executed.
    3788 We call this @dfn{echoing} because it gives the appearance that you
    3789 are typing the commands yourself.
     3609@cindex @code{@@} (in recipes)
     3610@cindex recipes, echoing
     3611@cindex printing of recipes
     3612
     3613Normally @code{make} prints each line of the recipe before it is
     3614executed.  We call this @dfn{echoing} because it gives the appearance
     3615that you are typing the lines yourself.
    37903616
    37913617When a line starts with @samp{@@}, the echoing of that line is suppressed.
    3792 The @samp{@@} is discarded before the command is passed to the shell.
     3618The @samp{@@} is discarded before the line is passed to the shell.
    37933619Typically you would use this for a command whose only effect is to print
    37943620something, such as an @code{echo} command to indicate progress through
     
    38043630@cindex @code{--recon}
    38053631When @code{make} is given the flag @samp{-n} or @samp{--just-print}
    3806 it only echoes commands, it won't execute them.  @xref{Options Summary,
     3632it only echoes recipes, it won't execute them.  @xref{Options Summary,
    38073633,Summary of Options}.  In this case and only this case, even the
    3808 commands starting with @samp{@@} are printed.  This flag is useful for
    3809 finding out which commands @code{make} thinks are necessary without
     3634recipe lines starting with @samp{@@} are printed.  This flag is useful for
     3635finding out which recipes @code{make} thinks are necessary without
    38103636actually doing them.
    38113637
     
    38153641@findex .SILENT
    38163642The @samp{-s} or @samp{--silent}
    3817 flag to @code{make} prevents all echoing, as if all commands
     3643flag to @code{make} prevents all echoing, as if all recipes
    38183644started with @samp{@@}.  A rule in the makefile for the special target
    38193645@code{.SILENT} without prerequisites has the same effect
     
    38213647@code{.SILENT} is essentially obsolete since @samp{@@} is more flexible.@refill
    38223648
    3823 @node Execution, Parallel, Echoing, Commands
    3824 @section Command Execution
    3825 @cindex commands, execution
    3826 @cindex execution, of commands
    3827 @cindex shell command, execution
    3828 @vindex @code{SHELL} @r{(command execution)}
    3829 
    3830 When it is time to execute commands to update a target, they are
    3831 executed by invoking a new subshell for each command line.  (In
     3649@node Execution, Parallel, Echoing, Recipes
     3650@section Recipe Execution
     3651@cindex recipe, execution
     3652@cindex execution, of recipes
     3653@vindex @code{SHELL} @r{(recipe execution)}
     3654
     3655When it is time to execute recipes to update a target, they are
     3656executed by invoking a new subshell for each line of the recipe.  (In
    38323657practice, @code{make} may take shortcuts that do not affect the
    38333658results.)
    38343659
    38353660@cindex @code{cd} (shell command)
    3836 @cindex shell variables, setting in commands
    3837 @cindex commands setting shell variables
     3661@cindex shell variables, setting in recipes
     3662@cindex recipes setting shell variables
    38383663@strong{Please note:} this implies that setting shell variables and
    38393664invoking shell commands such as @code{cd} that set a context local to
    3840 each process will not affect the following command lines.@footnote{On
     3665each process will not affect the following lines in the recipe.@footnote{On
    38413666MS-DOS, the value of current working directory is @strong{global}, so
    3842 changing it @emph{will} affect the following command lines on those
     3667changing it @emph{will} affect the following recipe lines on those
    38433668systems.}  If you want to use @code{cd} to affect the next statement,
    3844 put both statements in a single command line.  Then @code{make} will
     3669put both statements in a single recipe line.  Then @code{make} will
    38453670invoke one shell to run the entire line, and the shell will execute
    38463671the statements in sequence.  For example:
     
    38603685@menu
    38613686* Choosing the Shell::          How @code{make} chooses the shell used
    3862                                   to run commands.
     3687                                  to run recipes.
    38633688@end menu
    38643689
     
    38823707
    38833708Furthermore, when you do set @code{SHELL} in your makefile that value
    3884 is @emph{not} exported in the environment to commands that @code{make}
    3885 invokes.  Instead, the value inherited from the user's environment, if
    3886 any, is exported.  You can override this behavior by explicitly
    3887 exporting @code{SHELL} (@pxref{Variables/Recursion, ,Communicating
    3888 Variables to a Sub-@code{make}}), forcing it to be passed in the
    3889 environment to commands.
     3709is @emph{not} exported in the environment to recipe lines that
     3710@code{make} invokes.  Instead, the value inherited from the user's
     3711environment, if any, is exported.  You can override this behavior by
     3712explicitly exporting @code{SHELL} (@pxref{Variables/Recursion,
     3713,Communicating Variables to a Sub-@code{make}}), forcing it to be
     3714passed in the environment to recipe lines.
    38903715
    38913716@vindex @code{MAKESHELL} @r{(MS-DOS alternative to @code{SHELL})}
     
    39623787directory along your @code{PATH}.
    39633788
    3964 @node Parallel, Errors, Execution, Commands
     3789@node Parallel, Errors, Execution, Recipes
    39653790@section Parallel Execution
    3966 @cindex commands, execution in parallel
     3791@cindex recipes, execution in parallel
    39673792@cindex parallel execution
    39683793@cindex execution, in parallel
     
    39713796@cindex @code{--jobs}
    39723797
    3973 GNU @code{make} knows how to execute several commands at once.
    3974 Normally, @code{make} will execute only one command at a time, waiting
     3798GNU @code{make} knows how to execute several recipes at once.
     3799Normally, @code{make} will execute only one recipe at a time, waiting
    39753800for it to finish before executing the next.  However, the @samp{-j} or
    3976 @samp{--jobs} option tells @code{make} to execute many commands
     3801@samp{--jobs} option tells @code{make} to execute many recipes
    39773802simultaneously.  You can inhibit parallelism in a particular makefile
    39783803with the @code{.NOTPARALLEL} pseudo-target (@pxref{Special
     
    39833808
    39843809If the @samp{-j} option is followed by an integer, this is the number of
    3985 commands to execute at once; this is called the number of @dfn{job slots}.
     3810recipes to execute at once; this is called the number of @dfn{job slots}.
    39863811If there is nothing looking like an integer after the @samp{-j} option,
    39873812there is no limit on the number of job slots.  The default number of job
    39883813slots is one, which means serial execution (one thing at a time).
    39893814
    3990 One unpleasant consequence of running several commands simultaneously is
    3991 that output generated by the commands appears whenever each command
    3992 sends it, so messages from different commands may be interspersed.
     3815One unpleasant consequence of running several recipes simultaneously is
     3816that output generated by the recipes appears whenever each recipe
     3817sends it, so messages from different recipes may be interspersed.
    39933818
    39943819Another problem is that two processes cannot both take input from the
    3995 same device; so to make sure that only one command tries to take input
     3820same device; so to make sure that only one recipe tries to take input
    39963821from the terminal at once, @code{make} will invalidate the standard
    3997 input streams of all but one running command.  This means that
     3822input streams of all but one running recipe.  This means that
    39983823attempting to read from standard input will usually be a fatal error (a
    39993824@samp{Broken pipe} signal) for most child processes if there are
     
    40023827@cindex standard input
    40033828
    4004 It is unpredictable which command will have a valid standard input stream
     3829It is unpredictable which recipe will have a valid standard input stream
    40053830(which will come from the terminal, or wherever you redirect the standard
    4006 input of @code{make}).  The first command run will always get it first, and
    4007 the first command started after that one finishes will get it next, and so
     3831input of @code{make}).  The first recipe run will always get it first, and
     3832the first recipe started after that one finishes will get it next, and so
    40083833on.
    40093834
    40103835We will change how this aspect of @code{make} works if we find a better
    4011 alternative.  In the mean time, you should not rely on any command using
     3836alternative.  In the mean time, you should not rely on any recipe using
    40123837standard input at all if you are using the parallel execution feature; but
    40133838if you are not using this feature, then standard input works normally in
    4014 all commands.
     3839all recipes.
    40153840
    40163841Finally, handling recursive @code{make} invocations raises issues.  For
     
    40183843@ref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}.
    40193844
    4020 If a command fails (is killed by a signal or exits with a nonzero
    4021 status), and errors are not ignored for that command
    4022 (@pxref{Errors, ,Errors in Commands}),
    4023 the remaining command lines to remake the same target will not be run.
    4024 If a command fails and the @samp{-k} or @samp{--keep-going}
     3845If a recipe fails (is killed by a signal or exits with a nonzero
     3846status), and errors are not ignored for that recipe
     3847(@pxref{Errors, ,Errors in Recipes}),
     3848the remaining recipe lines to remake the same target will not be run.
     3849If a recipe fails and the @samp{-k} or @samp{--keep-going}
    40253850option was not given
    40263851(@pxref{Options Summary, ,Summary of Options}),
     
    40583883By default, there is no load limit.
    40593884
    4060 @node Errors, Interrupts, Parallel, Commands
    4061 @section Errors in Commands
    4062 @cindex errors (in commands)
    4063 @cindex commands, errors in
     3885@node Errors, Interrupts, Parallel, Recipes
     3886@section Errors in Recipes
     3887@cindex errors (in recipes)
     3888@cindex recipes, errors in
    40643889@cindex exit status (errors)
    40653890
    4066 After each shell command returns, @code{make} looks at its exit status.
    4067 If the command completed successfully, the next command line is executed
    4068 in a new shell; after the last command line is finished, the rule is
    4069 finished.
     3891After each shell invocation returns, @code{make} looks at its exit
     3892status.  If the shell completed successfully (the exit status is
     3893zero), the next line in the recipe is executed in a new shell; after
     3894the last line is finished, the rule is finished.
    40703895
    40713896If there is an error (the exit status is nonzero), @code{make} gives up on
    40723897the current rule, and perhaps on all rules.
    40733898
    4074 Sometimes the failure of a certain command does not indicate a problem.
     3899Sometimes the failure of a certain recipe line does not indicate a problem.
    40753900For example, you may use the @code{mkdir} command to ensure that a
    40763901directory exists.  If the directory already exists, @code{mkdir} will
    40773902report an error, but you probably want @code{make} to continue regardless.
    40783903
    4079 @cindex @code{-} (in commands)
    4080 To ignore errors in a command line, write a @samp{-} at the beginning of
    4081 the line's text (after the initial tab).  The @samp{-} is discarded before
    4082 the command is passed to the shell for execution.
     3904@cindex @code{-} (in recipes)
     3905To ignore errors in a recipe line, write a @samp{-} at the beginning
     3906of the line's text (after the initial tab).  The @samp{-} is discarded
     3907before the line is passed to the shell for execution.
    40833908
    40843909For example,
     
    40933918
    40943919@noindent
    4095 This causes @code{rm} to continue even if it is unable to remove a file.
     3920This causes @code{make} to continue even if @code{rm} is unable to
     3921remove a file.
    40963922
    40973923@cindex @code{-i}
     
    40993925@findex .IGNORE
    41003926When you run @code{make} with the @samp{-i} or @samp{--ignore-errors}
    4101 flag, errors are ignored in all commands of all rules.  A rule in the
     3927flag, errors are ignored in all recipes of all rules.  A rule in the
    41023928makefile for the special target @code{.IGNORE} has the same effect, if
    41033929there are no prerequisites.  These ways of ignoring errors are obsolete
     
    41073933@samp{-i} flag, @code{make} treats an error return just like success,
    41083934except that it prints out a message that tells you the status code
    4109 the command exited with, and says that the error has been ignored.
     3935the shell exited with, and says that the error has been ignored.
    41103936
    41113937When an error happens that @code{make} has not been told to ignore,
    41123938it implies that the current target cannot be correctly remade, and neither
    41133939can any other that depends on it either directly or indirectly.  No further
    4114 commands will be executed for these targets, since their preconditions
     3940recipes will be executed for these targets, since their preconditions
    41153941have not been achieved.
    41163942
     
    41413967@cindex removal of target files
    41423968@cindex target, deleting on error
    4143 Usually when a command fails, if it has changed the target file at all,
     3969Usually when a recipe line fails, if it has changed the target file at all,
    41443970the file is corrupted and cannot be used---or at least it is not
    41453971completely updated.  Yet the file's time stamp says that it is now up to
    41463972date, so the next time @code{make} runs, it will not try to update that
    4147 file.  The situation is just the same as when the command is killed by a
     3973file.  The situation is just the same as when the shell is killed by a
    41483974signal; @pxref{Interrupts}.  So generally the right thing to do is to
    4149 delete the target file if the command fails after beginning to change
     3975delete the target file if the recipe fails after beginning to change
    41503976the file.  @code{make} will do this if @code{.DELETE_ON_ERROR} appears
    41513977as a target.  This is almost always what you want @code{make} to do, but
     
    41533979request it.
    41543980
    4155 @node Interrupts, Recursion, Errors, Commands
     3981@node Interrupts, Recursion, Errors, Recipes
    41563982@section Interrupting or Killing @code{make}
    41573983@cindex interrupt
     
    41623988@cindex killing (interruption)
    41633989
    4164 If @code{make} gets a fatal signal while a command is executing, it may
    4165 delete the target file that the command was supposed to update.  This is
     3990If @code{make} gets a fatal signal while a shell is executing, it may
     3991delete the target file that the recipe was supposed to update.  This is
    41663992done if the target file's last-modification time has changed since
    41673993@code{make} first checked it.
     
    41884014times to prevent other sorts of trouble.
    41894015
    4190 @node Recursion, Sequences, Interrupts, Commands
     4016@node Recursion, Sequences, Interrupts, Recipes
    41914017@section Recursive Use of @code{make}
    41924018@cindex recursion
     
    42584084
    42594085The value of this variable is the file name with which @code{make} was
    4260 invoked.  If this file name was @file{/bin/make}, then the command executed
     4086invoked.  If this file name was @file{/bin/make}, then the recipe executed
    42614087is @samp{cd subdir && /bin/make}.  If you use a special version of
    42624088@code{make} to run the top-level makefile, the same special version will be
     
    42644090@cindex @code{cd} (shell command)
    42654091
    4266 @cindex +, and commands
    4267 As a special feature, using the variable @code{MAKE} in the commands of
     4092@cindex +, and recipes
     4093As a special feature, using the variable @code{MAKE} in the recipe of
    42684094a rule alters the effects of the @samp{-t} (@samp{--touch}), @samp{-n}
    42694095(@samp{--just-print}), or @samp{-q} (@w{@samp{--question}}) option.
    42704096Using the @code{MAKE} variable has the same effect as using a @samp{+}
    4271 character at the beginning of the command line.  @xref{Instead of
    4272 Execution, ,Instead of Executing the Commands}.  This special feature
     4097character at the beginning of the recipe line.  @xref{Instead of
     4098Execution, ,Instead of Executing the Recipes}.  This special feature
    42734099is only enabled if the @code{MAKE} variable appears directly in the
    4274 command script: it does not apply if the @code{MAKE} variable is
    4275 referenced through expansion of another variable.  In the latter case
    4276 you must use the @samp{+} token to get these special effects.@refill
     4100recipe: it does not apply if the @code{MAKE} variable is referenced
     4101through expansion of another variable.  In the latter case you must
     4102use the @samp{+} token to get these special effects.@refill
    42774103
    42784104Consider the command @samp{make -t} in the above example.  (The
    42794105@samp{-t} option marks targets as up to date without actually running
    4280 any commands; see @ref{Instead of Execution}.)  Following the usual
     4106any recipes; see @ref{Instead of Execution}.)  Following the usual
    42814107definition of @samp{-t}, a @samp{make -t} command in the example would
    42824108create a file named @file{subsystem} and do nothing else.  What you
    4283 really want it to do is run @samp{@w{cd subdir &&} @w{make -t}}; but that would
    4284 require executing the command, and @samp{-t} says not to execute
    4285 commands.@refill
     4109really want it to do is run @samp{@w{cd subdir &&} @w{make -t}}; but
     4110that would require executing the recipe, and @samp{-t} says not to
     4111execute recipes.@refill
    42864112@cindex @code{-t}, and recursion
    42874113@cindex recursion, and @code{-t}
    42884114@cindex @code{--touch}, and recursion
    42894115
    4290 The special feature makes this do what you want: whenever a command
     4116The special feature makes this do what you want: whenever a recipe
    42914117line of a rule contains the variable @code{MAKE}, the flags @samp{-t},
    4292 @samp{-n} and @samp{-q} do not apply to that line.  Command lines
     4118@samp{-n} and @samp{-q} do not apply to that line.  Recipe lines
    42934119containing @code{MAKE} are executed normally despite the presence of a
    4294 flag that causes most commands not to be run.  The usual
     4120flag that causes most recipes not to be run.  The usual
    42954121@code{MAKEFLAGS} mechanism passes the flags to the sub-@code{make}
    42964122(@pxref{Options/Recursion, ,Communicating Options to a
    42974123Sub-@code{make}}), so your request to touch the files, or print the
    4298 commands, is propagated to the subsystem.@refill
     4124recipes, is propagated to the subsystem.@refill
    42994125
    43004126@node Variables/Recursion, Options/Recursion, MAKE Variable, Recursion
     
    43154141,Summary of Options}).@refill
    43164142
    4317 To pass down, or @dfn{export}, a variable, @code{make} adds the variable
    4318 and its value to the environment for running each command.  The
    4319 sub-@code{make}, in turn, uses the environment to initialize its table
    4320 of variable values.  @xref{Environment, ,Variables from the
    4321 Environment}.
     4143To pass down, or @dfn{export}, a variable, @code{make} adds the
     4144variable and its value to the environment for running each line of the
     4145recipe.  The sub-@code{make}, in turn, uses the environment to
     4146initialize its table of variable values.  @xref{Environment,
     4147,Variables from the Environment}.
    43224148
    43234149Except by explicit request, @code{make} exports a variable only if it
     
    44544280by itself earlier (in an included makefile, perhaps).  You
    44554281@strong{cannot} use @code{export} and @code{unexport} by themselves to
    4456 have variables exported for some commands and not for others.  The last
     4282have variables exported for some recipes and not for others.  The last
    44574283@code{export} or @code{unexport} directive that appears by itself
    44584284determines the behavior for the entire run of @code{make}.@refill
     
    44654291@samp{0} for the top-level @code{make}; @samp{1} for a sub-@code{make},
    44664292@samp{2} for a sub-sub-@code{make}, and so on.  The incrementation
    4467 happens when @code{make} sets up the environment for a command.@refill
     4293happens when @code{make} sets up the environment for a recipe.@refill
    44684294
    44694295The main use of @code{MAKELEVEL} is to test it in a conditional
     
    45344360ensure that there are only @samp{N} jobs running at the same time
    45354361between them all.  Note that any job that is marked recursive
    4536 (@pxref{Instead of Execution, ,Instead of Executing the Commands})
     4362(@pxref{Instead of Execution, ,Instead of Executing the Recipes})
    45374363doesn't count against the total jobs (otherwise we could get @samp{N}
    45384364sub-@code{make}s running and have no slots left over for any real work!)
     
    46704496disable it.
    46714497
    4672 @node Sequences, Empty Commands, Recursion, Commands
    4673 @section Defining Canned Command Sequences
     4498@node Sequences, Empty Recipes, Recursion, Recipes
     4499@section Defining Canned Recipes
     4500@cindex canned recipes
     4501@cindex recipes, canned
    46744502@cindex sequences of commands
    46754503@cindex commands, sequences of
    46764504
    4677 When the same sequence of commands is useful in making various targets, you
    4678 can define it as a canned sequence with the @code{define} directive, and
    4679 refer to the canned sequence from the rules for those targets.  The canned
    4680 sequence is actually a variable, so the name must not conflict with other
    4681 variable names.
    4682 
    4683 Here is an example of defining a canned sequence of commands:
     4505When the same sequence of commands is useful in making various
     4506targets, you can define it as a canned sequence with the @code{define}
     4507directive, and refer to the canned sequence from the recipes for those
     4508targets.  The canned sequence is actually a variable, so the name must
     4509not conflict with other variable names.
     4510
     4511Here is an example of defining a canned recipes:
    46844512
    46854513@example
     
    47064534rule's target file name.
    47074535
    4708 To use the canned sequence, substitute the variable into the commands of a
     4536To use the canned sequence, substitute the variable into the recipe of a
    47094537rule.  You can substitute it like any other variable
    47104538(@pxref{Reference, ,Basics of Variable References}).
     
    47304558@cindex -, and @code{define}
    47314559@cindex +, and @code{define}
    4732 In command execution, each line of a canned sequence is treated just as
     4560In recipe execution, each line of a canned sequence is treated just as
    47334561if the line appeared on its own in the rule, preceded by a tab.  In
    47344562particular, @code{make} invokes a separate subshell for each line.  You
    47354563can use the special prefix characters that affect command lines
    47364564(@samp{@@}, @samp{-}, and @samp{+}) on each line of a canned sequence.
    4737 @xref{Commands, ,Writing the Commands in Rules}.
     4565@xref{Recipes, ,Writing Recipes in Rules}.
    47384566For example, using this canned sequence:
    47394567
     
    47484576@noindent
    47494577@code{make} will not echo the first line, the @code{echo} command.
    4750 But it @emph{will} echo the following two command lines.
    4751 
    4752 On the other hand, prefix characters on the command line that refers to
     4578But it @emph{will} echo the following two recipe lines.
     4579
     4580On the other hand, prefix characters on the recipe line that refers to
    47534581a canned sequence apply to every line in the sequence.  So the rule:
    47544582
     
    47594587
    47604588@noindent
    4761 does not echo @emph{any} commands.
    4762 (@xref{Echoing, ,Command Echoing}, for a full explanation of @samp{@@}.)
    4763 
    4764 @node Empty Commands,  , Sequences, Commands
    4765 @section Using Empty Commands
    4766 @cindex empty commands
    4767 @cindex commands, empty
    4768 
    4769 It is sometimes useful to define commands which do nothing.  This is done
    4770 simply by giving a command that consists of nothing but whitespace.  For
     4589does not echo @emph{any} recipe lines.
     4590(@xref{Echoing, ,Recipe Echoing}, for a full explanation of @samp{@@}.)
     4591
     4592@node Empty Recipes,  , Sequences, Recipes
     4593@section Using Empty Recipes
     4594@cindex empty recipes
     4595@cindex recipes, empty
     4596
     4597It is sometimes useful to define recipes which do nothing.  This is done
     4598simply by giving a recipe that consists of nothing but whitespace.  For
    47714599example:
    47724600
     
    47764604
    47774605@noindent
    4778 defines an empty command string for @file{target}.  You could also use a
    4779 line beginning with a tab character to define an empty command string,
     4606defines an empty recipe for @file{target}.  You could also use a line
     4607beginning with a recipe prefix character to define an empty recipe,
    47804608but this would be confusing because such a line looks empty.
    47814609
    4782 @findex .DEFAULT@r{, and empty commands}
    4783 You may be wondering why you would want to define a command string that
     4610@findex .DEFAULT@r{, and empty recipes}
     4611You may be wondering why you would want to define a recipe that
    47844612does nothing.  The only reason this is useful is to prevent a target
    4785 from getting implicit commands (from implicit rules or the
     4613from getting implicit recipes (from implicit rules or the
    47864614@code{.DEFAULT} special target; @pxref{Implicit Rules} and
    47874615@pxref{Last Resort, ,Defining Last-Resort Default Rules}).@refill
     
    47974625@end ignore
    47984626
    4799 You may be inclined to define empty command strings for targets that are
     4627You may be inclined to define empty recipes for targets that are
    48004628not actual files, but only exist so that their prerequisites can be
    48014629remade.  However, this is not the best way to do that, because the
     
    48034631@xref{Phony Targets, ,Phony Targets}, for a better way to do this.
    48044632
    4805 @node Using Variables, Conditionals, Commands, Top
     4633@node Using Variables, Conditionals, Recipes, Top
    48064634@chapter How to Use Variables
    48074635@cindex variable
     
    48124640A @dfn{variable} is a name defined in a makefile to represent a string
    48134641of text, called the variable's @dfn{value}.  These values are
    4814 substituted by explicit request into targets, prerequisites, commands,
     4642substituted by explicit request into targets, prerequisites, recipes,
    48154643and other parts of the makefile.  (In some other versions of @code{make},
    48164644variables are called @dfn{macros}.)
     
    48184646
    48194647Variables and functions in all parts of a makefile are expanded when
    4820 read, except for the shell commands in rules, the right-hand sides of
    4821 variable definitions using @samp{=}, and the bodies of variable
    4822 definitions using the @code{define} directive.@refill
     4648read, except for in recipes, the right-hand sides of variable
     4649definitions using @samp{=}, and the bodies of variable definitions
     4650using the @code{define} directive.@refill
    48234651
    48244652Variables can represent lists of file names, options to pass to compilers,
     
    48644692* Pattern-specific::            Target-specific variable values can be applied
    48654693                                  to a group of targets that match a pattern.
     4694* Special Variables::           Variables with special meaning or behavior.
    48664695@end menu
    48674696
     
    48774706@samp{$@{foo@}} is a valid reference to the variable @code{foo}.  This
    48784707special significance of @samp{$} is why you must write @samp{$$} to have
    4879 the effect of a single dollar sign in a file name or command.
     4708the effect of a single dollar sign in a file name or recipe.
    48804709
    48814710Variable references can be used in any context: targets, prerequisites,
    4882 commands, most directives, and new variable values.  Here is an
     4711recipes, most directives, and new variable values.  Here is an
    48834712example of a common case, where a variable holds the names of all the
    48844713object files in a program:
     
    49624791
    49634792@noindent
    4964 will do what was intended: when @samp{CFLAGS} is expanded in a command,
     4793will do what was intended: when @samp{CFLAGS} is expanded in a recipe,
    49654794it will expand to @samp{-Ifoo -Ibar -O}.  A major disadvantage is that you
    49664795cannot append something on the end of a variable, as in
     
    50384867@noindent
    50394868An advantage of this use of @samp{:=} is that a typical
    5040 `descend into a directory' command then looks like this:
     4869`descend into a directory' recipe then looks like this:
    50414870
    50424871@example
     
    56865515You may nest @code{define} directives: @code{make} will keep track of
    56875516nested directives and report an error if they are not all properly
    5688 closed with @code{endef}.  Note that lines beginning with tab
    5689 characters are considered part of a command script, so any
    5690 @code{define} or @code{endef} strings appearing on such a line will
    5691 not be considered @code{make} operators.
     5517closed with @code{endef}.  Note that lines beginning with the recipe
     5518prefix character are considered part of a recipe, so any @code{define}
     5519or @code{endef} strings appearing on such a line will not be
     5520considered @code{make} operators.
    56925521
    56935522@example
     
    57045533
    57055534@need 800
    5706 When used in a command script, the previous example is functionally
    5707 equivalent to this:
     5535When used in a recipe, the previous example is functionally equivalent
     5536to this:
    57085537
    57095538@example
     
    57155544shell commands.  However, note that using two separate lines means
    57165545@code{make} will invoke the shell twice, running an independent subshell
    5717 for each line.  @xref{Execution, ,Command Execution}.
     5546for each line.  @xref{Execution, ,Recipe Execution}.
    57185547
    57195548If you want variable definitions made with @code{define} to take
     
    57525581and therefore are not affected by the value in the environment.)
    57535582
    5754 When @code{make} runs a command script, variables defined in the
    5755 makefile are placed into the environment of that command.  This allows
     5583When @code{make} runs a recipe, variables defined in the
     5584makefile are placed into the environment of each shell.  This allows
    57565585you to pass values to sub-@code{make} invocations (@pxref{Recursion,
    57575586,Recursive Use of @code{make}}).  By default, only variables that came
     
    57895618based on the target that @code{make} is currently building.  As with
    57905619automatic variables, these values are only available within the context
    5791 of a target's command script (and in other target-specific assignments).
     5620of a target's recipe (and in other target-specific assignments).
    57925621
    57935622Set a target-specific variable value like this:
     
    58245653
    58255654Target-specific variables have the same priority as any other makefile
    5826 variable.  Variables provided on the command-line (and in the
     5655variable.  Variables provided on the command line (and in the
    58275656environment if the @samp{-e} option is in force) will take precedence.
    58285657Specifying the @code{override} directive will allow the target-specific
     
    58425671
    58435672@noindent
    5844 will set @code{CFLAGS} to @samp{-g} in the command script for
    5845 @file{prog}, but it will also set @code{CFLAGS} to @samp{-g} in the
    5846 command scripts that create @file{prog.o}, @file{foo.o}, and
    5847 @file{bar.o}, and any command scripts which create their
    5848 prerequisites.
     5673will set @code{CFLAGS} to @samp{-g} in the recipe for @file{prog}, but
     5674it will also set @code{CFLAGS} to @samp{-g} in the recipes that create
     5675@file{prog.o}, @file{foo.o}, and @file{bar.o}, and any recipes which
     5676create their prerequisites.
    58495677
    58505678Be aware that a given prerequisite will only be built once per
     
    58565684ignore the target-specific values from any other targets.
    58575685
    5858 @node Pattern-specific,  , Target-specific, Using Variables
     5686@node Pattern-specific, Special Variables, Target-specific, Using Variables
    58595687@section Pattern-specific Variable Values
    58605688@cindex pattern-specific variables
     
    58895717values, multiple @var{pattern} values create a pattern-specific variable
    58905718value for each pattern individually.  The @var{variable-assignment} can
    5891 be any valid form of assignment.  Any command-line variable setting will
     5719be any valid form of assignment.  Any command line variable setting will
    58925720take precedence, unless @code{override} is specified.
    58935721
     
    59025730matching the pattern @code{%.o}.
    59035731
     5732@node Special Variables,  , Pattern-specific, Using Variables
     5733@comment  node-name,  next,  previous,  up
     5734@section Other Special Variables
     5735@cindex makefiles, and special variables
     5736@cindex special variables
     5737
     5738GNU @code{make} supports some variables that have special properties.
     5739
     5740@table @code
     5741
     5742@vindex MAKEFILE_LIST @r{(list of parsed makefiles)}
     5743@cindex makefiles, and @code{MAKEFILE_LIST} variable
     5744@cindex including (@code{MAKEFILE_LIST} variable)
     5745@item MAKEFILE_LIST
     5746Contains the name of each makefile that is parsed by @code{make}, in
     5747the order in which it was parsed.  The name is appended just
     5748before @code{make} begins to parse the makefile.  Thus, if the first
     5749thing a makefile does is examine the last word in this variable, it
     5750will be the name of the current makefile.  Once the current makefile
     5751has used @code{include}, however, the last word will be the
     5752just-included makefile.
     5753
     5754If a makefile named @code{Makefile} has this content:
     5755
     5756@example
     5757@group
     5758name1 := $(lastword $(MAKEFILE_LIST))
     5759
     5760include inc.mk
     5761
     5762name2 := $(lastword $(MAKEFILE_LIST))
     5763
     5764all:
     5765        @@echo name1 = $(name1)
     5766        @@echo name2 = $(name2)
     5767@end group
     5768@end example
     5769
     5770@noindent
     5771then you would expect to see this output:
     5772
     5773@example
     5774@group
     5775name1 = Makefile
     5776name2 = inc.mk
     5777@end group
     5778@end example
     5779
     5780@vindex .DEFAULT_GOAL @r{(define default goal)}
     5781@item .DEFAULT_GOAL
     5782Sets the default goal to be used if no targets were specified on the
     5783command line (@pxref{Goals, , Arguments to Specify the Goals}).  The
     5784@code{.DEFAULT_GOAL} variable allows you to discover the current
     5785default goal, restart the default goal selection algorithm by clearing
     5786its value, or to explicitly set the default goal.  The following
     5787example illustrates these cases:
     5788
     5789@example
     5790@group
     5791# Query the default goal.
     5792ifeq ($(.DEFAULT_GOAL),)
     5793  $(warning no default goal is set)
     5794endif
     5795
     5796.PHONY: foo
     5797foo: ; @@echo $@@
     5798
     5799$(warning default goal is $(.DEFAULT_GOAL))
     5800
     5801# Reset the default goal.
     5802.DEFAULT_GOAL :=
     5803
     5804.PHONY: bar
     5805bar: ; @@echo $@@
     5806
     5807$(warning default goal is $(.DEFAULT_GOAL))
     5808
     5809# Set our own.
     5810.DEFAULT_GOAL := foo
     5811@end group
     5812@end example
     5813
     5814This makefile prints:
     5815
     5816@example
     5817@group
     5818no default goal is set
     5819default goal is foo
     5820default goal is bar
     5821foo
     5822@end group
     5823@end example
     5824
     5825Note that assigning more than one target name to @code{.DEFAULT_GOAL} is
     5826illegal and will result in an error.
     5827
     5828@vindex MAKE_RESTARTS @r{(number of times @code{make} has restarted)}
     5829@item MAKE_RESTARTS
     5830This variable is set only if this instance of @code{make} has
     5831restarted (@pxref{Remaking Makefiles, , How Makefiles Are Remade}): it
     5832will contain the number of times this instance has restarted.  Note
     5833this is not the same as recursion (counted by the @code{MAKELEVEL}
     5834variable).  You should not set, modify, or export this variable.
     5835
     5836@vindex .CMDPREFIX @r{(change the recipe prefix character)}
     5837@item .CMDPREFIX
     5838The first character of the value of this variable is used as the
     5839character make assumes is introducing a recipe line.  If the variable
     5840is empty (as it is by default) that character is the standard tab
     5841character.  For example, this is a valid makefile:
     5842
     5843@example
     5844@group
     5845.CMDPREFIX = >
     5846all:
     5847> @@echo Hello, world
     5848@end group
     5849@end example
     5850
     5851The value of @code{.CMDPREFIX} can be changed multiple times; once set
     5852it stays in effect for all rules parsed until it is modified.
     5853
     5854@vindex .VARIABLES @r{(list of variables)}
     5855@item .VARIABLES
     5856Expands to a list of the @emph{names} of all global variables defined
     5857so far.  This includes variables which have empty values, as well as
     5858built-in variables (@pxref{Implicit Variables, , Variables Used by
     5859Implicit Rules}), but does not include any variables which are only
     5860defined in a target-specific context.  Note that any value you assign
     5861to this variable will be ignored; it will always return its special
     5862value.
     5863
     5864@c @vindex .TARGETS @r{(list of targets)}
     5865@c @item .TARGETS
     5866@c The second special variable is @code{.TARGETS}.  When expanded, the
     5867@c value consists of a list of all targets defined in all makefiles read
     5868@c up until that point.  Note it's not enough for a file to be simply
     5869@c mentioned in the makefile to be listed in this variable, even if it
     5870@c would match an implicit rule and become an ``implicit target''.  The
     5871@c file must appear as a target, on the left-hand side of a ``:'', to be
     5872@c considered a target for the purposes of this variable.
     5873
     5874@vindex .FEATURES @r{(list of supported features)}
     5875@item .FEATURES
     5876Expands to a list of special features supported by this version of
     5877@code{make}.  Possible values include:
     5878
     5879@table @samp
     5880
     5881@item archives
     5882Supports @code{ar} (archive) files using special filename syntax.
     5883@xref{Archives, ,Using @code{make} to Update Archive Files}.
     5884
     5885@item check-symlink
     5886Supports the @code{-L} (@code{--check-symlink-times}) flag.
     5887@xref{Options Summary, ,Summary of Options}.
     5888
     5889@item else-if
     5890Supports ``else if'' non-nested conditionals.  @xref{Conditional
     5891Syntax, ,Syntax of Conditionals}.
     5892
     5893@item jobserver
     5894Supports ``job server'' enhanced parallel builds.  @xref{Parallel,
     5895,Parallel Execution}.
     5896
     5897@item second-expansion
     5898Supports secondary expansion of prerequisite lists.
     5899
     5900@item order-only
     5901Supports order-only prerequisites.  @xref{Prerequisite Types, ,Types
     5902of Prerequisites}.
     5903
     5904@item target-specific
     5905Supports target-specific and pattern-specific variable assignments.
     5906@xref{Target-specific, ,Target-specific Variable Values}.
     5907
     5908@end table
     5909
     5910@vindex .INCLUDE_DIRS @r{(list of include directories)}
     5911@item .INCLUDE_DIRS
     5912Expands to a list of directories that @code{make} searches for
     5913included makefiles (@pxref{Include, , Including Other Makefiles}).
     5914
     5915@end table
     5916
    59045917@node Conditionals, Functions, Using Variables, Top
    59055918@chapter Conditional Parts of Makefiles
    59065919
    59075920@cindex conditionals
    5908 A @dfn{conditional} causes part of a makefile to be obeyed or ignored
    5909 depending on the values of variables.  Conditionals can compare the
    5910 value of one variable to another, or the value of a variable to
    5911 a constant string.  Conditionals control what @code{make} actually
    5912 ``sees'' in the makefile, so they @emph{cannot} be used to control shell
    5913 commands at the time of execution.@refill
     5921A @dfn{conditional} directive causes part of a makefile to be obeyed
     5922or ignored depending on the values of variables.  Conditionals can
     5923compare the value of one variable to another, or the value of a
     5924variable to a constant string.  Conditionals control what @code{make}
     5925actually ``sees'' in the makefile, so they @emph{cannot} be used to
     5926control recipes at the time of execution.@refill
    59145927
    59155928@menu
     
    59225935@section Example of a Conditional
    59235936
    5924 The following example of a conditional tells @code{make} to use one set
    5925 of libraries if the @code{CC} variable is @samp{gcc}, and a different
    5926 set of libraries otherwise.  It works by controlling which of two
    5927 command lines will be used as the command for a rule.  The result is
    5928 that @samp{CC=gcc} as an argument to @code{make} changes not only which
     5937The following example of a conditional tells @code{make} to use one
     5938set of libraries if the @code{CC} variable is @samp{gcc}, and a
     5939different set of libraries otherwise.  It works by controlling which
     5940of two recipe lines will be used for the rule.  The result is that
     5941@samp{CC=gcc} as an argument to @code{make} changes not only which
    59295942compiler is used but also which libraries are linked.
    59305943
     
    61536166@end table
    61546167
    6155 Extra spaces are allowed and ignored at the beginning of the conditional
    6156 directive line, but a tab is not allowed.  (If the line begins with a tab,
    6157 it will be considered a command for a rule.)  Aside from this, extra spaces
    6158 or tabs may be inserted with no effect anywhere except within the directive
    6159 name or within an argument.  A comment starting with @samp{#} may appear at
    6160 the end of the line.
     6168Extra spaces are allowed and ignored at the beginning of the
     6169conditional directive line, but a tab is not allowed.  (If the line
     6170begins with a tab, it will be considered part of a recipe for a rule.)
     6171Aside from this, extra spaces or tabs may be inserted with no effect
     6172anywhere except within the directive name or within an argument.  A
     6173comment starting with @samp{#} may appear at the end of the line.
    61616174
    61626175The other two directives that play a part in a conditional are @code{else}
     
    61756188@code{make} evaluates conditionals when it reads a makefile.
    61766189Consequently, you cannot use automatic variables in the tests of
    6177 conditionals because they are not defined until commands are run
     6190conditionals because they are not defined until recipes are run
    61786191(@pxref{Automatic Variables}).
    61796192
     
    62126225
    62136226@noindent
    6214 The @samp{+} prefix marks those command lines as ``recursive'' so
    6215 that they will be executed despite use of the @samp{-t} flag.
     6227The @samp{+} prefix marks those recipe lines as ``recursive'' so that
     6228they will be executed despite use of the @samp{-t} flag.
    62166229@xref{Recursion, ,Recursive Use of @code{make}}.
    62176230
     
    62206233@cindex functions
    62216234
    6222 @dfn{Functions} allow you to do text processing in the makefile to compute
    6223 the files to operate on or the commands to use.  You use a function in a
    6224 @dfn{function call}, where you give the name of the function and some text
    6225 (the @dfn{arguments}) for the function to operate on.  The result of the
    6226 function's processing is substituted into the makefile at the point of the
    6227 call, just as a variable might be substituted.
     6235@dfn{Functions} allow you to do text processing in the makefile to
     6236compute the files to operate on or the commands to use in recipes.
     6237You use a function in a @dfn{function call}, where you give the name
     6238of the function and some text (the @dfn{arguments}) for the function
     6239to operate on.  The result of the function's processing is substituted
     6240into the makefile at the point of the call, just as a variable might
     6241be substituted.
    62286242
    62296243@menu
     
    72387252@item automatic
    72397253
    7240 if @var{variable} is an automatic variable defined for the
    7241 execution of the commands for each rule
    7242 (@pxref{Automatic Variables}).
     7254if @var{variable} is an automatic variable defined for the execution
     7255of the recipe for each rule (@pxref{Automatic Variables}).
    72437256@end table
    72447257
     
    73307343@section The @code{shell} Function
    73317344@findex shell
    7332 @cindex commands, expansion
     7345@cindex command expansion
    73337346@cindex backquotes
    73347347@cindex shell command, function for
     
    73897402@cindex error, stopping on
    73907403@cindex stopping make
    7391 Generates a fatal error where the message is @var{text}.  Note that the
    7392 error is generated whenever this function is evaluated.  So, if you put
    7393 it inside a command script or on the right side of a recursive variable
    7394 assignment, it won't be evaluated until later.  The @var{text} will be
    7395 expanded before the error is generated.
     7404Generates a fatal error where the message is @var{text}.  Note that
     7405the error is generated whenever this function is evaluated.  So, if
     7406you put it inside a recipe or on the right side of a recursive
     7407variable assignment, it won't be evaluated until later.  The
     7408@var{text} will be expanded before the error is generated.
    73967409
    73977410For example,
     
    74637476The exit status is one if you use the @samp{-q} flag and @code{make}
    74647477determines that some target is not already up to date.
    7465 @xref{Instead of Execution, ,Instead of Executing the Commands}.
     7478@xref{Instead of Execution, ,Instead of Executing the Recipes}.
    74667479@end table
    74677480
     
    74717484                                  parts of the makefile to use.
    74727485* Instead of Execution::        How to use mode flags to specify what
    7473                                   kind of thing to do with the commands
     7486                                  kind of thing to do with the recipes
    74747487                                  in the makefile other than simply
    74757488                                  execute them.
     
    75187531(@pxref{Special Variables, , Other Special Variables}).
    75197532
    7520 You can also specify a different goal or goals with command-line
     7533You can also specify a different goal or goals with command line
    75217534arguments to @code{make}.  Use the name of the goal as an argument.
    75227535If you specify several goals, @code{make} processes each of them in
     
    75687581a rule in the makefile but is not a prerequisite of the default goal.
    75697582
    7570 Another use of specifying a goal is to run the commands associated with
     7583Another use of specifying a goal is to run the recipe associated with
    75717584a phony target (@pxref{Phony Targets}) or empty target (@pxref{Empty
    75727585Targets, ,Empty Target Files to Record Events}).  Many makefiles contain
     
    76407653
    76417654@node Instead of Execution, Avoiding Compilation, Goals, Running
    7642 @section Instead of Executing the Commands
     7655@section Instead of Executing the Recipes
    76437656@cindex execution, instead of
    7644 @cindex commands, instead of executing
     7657@cindex recipes, instead of executing
    76457658
    76467659The makefile tells @code{make} how to tell whether a target is up to date,
     
    76597672@cindex @code{-n}
    76607673
    7661 ``No-op''.  The activity is to print what commands would be used to make
    7662 the targets up to date, but not actually execute them.
     7674``No-op''.  The activity is to print what recipe would be used to make
     7675the targets up to date, but not actually execute it.
    76637676
    76647677@item -t
     
    76807693
    76817694``Question''.  The activity is to find out silently whether the targets
    7682 are up to date already; but execute no commands in either case.  In other
     7695are up to date already; but execute no recipe in either case.  In other
    76837696words, neither compilation nor output will occur.
    76847697
     
    77017714@end table
    77027715
    7703 With the @samp{-n} flag, @code{make} prints the commands that it would
    7704 normally execute but does not execute them.
    7705 
    7706 With the @samp{-t} flag, @code{make} ignores the commands in the rules
     7716With the @samp{-n} flag, @code{make} prints the recipe that it would
     7717normally execute but does not execute it.
     7718
     7719With the @samp{-t} flag, @code{make} ignores the recipes in the rules
    77077720and uses (in effect) the command @code{touch} for each target that needs to
    77087721be remade.  The @code{touch} command is also printed, unless @samp{-s} or
     
    77117724
    77127725With the @samp{-q} flag, @code{make} prints nothing and executes no
    7713 commands, but the exit status code it returns is zero if and only if the
     7726recipes, but the exit status code it returns is zero if and only if the
    77147727targets to be considered are already up to date.  If the exit status is
    77157728one, then some updating needs to be done.  If @code{make} encounters an
     
    77207733invocation of @code{make}.
    77217734
    7722 @cindex +, and command execution
    7723 The @samp{-n}, @samp{-t}, and @samp{-q} options do not affect command
     7735@cindex +, and recipe execution
     7736The @samp{-n}, @samp{-t}, and @samp{-q} options do not affect recipe
    77247737lines that begin with @samp{+} characters or contain the strings
    77257738@samp{$(MAKE)} or @samp{$@{MAKE@}}.  Note that only the line containing
     
    77387751@item
    77397752Without the @samp{-n} or @samp{-q} flag, when @code{make} is actually
    7740 executing commands, the @samp{-W} flag can direct @code{make} to act
    7741 as if some files had been modified, without actually modifying the
    7742 files.@refill
     7753executing recipes, the @samp{-W} flag can direct @code{make} to act as
     7754if some files had been modified, without actually running the recipes
     7755for those files.@refill
    77437756@end itemize
    77447757
     
    77667779If you anticipate the problem before changing the header file, you can
    77677780use the @samp{-t} flag.  This flag tells @code{make} not to run the
    7768 commands in the rules, but rather to mark the target up to date by
     7781recipes in the rules, but rather to mark the target up to date by
    77697782changing its last-modification date.  You would follow this procedure:
    77707783
     
    78177830The most common way to use this facility is to pass extra flags to
    78187831compilers.  For example, in a properly written makefile, the variable
    7819 @code{CFLAGS} is included in each command that runs the C compiler, so a
     7832@code{CFLAGS} is included in each recipe that runs the C compiler, so a
    78207833file @file{foo.c} would be compiled something like this:
    78217834
     
    78477860makefile works by changing the variables.
    78487861
    7849 When you override a variable with a command argument, you can define either
    7850 a recursively-expanded variable or a simply-expanded variable.  The
    7851 examples shown above make a recursively-expanded variable; to make a
    7852 simply-expanded variable, write @samp{:=} instead of @samp{=}.  But, unless
    7853 you want to include a variable reference or function call in the
    7854 @emph{value} that you specify, it makes no difference which kind of
    7855 variable you create.
     7862When you override a variable with a command line argument, you can
     7863define either a recursively-expanded variable or a simply-expanded
     7864variable.  The examples shown above make a recursively-expanded
     7865variable; to make a simply-expanded variable, write @samp{:=} instead
     7866of @samp{=}.  But, unless you want to include a variable reference or
     7867function call in the @emph{value} that you specify, it makes no
     7868difference which kind of variable you create.
    78567869
    78577870There is one way that the makefile can change a variable that you have
     
    78667879
    78677880Normally, when an error happens in executing a shell command, @code{make}
    7868 gives up immediately, returning a nonzero status.  No further commands are
     7881gives up immediately, returning a nonzero status.  No further recipes are
    78697882executed for any target.  The error implies that the goal cannot be
    78707883correctly remade, and @code{make} reports this as soon as it knows.
     
    80158028@itemx --ignore-errors
    80168029@cindex @code{--ignore-errors}
    8017 Ignore all errors in commands executed to remake files.
    8018 @xref{Errors, ,Errors in Commands}.
     8030Ignore all errors in recipes executed to remake files.
     8031@xref{Errors, ,Errors in Recipes}.
    80198032
    80208033@item -I @var{dir}
     
    80318044@itemx --jobs[=@var{jobs}]
    80328045@cindex @code{--jobs}
    8033 Specifies the number of jobs (commands) to run simultaneously.  With no
    8034 argument, @code{make} runs as many jobs simultaneously as possible.  If
    8035 there is more than one @samp{-j} option, the last one is effective.
    8036 @xref{Parallel, ,Parallel Execution},
    8037 for more information on how commands are run.
    8038 Note that this option is ignored on MS-DOS.
     8046Specifies the number of recipes (jobs) to run simultaneously.  With no
     8047argument, @code{make} runs as many recipes simultaneously as possible.
     8048If there is more than one @samp{-j} option, the last one is effective.
     8049@xref{Parallel, ,Parallel Execution}, for more information on how
     8050recipes are run.  Note that this option is ignored on MS-DOS.
    80398051
    80408052@item -k
     
    80538065@itemx --max-load[=@var{load}]
    80548066@cindex @code{--max-load}
    8055 Specifies that no new jobs (commands) should be started if there are
    8056 other jobs running and the load average is at least @var{load} (a
     8067Specifies that no new recipes should be started if there are other
     8068recipes running and the load average is at least @var{load} (a
    80578069floating-point number).  With no argument, removes a previous load
    80588070limit.  @xref{Parallel, ,Parallel Execution}.
     
    80788090@c Extra blank line here makes the table look better.
    80798091
    8080 Print the commands that would be executed, but do not execute them.
    8081 @xref{Instead of Execution, ,Instead of Executing the Commands}.
     8092Print the recipe that would be executed, but do not execute it.
     8093@xref{Instead of Execution, ,Instead of Executing the Recipes}.
    80828094
    80838095@item -o @var{file}
     
    81008112@cindex predefined rules and variables, printing
    81018113Print the data base (rules and variable values) that results from
    8102 reading the makefiles; then execute as usual or as otherwise specified.
    8103 This also prints the version information given by the @samp{-v} switch
    8104 (see below).  To print the data base without trying to remake any files,
    8105 use @w{@samp{make -qp}}.  To print the data base of predefined rules and
    8106 variables, use @w{@samp{make -p -f /dev/null}}.  The data base output
    8107 contains filename and linenumber information for command and variable
    8108 definitions, so it can be a useful debugging tool in complex environments.
     8114reading the makefiles; then execute as usual or as otherwise
     8115specified.  This also prints the version information given by the
     8116@samp{-v} switch (see below).  To print the data base without trying
     8117to remake any files, use @w{@samp{make -qp}}.  To print the data base
     8118of predefined rules and variables, use @w{@samp{make -p -f /dev/null}}.
     8119The data base output contains filename and linenumber information for
     8120recipe and variable definitions, so it can be a useful debugging tool
     8121in complex environments.
    81098122
    81108123@item -q
     
    81128125@itemx --question
    81138126@cindex @code{--question}
    8114 ``Question mode''.  Do not run any commands, or print anything; just
     8127``Question mode''.  Do not run any recipes, or print anything; just
    81158128return an exit status that is zero if the specified targets are already
    81168129up to date, one if any remaking is required, or two if an error is
    81178130encountered.  @xref{Instead of Execution, ,Instead of Executing the
    8118 Commands}.@refill
     8131Recipes}.@refill
    81198132
    81208133@item -r
     
    81518164@c Extra blank line here makes the table look better.
    81528165
    8153 Silent operation; do not print the commands as they are executed.
    8154 @xref{Echoing, ,Command Echoing}.
     8166Silent operation; do not print the recipes as they are executed.
     8167@xref{Echoing, ,Recipe Echoing}.
    81558168
    81568169@item -S
     
    81758188
    81768189Touch files (mark them up to date without really changing them)
    8177 instead of running their commands.  This is used to pretend that the
    8178 commands were done, in order to fool future invocations of
    8179 @code{make}.  @xref{Instead of Execution, ,Instead of Executing the Commands}.
     8190instead of running their recipes.  This is used to pretend that the
     8191recipes were done, in order to fool future invocations of
     8192@code{make}.  @xref{Instead of Execution, ,Instead of Executing the Recipes}.
    81808193
    81818194@item -v
     
    82188231@code{make}, except that the modification time is changed only in the
    82198232imagination of @code{make}.
    8220 @xref{Instead of Execution, ,Instead of Executing the Commands}.
     8233@xref{Instead of Execution, ,Instead of Executing the Recipes}.
    82218234
    82228235@item --warn-undefined-variables
     
    82528265@end iftex
    82538266
    8254 The built-in implicit rules use several variables in their commands so
     8267The built-in implicit rules use several variables in their recipes so
    82558268that, by changing the values of the variables, you can change the way the
    82568269implicit rule works.  For example, the variable @code{CFLAGS} controls the
     
    82748287@menu
    82758288* Using Implicit::              How to use an existing implicit rule
    8276                                   to get the commands for updating a file.
     8289                                  to get the recipes for updating a file.
    82778290* Catalogue of Rules::          A list of built-in implicit rules.
    82788291* Implicit Variables::          How to change what predefined rules do.
    82798292* Chained Rules::               How to use a chain of implicit rules.
    82808293* Pattern Rules::               How to define new implicit rules.
    8281 * Last Resort::                 How to define commands for rules which
     8294* Last Resort::                 How to define recipes for rules which
    82828295                                  cannot find any.
    82838296* Suffix Rules::                The old-fashioned style of implicit rule.
     
    82918304@cindex rule, implicit, how to use
    82928305
    8293 To allow @code{make} to find a customary method for updating a target file,
    8294 all you have to do is refrain from specifying commands yourself.  Either
    8295 write a rule with no command lines, or don't write a rule at all.  Then
    8296 @code{make} will figure out which implicit rule to use based on which
    8297 kind of source file exists or can be made.
     8306To allow @code{make} to find a customary method for updating a target
     8307file, all you have to do is refrain from specifying recipes yourself.
     8308Either write a rule with no recipe, or don't write a rule at all.
     8309Then @code{make} will figure out which implicit rule to use based on
     8310which kind of source file exists or can be made.
    82988311
    82998312For example, suppose the makefile looks like this:
     
    83098322This happens whether or not the file @file{foo.o} currently exists.
    83108323
    8311 If an implicit rule is found, it can supply both commands and one or
     8324If an implicit rule is found, it can supply both a recipe and one or
    83128325more prerequisites (the source files).  You would want to write a rule
    8313 for @file{foo.o} with no command lines if you need to specify additional
     8326for @file{foo.o} with no recipe if you need to specify additional
    83148327prerequisites, such as header files, that the implicit rule cannot
    83158328supply.
     
    83388351
    83398352In general, @code{make} searches for an implicit rule for each target, and
    8340 for each double-colon rule, that has no commands.  A file that is mentioned
     8353for each double-colon rule, that has no recipe.  A file that is mentioned
    83418354only as a prerequisite is considered a target whose rule specifies nothing,
    83428355so implicit rule search happens for it.  @xref{Implicit Rule Search, ,Implicit Rule Search Algorithm}, for the
     
    83618374
    83628375If you do not want an implicit rule to be used for a target that has no
    8363 commands, you can give that target empty commands by writing a semicolon
    8364 (@pxref{Empty Commands, ,Defining Empty Commands}).
     8376recipe, you can give that target an empty recipe by writing a semicolon
     8377(@pxref{Empty Recipes, ,Defining Empty Recipes}).
    83658378
    83668379@node Catalogue of Rules, Implicit Variables, Using Implicit, Implicit Rules
     
    84088421@pindex .c
    84098422@file{@var{n}.o} is made automatically from @file{@var{n}.c} with
    8410 a command of the form @samp{$(CC) -c $(CPPFLAGS) $(CFLAGS)}.@refill
     8423a recipe of the form @samp{$(CC) -c $(CPPFLAGS) $(CFLAGS)}.@refill
    84118424
    84128425@item Compiling C++ programs
     
    84178430@pindex .C
    84188431@file{@var{n}.o} is made automatically from @file{@var{n}.cc},
    8419 @file{@var{n}.cpp}, or @file{@var{n}.C} with a command of the form
     8432@file{@var{n}.cpp}, or @file{@var{n}.C} with a recipe of the form
    84208433@samp{$(CXX) -c $(CPPFLAGS) $(CXXFLAGS)}.  We encourage you to use the
    84218434suffix @samp{.cc} for C++ source files instead of @samp{.C}.@refill
     
    84268439@pindex .p
    84278440@file{@var{n}.o} is made automatically from @file{@var{n}.p}
    8428 with the command @samp{$(PC) -c $(PFLAGS)}.@refill
     8441with the recipe @samp{$(PC) -c $(PFLAGS)}.@refill
    84298442
    84308443@item Compiling Fortran and Ratfor programs
     
    84378450@file{@var{n}.o} is made automatically from @file{@var{n}.r},
    84388451@file{@var{n}.F} or @file{@var{n}.f} by running the
    8439 Fortran compiler.  The precise command used is as follows:@refill
     8452Fortran compiler.  The precise recipe used is as follows:@refill
    84408453
    84418454@table @samp
     
    84528465@file{@var{n}.F}.  This rule runs just the preprocessor to convert a
    84538466Ratfor or preprocessable Fortran program into a strict Fortran
    8454 program.  The precise command used is as follows:@refill
     8467program.  The precise recipe used is as follows:@refill
    84558468
    84568469@table @samp
     
    84678480@pindex .def
    84688481@pindex .mod
    8469 @file{@var{n}.sym} is made from @file{@var{n}.def} with a command
     8482@file{@var{n}.sym} is made from @file{@var{n}.def} with a recipe
    84708483of the form @samp{$(M2C) $(M2FLAGS) $(DEFFLAGS)}.  @file{@var{n}.o}
    84718484is made from @file{@var{n}.mod}; the form is:
     
    84788491@pindex .s
    84798492@file{@var{n}.o} is made automatically from @file{@var{n}.s} by
    8480 running the assembler, @code{as}.  The precise command is
     8493running the assembler, @code{as}.  The precise recipe is
    84818494@samp{$(AS) $(ASFLAGS)}.@refill
    84828495
    84838496@pindex .S
    84848497@file{@var{n}.s} is made automatically from @file{@var{n}.S} by
    8485 running the C preprocessor, @code{cpp}.  The precise command is
     8498running the C preprocessor, @code{cpp}.  The precise recipe is
    84868499@w{@samp{$(CPP) $(CPPFLAGS)}}.
    84878500
     
    84928505@file{@var{n}} is made automatically from @file{@var{n}.o} by running
    84938506the linker (usually called @code{ld}) via the C compiler.  The precise
    8494 command used is @w{@samp{$(CC) $(LDFLAGS) @var{n}.o $(LOADLIBES) $(LDLIBS)}}.
     8507recipe used is @w{@samp{$(CC) $(LDFLAGS) @var{n}.o $(LOADLIBES) $(LDLIBS)}}.
    84958508
    84968509This rule does the right thing for a simple program with only one
     
    85218534In more complicated cases, such as when there is no object file whose
    85228535name derives from the executable file name, you must write an explicit
    8523 command for linking.
     8536recipe for linking.
    85248537
    85258538Each kind of file automatically made into @samp{.o} object files will
     
    85368549@pindex .y
    85378550@file{@var{n}.c} is made automatically from @file{@var{n}.y} by
    8538 running Yacc with the command @samp{$(YACC) $(YFLAGS)}.
     8551running Yacc with the recipe @samp{$(YACC) $(YFLAGS)}.
    85398552
    85408553@item Lex for C programs
     
    85438556@pindex .l
    85448557@file{@var{n}.c} is made automatically from @file{@var{n}.l} by
    8545 running Lex.  The actual command is @samp{$(LEX) $(LFLAGS)}.
     8558running Lex.  The actual recipe is @samp{$(LEX) $(LFLAGS)}.
    85468559
    85478560@item Lex for Ratfor programs
    85488561@file{@var{n}.r} is made automatically from @file{@var{n}.l} by
    8549 running Lex.  The actual command is @samp{$(LEX) $(LFLAGS)}.
     8562running Lex.  The actual recipe is @samp{$(LEX) $(LFLAGS)}.
    85508563
    85518564The convention of using the same suffix @samp{.l} for all Lex files
     
    85728585@pindex .ln
    85738586@file{@var{n}.ln} is made from @file{@var{n}.c} by running @code{lint}.
    8574 The precise command is @w{@samp{$(LINT) $(LINTFLAGS) $(CPPFLAGS) -i}}.
    8575 The same command is used on the C code produced from
     8587The precise recipe is @w{@samp{$(LINT) $(LINTFLAGS) $(CPPFLAGS) -i}}.
     8588The same recipe is used on the C code produced from
    85768589@file{@var{n}.y} or @file{@var{n}.l}.@refill
    85778590
     
    85898602@pindex .w
    85908603@pindex .ch
    8591 @file{@var{n}.dvi} is made from @file{@var{n}.tex} with the command
     8604@file{@var{n}.dvi} is made from @file{@var{n}.tex} with the recipe
    85928605@samp{$(TEX)}.  @file{@var{n}.tex} is made from @file{@var{n}.web} with
    85938606@samp{$(WEAVE)}, or from @file{@var{n}.w} (and from @file{@var{n}.ch} if
     
    86078620@pindex .txinfo
    86088621@file{@var{n}.dvi} is made from @file{@var{n}.texinfo},
    8609 @file{@var{n}.texi}, or @file{@var{n}.txinfo}, with the command
     8622@file{@var{n}.texi}, or @file{@var{n}.txinfo}, with the recipe
    86108623@w{@samp{$(TEXI2DVI) $(TEXI2DVI_FLAGS)}}.  @file{@var{n}.info} is made from
    86118624@file{@var{n}.texinfo}, @file{@var{n}.texi}, or @file{@var{n}.txinfo}, with
    8612 the command @w{@samp{$(MAKEINFO) $(MAKEINFO_FLAGS)}}.
     8625the recipe @w{@samp{$(MAKEINFO) $(MAKEINFO_FLAGS)}}.
    86138626
    86148627@item RCS
     
    86188631Any file @file{@var{n}} is extracted if necessary from an RCS file
    86198632named either @file{@var{n},v} or @file{RCS/@var{n},v}.  The precise
    8620 command used is @w{@samp{$(CO) $(COFLAGS)}}.  @file{@var{n}} will not be
     8633recipe used is @w{@samp{$(CO) $(COFLAGS)}}.  @file{@var{n}} will not be
    86218634extracted from RCS if it already exists, even if the RCS file is
    86228635newer.  The rules for RCS are terminal
     
    86318644Any file @file{@var{n}} is extracted if necessary from an SCCS file
    86328645named either @file{s.@var{n}} or @file{SCCS/s.@var{n}}.  The precise
    8633 command used is @w{@samp{$(GET) $(GFLAGS)}}.  The rules for SCCS are
     8646recipe used is @w{@samp{$(GET) $(GFLAGS)}}.  The rules for SCCS are
    86348647terminal (@pxref{Match-Anything Rules, ,Match-Anything Pattern Rules}),
    86358648so SCCS files cannot be generated from another source; they must
     
    86528665above, which are documented in the following section.
    86538666
    8654 However, the commands in built-in implicit rules actually use
     8667However, the recipes in built-in implicit rules actually use
    86558668variables such as @code{COMPILE.c}, @code{LINK.p}, and
    8656 @code{PREPROCESS.S}, whose values contain the commands listed above.
     8669@code{PREPROCESS.S}, whose values contain the recipes listed above.
    86578670
    86588671@code{make} follows the convention that the rule to compile a
     
    86798692@cindex flags for compilers
    86808693
    8681 The commands in built-in implicit rules make liberal use of certain
     8694The recipes in built-in implicit rules make liberal use of certain
    86828695predefined variables.  You can alter the values of these variables in
    86838696the makefile, with arguments to @code{make}, or in the environment to
     
    86868699the @samp{-R} or @samp{--no-builtin-variables} option.
    86878700
    8688 For example, the command used to compile a C source file actually says
     8701For example, the recipe used to compile a C source file actually says
    86898702@samp{$(CC) -c $(CFLAGS) $(CPPFLAGS)}.  The default values of the variables
    86908703used are @samp{cc} and nothing, resulting in the command @samp{cc -c}.  By
     
    87058718The following tables describe of some of the more commonly-used predefined
    87068719variables.  This list is not exhaustive, and the default values shown here may
    8707 not be what are selected by @code{make} for your environment.  To see the
     8720not be what @code{make} selects for your environment.  To see the
    87088721complete list of predefined variables for your instance of GNU @code{make} you
    87098722can run @samp{make -p} in a directory with no makefiles.
     
    89999012* Pattern Examples::            Examples of pattern rules.
    90009013* Automatic Variables::         How to use automatic variables in the
    9001                                   commands of implicit rules.
     9014                                  recipes of implicit rules.
    90029015* Pattern Match::               How patterns match.
    90039016* Match-Anything Rules::        Precautions you should take prior to
     
    90369049
    90379050@example
    9038 %.o : %.c ; @var{command}@dots{}
     9051%.o : %.c ; @var{recipe}@dots{}
    90399052@end example
    90409053
     
    90549067
    90559068@c !!! The end of of this paragraph should be rewritten.  --bob
    9056 Pattern rules may have more than one target.  Unlike normal rules, this
    9057 does not act as many different rules with the same prerequisites and
    9058 commands.  If a pattern rule has multiple targets, @code{make} knows that
    9059 the rule's commands are responsible for making all of the targets.  The
    9060 commands are executed only once to make all the targets.  When searching
    9061 for a pattern rule to match a target, the target patterns of a rule other
    9062 than the one that matches the target in need of a rule are incidental:
    9063 @code{make} worries only about giving commands and prerequisites to the file
    9064 presently in question.  However, when this file's commands are run, the
    9065 other targets are marked as having been updated themselves.
     9069Pattern rules may have more than one target.  Unlike normal rules,
     9070this does not act as many different rules with the same prerequisites
     9071and recipe.  If a pattern rule has multiple targets, @code{make} knows
     9072that the rule's recipe is responsible for making all of the targets.
     9073The recipe is executed only once to make all the targets.  When
     9074searching for a pattern rule to match a target, the target patterns of
     9075a rule other than the one that matches the target in need of a rule
     9076are incidental: @code{make} worries only about giving a recipe and
     9077prerequisites to the file presently in question.  However, when this
     9078file's recipe is run, the other targets are marked as having been
     9079updated themselves.
    90669080@cindex multiple targets, in pattern rule
    90679081@cindex target, multiple in pattern rule
     
    90919105@noindent
    90929106defines a rule that can make any file @file{@var{x}.o} from
    9093 @file{@var{x}.c}.  The command uses the automatic variables @samp{$@@} and
     9107@file{@var{x}.c}.  The recipe uses the automatic variables @samp{$@@} and
    90949108@samp{$<} to substitute the names of the target file and the source file
    90959109in each case where the rule applies (@pxref{Automatic Variables}).@refill
     
    91229136@noindent
    91239137@c The following paragraph is rewritten to avoid overfull hboxes
    9124 This tells @code{make} that the command @samp{bison -d @var{x}.y} will
     9138This tells @code{make} that the recipe @samp{bison -d @var{x}.y} will
    91259139make both @file{@var{x}.tab.c} and @file{@var{x}.tab.h}.  If the file
    91269140@file{foo} depends on the files @file{parse.tab.o} and @file{scan.o}
    91279141and the file @file{scan.o} depends on the file @file{parse.tab.h},
    9128 when @file{parse.y} is changed, the command @samp{bison -d parse.y}
     9142when @file{parse.y} is changed, the recipe @samp{bison -d parse.y}
    91299143will be executed only once, and the prerequisites of both
    91309144@file{parse.tab.o} and @file{scan.o} will be satisfied.  (Presumably
     
    91429156Suppose you are writing a pattern rule to compile a @samp{.c} file into a
    91439157@samp{.o} file: how do you write the @samp{cc} command so that it operates
    9144 on the right source file name?  You cannot write the name in the command,
     9158on the right source file name?  You cannot write the name in the recipe,
    91459159because the name is different each time the implicit rule is applied.
    91469160
     
    91559169It's very important that you recognize the limited scope in which
    91569170automatic variable values are available: they only have values within
    9157 the command script.  In particular, you cannot use them anywhere
     9171the recipe.  In particular, you cannot use them anywhere
    91589172within the target list of a rule; they have no value there and will
    91599173expand to the empty string.  Also, they cannot be accessed directly
     
    91749188rule that has multiple targets (@pxref{Pattern Intro, ,Introduction to
    91759189Pattern Rules}), @samp{$@@} is the name of whichever target caused the
    9176 rule's commands to be run.
     9190rule's recipe to be run.
    91779191
    91789192@vindex $%
     
    91879201@vindex < @r{(automatic variable)}
    91889202@item $<
    9189 The name of the first prerequisite.  If the target got its commands from
     9203The name of the first prerequisite.  If the target got its recipe from
    91909204an implicit rule, this will be the first prerequisite added by the
    91919205implicit rule (@pxref{Implicit Rules}).
     
    91969210The names of all the prerequisites that are newer than the target, with
    91979211spaces between them.  For prerequisites which are archive members, only
    9198 the member named is used (@pxref{Archives}).
     9212the named member is used (@pxref{Archives}).
    91999213@cindex prerequisites, list of changed
    92009214@cindex list of changed prerequisites
     
    92049218@item $^
    92059219The names of all the prerequisites, with spaces between them.  For
    9206 prerequisites which are archive members, only the member named is used
     9220prerequisites which are archive members, only the named member is used
    92079221(@pxref{Archives}).  A target has only one prerequisite on each other file
    92089222it depends on, no matter how many times each file is listed as a
     
    94539467Special built-in dummy pattern rules are provided solely to recognize
    94549468certain file names so that nonterminal match-anything rules will not be
    9455 considered.  These dummy rules have no prerequisites and no commands, and
     9469considered.  These dummy rules have no prerequisites and no recipes, and
    94569470they are ignored for all other purposes.  For example, the built-in
    94579471implicit rule
     
    94749488You can override a built-in implicit rule (or one you have defined
    94759489yourself) by defining a new pattern rule with the same target and
    9476 prerequisites, but different commands.  When the new rule is defined, the
     9490prerequisites, but a different recipe.  When the new rule is defined, the
    94779491built-in one is replaced.  The new rule's position in the sequence of
    94789492implicit rules is determined by where you write the new rule.
    94799493
    94809494You can cancel a built-in implicit rule by defining a pattern rule with the
    9481 same target and prerequisites, but no commands.  For example, the following
     9495same target and prerequisites, but no recipe.  For example, the following
    94829496would cancel the rule that runs the assembler:
    94839497
     
    94959509Rules}).  This is just like any other pattern rule; the only thing
    94969510special about it is that it will match any target.  So such a rule's
    9497 commands are used for all targets and prerequisites that have no commands
     9511recipe is used for all targets and prerequisites that have no recipe
    94989512of their own and for which no other implicit rule applies.
    94999513
     
    95119525
    95129526@findex .DEFAULT
    9513 You can instead define commands to be used for targets for which there
    9514 are no rules at all, even ones which don't specify commands.  You do
     9527You can instead define a recipe to be used for targets for which there
     9528are no rules at all, even ones which don't specify recipes.  You do
    95159529this by writing a rule for the target @code{.DEFAULT}.  Such a rule's
    9516 commands are used for all prerequisites which do not appear as targets in
     9530recipe is used for all prerequisites which do not appear as targets in
    95179531any explicit rule, and for which no implicit rule applies.  Naturally,
    95189532there is no @code{.DEFAULT} rule unless you write one.
    95199533
    9520 If you use @code{.DEFAULT} with no commands or prerequisites:
     9534If you use @code{.DEFAULT} with no recipe or prerequisites:
    95219535
    95229536@example
     
    95259539
    95269540@noindent
    9527 the commands previously stored for @code{.DEFAULT} are cleared.
    9528 Then @code{make} acts as if you had never defined @code{.DEFAULT} at all.
    9529 
    9530 If you do not want a target to get the commands from a match-anything
    9531 pattern rule or @code{.DEFAULT}, but you also do not want any commands
    9532 to be run for the target, you can give it empty commands (@pxref{Empty
    9533 Commands, ,Defining Empty Commands}).@refill
     9541the recipe previously stored for @code{.DEFAULT} is cleared.  Then
     9542@code{make} acts as if you had never defined @code{.DEFAULT} at all.
     9543
     9544If you do not want a target to get the recipe from a match-anything
     9545pattern rule or @code{.DEFAULT}, but you also do not want any recipe
     9546to be run for the target, you can give it an empty recipe
     9547(@pxref{Empty Recipes, ,Defining Empty Recipes}).@refill
    95349548
    95359549You can use a last-resort rule to override part of another makefile.
     
    95999613@samp{.o} files using this pattern rule also depend on @file{foo.h}.
    96009614
    9601 Suffix rules with no commands are also meaningless.  They do not remove
    9602 previous rules as do pattern rules with no commands (@pxref{Canceling
    9603 Rules, , Canceling Implicit Rules}).  They simply enter the suffix or pair of suffixes concatenated as
    9604 a target in the data base.@refill
     9615Suffix rules with no recipe are also meaningless.  They do not remove
     9616previous rules as do pattern rules with no recipe (@pxref{Canceling
     9617Rules, , Canceling Implicit Rules}).  They simply enter the suffix or
     9618pair of suffixes concatenated as a target in the data base.@refill
    96059619
    96069620@findex .SUFFIXES
     
    96459659Here is the procedure @code{make} uses for searching for an implicit rule
    96469660for a target @var{t}.  This procedure is followed for each double-colon
    9647 rule with no commands, for each target of ordinary rules none of which have
    9648 commands, and for each prerequisite that is not the target of any rule.  It
     9661rule with no recipe, for each target of ordinary rules none of which have
     9662a recipe, and for each prerequisite that is not the target of any rule.  It
    96499663is also followed recursively for prerequisites that come from implicit
    96509664rules, in the search for a chain of rules.
     
    96759689
    96769690@item
    9677 Remove from the list all rules with no commands.
     9691Remove from the list all rules with no recipe.
    96789692
    96799693@item
     
    97259739@item
    97269740If no implicit rule applies, the rule for @code{.DEFAULT}, if any,
    9727 applies.  In that case, give @var{t} the same commands that
    9728 @code{.DEFAULT} has.  Otherwise, there are no commands for @var{t}.
     9741applies.  In that case, give @var{t} the same recipe that
     9742@code{.DEFAULT} has.  Otherwise, there is no recipe for @var{t}.
    97299743@end enumerate
    97309744
    9731 Once a rule that applies has been found, for each target pattern of the
    9732 rule other than the one that matched @var{t} or @var{n}, the @samp{%} in
    9733 the pattern is replaced with @var{s} and the resultant file name is stored
    9734 until the commands to remake the target file @var{t} are executed.  After
    9735 these commands are executed, each of these stored file names are entered
    9736 into the data base and marked as having been updated and having the same
    9737 update status as the file @var{t}.
    9738 
    9739 When the commands of a pattern rule are executed for @var{t}, the automatic
    9740 variables are set corresponding to the target and prerequisites.
    9741 @xref{Automatic Variables}.
     9745Once a rule that applies has been found, for each target pattern of
     9746the rule other than the one that matched @var{t} or @var{n}, the
     9747@samp{%} in the pattern is replaced with @var{s} and the resultant
     9748file name is stored until the recipe to remake the target file @var{t}
     9749is executed.  After the recipe is executed, each of these stored file
     9750names are entered into the data base and marked as having been updated
     9751and having the same update status as the file @var{t}.
     9752
     9753When the recipe of a pattern rule is executed for @var{t}, the
     9754automatic variables are set corresponding to the target and
     9755prerequisites.  @xref{Automatic Variables}.
    97429756
    97439757@node Archives, Features, Implicit Rules, Top
     
    97719785@noindent
    97729786This construct is available only in targets and prerequisites, not in
    9773 commands!  Most programs that you might use in commands do not support this
    9774 syntax and cannot act directly on archive members.  Only @code{ar} and
    9775 other programs specifically designed to operate on archives can do so.
    9776 Therefore, valid commands to update an archive member target probably must
    9777 use @code{ar}.  For example, this rule says to create a member
    9778 @file{hack.o} in archive @file{foolib} by copying the file @file{hack.o}:
     9787recipes!  Most programs that you might use in recipes do not support
     9788this syntax and cannot act directly on archive members.  Only
     9789@code{ar} and other programs specifically designed to operate on
     9790archives can do so.  Therefore, valid recipes to update an archive
     9791member target probably must use @code{ar}.  For example, this rule
     9792says to create a member @file{hack.o} in archive @file{foolib} by
     9793copying the file @file{hack.o}:
    97799794
    97809795@example
     
    98299844@samp{(} and @samp{)} from being interpreted specially by the shell) in
    98309845the presence of a file @file{bar.c} is enough to cause the following
    9831 commands to be run, even without a makefile:
     9846recipe to be run, even without a makefile:
    98329847
    98339848@example
     
    98479862it may be useful in a makefile to pretend that it does.  If you write an
    98489863archive member target @file{foo.a(dir/file.o)}, @code{make} will perform
    9849 automatic updating with this command:
     9864automatic updating with this recipe:
    98509865
    98519866@example
     
    99129927
    99139928Possibly a future version of @code{make} will provide a mechanism to
    9914 circumvent this problem by serializing all commands that operate on the
     9929circumvent this problem by serializing all recipes that operate on the
    99159930same archive file.  But for the time being, you must either write your
    99169931makefiles to avoid this problem in some other way, or not use @code{-j}.
     
    1001810033
    1001910034@item
    10020 The command-line options @samp{-b} and @samp{-m}, accepted and
     10035The command line options @samp{-b} and @samp{-m}, accepted and
    1002110036ignored.  In System V @code{make}, these options actually do something.
    1002210037
     
    1003510050@item
    1003610051The arrangement of lines and backslash-newline combinations in
    10037 commands is retained when the commands are printed, so they appear as
     10052recipes is retained when the recipes are printed, so they appear as
    1003810053they do in the makefile, except for the stripping of initial
    1003910054whitespace.
     
    1006910084The ``what if'' flag (@samp{-W} in GNU @code{make}) was (as far as we know)
    1007010085invented by Andrew Hume in @code{mk}.
    10071 @xref{Instead of Execution, ,Instead of Executing the Commands}.
     10086@xref{Instead of Execution, ,Instead of Executing the Recipes}.
    1007210087
    1007310088@item
    1007410089The concept of doing several things at once (parallelism) exists in
    1007510090many incarnations of @code{make} and similar programs, though not in the
    10076 System V or BSD implementations.  @xref{Execution, ,Command Execution}.
     10091System V or BSD implementations.  @xref{Execution, ,Recipe Execution}.
    1007710092
    1007810093@item
     
    1008610101
    1008710102@item
    10088 The special significance of @samp{+} characters preceding command lines
    10089 (@pxref{Instead of Execution, ,Instead of Executing the Commands}) is
    10090 mandated by
    10091 @cite{IEEE Standard 1003.2-1992} (POSIX.2).
     10103The special significance of @samp{+} characters preceding recipe lines
     10104(@pxref{Instead of Execution, ,Instead of Executing the Recipes}) is
     10105mandated by @cite{IEEE Standard 1003.2-1992} (POSIX.2).
    1009210106
    1009310107@item
     
    1012310137
    1012410138@item
    10125 Pass command-line variable assignments automatically through the
     10139Pass command line variable assignments automatically through the
    1012610140variable @code{MAKE} to recursive @code{make} invocations.
    1012710141@xref{Recursion, ,Recursive Use of @code{make}}.
     
    1025510269
    1025610270@item
    10257 In System V and 4.3 BSD @code{make}, files found by @code{VPATH} search
    10258 (@pxref{Directory Search, ,Searching Directories for Prerequisites}) have their names changed inside command
    10259 strings.  We feel it is much cleaner to always use automatic variables
    10260 and thus make this feature obsolete.@refill
     10271In System V and 4.3 BSD @code{make}, files found by @code{VPATH}
     10272search (@pxref{Directory Search, ,Searching Directories for
     10273Prerequisites}) have their names changed inside recipes.  We feel it
     10274is much cleaner to always use automatic variables and thus make this
     10275feature obsolete.@refill
    1026110276
    1026210277@item
     
    1026910284
    1027010285@item
    10271 In some Unix @code{make}s, implicit rule search
    10272 (@pxref{Implicit Rules, ,Using Implicit Rules}) is apparently done for
    10273 @emph{all} targets, not just those without commands.  This means you can
     10286In some Unix @code{make}s, implicit rule search (@pxref{Implicit
     10287Rules, ,Using Implicit Rules}) is apparently done for @emph{all}
     10288targets, not just those without recipes.  This means you can
    1027410289do:@refill
    1027510290
     
    1029510310
    1029610311@item
    10297 It appears that in SVR4 @code{make}, a suffix rule can be specified with
    10298 no commands, and it is treated as if it had empty commands
    10299 (@pxref{Empty Commands}).  For example:
     10312It appears that in SVR4 @code{make}, a suffix rule can be specified
     10313with no recipe, and it is treated as if it had an empty recipe
     10314(@pxref{Empty Recipes}).  For example:
    1030010315
    1030110316@example
     
    1030610321will override the built-in @file{.c.a} suffix rule.
    1030710322
    10308 We feel that it is cleaner for a rule without commands to always simply
     10323We feel that it is cleaner for a rule without a recipe to always simply
    1030910324add to the prerequisite list for the target.  The above example can be
    1031010325easily rewritten to get the desired behavior in GNU @code{make}:
     
    1031910334Program}).  The @samp{-e} flag tells the shell to exit as soon as any
    1032010335program it runs returns a nonzero status.  We feel it is cleaner to
    10321 write each shell command line to stand on its own and not require this
     10336write each line of the recipe to stand on its own and not require this
    1032210337special treatment.
    1032310338@end itemize
     
    1057110586newer than the target, with spaces between them.
    1057210587For prerequisites which are archive members, only
    10573 the member named is used (@pxref{Archives}).
     10588the named member is used (@pxref{Archives}).
    1057410589
    1057510590@item $^
    1057610591@itemx $+
    1057710592The names of all the prerequisites, with spaces between them.  For
    10578 prerequisites which are archive members, only the member named is used
     10593prerequisites which are archive members, only the named member is used
    1057910594(@pxref{Archives}).  The value of @code{$^} omits duplicate
    1058010595prerequisites, while @code{$+} retains them and preserves their order.
     
    1063010645The name of the system default command interpreter, usually @file{/bin/sh}.
    1063110646You can set @code{SHELL} in the makefile to change the shell used to run
    10632 commands.  @xref{Execution, ,Command Execution}.  The @code{SHELL}
     10647recipes.  @xref{Execution, ,Recipe Execution}.  The @code{SHELL}
    1063310648variable is handled specially when importing from and exporting to the
    1063410649environment.  @xref{Choosing the Shell}.
     
    1064210657@item MAKE
    1064310658
    10644 The name with which @code{make} was invoked.
    10645 Using this variable in commands has special meaning.
    10646 @xref{MAKE Variable, ,How the @code{MAKE} Variable Works}.
     10659The name with which @code{make} was invoked.  Using this variable in
     10660recipes has special meaning.  @xref{MAKE Variable, ,How the
     10661@code{MAKE} Variable Works}.
    1064710662
    1064810663@item MAKELEVEL
     
    1065710672@xref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}.
    1065810673
    10659 It is @emph{never} appropriate to use @code{MAKEFLAGS} directly on a
    10660 command line: its contents may not be quoted correctly for use in the
     10674It is @emph{never} appropriate to use @code{MAKEFLAGS} directly in a
     10675recipe line: its contents may not be quoted correctly for use in the
    1066110676shell.  Always allow recursive @code{make}'s to obtain these values
    1066210677through the environment from its parent.
     
    1069410709
    1069510710Sometimes @code{make} errors are not fatal, especially in the presence
    10696 of a @code{-} prefix on a command script line, or the @code{-k} command
    10697 line option.  Errors that are fatal are prefixed with the string
     10711of a @code{-} prefix on a recipe line, or the @code{-k} command line
     10712option.  Errors that are fatal are prefixed with the string
    1069810713@code{***}.
    1069910714
     
    1070910724@itemx [@var{foo}] @var{signal description}
    1071010725These errors are not really @code{make} errors at all.  They mean that a
    10711 program that @code{make} invoked as part of a command script returned a
     10726program that @code{make} invoked as part of a recipe returned a
    1071210727non-0 error code (@samp{Error @var{NN}}), which @code{make} interprets
    1071310728as failure, or it exited in some other abnormal fashion (with a
    10714 signal of some type).  @xref{Errors, ,Errors in Commands}.
     10729signal of some type).  @xref{Errors, ,Errors in Recipes}.
    1071510730
    1071610731If no @code{***} is attached to the message, then the subprocess failed
     
    1072010735@item missing separator.  Stop.
    1072110736@itemx missing separator (did you mean TAB instead of 8 spaces?).  Stop.
    10722 This means that @code{make} could not understand much of anything about
    10723 the command line it just read.  GNU @code{make} looks for various kinds
    10724 of separators (@code{:}, @code{=}, TAB characters, etc.) to help it
    10725 decide what kind of commandline it's seeing.  This means it couldn't
    10726 find a valid one.
    10727 
    10728 One of the most common reasons for this message is that you (or perhaps
    10729 your oh-so-helpful editor, as is the case with many MS-Windows editors)
    10730 have attempted to indent your command scripts with spaces instead of a
    10731 TAB character.  In this case, @code{make} will use the second form of
    10732 the error above.  Remember that every line in the command script must
    10733 begin with a TAB character.  Eight spaces do not count.  @xref{Rule
    10734 Syntax}.
    10735 
    10736 @item commands commence before first target.  Stop.
    10737 @itemx missing rule before commands.  Stop.
    10738 This means the first thing in the makefile seems to be part of a command
    10739 script: it begins with a TAB character and doesn't appear to be a legal
    10740 @code{make} command (such as a variable assignment).  Command scripts
    10741 must always be associated with a target.
     10737This means that @code{make} could not understand much of anything
     10738about the makefile line it just read.  GNU @code{make} looks for
     10739various separators (@code{:}, @code{=}, recipe prefix characters,
     10740etc.) to indicate what kind of line it's parsing.  This message means
     10741it couldn't find a valid one.
     10742
     10743One of the most common reasons for this message is that you (or
     10744perhaps your oh-so-helpful editor, as is the case with many MS-Windows
     10745editors) have attempted to indent your recipe lines with spaces
     10746instead of a tab character.  In this case, @code{make} will use the
     10747second form of the error above.  Remember that every line in the
     10748recipe must begin with a tab character (unless you set
     10749@code{.CMDPREFIX}; @pxref{Special Variables}).  Eight spaces do not
     10750count.  @xref{Rule Syntax}.
     10751
     10752@item recipe commences before first target.  Stop.
     10753@itemx missing rule before recipe.  Stop.
     10754This means the first thing in the makefile seems to be part of a
     10755recipe: it begins with a recipe prefix character and doesn't appear to
     10756be a legal @code{make} directive (such as a variable assignment).
     10757Recipes must always be associated with a target.
    1074210758
    1074310759The second form is generated if the line has a semicolon as the first
     
    1077110787(second form) was not found.
    1077210788
    10773 @item warning: overriding commands for target `@var{xxx}'
    10774 @itemx warning: ignoring old commands for target `@var{xxx}'
    10775 GNU @code{make} allows commands to be specified only once per target
    10776 (except for double-colon rules).  If you give commands for a target
    10777 which already has been defined to have commands, this warning is issued
    10778 and the second set of commands will overwrite the first set.
    10779 @xref{Multiple Rules, ,Multiple Rules for One Target}.
     10789@item warning: overriding recipe for target `@var{xxx}'
     10790@itemx warning: ignoring old recipe for target `@var{xxx}'
     10791GNU @code{make} allows only one recipe to be specified per target
     10792(except for double-colon rules).  If you give a recipe for a target
     10793which already has been defined to have one, this warning is issued and
     10794the second recipe will overwrite the first.  @xref{Multiple Rules,
     10795,Multiple Rules for One Target}.
    1078010796
    1078110797@item Circular @var{xxx} <- @var{yyy} dependency dropped.
     
    1101711033
    1101811034@group
    11019 .PHONY: tar
    1102011035tar:    $(OBJS)
    1102111036        $(CC) $(LDFLAGS) -o $@@ $(OBJS) $(LIBS)
     
    1111811133@end example
    1111911134
    11120 @raisesections
     11135@node GNU Free Documentation License, Concept Index, Complex Makefile, Top
     11136@appendixsec GNU Free Documentation License
     11137@cindex FDL, GNU Free Documentation License
    1112111138@include fdl.texi
    11122 @lowersections
    1112311139
    1112411140@node Concept Index, Name Index, GNU Free Documentation License, Top
  • vendor/gnumake/current/dosbuild.bat

    r501 r1989  
    11@echo off
    2 rem Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
    3 rem Software Foundation, Inc.
     2rem Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
     3rem Free Software Foundation, Inc.
    44rem This file is part of GNU Make.
    5 
    6 rem GNU Make is free software; you can redistribute it and/or modify it under the
    7 rem terms of the GNU General Public License as published by the Free Software
    8 rem Foundation; either version 2, or (at your option) any later version.
    9 
    10 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 rem WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 rem A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    13 
    14 rem You should have received a copy of the GNU General Public License along with
    15 rem GNU Make; see the file COPYING.  If not, write to the Free Software
    16 rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     5rem
     6rem GNU Make is free software; you can redistribute it and/or modify it under
     7rem the terms of the GNU General Public License as published by the Free
     8rem Software Foundation; either version 3 of the License, or (at your option)
     9rem any later version.
     10rem
     11rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
     12rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
     14rem more details.
     15rem
     16rem You should have received a copy of the GNU General Public License along
     17rem with this program.  If not, see <http://www.gnu.org/licenses/>.
    1718
    1819echo Building Make for MSDOS
  • vendor/gnumake/current/expand.c

    r900 r1989  
    11/* Variable expansion functions for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    466466{
    467467  char *result;
    468   struct variable_set_list *save;
     468  struct variable_set_list *savev;
     469  const struct floc *savef;
    469470
    470471  if (file == 0)
    471472    return variable_expand (line);
    472473
    473   save = current_variable_set_list;
     474  savev = current_variable_set_list;
    474475  current_variable_set_list = file->variables;
     476
     477  savef = reading_file;
    475478  if (file->cmds && file->cmds->fileinfo.filenm)
    476479    reading_file = &file->cmds->fileinfo;
    477480  else
    478481    reading_file = 0;
     482
    479483  result = variable_expand (line);
    480   current_variable_set_list = save;
    481   reading_file = 0;
     484
     485  current_variable_set_list = savev;
     486  reading_file = savef;
    482487
    483488  return result;
  • vendor/gnumake/current/file.c

    r900 r1989  
    11/* Target file management for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    257257          if (to_file->cmds->fileinfo.filenm != 0)
    258258            error (&from_file->cmds->fileinfo,
    259                    _("Commands were specified for file `%s' at %s:%lu,"),
     259                   _("Recipe was specified for file `%s' at %s:%lu,"),
    260260                   from_file->name, to_file->cmds->fileinfo.filenm,
    261261                   to_file->cmds->fileinfo.lineno);
    262262          else
    263263            error (&from_file->cmds->fileinfo,
    264                    _("Commands for file `%s' were found by implicit rule search,"),
     264                   _("Recipe for file `%s' was found by implicit rule search,"),
    265265                   from_file->name);
    266266          error (&from_file->cmds->fileinfo,
     
    268268                 from_file->name, to_hname);
    269269          error (&from_file->cmds->fileinfo,
    270                  _("Commands for `%s' will be ignored in favor of those for `%s'."),
     270                 _("Recipe for `%s' will be ignored in favor of the one for `%s'."),
    271271                 to_hname, from_file->name);
    272272        }
     
    362362        /* Is this file eligible for automatic deletion?
    363363           Yes, IFF: it's marked intermediate, it's not secondary, it wasn't
    364            given on the command-line, and it's either a -include makefile or
     364           given on the command line, and it's either a -include makefile or
    365365           it's not precious.  */
    366366        if (f->intermediate && (f->dontcare || !f->precious)
     
    487487          p = variable_expand ("");
    488488          variable_buffer_output (p, d->name, strlen (d->name) + 1);
     489          p = variable_buffer;
    489490        }
    490491      else
     
    499500              o = subst_expand (buffer, d->name, "%", "$*", 1, 2, 0);
    500501
    501               d->name = strcache_add_len (buffer, o - buffer);
     502              d->name = strcache_add_len (variable_buffer,
     503                                          o - variable_buffer);
    502504              d->staticpattern = 0; /* Clear staticpattern so that we don't
    503505                                       re-expand %s below. */
     
    901903    puts (_("#  Phony target (prerequisite of .PHONY)."));
    902904  if (f->cmd_target)
    903     puts (_("#  Command-line target."));
     905    puts (_("#  Command line target."));
    904906  if (f->dontcare)
    905907    puts (_("#  A default, MAKEFILES, or -include/sinclude makefile."));
     
    935937    {
    936938    case cs_running:
    937       puts (_("#  Commands currently running (THIS IS A BUG)."));
     939      puts (_("#  Recipe currently running (THIS IS A BUG)."));
    938940      break;
    939941    case cs_deps_running:
    940       puts (_("#  Dependencies commands running (THIS IS A BUG)."));
     942      puts (_("#  Dependencies recipe running (THIS IS A BUG)."));
    941943      break;
    942944    case cs_not_started:
  • vendor/gnumake/current/filedef.h

    r900 r1989  
    11/* Definition of target file data structures for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919
  • vendor/gnumake/current/function.c

    r900 r1989  
    11/* Builtin function expansion for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    16091609#ifndef __MSDOS__
    16101610  /* Construct the argument list.  */
    1611   command_argv = construct_command_argv (argv[0], NULL, NULL, &batch_filename);
     1611  command_argv = construct_command_argv (argv[0], NULL, NULL, 0,
     1612                                         &batch_filename);
    16121613  if (command_argv == 0)
    16131614    return o;
     
    17931794
    17941795  /* Construct the argument list.  */
    1795   command_argv = construct_command_argv (argv[0], (char **) NULL,
    1796                                          (struct file *) 0, &batch_filename);
     1796  command_argv = construct_command_argv (argv[0], NULL, NULL, 0,
     1797                                         &batch_filename);
    17971798  if (command_argv == 0)
    17981799    return o;
  • vendor/gnumake/current/getloadavg.c

    r900 r1989  
    11/* Get the system load averages.
    22Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
    3 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
    4 Software Foundation, Inc.
    5 
    6 This program is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 This program is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
     31995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
     4Free Software Foundation, Inc.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1514
    1615You should have received a copy of the GNU General Public License along with
    17 this program; see the file COPYING.  If not, write to the Free Software
    18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1917
    2018/* Compile-time symbols that this file uses:
  • vendor/gnumake/current/getopt.c

    r501 r1989  
    55
    66Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
    7 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     71997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    88Foundation, Inc.
    99
     
    1111Bugs can be reported to [email protected].
    1212
    13 This program is free software; you can redistribute it and/or modify it
    14 under the terms of the GNU General Public License as published by the
    15 Free Software Foundation; either version 2, or (at your option) any
    16 later version.
    17 
    18 This program is distributed in the hope that it will be useful,
    19 but WITHOUT ANY WARRANTY; without even the implied warranty of
    20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    21 GNU General Public License for more details.
     13GNU Make is free software; you can redistribute it and/or modify it under the
     14terms of the GNU General Public License as published by the Free Software
     15Foundation; either version 3 of the License, or (at your option) any later
     16version.
     17
     18GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     19WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     20A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    2221
    2322You should have received a copy of the GNU General Public License along with
    24 this program; see the file COPYING.  If not, write to the Free Software
    25 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     23this program.  If not, see <http://www.gnu.org/licenses/>.  */
    2624
    2725/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
  • vendor/gnumake/current/getopt.h

    r501 r1989  
    11/* Declarations for getopt.
    22Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
    3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     31999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
     4Inc.
    45
    56NOTE: The canonical source of this file is maintained with the GNU C Library.
    67Bugs can be reported to [email protected].
    78
    8 This program is free software; you can redistribute it and/or modify it
    9 under the terms of the GNU General Public License as published by the
    10 Free Software Foundation; either version 2, or (at your option) any
    11 later version.
     9GNU Make is free software; you can redistribute it and/or modify it under the
     10terms of the GNU General Public License as published by the Free Software
     11Foundation; either version 3 of the License, or (at your option) any later
     12version.
    1213
    13 This program is distributed in the hope that it will be useful,
    14 but WITHOUT ANY WARRANTY; without even the implied warranty of
    15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 GNU General Public License for more details.
     14GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     15WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     16A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1717
    1818You should have received a copy of the GNU General Public License along with
    19 this program; see the file COPYING.  If not, write to the Free Software
    20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     19this program.  If not, see <http://www.gnu.org/licenses/>.  */
    2120
    2221#ifndef _GETOPT_H
  • vendor/gnumake/current/getopt1.c

    r501 r1989  
    11/* getopt_long and getopt_long_only entry points for GNU getopt.
    22Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55
     
    77Bugs can be reported to [email protected].
    88
    9 This program is free software; you can redistribute it and/or modify it
    10 under the terms of the GNU General Public License as published by the
    11 Free Software Foundation; either version 2, or (at your option) any
    12 later version.
     9GNU Make is free software; you can redistribute it and/or modify it under the
     10terms of the GNU General Public License as published by the Free Software
     11Foundation; either version 3 of the License, or (at your option) any later
     12version.
    1313
    14 This program is distributed in the hope that it will be useful,
    15 but WITHOUT ANY WARRANTY; without even the implied warranty of
    16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    17 GNU General Public License for more details.
     14GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     15WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     16A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1817
    1918You should have received a copy of the GNU General Public License along with
    20 this program; see the file COPYING.  If not, write to the Free Software
    21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     19this program.  If not, see <http://www.gnu.org/licenses/>.  */
    2220
    2321
  • vendor/gnumake/current/gettext.h

    r501 r1989  
    11/* Convenience header for conditional use of GNU <libintl.h>.
    22Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef _LIBGETTEXT_H
  • vendor/gnumake/current/glob/ChangeLog

    r501 r1989  
     12007-12-22  Juan Manuel Guerrero  <[email protected]>  (tiny change)
     2
     3        * glob/glob.c [__GNU_LIBRARY__ && __DJGPP__]: Add a realloc
     4        declaration that matches the one in the DJGPP libc.
     5
    162006-02-24  Eli Zaretskii  <[email protected]>
    27
    38        * glob.c (my_malloc) [WINDOWS32]: Provide a full ISO C prototype,
    4         to avoid compiler warnings.
     9        to avoid compiler warnings.
    510
    6112005-06-25  Paul D. Smith  <[email protected]>
     
    154159
    155160        * posix/fnmatch.c (fnmatch): Fix \*[*?]+ case to increment name ptr
    156         only for ?s, not for *s.  Fix from Chet Ramey.
     161        only for ?s, not for *s.  Fix from Chet Ramey.
    157162
    158163
    159164
    160165Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    161 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     1661998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    162167Foundation, Inc.
    163168This file is part of GNU Make.
     
    165170GNU Make is free software; you can redistribute it and/or modify it under the
    166171terms of the GNU General Public License as published by the Free Software
    167 Foundation; either version 2, or (at your option) any later version.
     172Foundation; either version 3 of the License, or (at your option) any later
     173version.
    168174
    169175GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    172178
    173179You should have received a copy of the GNU General Public License along with
    174 GNU Make; see the file COPYING.  If not, write to the Free Software
    175 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     180this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/glob/Makefile.am

    r501 r1989  
    11# -*-Makefile-*-, or close enough
    22# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    3 # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     3# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    44# This file is part of GNU Make.
    55#
    6 # GNU Make is free software; you can redistribute it and/or modify it under the
    7 # terms of the GNU General Public License as published by the Free Software
    8 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 3 of the License, or (at your option) any later
     9# version.
    910#
    1011# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1315#
    1416# You should have received a copy of the GNU General Public License along with
    15 # GNU Make; see the file COPYING.  If not, write to the Free Software
    16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1718
    1819AUTOMAKE_OPTIONS =      foreign
  • vendor/gnumake/current/glob/Makefile.ami

    r501 r1989  
    11# Makefile for standalone libglob.a (fnmatch, glob).             -*-Makefile-*-
    22# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    3 # 2005, 2006 Free Software Foundation, Inc.
     3# 2005, 2006, 2007 Free Software Foundation, Inc.
    44# This file is part of GNU Make.
    55#
    6 # GNU Make is free software; you can redistribute it and/or modify it under the
    7 # terms of the GNU General Public License as published by the Free Software
    8 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 3 of the License, or (at your option) any later
     9# version.
    910#
    1011# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1315#
    1416# You should have received a copy of the GNU General Public License along with
    15 # GNU Make; see the file COPYING.  If not, write to the Free Software
    16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1718
    1819# Ultrix 2.2 make doesn't expand the value of VPATH.
  • vendor/gnumake/current/glob/SMakefile

    r501 r1989  
    11# Makefile for standalone distribution of libglob.a (fnmatch, glob).
    22# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    3 # 2005, 2006 Free Software Foundation, Inc.
     3# 2005, 2006, 2007 Free Software Foundation, Inc.
    44# This file is part of GNU Make.
    55#
    6 # GNU Make is free software; you can redistribute it and/or modify it under the
    7 # terms of the GNU General Public License as published by the Free Software
    8 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 3 of the License, or (at your option) any later
     9# version.
    910#
    1011# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1315#
    1416# You should have received a copy of the GNU General Public License along with
    15 # GNU Make; see the file COPYING.  If not, write to the Free Software
    16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1718
    1819# Ultrix 2.2 make doesn't expand the value of VPATH.
  • vendor/gnumake/current/glob/configure.bat

    r501 r1989  
    11@echo off
    22rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    3 rem 2004, 2005, 2006 Free Software Foundation, Inc.
     3rem 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    44rem This file is part of GNU Make.
    5 
     5rem
    66rem GNU Make is free software; you can redistribute it and/or modify it under
    77rem the terms of the GNU General Public License as published by the Free
    8 rem Software Foundation; either version 2, or (at your option) any later
    9 rem version.
    10 
     8rem Software Foundation; either version 3 of the License, or (at your option)
     9rem any later version.
     10rem
    1111rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
    1212rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13 rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
    1414rem more details.
    15 
     15rem
    1616rem You should have received a copy of the GNU General Public License along
    17 rem with GNU Make; see the file COPYING.  If not, write to the Free Software
    18 rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17rem with this program.  If not, see <http://www.gnu.org/licenses/>.
    1918
    2019echo Configuring glob for DJGPP
  • vendor/gnumake/current/glob/fnmatch.c

    r501 r1989  
    1 /* Copyright (C) 1991, 92, 93, 96, 97, 98, 99 Free Software Foundation, Inc.
     1/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999 Free Software
     2Foundation, Inc.
    23This file is part of the GNU C Library.
    34
  • vendor/gnumake/current/glob/fnmatch.h

    r501 r1989  
    1 /* Copyright (C) 1991, 92, 93, 96, 97, 98, 99 Free Software Foundation, Inc.
     1/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999 Free Software
     2Foundation, Inc.
    23This file is part of the GNU C Library.
    34
  • vendor/gnumake/current/glob/glob.c

    r501 r1989  
    1 /* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
     1/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 Free
     2Software Foundation, Inc.
    23
    34This library is free software; you can redistribute it and/or
     
    190191static void *
    191192my_realloc (void *p, unsigned int n)
     193#  elif defined(__DJGPP__)
     194static void *
     195my_realloc (void *p, size_t n)
    192196#  else
    193197static char *
     
    195199     char *p;
    196200     unsigned int n;
    197 # endif
     201#  endif
    198202{
    199203  /* These casts are the for sake of the broken Ultrix compiler,
  • vendor/gnumake/current/glob/glob.h

    r501 r1989  
    1 /* Copyright (C) 1991, 92, 95, 96, 97, 98 Free Software Foundation, Inc.
     1/* Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998 Free Software Foundation,
     2Inc.
    23
    34The GNU C Library is free software; you can redistribute it and/or
  • vendor/gnumake/current/hash.c

    r501 r1989  
    11/* hash.c -- hash table maintenance
    2    Copyright (C) 1995, 1999, 2002 Free Software Foundation, Inc.
    3    Written by Greg McGary <[email protected]> <[email protected]>
    4 
    5 This program is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 This program is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     2Copyright (C) 1995, 1999, 2002 Free Software Foundation, Inc.
     3Written by Greg McGary <[email protected]> <[email protected]>
     4
     5GNU Make is free software; you can redistribute it and/or modify it under the
     6terms of the GNU General Public License as published by the Free Software
     7Foundation; either version 3 of the License, or (at your option) any later
     8version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1413
    1514You should have received a copy of the GNU General Public License along with
    16 this program; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     15this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1816
    1917#include "make.h"
  • vendor/gnumake/current/hash.h

    r900 r1989  
    33Written by Greg McGary <[email protected]> <[email protected]>
    44
    5 This program is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 This program is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     5GNU Make is free software; you can redistribute it and/or modify it under the
     6terms of the GNU General Public License as published by the Free Software
     7Foundation; either version 3 of the License, or (at your option) any later
     8version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1413
    1514You should have received a copy of the GNU General Public License along with
    16 this program; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     15this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1816
    1917#ifndef _hash_h_
  • vendor/gnumake/current/implicit.c

    r900 r1989  
    11/* Implicit rule searching for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
  • vendor/gnumake/current/job.c

    r900 r1989  
    11/* Job execution and handling for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    10231023    argv = p;
    10241024#else
    1025     argv = construct_command_argv (p, &end, child->file, &child->sh_batch_file);
     1025    argv = construct_command_argv (p, &end, child->file,
     1026                                   child->file->cmds->lines_flags[child->command_line - 1],
     1027                                   &child->sh_batch_file);
    10261028#endif
    10271029    if (end == NULL)
     
    17291731
    17301732  /* The job is now primed.  Start it running.
    1731      (This will notice if there are in fact no commands.)  */
     1733     (This will notice if there is in fact no recipe.)  */
    17321734  if (cmds->fileinfo.filenm)
    1733     DB (DB_BASIC, (_("Invoking commands from %s:%lu to update target `%s'.\n"),
     1735    DB (DB_BASIC, (_("Invoking recipe from %s:%lu to update target `%s'.\n"),
    17341736                   cmds->fileinfo.filenm, cmds->fileinfo.lineno,
    17351737                   c->file->name));
    17361738  else
    1737     DB (DB_BASIC, (_("Invoking builtin commands to update target `%s'.\n"),
     1739    DB (DB_BASIC, (_("Invoking builtin recipe to update target `%s'.\n"),
    17381740                   c->file->name));
    17391741
     
    19081910
    19091911/* EMX: Start a child process. This function returns the new pid.  */
    1910 # if defined __MSDOS__ || defined __EMX__
     1912# if defined __EMX__
    19111913int
    19121914child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
     
    22112213
    22122214   SHELL is the shell to use, or nil to use the default shell.
    2213    IFS is the value of $IFS, or nil (meaning the default).  */
     2215   IFS is the value of $IFS, or nil (meaning the default).
     2216
     2217   FLAGS is the value of lines_flags for this command line.  It is
     2218   used in the WINDOWS32 port to check whether + or $(MAKE) were found
     2219   in this command line, in which case the effect of just_print_flag
     2220   is overridden.  */
    22142221
    22152222static char **
    22162223construct_command_argv_internal (char *line, char **restp, char *shell,
    2217                                  char *ifs, char **batch_filename_ptr)
     2224                                 char *ifs, int flags,
     2225                                 char **batch_filename_ptr)
    22182226{
    22192227#ifdef __MSDOS__
     
    24642472                  *(ap++) = *p;
    24652473                }
    2466               /* If there's a command prefix char here, skip it.  */
    2467               if (p[1] == cmd_prefix)
    2468                 ++p;
    24692474            }
    24702475          else if (*p == '\n' && restp != NULL)
     
    25142519                ++p;
    25152520
    2516                 /* If there is a command prefix after a backslash-newline,
    2517                    remove it.  */
    2518                 if (p[1] == cmd_prefix)
    2519                   ++p;
    2520 
    25212521                /* If there's nothing in this argument yet, skip any
    25222522                   whitespace before the start of the next word.  */
     
    27462746        else if (*p == '\\' && p[1] == '\n')
    27472747          {
    2748             /* POSIX says we keep the backslash-newline, but throw out
    2749                the next char if it's a TAB.  If we don't have a POSIX
    2750                shell on DOS/Windows/OS2, mimic the pre-POSIX behavior
     2748            /* POSIX says we keep the backslash-newline.  If we don't have a
     2749               POSIX shell on DOS/Windows/OS2, mimic the pre-POSIX behavior
    27512750               and remove the backslash/newline.  */
    27522751#if defined (__MSDOS__) || defined (__EMX__) || defined (WINDOWS32)
     
    27582757              {
    27592758                *(ap++) = '\\';
    2760                 *(ap++) = '\\';
     2759                /* Only non-batch execution needs another backslash,
     2760                   because it will be passed through a recursive
     2761                   invocation of this function.  */
     2762                if (!batch_mode_shell)
     2763                  *(ap++) = '\\';
    27612764                *(ap++) = '\n';
    27622765              }
    2763 
    27642766            ++p;
    2765             if (p[1] == cmd_prefix)
    2766               ++p;
    2767 
    27682767            continue;
    27692768          }
     
    27952794       command line (e.g. Cygnus GNUWIN32 sh.exe on WIN32 systems).  In these
    27962795       cases, run commands via a script file.  */
    2797     if (just_print_flag) {
     2796    if (just_print_flag && !(flags & COMMANDS_RECURSE)) {
    27982797      /* Need to allocate new_argv, although it's unused, because
    27992798        start_job_command will want to free it and its 0'th element.  */
     
    28232822      fputc ('\n', batch);
    28242823      fclose (batch);
     2824      DB (DB_JOBS, (_("Batch file contents:%s\n\t%s\n"),
     2825                    !unixy_shell ? "\n\t@echo off" : "", command_ptr));
    28252826
    28262827      /* create argv */
     
    28372838#endif /* WINDOWS32 */
    28382839    if (unixy_shell)
    2839       new_argv = construct_command_argv_internal (new_line, 0, 0, 0, 0);
     2840      new_argv = construct_command_argv_internal (new_line, 0, 0, 0, flags, 0);
    28402841#ifdef __EMX__
    28412842    else if (!unixy_shell)
     
    28522853          {
    28532854            if (q[0] == '\\' && q[1] == '\n')
    2854               {
    2855                 q += 2; /* remove '\\' and '\n' */
    2856                 /* Remove any command prefix in the next line */
    2857                 if (q[0] == cmd_prefix)
    2858                   q++;
    2859               }
     2855              q += 2; /* remove '\\' and '\n' */
    28602856            else
    28612857              *p++ = *q++;
     
    29482944char **
    29492945construct_command_argv (char *line, char **restp, struct file *file,
    2950                         char **batch_filename_ptr)
     2946                        int cmd_flags, char **batch_filename_ptr)
    29512947{
    29522948  char *shell, *ifs;
     
    30603056  }
    30613057
    3062   argv = construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr);
     3058  argv = construct_command_argv_internal (line, restp, shell, ifs,
     3059                                          cmd_flags, batch_filename_ptr);
    30633060
    30643061  free (shell);
  • vendor/gnumake/current/job.h

    r900 r1989  
    11/* Definitions for managing subprocesses in GNU Make.
    22Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
    3 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     32002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef SEEN_JOB_H
     
    7171void start_waiting_jobs (void);
    7272
    73 char **construct_command_argv (char *line, char **restp, struct file *file, char** batch_file);
     73char **construct_command_argv (char *line, char **restp, struct file *file,
     74                               int cmd_flags, char** batch_file);
    7475#ifdef VMS
    7576int child_execute_job (char *argv, struct child *child);
  • vendor/gnumake/current/main.c

    r900 r1989  
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    323323  -h, --help                  Print this message and exit.\n"),
    324324    N_("\
    325   -i, --ignore-errors         Ignore errors from commands.\n"),
     325  -i, --ignore-errors         Ignore errors from recipes.\n"),
    326326    N_("\
    327327  -I DIRECTORY, --include-dir=DIRECTORY\n\
     
    338338    N_("\
    339339  -n, --just-print, --dry-run, --recon\n\
    340                               Don't actually run any commands; just print them.\n"),
     340                              Don't actually run any recipe; just print them.\n"),
    341341    N_("\
    342342  -o FILE, --old-file=FILE, --assume-old=FILE\n\
     
    345345  -p, --print-data-base       Print make's internal database.\n"),
    346346    N_("\
    347   -q, --question              Run no commands; exit status says if up to date.\n"),
     347  -q, --question              Run no recipe; exit status says if up to date.\n"),
    348348    N_("\
    349349  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"),
     
    351351  -R, --no-builtin-variables  Disable the built-in variable settings.\n"),
    352352    N_("\
    353   -s, --silent, --quiet       Don't echo commands.\n"),
     353  -s, --silent, --quiet       Don't echo recipes.\n"),
    354354    N_("\
    355355  -S, --no-keep-going, --stop\n\
     
    11221122  define_variable (".VARIABLES", 10, "", o_default, 0)->special = 1;
    11231123  /* define_variable (".TARGETS", 8, "", o_default, 0)->special = 1; */
     1124  define_variable (".RECIPEPREFIX", 13, "", o_default, 0)->special = 1;
    11241125
    11251126  /* Set up .FEATURES */
     
    29642965    return;
    29652966
     2967  printf ("%sGNU Make %s\n", precede, version_string);
     2968
     2969  if (!remote_description || *remote_description == '\0')
     2970    printf (_("%sBuilt for %s\n"), precede, make_host);
     2971  else
     2972    printf (_("%sBuilt for %s (%s)\n"),
     2973            precede, make_host, remote_description);
     2974
    29662975  /* Print this untranslated.  The coding standards recommend translating the
    29672976     (C) to the copyright symbol, but this string is going to change every
     
    29692978     word "Copyright", so it hardly seems worth it.  */
    29702979
    2971   printf ("%sGNU Make %s\n\
    2972 %sCopyright (C) 2006  Free Software Foundation, Inc.\n",
    2973           precede, version_string, precede);
    2974 
    2975   printf (_("%sThis is free software; see the source for copying conditions.\n\
    2976 %sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
    2977 %sPARTICULAR PURPOSE.\n"),
     2980  printf ("%sCopyright (C) 2007  Free Software Foundation, Inc.\n", precede);
     2981
     2982  printf (_("%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
     2983%sThis is free software: you are free to change and redistribute it.\n\
     2984%sThere is NO WARRANTY, to the extent permitted by law.\n"),
    29782985            precede, precede, precede);
    2979 
    2980   if (!remote_description || *remote_description == '\0')
    2981     printf (_("\n%sThis program built for %s\n"), precede, make_host);
    2982   else
    2983     printf (_("\n%sThis program built for %s (%s)\n"),
    2984             precede, make_host, remote_description);
    29852986
    29862987  printed_version = 1;
  • vendor/gnumake/current/maintMakefile

    r900 r1989  
    136136#   ftp://tiger.informatik.hu-berlin.de/pub/po/maint/
    137137
    138 po_repo = http://www.iro.umontreal.ca/translation/maint/$(PACKAGE)
     138po_repo = http://translationproject.org/latest/$(PACKAGE)
    139139.PHONY: do-po-update po-update
    140140do-po-update:
     
    270270# This file is part of GNU Make.
    271271#
    272 # GNU Make is free software; you can redistribute it and/or modify it under the
    273 # terms of the GNU General Public License as published by the Free Software
    274 # Foundation; either version 2, or (at your option) any later version.
     272# GNU Make is free software; you can redistribute it and/or modify it under
     273# the terms of the GNU General Public License as published by the Free Software
     274# Foundation; either version 3 of the License, or (at your option) any later
     275# version.
    275276#
    276277# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    277 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    278 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     278# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     279# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     280# details.
    279281#
    280282# You should have received a copy of the GNU General Public License along with
    281 # GNU Make; see the file COPYING.  If not, write to the Free Software
    282 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     283# this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/make.1

    r900 r1989  
    341341Mike Frysinger.
    342342.SH "COPYRIGHT"
    343 Copyright (C) 1992, 1993, 1996, 1999 Free Software Foundation, Inc.
     343Copyright (C) 1992, 1993, 1996, 1999, 2007 Free Software Foundation, Inc.
    344344This file is part of GNU
    345345.IR make .
    346346.LP
    347 GNU
    348 .I make
    349 is free software; you can redistribute it and/or modify it under the
    350 terms of the GNU General Public License as published by the Free
    351 Software Foundation; either version 2, or (at your option) any later
     347GNU Make is free software; you can redistribute it and/or modify it under the
     348terms of the GNU General Public License as published by the Free Software
     349Foundation; either version 3 of the License, or (at your option) any later
    352350version.
    353351.LP
    354 GNU
    355 .I make
    356 is distributed in the hope that it will be useful, but WITHOUT ANY
    357 WARRANTY; without even the implied warranty of MERCHANTABILITY or
    358 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    359 for more details.
    360 .LP
    361 You should have received a copy of the GNU General Public License
    362 along with GNU
    363 .IR make ;
    364 see the file COPYING.  If not, write to the Free Software Foundation,
    365 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
     352GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     353WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     354A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     355.LP
     356You should have received a copy of the GNU General Public License along with
     357this program.  If not, see
     358.IR http://www.gnu.org/licenses/ .
  • vendor/gnumake/current/make.h

    r900 r1989  
    11/* Miscellaneous global declarations and portability cruft for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919/* We use <config.h> instead of "config.h" so that a compilation
     
    330330
    331331void sync_Path_environment (void);
    332 int kill (int pid, int sig);
     332int w32_kill (int pid, int sig);
    333333char *end_of_token_w32 (const char *s, char stopchar);
    334334int find_and_set_default_shell (const char *token);
     
    498498extern int batch_mode_shell;
    499499
     500/* Resetting the command script introduction prefix character.  */
     501#define RECIPEPREFIX_NAME          ".RECIPEPREFIX"
     502#define RECIPEPREFIX_DEFAULT       '\t'
    500503extern char cmd_prefix;
    501504
  • vendor/gnumake/current/makefile.com

    r501 r1989  
    140140$!-----------------------------------------------------------------------------
    141141$!Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    142 $!2006 Free Software Foundation, Inc.
     142$!2006, 2007 Free Software Foundation, Inc.
    143143$!This file is part of GNU Make.
    144144$!
    145 $!GNU Make is free software; you can redistribute it and/or modify it under the
    146 $!terms of the GNU General Public License as published by the Free Software
    147 $!Foundation; either version 2, or (at your option) any later version.
     145$!GNU Make is free software; you can redistribute it and/or modify it under
     146$!the terms of the GNU General Public License as published by the Free Software
     147$!Foundation; either version 3 of the License, or (at your option) any later
     148$!version.
    148149$!
    149150$!GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    150 $!WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    151 $!A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     151$!WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     152$!FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     153$!details.
    152154$!
    153155$!You should have received a copy of the GNU General Public License along with
    154 $!GNU Make; see the file COPYING.  If not, write to the Free Software
    155 $!Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     156$!this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/makefile.vms

    r501 r1989  
    22#
    33# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    4 # 2006 Free Software Foundation, Inc.
     4# 2006, 2007 Free Software Foundation, Inc.
    55# This file is part of GNU Make.
    66#
    7 # GNU Make is free software; you can redistribute it and/or modify it under the
    8 # terms of the GNU General Public License as published by the Free Software
    9 # Foundation; either version 2, or (at your option) any later version.
     7# GNU Make is free software; you can redistribute it and/or modify it under
     8# the terms of the GNU General Public License as published by the Free Software
     9# Foundation; either version 3 of the License, or (at your option) any later
     10# version.
    1011#
    1112# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    12 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    13 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     14# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     15# details.
    1416#
    1517# You should have received a copy of the GNU General Public License along with
    16 # GNU Make; see the file COPYING.  If not, write to the Free Software
    17 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     18# this program.  If not, see <http://www.gnu.org/licenses/>.
    1819
    1920# VMS extensions from GNU Make 3.60 imported by
  • vendor/gnumake/current/misc.c

    r900 r1989  
    11/* Miscellaneous generic support functions for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
  • vendor/gnumake/current/po/ChangeLog

    r501 r1989  
     12008-05-17  Paul Smith  <[email protected]>
     2
     3        * LINGUAS: Added new translation for Lithuanian (lt).
     4
     52007-08-15  Paul Smith  <[email protected]>
     6
     7        * LINGUAS: The Kinyarwanda (rw) translation has disappeared from
     8        the translation site, so remove it.
     9
    1102006-01-28  Paul D. Smith  <[email protected]>
    211
     
    5463
    5564
    56 Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     65Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    5766This file is part of GNU Make.
    5867
    5968GNU Make is free software; you can redistribute it and/or modify it under the
    6069terms of the GNU General Public License as published by the Free Software
    61 Foundation; either version 2, or (at your option) any later version.
     70Foundation; either version 3 of the License, or (at your option) any later
     71version.
    6272
    6373GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    6676
    6777You should have received a copy of the GNU General Public License along with
    68 GNU Make; see the file COPYING.  If not, write to the Free Software
    69 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     78this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/po/LINGUAS

    r501 r1989  
    11# Set of available languages: 23 languages
    22
    3 be da de es fi fr ga gl he hr id ja ko nl pl pt_BR ru rw sv tr uk vi zh_CN
     3be da de es fi fr ga gl he hr id ja ko lt nl pl pt_BR ru sv tr uk vi zh_CN
    44
    55# Can't seem to get en@quot and en@boldquot to build properly?
  • vendor/gnumake/current/po/Makevars

    r501 r1989  
    11# This is a -*-Makefile-*-
    2 # Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     2# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
     3# Inc.
    34# This file is part of GNU Make.
    45#
    5 # GNU Make is free software; you can redistribute it and/or modify it under the
    6 # terms of the GNU General Public License as published by the Free Software
    7 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free
     8# Software Foundation; either version 3 of the License, or (at your option)
     9# any later version.
    810#
    911# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    10 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    11 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1215#
    1316# You should have received a copy of the GNU General Public License along with
    14 # GNU Make; see the file COPYING.  If not, write to the Free Software
    15 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1618
    1719
  • vendor/gnumake/current/po/POTFILES.in

    r501 r1989  
    11# List of source files containing translatable strings.
    2 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     2# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    33# Foundation, Inc.
    44# This file is part of GNU Make.
    55#
    6 # GNU Make is free software; you can redistribute it and/or modify it under the
    7 # terms of the GNU General Public License as published by the Free Software
    8 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 3 of the License, or (at your option) any later
     9# version.
    910#
    1011# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1315#
    1416# You should have received a copy of the GNU General Public License along with
    15 # GNU Make; see the file COPYING.  If not, write to the Free Software
    16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1718
    1819ar.c
  • vendor/gnumake/current/read.c

    r900 r1989  
    11/* Reading and parsing of makefiles for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    468468#define record_waiting_files()                                                \
    469469  do                                                                          \
    470     {                                                                         \
     470    {                                                                         \
    471471      if (filenames != 0)                                                     \
    472472        {                                                                     \
     
    541541                continue;
    542542
    543               /* Append this command line to the line being accumulated.  */
     543              /* Append this command line to the line being accumulated.
     544                 Strip command prefix chars that appear after newlines.  */
    544545              if (commands_idx == 0)
    545546                cmds_started = ebuf->floc.lineno;
    546547
    547               if (linelen + 1 + commands_idx > commands_len)
     548              if (linelen + commands_idx > commands_len)
    548549                {
    549                   commands_len = (linelen + 1 + commands_idx) * 2;
     550                  commands_len = (linelen + commands_idx) * 2;
    550551                  commands = xrealloc (commands, commands_len);
    551552                }
    552               memcpy (&commands[commands_idx], line, linelen);
    553               commands_idx += linelen;
    554               commands[commands_idx++] = '\n';
     553              p = &commands[commands_idx];
     554              p2 = line + 1;
     555              while (--linelen)
     556                {
     557                  ++commands_idx;
     558                  *(p++) = *p2;
     559                  if (p2[0] == '\n' && p2[1] == cmd_prefix)
     560                    {
     561                      ++p2;
     562                      --linelen;
     563                    }
     564                  ++p2;
     565                }
     566              *p = '\n';
     567              ++commands_idx;
    555568
    556569              continue;
     
    575588
    576589      /* Compare a word, both length and contents. */
    577 #define word1eq(s)      (wlen == sizeof(s)-1 && strneq (s, p, sizeof(s)-1))
     590#define word1eq(s)      (wlen == sizeof(s)-1 && strneq (s, p, sizeof(s)-1))
    578591      p = collapsed;
    579592      while (isspace ((unsigned char)*p))
     
    613626      if (!in_ignored_define)
    614627        {
    615           int i = conditional_line (p, wlen, fstart);
     628          int i = conditional_line (p, wlen, fstart);
    616629          if (i != -2)
    617630            {
     
    849862         variable definition.  But now we know it is definitely lossage.  */
    850863      if (line[0] == cmd_prefix)
    851         fatal(fstart, _("commands commence before first target"));
     864        fatal(fstart, _("recipe commences before first target"));
    852865
    853866      /* This line describes some target files.  This is complicated by
     
    900913          case w_eol:
    901914            if (cmdleft != 0)
    902               fatal(fstart, _("missing rule before commands"));
     915              fatal(fstart, _("missing rule before recipe"));
    903916            /* This line contained something but turned out to be nothing
    904917               but whitespace (a comment?).  */
     
    9881001                 one of the most common bugs found in makefiles...  */
    9891002              fatal (fstart, _("missing separator%s"),
    990                      !strneq(line, "        ", 8) ? ""
    991                      : _(" (did you mean TAB instead of 8 spaces?)"));
     1003                     (cmd_prefix == '\t' && !strneq(line, "        ", 8))
     1004                     ? "" : _(" (did you mean TAB instead of 8 spaces?)"));
    9921005            continue;
    9931006          }
     
    18811894     See Savannah bug # 12124.  */
    18821895  if (snapped_deps)
    1883     fatal (flocp, _("prerequisites cannot be defined in command scripts"));
     1896    fatal (flocp, _("prerequisites cannot be defined in recipes"));
    18841897
    18851898  if (commands_idx > 0)
     
    19811994            {
    19821995              error (&cmds->fileinfo,
    1983                      _("warning: overriding commands for target `%s'"),
     1996                     _("warning: overriding recipe for target `%s'"),
    19841997                     f->name);
    19851998              error (&f->cmds->fileinfo,
    1986                      _("warning: ignoring old commands for target `%s'"),
     1999                     _("warning: ignoring old recipe for target `%s'"),
    19872000                     f->name);
    19882001            }
     
    24252438      /* Add it to the front of the chain.  */
    24262439      new1 = xmalloc (size);
     2440      memset (new1, '\0', size);
    24272441      new1->name = name;
    24282442      new1->next = new;
     
    29772991          if (len > max_incl_len)
    29782992            max_incl_len = len;
    2979           dirs[idx++] = strcache_add_len (*cpp, len - 1);
     2993          dirs[idx++] = strcache_add_len (*cpp, len);
    29802994        }
    29812995    }
  • vendor/gnumake/current/readme.vms

    r501 r1989  
    300300-------------------------------------------------------------------------------
    301301Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    302 2006 Free Software Foundation, Inc.
     3022006, 2007 Free Software Foundation, Inc.
    303303This file is part of GNU Make.
    304304
    305305GNU Make is free software; you can redistribute it and/or modify it under the
    306306terms of the GNU General Public License as published by the Free Software
    307 Foundation; either version 2, or (at your option) any later version.
     307Foundation; either version 3 of the License, or (at your option) any later
     308version.
    308309
    309310GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    312313
    313314You should have received a copy of the GNU General Public License along with
    314 GNU Make; see the file COPYING.  If not, write to the Free Software
    315 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     315this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/remake.c

    r900 r1989  
    11/* Basic dependency engine for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    464464      && default_file != 0 && default_file->cmds != 0)
    465465    {
    466       DBF (DB_IMPLICIT, _("Using default commands for `%s'.\n"));
     466      DBF (DB_IMPLICIT, _("Using default recipe for `%s'.\n"));
    467467      file->cmds = default_file->cmds;
    468468    }
     
    715715      must_make = 0;
    716716      DBF (DB_VERBOSE,
    717            _("No commands for `%s' and no prerequisites actually changed.\n"));
     717           _("No recipe for `%s' and no prerequisites actually changed.\n"));
    718718    }
    719719  else if (!must_make && file->cmds != 0 && always_make_flag)
     
    765765  if (file->command_state != cs_finished)
    766766    {
    767       DBF (DB_VERBOSE, _("Commands of `%s' are being run.\n"));
     767      DBF (DB_VERBOSE, _("Recipe of `%s' is being run.\n"));
    768768      return 0;
    769769    }
     
    988988             file on whose behalf we are checking.  */
    989989          struct dep *lastd;
     990          int deps_running = 0;
     991
     992          /* Reset this target's state so that we check it fresh.  It could be
     993             that it's already been checked as part of an order-only
     994             prerequisite and so wasn't rebuilt then, but should be now.  */
     995          set_command_state (file, cs_not_started);
    990996
    991997          lastd = 0;
     
    10261032              if (d->file->command_state == cs_running
    10271033                  || d->file->command_state == cs_deps_running)
    1028                 /* Record that some of FILE's deps are still being made.
    1029                    This tells the upper levels to wait on processing it until
    1030                    the commands are finished.  */
    1031                 set_command_state (file, cs_deps_running);
     1034                deps_running = 1;
    10321035
    10331036              lastd = d;
    10341037              d = d->next;
    10351038            }
     1039
     1040          if (deps_running)
     1041            /* Record that some of FILE's deps are still being made.
     1042               This tells the upper levels to wait on processing it until the
     1043               commands are finished.  */
     1044            set_command_state (file, cs_deps_running);
    10361045        }
    10371046    }
     
    13021311                 + ((FILE_TIMESTAMP_NS (mtime) - FILE_TIMESTAMP_NS (now))
    13031312                    / 1e9));
    1304               error (NILF, _("Warning: File `%s' has modification time %.2g s in the future"),
    1305                      file->name, from_now);
     1313              char from_now_string[100];
     1314
     1315              if (from_now >= 99 && from_now <= ULONG_MAX)
     1316                sprintf (from_now_string, "%lu", (unsigned long) from_now);
     1317              else
     1318                sprintf (from_now_string, "%.2g", from_now);
     1319              error (NILF, _("Warning: File `%s' has modification time %s s in the future"),
     1320                     file->name, from_now_string);
    13061321#endif
    13071322              clock_skew_detected = 1;
  • vendor/gnumake/current/remote-cstms.c

    r900 r1989  
    55
    66Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    7 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     71998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    88Foundation, Inc.
    99This file is part of GNU Make.
     
    1111GNU Make is free software; you can redistribute it and/or modify it under the
    1212terms of the GNU General Public License as published by the Free Software
    13 Foundation; either version 2, or (at your option) any later version.
     13Foundation; either version 3 of the License, or (at your option) any later
     14version.
    1415
    1516GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1819
    1920You should have received a copy of the GNU General Public License along with
    20 GNU Make; see the file COPYING.  If not, write to the Free Software
    21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     21this program.  If not, see <http://www.gnu.org/licenses/>.  */
    2222
    2323#include "make.h"
  • vendor/gnumake/current/remote-stub.c

    r501 r1989  
    11/* Template for the remote job exportation interface to GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
  • vendor/gnumake/current/rule.c

    r900 r1989  
    11/* Pattern and suffix rule internals for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
  • vendor/gnumake/current/rule.h

    r900 r1989  
    11/* Definitions for using pattern rules in GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919
  • vendor/gnumake/current/signame.c

    r501 r1989  
    11/* Convert between signal names and numbers.
    22Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
    3 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     32000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#include "make.h"
  • vendor/gnumake/current/strcache.c

    r900 r1989  
    11/* Constant string caching for GNU Make.
    2 Copyright (C) 2006 Free Software Foundation, Inc.
     2Copyright (C) 2006, 2007 Free Software Foundation, Inc.
    33This file is part of GNU Make.
    44
    55GNU Make is free software; you can redistribute it and/or modify it under the
    66terms of the GNU General Public License as published by the Free Software
    7 Foundation; either version 2, or (at your option) any later version.
     7Foundation; either version 3 of the License, or (at your option) any later
     8version.
    89
    910GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1213
    1314You should have received a copy of the GNU General Public License along with
    14 GNU Make; see the file COPYING.  If not, write to the Free Software
    15 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     15this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1616
    1717#include "make.h"
  • vendor/gnumake/current/subproc.bat

    r501 r1989  
    11@echo off
    22rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    3 rem 2005, 2006 Free Software Foundation, Inc.
     3rem 2005, 2006, 2007 Free Software Foundation, Inc.
    44rem This file is part of GNU Make.
    5 
     5rem
    66rem GNU Make is free software; you can redistribute it and/or modify it under
    77rem the terms of the GNU General Public License as published by the Free
    8 rem Software Foundation; either version 2, or (at your option) any later
    9 rem version.
    10 
     8rem Software Foundation; either version 3 of the License, or (at your option)
     9rem any later version.
     10rem
    1111rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
    1212rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13 rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
    1414rem more details.
    15 
     15rem
    1616rem You should have received a copy of the GNU General Public License along
    17 rem with GNU Make; see the file COPYING.  If not, write to the Free Software
    18 rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17rem with this program.  If not, see <http://www.gnu.org/licenses/>.
    1918
    2019cd w32\subproc
  • vendor/gnumake/current/tests/COPYING

    r53 r1989  
    1                     GNU GENERAL PUBLIC LICENSE
    2                        Version 2, June 1991
    3 
    4  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
    5                           675 Mass Ave, Cambridge, MA 02139, USA
     1                    GNU GENERAL PUBLIC LICENSE
     2                       Version 3, 29 June 2007
     3
     4 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
    65 Everyone is permitted to copy and distribute verbatim copies
    76 of this license document, but changing it is not allowed.
    87
    9                             Preamble
    10 
    11   The licenses for most software are designed to take away your
    12 freedom to share and change it.  By contrast, the GNU General Public
    13 License is intended to guarantee your freedom to share and change free
    14 software--to make sure the software is free for all its users.  This
    15 General Public License applies to most of the Free Software
    16 Foundation's software and to any other program whose authors commit to
    17 using it.  (Some other Free Software Foundation software is covered by
    18 the GNU Library General Public License instead.)  You can apply it to
     8                            Preamble
     9
     10  The GNU General Public License is a free, copyleft license for
     11software and other kinds of works.
     12
     13  The licenses for most software and other practical works are designed
     14to take away your freedom to share and change the works.  By contrast,
     15the GNU General Public License is intended to guarantee your freedom to
     16share and change all versions of a program--to make sure it remains free
     17software for all its users.  We, the Free Software Foundation, use the
     18GNU General Public License for most of our software; it applies also to
     19any other work released this way by its authors.  You can apply it to
    1920your programs, too.
    2021
     
    2223price.  Our General Public Licenses are designed to make sure that you
    2324have the freedom to distribute copies of free software (and charge for
    24 this service if you wish), that you receive source code or can get it
    25 if you want it, that you can change the software or use pieces of it
    26 in new free programs; and that you know you can do these things.
    27 
    28   To protect your rights, we need to make restrictions that forbid
    29 anyone to deny you these rights or to ask you to surrender the rights.
    30 These restrictions translate to certain responsibilities for you if you
    31 distribute copies of the software, or if you modify it.
     25them if you wish), that you receive source code or can get it if you
     26want it, that you can change the software or use pieces of it in new
     27free programs, and that you know you can do these things.
     28
     29  To protect your rights, we need to prevent others from denying you
     30these rights or asking you to surrender the rights.  Therefore, you have
     31certain responsibilities if you distribute copies of the software, or if
     32you modify it: responsibilities to respect the freedom of others.
    3233
    3334  For example, if you distribute copies of such a program, whether
    34 gratis or for a fee, you must give the recipients all the rights that
    35 you have.  You must make sure that they, too, receive or can get the
    36 source code.  And you must show them these terms so they know their
    37 rights.
    38 
    39   We protect your rights with two steps: (1) copyright the software, and
    40 (2) offer you this license which gives you legal permission to copy,
    41 distribute and/or modify the software.
    42 
    43   Also, for each author's protection and ours, we want to make certain
    44 that everyone understands that there is no warranty for this free
    45 software.  If the software is modified by someone else and passed on, we
    46 want its recipients to know that what they have is not the original, so
    47 that any problems introduced by others will not reflect on the original
    48 authors' reputations.
    49 
    50   Finally, any free program is threatened constantly by software
    51 patents.  We wish to avoid the danger that redistributors of a free
    52 program will individually obtain patent licenses, in effect making the
    53 program proprietary.  To prevent this, we have made it clear that any
    54 patent must be licensed for everyone's free use or not licensed at all.
     35gratis or for a fee, you must pass on to the recipients the same
     36freedoms that you received.  You must make sure that they, too, receive
     37or can get the source code.  And you must show them these terms so they
     38know their rights.
     39
     40  Developers that use the GNU GPL protect your rights with two steps:
     41(1) assert copyright on the software, and (2) offer you this License
     42giving you legal permission to copy, distribute and/or modify it.
     43
     44  For the developers' and authors' protection, the GPL clearly explains
     45that there is no warranty for this free software.  For both users' and
     46authors' sake, the GPL requires that modified versions be marked as
     47changed, so that their problems will not be attributed erroneously to
     48authors of previous versions.
     49
     50  Some devices are designed to deny users access to install or run
     51modified versions of the software inside them, although the manufacturer
     52can do so.  This is fundamentally incompatible with the aim of
     53protecting users' freedom to change the software.  The systematic
     54pattern of such abuse occurs in the area of products for individuals to
     55use, which is precisely where it is most unacceptable.  Therefore, we
     56have designed this version of the GPL to prohibit the practice for those
     57products.  If such problems arise substantially in other domains, we
     58stand ready to extend this provision to those domains in future versions
     59of the GPL, as needed to protect the freedom of users.
     60
     61  Finally, every program is threatened constantly by software patents.
     62States should not allow patents to restrict development and use of
     63software on general-purpose computers, but in those that do, we wish to
     64avoid the special danger that patents applied to a free program could
     65make it effectively proprietary.  To prevent this, the GPL assures that
     66patents cannot be used to render the program non-free.
    5567
    5668  The precise terms and conditions for copying, distribution and
    5769modification follow.
    5870
    59 
    60                     GNU GENERAL PUBLIC LICENSE
    61    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    62 
    63   0. This License applies to any program or other work which contains
    64 a notice placed by the copyright holder saying it may be distributed
    65 under the terms of this General Public License.  The "Program", below,
    66 refers to any such program or work, and a "work based on the Program"
    67 means either the Program or any derivative work under copyright law:
    68 that is to say, a work containing the Program or a portion of it,
    69 either verbatim or with modifications and/or translated into another
    70 language.  (Hereinafter, translation is included without limitation in
    71 the term "modification".)  Each licensee is addressed as "you".
    72 
    73 Activities other than copying, distribution and modification are not
    74 covered by this License; they are outside its scope.  The act of
    75 running the Program is not restricted, and the output from the Program
    76 is covered only if its contents constitute a work based on the
    77 Program (independent of having been made by running the Program).
    78 Whether that is true depends on what the Program does.
    79 
    80   1. You may copy and distribute verbatim copies of the Program's
    81 source code as you receive it, in any medium, provided that you
    82 conspicuously and appropriately publish on each copy an appropriate
    83 copyright notice and disclaimer of warranty; keep intact all the
    84 notices that refer to this License and to the absence of any warranty;
    85 and give any other recipients of the Program a copy of this License
    86 along with the Program.
    87 
    88 You may charge a fee for the physical act of transferring a copy, and
    89 you may at your option offer warranty protection in exchange for a fee.
    90 
    91   2. You may modify your copy or copies of the Program or any portion
    92 of it, thus forming a work based on the Program, and copy and
    93 distribute such modifications or work under the terms of Section 1
    94 above, provided that you also meet all of these conditions:
    95 
    96     a) You must cause the modified files to carry prominent notices
    97     stating that you changed the files and the date of any change.
    98 
    99     b) You must cause any work that you distribute or publish, that in
    100     whole or in part contains or is derived from the Program or any
    101     part thereof, to be licensed as a whole at no charge to all third
    102     parties under the terms of this License.
    103 
    104     c) If the modified program normally reads commands interactively
    105     when run, you must cause it, when started running for such
    106     interactive use in the most ordinary way, to print or display an
    107     announcement including an appropriate copyright notice and a
    108     notice that there is no warranty (or else, saying that you provide
    109     a warranty) and that users may redistribute the program under
    110     these conditions, and telling the user how to view a copy of this
    111     License.  (Exception: if the Program itself is interactive but
    112     does not normally print such an announcement, your work based on
    113     the Program is not required to print an announcement.)
    114 
    115 
    116 These requirements apply to the modified work as a whole.  If
    117 identifiable sections of that work are not derived from the Program,
    118 and can be reasonably considered independent and separate works in
    119 themselves, then this License, and its terms, do not apply to those
    120 sections when you distribute them as separate works.  But when you
    121 distribute the same sections as part of a whole which is a work based
    122 on the Program, the distribution of the whole must be on the terms of
    123 this License, whose permissions for other licensees extend to the
    124 entire whole, and thus to each and every part regardless of who wrote it.
    125 
    126 Thus, it is not the intent of this section to claim rights or contest
    127 your rights to work written entirely by you; rather, the intent is to
    128 exercise the right to control the distribution of derivative or
    129 collective works based on the Program.
    130 
    131 In addition, mere aggregation of another work not based on the Program
    132 with the Program (or with a work based on the Program) on a volume of
    133 a storage or distribution medium does not bring the other work under
    134 the scope of this License.
    135 
    136   3. You may copy and distribute the Program (or a work based on it,
    137 under Section 2) in object code or executable form under the terms of
    138 Sections 1 and 2 above provided that you also do one of the following:
    139 
    140     a) Accompany it with the complete corresponding machine-readable
    141     source code, which must be distributed under the terms of Sections
    142     1 and 2 above on a medium customarily used for software interchange; or,
    143 
    144     b) Accompany it with a written offer, valid for at least three
    145     years, to give any third party, for a charge no more than your
    146     cost of physically performing source distribution, a complete
    147     machine-readable copy of the corresponding source code, to be
    148     distributed under the terms of Sections 1 and 2 above on a medium
    149     customarily used for software interchange; or,
    150 
    151     c) Accompany it with the information you received as to the offer
    152     to distribute corresponding source code.  (This alternative is
    153     allowed only for noncommercial distribution and only if you
    154     received the program in object code or executable form with such
    155     an offer, in accord with Subsection b above.)
    156 
    157 The source code for a work means the preferred form of the work for
    158 making modifications to it.  For an executable work, complete source
    159 code means all the source code for all modules it contains, plus any
    160 associated interface definition files, plus the scripts used to
    161 control compilation and installation of the executable.  However, as a
    162 special exception, the source code distributed need not include
    163 anything that is normally distributed (in either source or binary
    164 form) with the major components (compiler, kernel, and so on) of the
    165 operating system on which the executable runs, unless that component
    166 itself accompanies the executable.
    167 
    168 If distribution of executable or object code is made by offering
    169 access to copy from a designated place, then offering equivalent
    170 access to copy the source code from the same place counts as
    171 distribution of the source code, even though third parties are not
    172 compelled to copy the source along with the object code.
    173 
    174 
    175   4. You may not copy, modify, sublicense, or distribute the Program
    176 except as expressly provided under this License.  Any attempt
    177 otherwise to copy, modify, sublicense or distribute the Program is
    178 void, and will automatically terminate your rights under this License.
    179 However, parties who have received copies, or rights, from you under
    180 this License will not have their licenses terminated so long as such
    181 parties remain in full compliance.
    182 
    183   5. You are not required to accept this License, since you have not
    184 signed it.  However, nothing else grants you permission to modify or
    185 distribute the Program or its derivative works.  These actions are
    186 prohibited by law if you do not accept this License.  Therefore, by
    187 modifying or distributing the Program (or any work based on the
    188 Program), you indicate your acceptance of this License to do so, and
    189 all its terms and conditions for copying, distributing or modifying
    190 the Program or works based on it.
    191 
    192   6. Each time you redistribute the Program (or any work based on the
    193 Program), the recipient automatically receives a license from the
    194 original licensor to copy, distribute or modify the Program subject to
    195 these terms and conditions.  You may not impose any further
    196 restrictions on the recipients' exercise of the rights granted herein.
    197 You are not responsible for enforcing compliance by third parties to
     71                       TERMS AND CONDITIONS
     72
     73  0. Definitions.
     74
     75  "This License" refers to version 3 of the GNU General Public License.
     76
     77  "Copyright" also means copyright-like laws that apply to other kinds of
     78works, such as semiconductor masks.
     79
     80  "The Program" refers to any copyrightable work licensed under this
     81License.  Each licensee is addressed as "you".  "Licensees" and
     82"recipients" may be individuals or organizations.
     83
     84  To "modify" a work means to copy from or adapt all or part of the work
     85in a fashion requiring copyright permission, other than the making of an
     86exact copy.  The resulting work is called a "modified version" of the
     87earlier work or a work "based on" the earlier work.
     88
     89  A "covered work" means either the unmodified Program or a work based
     90on the Program.
     91
     92  To "propagate" a work means to do anything with it that, without
     93permission, would make you directly or secondarily liable for
     94infringement under applicable copyright law, except executing it on a
     95computer or modifying a private copy.  Propagation includes copying,
     96distribution (with or without modification), making available to the
     97public, and in some countries other activities as well.
     98
     99  To "convey" a work means any kind of propagation that enables other
     100parties to make or receive copies.  Mere interaction with a user through
     101a computer network, with no transfer of a copy, is not conveying.
     102
     103  An interactive user interface displays "Appropriate Legal Notices"
     104to the extent that it includes a convenient and prominently visible
     105feature that (1) displays an appropriate copyright notice, and (2)
     106tells the user that there is no warranty for the work (except to the
     107extent that warranties are provided), that licensees may convey the
     108work under this License, and how to view a copy of this License.  If
     109the interface presents a list of user commands or options, such as a
     110menu, a prominent item in the list meets this criterion.
     111
     112  1. Source Code.
     113
     114  The "source code" for a work means the preferred form of the work
     115for making modifications to it.  "Object code" means any non-source
     116form of a work.
     117
     118  A "Standard Interface" means an interface that either is an official
     119standard defined by a recognized standards body, or, in the case of
     120interfaces specified for a particular programming language, one that
     121is widely used among developers working in that language.
     122
     123  The "System Libraries" of an executable work include anything, other
     124than the work as a whole, that (a) is included in the normal form of
     125packaging a Major Component, but which is not part of that Major
     126Component, and (b) serves only to enable use of the work with that
     127Major Component, or to implement a Standard Interface for which an
     128implementation is available to the public in source code form.  A
     129"Major Component", in this context, means a major essential component
     130(kernel, window system, and so on) of the specific operating system
     131(if any) on which the executable work runs, or a compiler used to
     132produce the work, or an object code interpreter used to run it.
     133
     134  The "Corresponding Source" for a work in object code form means all
     135the source code needed to generate, install, and (for an executable
     136work) run the object code and to modify the work, including scripts to
     137control those activities.  However, it does not include the work's
     138System Libraries, or general-purpose tools or generally available free
     139programs which are used unmodified in performing those activities but
     140which are not part of the work.  For example, Corresponding Source
     141includes interface definition files associated with source files for
     142the work, and the source code for shared libraries and dynamically
     143linked subprograms that the work is specifically designed to require,
     144such as by intimate data communication or control flow between those
     145subprograms and other parts of the work.
     146
     147  The Corresponding Source need not include anything that users
     148can regenerate automatically from other parts of the Corresponding
     149Source.
     150
     151  The Corresponding Source for a work in source code form is that
     152same work.
     153
     154  2. Basic Permissions.
     155
     156  All rights granted under this License are granted for the term of
     157copyright on the Program, and are irrevocable provided the stated
     158conditions are met.  This License explicitly affirms your unlimited
     159permission to run the unmodified Program.  The output from running a
     160covered work is covered by this License only if the output, given its
     161content, constitutes a covered work.  This License acknowledges your
     162rights of fair use or other equivalent, as provided by copyright law.
     163
     164  You may make, run and propagate covered works that you do not
     165convey, without conditions so long as your license otherwise remains
     166in force.  You may convey covered works to others for the sole purpose
     167of having them make modifications exclusively for you, or provide you
     168with facilities for running those works, provided that you comply with
     169the terms of this License in conveying all material for which you do
     170not control copyright.  Those thus making or running the covered works
     171for you must do so exclusively on your behalf, under your direction
     172and control, on terms that prohibit them from making any copies of
     173your copyrighted material outside their relationship with you.
     174
     175  Conveying under any other circumstances is permitted solely under
     176the conditions stated below.  Sublicensing is not allowed; section 10
     177makes it unnecessary.
     178
     179  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
     180
     181  No covered work shall be deemed part of an effective technological
     182measure under any applicable law fulfilling obligations under article
     18311 of the WIPO copyright treaty adopted on 20 December 1996, or
     184similar laws prohibiting or restricting circumvention of such
     185measures.
     186
     187  When you convey a covered work, you waive any legal power to forbid
     188circumvention of technological measures to the extent such circumvention
     189is effected by exercising rights under this License with respect to
     190the covered work, and you disclaim any intention to limit operation or
     191modification of the work as a means of enforcing, against the work's
     192users, your or third parties' legal rights to forbid circumvention of
     193technological measures.
     194
     195  4. Conveying Verbatim Copies.
     196
     197  You may convey verbatim copies of the Program's source code as you
     198receive it, in any medium, provided that you conspicuously and
     199appropriately publish on each copy an appropriate copyright notice;
     200keep intact all notices stating that this License and any
     201non-permissive terms added in accord with section 7 apply to the code;
     202keep intact all notices of the absence of any warranty; and give all
     203recipients a copy of this License along with the Program.
     204
     205  You may charge any price or no price for each copy that you convey,
     206and you may offer support or warranty protection for a fee.
     207
     208  5. Conveying Modified Source Versions.
     209
     210  You may convey a work based on the Program, or the modifications to
     211produce it from the Program, in the form of source code under the
     212terms of section 4, provided that you also meet all of these conditions:
     213
     214    a) The work must carry prominent notices stating that you modified
     215    it, and giving a relevant date.
     216
     217    b) The work must carry prominent notices stating that it is
     218    released under this License and any conditions added under section
     219    7.  This requirement modifies the requirement in section 4 to
     220    "keep intact all notices".
     221
     222    c) You must license the entire work, as a whole, under this
     223    License to anyone who comes into possession of a copy.  This
     224    License will therefore apply, along with any applicable section 7
     225    additional terms, to the whole of the work, and all its parts,
     226    regardless of how they are packaged.  This License gives no
     227    permission to license the work in any other way, but it does not
     228    invalidate such permission if you have separately received it.
     229
     230    d) If the work has interactive user interfaces, each must display
     231    Appropriate Legal Notices; however, if the Program has interactive
     232    interfaces that do not display Appropriate Legal Notices, your
     233    work need not make them do so.
     234
     235  A compilation of a covered work with other separate and independent
     236works, which are not by their nature extensions of the covered work,
     237and which are not combined with it such as to form a larger program,
     238in or on a volume of a storage or distribution medium, is called an
     239"aggregate" if the compilation and its resulting copyright are not
     240used to limit the access or legal rights of the compilation's users
     241beyond what the individual works permit.  Inclusion of a covered work
     242in an aggregate does not cause this License to apply to the other
     243parts of the aggregate.
     244
     245  6. Conveying Non-Source Forms.
     246
     247  You may convey a covered work in object code form under the terms
     248of sections 4 and 5, provided that you also convey the
     249machine-readable Corresponding Source under the terms of this License,
     250in one of these ways:
     251
     252    a) Convey the object code in, or embodied in, a physical product
     253    (including a physical distribution medium), accompanied by the
     254    Corresponding Source fixed on a durable physical medium
     255    customarily used for software interchange.
     256
     257    b) Convey the object code in, or embodied in, a physical product
     258    (including a physical distribution medium), accompanied by a
     259    written offer, valid for at least three years and valid for as
     260    long as you offer spare parts or customer support for that product
     261    model, to give anyone who possesses the object code either (1) a
     262    copy of the Corresponding Source for all the software in the
     263    product that is covered by this License, on a durable physical
     264    medium customarily used for software interchange, for a price no
     265    more than your reasonable cost of physically performing this
     266    conveying of source, or (2) access to copy the
     267    Corresponding Source from a network server at no charge.
     268
     269    c) Convey individual copies of the object code with a copy of the
     270    written offer to provide the Corresponding Source.  This
     271    alternative is allowed only occasionally and noncommercially, and
     272    only if you received the object code with such an offer, in accord
     273    with subsection 6b.
     274
     275    d) Convey the object code by offering access from a designated
     276    place (gratis or for a charge), and offer equivalent access to the
     277    Corresponding Source in the same way through the same place at no
     278    further charge.  You need not require recipients to copy the
     279    Corresponding Source along with the object code.  If the place to
     280    copy the object code is a network server, the Corresponding Source
     281    may be on a different server (operated by you or a third party)
     282    that supports equivalent copying facilities, provided you maintain
     283    clear directions next to the object code saying where to find the
     284    Corresponding Source.  Regardless of what server hosts the
     285    Corresponding Source, you remain obligated to ensure that it is
     286    available for as long as needed to satisfy these requirements.
     287
     288    e) Convey the object code using peer-to-peer transmission, provided
     289    you inform other peers where the object code and Corresponding
     290    Source of the work are being offered to the general public at no
     291    charge under subsection 6d.
     292
     293  A separable portion of the object code, whose source code is excluded
     294from the Corresponding Source as a System Library, need not be
     295included in conveying the object code work.
     296
     297  A "User Product" is either (1) a "consumer product", which means any
     298tangible personal property which is normally used for personal, family,
     299or household purposes, or (2) anything designed or sold for incorporation
     300into a dwelling.  In determining whether a product is a consumer product,
     301doubtful cases shall be resolved in favor of coverage.  For a particular
     302product received by a particular user, "normally used" refers to a
     303typical or common use of that class of product, regardless of the status
     304of the particular user or of the way in which the particular user
     305actually uses, or expects or is expected to use, the product.  A product
     306is a consumer product regardless of whether the product has substantial
     307commercial, industrial or non-consumer uses, unless such uses represent
     308the only significant mode of use of the product.
     309
     310  "Installation Information" for a User Product means any methods,
     311procedures, authorization keys, or other information required to install
     312and execute modified versions of a covered work in that User Product from
     313a modified version of its Corresponding Source.  The information must
     314suffice to ensure that the continued functioning of the modified object
     315code is in no case prevented or interfered with solely because
     316modification has been made.
     317
     318  If you convey an object code work under this section in, or with, or
     319specifically for use in, a User Product, and the conveying occurs as
     320part of a transaction in which the right of possession and use of the
     321User Product is transferred to the recipient in perpetuity or for a
     322fixed term (regardless of how the transaction is characterized), the
     323Corresponding Source conveyed under this section must be accompanied
     324by the Installation Information.  But this requirement does not apply
     325if neither you nor any third party retains the ability to install
     326modified object code on the User Product (for example, the work has
     327been installed in ROM).
     328
     329  The requirement to provide Installation Information does not include a
     330requirement to continue to provide support service, warranty, or updates
     331for a work that has been modified or installed by the recipient, or for
     332the User Product in which it has been modified or installed.  Access to a
     333network may be denied when the modification itself materially and
     334adversely affects the operation of the network or violates the rules and
     335protocols for communication across the network.
     336
     337  Corresponding Source conveyed, and Installation Information provided,
     338in accord with this section must be in a format that is publicly
     339documented (and with an implementation available to the public in
     340source code form), and must require no special password or key for
     341unpacking, reading or copying.
     342
     343  7. Additional Terms.
     344
     345  "Additional permissions" are terms that supplement the terms of this
     346License by making exceptions from one or more of its conditions.
     347Additional permissions that are applicable to the entire Program shall
     348be treated as though they were included in this License, to the extent
     349that they are valid under applicable law.  If additional permissions
     350apply only to part of the Program, that part may be used separately
     351under those permissions, but the entire Program remains governed by
     352this License without regard to the additional permissions.
     353
     354  When you convey a copy of a covered work, you may at your option
     355remove any additional permissions from that copy, or from any part of
     356it.  (Additional permissions may be written to require their own
     357removal in certain cases when you modify the work.)  You may place
     358additional permissions on material, added by you to a covered work,
     359for which you have or can give appropriate copyright permission.
     360
     361  Notwithstanding any other provision of this License, for material you
     362add to a covered work, you may (if authorized by the copyright holders of
     363that material) supplement the terms of this License with terms:
     364
     365    a) Disclaiming warranty or limiting liability differently from the
     366    terms of sections 15 and 16 of this License; or
     367
     368    b) Requiring preservation of specified reasonable legal notices or
     369    author attributions in that material or in the Appropriate Legal
     370    Notices displayed by works containing it; or
     371
     372    c) Prohibiting misrepresentation of the origin of that material, or
     373    requiring that modified versions of such material be marked in
     374    reasonable ways as different from the original version; or
     375
     376    d) Limiting the use for publicity purposes of names of licensors or
     377    authors of the material; or
     378
     379    e) Declining to grant rights under trademark law for use of some
     380    trade names, trademarks, or service marks; or
     381
     382    f) Requiring indemnification of licensors and authors of that
     383    material by anyone who conveys the material (or modified versions of
     384    it) with contractual assumptions of liability to the recipient, for
     385    any liability that these contractual assumptions directly impose on
     386    those licensors and authors.
     387
     388  All other non-permissive additional terms are considered "further
     389restrictions" within the meaning of section 10.  If the Program as you
     390received it, or any part of it, contains a notice stating that it is
     391governed by this License along with a term that is a further
     392restriction, you may remove that term.  If a license document contains
     393a further restriction but permits relicensing or conveying under this
     394License, you may add to a covered work material governed by the terms
     395of that license document, provided that the further restriction does
     396not survive such relicensing or conveying.
     397
     398  If you add terms to a covered work in accord with this section, you
     399must place, in the relevant source files, a statement of the
     400additional terms that apply to those files, or a notice indicating
     401where to find the applicable terms.
     402
     403  Additional terms, permissive or non-permissive, may be stated in the
     404form of a separately written license, or stated as exceptions;
     405the above requirements apply either way.
     406
     407  8. Termination.
     408
     409  You may not propagate or modify a covered work except as expressly
     410provided under this License.  Any attempt otherwise to propagate or
     411modify it is void, and will automatically terminate your rights under
     412this License (including any patent licenses granted under the third
     413paragraph of section 11).
     414
     415  However, if you cease all violation of this License, then your
     416license from a particular copyright holder is reinstated (a)
     417provisionally, unless and until the copyright holder explicitly and
     418finally terminates your license, and (b) permanently, if the copyright
     419holder fails to notify you of the violation by some reasonable means
     420prior to 60 days after the cessation.
     421
     422  Moreover, your license from a particular copyright holder is
     423reinstated permanently if the copyright holder notifies you of the
     424violation by some reasonable means, this is the first time you have
     425received notice of violation of this License (for any work) from that
     426copyright holder, and you cure the violation prior to 30 days after
     427your receipt of the notice.
     428
     429  Termination of your rights under this section does not terminate the
     430licenses of parties who have received copies or rights from you under
     431this License.  If your rights have been terminated and not permanently
     432reinstated, you do not qualify to receive new licenses for the same
     433material under section 10.
     434
     435  9. Acceptance Not Required for Having Copies.
     436
     437  You are not required to accept this License in order to receive or
     438run a copy of the Program.  Ancillary propagation of a covered work
     439occurring solely as a consequence of using peer-to-peer transmission
     440to receive a copy likewise does not require acceptance.  However,
     441nothing other than this License grants you permission to propagate or
     442modify any covered work.  These actions infringe copyright if you do
     443not accept this License.  Therefore, by modifying or propagating a
     444covered work, you indicate your acceptance of this License to do so.
     445
     446  10. Automatic Licensing of Downstream Recipients.
     447
     448  Each time you convey a covered work, the recipient automatically
     449receives a license from the original licensors, to run, modify and
     450propagate that work, subject to this License.  You are not responsible
     451for enforcing compliance by third parties with this License.
     452
     453  An "entity transaction" is a transaction transferring control of an
     454organization, or substantially all assets of one, or subdividing an
     455organization, or merging organizations.  If propagation of a covered
     456work results from an entity transaction, each party to that
     457transaction who receives a copy of the work also receives whatever
     458licenses to the work the party's predecessor in interest had or could
     459give under the previous paragraph, plus a right to possession of the
     460Corresponding Source of the work from the predecessor in interest, if
     461the predecessor has it or can get it with reasonable efforts.
     462
     463  You may not impose any further restrictions on the exercise of the
     464rights granted or affirmed under this License.  For example, you may
     465not impose a license fee, royalty, or other charge for exercise of
     466rights granted under this License, and you may not initiate litigation
     467(including a cross-claim or counterclaim in a lawsuit) alleging that
     468any patent claim is infringed by making, using, selling, offering for
     469sale, or importing the Program or any portion of it.
     470
     471  11. Patents.
     472
     473  A "contributor" is a copyright holder who authorizes use under this
     474License of the Program or a work on which the Program is based.  The
     475work thus licensed is called the contributor's "contributor version".
     476
     477  A contributor's "essential patent claims" are all patent claims
     478owned or controlled by the contributor, whether already acquired or
     479hereafter acquired, that would be infringed by some manner, permitted
     480by this License, of making, using, or selling its contributor version,
     481but do not include claims that would be infringed only as a
     482consequence of further modification of the contributor version.  For
     483purposes of this definition, "control" includes the right to grant
     484patent sublicenses in a manner consistent with the requirements of
    198485this License.
    199486
    200   7. If, as a consequence of a court judgment or allegation of patent
    201 infringement or for any other reason (not limited to patent issues),
    202 conditions are imposed on you (whether by court order, agreement or
     487  Each contributor grants you a non-exclusive, worldwide, royalty-free
     488patent license under the contributor's essential patent claims, to
     489make, use, sell, offer for sale, import and otherwise run, modify and
     490propagate the contents of its contributor version.
     491
     492  In the following three paragraphs, a "patent license" is any express
     493agreement or commitment, however denominated, not to enforce a patent
     494(such as an express permission to practice a patent or covenant not to
     495sue for patent infringement).  To "grant" such a patent license to a
     496party means to make such an agreement or commitment not to enforce a
     497patent against the party.
     498
     499  If you convey a covered work, knowingly relying on a patent license,
     500and the Corresponding Source of the work is not available for anyone
     501to copy, free of charge and under the terms of this License, through a
     502publicly available network server or other readily accessible means,
     503then you must either (1) cause the Corresponding Source to be so
     504available, or (2) arrange to deprive yourself of the benefit of the
     505patent license for this particular work, or (3) arrange, in a manner
     506consistent with the requirements of this License, to extend the patent
     507license to downstream recipients.  "Knowingly relying" means you have
     508actual knowledge that, but for the patent license, your conveying the
     509covered work in a country, or your recipient's use of the covered work
     510in a country, would infringe one or more identifiable patents in that
     511country that you have reason to believe are valid.
     512
     513  If, pursuant to or in connection with a single transaction or
     514arrangement, you convey, or propagate by procuring conveyance of, a
     515covered work, and grant a patent license to some of the parties
     516receiving the covered work authorizing them to use, propagate, modify
     517or convey a specific copy of the covered work, then the patent license
     518you grant is automatically extended to all recipients of the covered
     519work and works based on it.
     520
     521  A patent license is "discriminatory" if it does not include within
     522the scope of its coverage, prohibits the exercise of, or is
     523conditioned on the non-exercise of one or more of the rights that are
     524specifically granted under this License.  You may not convey a covered
     525work if you are a party to an arrangement with a third party that is
     526in the business of distributing software, under which you make payment
     527to the third party based on the extent of your activity of conveying
     528the work, and under which the third party grants, to any of the
     529parties who would receive the covered work from you, a discriminatory
     530patent license (a) in connection with copies of the covered work
     531conveyed by you (or copies made from those copies), or (b) primarily
     532for and in connection with specific products or compilations that
     533contain the covered work, unless you entered into that arrangement,
     534or that patent license was granted, prior to 28 March 2007.
     535
     536  Nothing in this License shall be construed as excluding or limiting
     537any implied license or other defenses to infringement that may
     538otherwise be available to you under applicable patent law.
     539
     540  12. No Surrender of Others' Freedom.
     541
     542  If conditions are imposed on you (whether by court order, agreement or
    203543otherwise) that contradict the conditions of this License, they do not
    204 excuse you from the conditions of this License.  If you cannot
    205 distribute so as to satisfy simultaneously your obligations under this
    206 License and any other pertinent obligations, then as a consequence you
    207 may not distribute the Program at all.  For example, if a patent
    208 license would not permit royalty-free redistribution of the Program by
    209 all those who receive copies directly or indirectly through you, then
    210 the only way you could satisfy both it and this License would be to
    211 refrain entirely from distribution of the Program.
    212 
    213 If any portion of this section is held invalid or unenforceable under
    214 any particular circumstance, the balance of the section is intended to
    215 apply and the section as a whole is intended to apply in other
    216 circumstances.
    217 
    218 It is not the purpose of this section to induce you to infringe any
    219 patents or other property right claims or to contest validity of any
    220 such claims; this section has the sole purpose of protecting the
    221 integrity of the free software distribution system, which is
    222 implemented by public license practices.  Many people have made
    223 generous contributions to the wide range of software distributed
    224 through that system in reliance on consistent application of that
    225 system; it is up to the author/donor to decide if he or she is willing
    226 to distribute software through any other system and a licensee cannot
    227 impose that choice.
    228 
    229 This section is intended to make thoroughly clear what is believed to
    230 be a consequence of the rest of this License.
    231 
    232 
    233   8. If the distribution and/or use of the Program is restricted in
    234 certain countries either by patents or by copyrighted interfaces, the
    235 original copyright holder who places the Program under this License
    236 may add an explicit geographical distribution limitation excluding
    237 those countries, so that distribution is permitted only in or among
    238 countries not thus excluded.  In such case, this License incorporates
    239 the limitation as if written in the body of this License.
    240 
    241   9. The Free Software Foundation may publish revised and/or new versions
    242 of the General Public License from time to time.  Such new versions will
     544excuse you from the conditions of this License.  If you cannot convey a
     545covered work so as to satisfy simultaneously your obligations under this
     546License and any other pertinent obligations, then as a consequence you may
     547not convey it at all.  For example, if you agree to terms that obligate you
     548to collect a royalty for further conveying from those to whom you convey
     549the Program, the only way you could satisfy both those terms and this
     550License would be to refrain entirely from conveying the Program.
     551
     552  13. Use with the GNU Affero General Public License.
     553
     554  Notwithstanding any other provision of this License, you have
     555permission to link or combine any covered work with a work licensed
     556under version 3 of the GNU Affero General Public License into a single
     557combined work, and to convey the resulting work.  The terms of this
     558License will continue to apply to the part which is the covered work,
     559but the special requirements of the GNU Affero General Public License,
     560section 13, concerning interaction through a network will apply to the
     561combination as such.
     562
     563  14. Revised Versions of this License.
     564
     565  The Free Software Foundation may publish revised and/or new versions of
     566the GNU General Public License from time to time.  Such new versions will
    243567be similar in spirit to the present version, but may differ in detail to
    244568address new problems or concerns.
    245569
    246 Each version is given a distinguishing version number.  If the Program
    247 specifies a version number of this License which applies to it and "any
    248 later version", you have the option of following the terms and conditions
    249 either of that version or of any later version published by the Free
    250 Software Foundation.  If the Program does not specify a version number of
    251 this License, you may choose any version ever published by the Free Software
    252 Foundation.
    253 
    254   10. If you wish to incorporate parts of the Program into other free
    255 programs whose distribution conditions are different, write to the author
    256 to ask for permission.  For software which is copyrighted by the Free
    257 Software Foundation, write to the Free Software Foundation; we sometimes
    258 make exceptions for this.  Our decision will be guided by the two goals
    259 of preserving the free status of all derivatives of our free software and
    260 of promoting the sharing and reuse of software generally.
    261 
    262                             NO WARRANTY
    263 
    264   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    265 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
    266 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    267 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
    268 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    269 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
    270 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
    271 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
    272 REPAIR OR CORRECTION.
    273 
    274   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    275 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    276 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
    277 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
    278 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
    279 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
    280 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
    281 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
    282 POSSIBILITY OF SUCH DAMAGES.
    283 
    284                      END OF TERMS AND CONDITIONS
    285 
    286 
    287         Appendix: How to Apply These Terms to Your New Programs
     570  Each version is given a distinguishing version number.  If the
     571Program specifies that a certain numbered version of the GNU General
     572Public License "or any later version" applies to it, you have the
     573option of following the terms and conditions either of that numbered
     574version or of any later version published by the Free Software
     575Foundation.  If the Program does not specify a version number of the
     576GNU General Public License, you may choose any version ever published
     577by the Free Software Foundation.
     578
     579  If the Program specifies that a proxy can decide which future
     580versions of the GNU General Public License can be used, that proxy's
     581public statement of acceptance of a version permanently authorizes you
     582to choose that version for the Program.
     583
     584  Later license versions may give you additional or different
     585permissions.  However, no additional obligations are imposed on any
     586author or copyright holder as a result of your choosing to follow a
     587later version.
     588
     589  15. Disclaimer of Warranty.
     590
     591  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
     592APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
     593HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
     594OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
     595THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     596PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
     597IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
     598ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
     599
     600  16. Limitation of Liability.
     601
     602  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
     603WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
     604THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
     605GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
     606USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
     607DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
     608PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
     609EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
     610SUCH DAMAGES.
     611
     612  17. Interpretation of Sections 15 and 16.
     613
     614  If the disclaimer of warranty and limitation of liability provided
     615above cannot be given local legal effect according to their terms,
     616reviewing courts shall apply local law that most closely approximates
     617an absolute waiver of all civil liability in connection with the
     618Program, unless a warranty or assumption of liability accompanies a
     619copy of the Program in return for a fee.
     620
     621                     END OF TERMS AND CONDITIONS
     622
     623            How to Apply These Terms to Your New Programs
    288624
    289625  If you develop a new program, and you want it to be of the greatest
     
    293629  To do so, attach the following notices to the program.  It is safest
    294630to attach them to the start of each source file to most effectively
    295 convey the exclusion of warranty; and each file should have at least
     631state the exclusion of warranty; and each file should have at least
    296632the "copyright" line and a pointer to where the full notice is found.
    297633
    298634    <one line to give the program's name and a brief idea of what it does.>
    299     Copyright (C) 19yy  <name of author>
    300 
    301     This program is free software; you can redistribute it and/or modify
     635    Copyright (C) <year>  <name of author>
     636
     637    This program is free software: you can redistribute it and/or modify
    302638    it under the terms of the GNU General Public License as published by
    303     the Free Software Foundation; either version 2 of the License, or
     639    the Free Software Foundation, either version 3 of the License, or
    304640    (at your option) any later version.
    305641
     
    310646
    311647    You should have received a copy of the GNU General Public License
    312     along with this program; if not, write to the Free Software
    313     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
     648    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    314649
    315650Also add information on how to contact you by electronic and paper mail.
    316651
    317 If the program is interactive, make it output a short notice like this
    318 when it starts in an interactive mode:
    319 
    320     Gnomovision version 69, Copyright (C) 19yy name of author
    321     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     652  If the program does terminal interaction, make it output a short
     653notice like this when it starts in an interactive mode:
     654
     655    <program>  Copyright (C) <year>  <name of author>
     656    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    322657    This is free software, and you are welcome to redistribute it
    323658    under certain conditions; type `show c' for details.
    324659
    325660The hypothetical commands `show w' and `show c' should show the appropriate
    326 parts of the General Public License.  Of course, the commands you use may
    327 be called something other than `show w' and `show c'; they could even be
    328 mouse-clicks or menu items--whatever suits your program.
    329 
    330 You should also get your employer (if you work as a programmer) or your
    331 school, if any, to sign a "copyright disclaimer" for the program, if
    332 necessary.  Here is a sample; alter the names:
    333 
    334   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
    335   `Gnomovision' (which makes passes at compilers) written by James Hacker.
    336 
    337   <signature of Ty Coon>, 1 April 1989
    338   Ty Coon, President of Vice
    339 
    340 This General Public License does not permit incorporating your program into
    341 proprietary programs.  If your program is a subroutine library, you may
    342 consider it more useful to permit linking proprietary applications with the
    343 library.  If this is what you want to do, use the GNU Library General
    344 Public License instead of this License.
     661parts of the General Public License.  Of course, your program's commands
     662might be different; for a GUI interface, you would use an "about box".
     663
     664  You should also get your employer (if you work as a programmer) or school,
     665if any, to sign a "copyright disclaimer" for the program, if necessary.
     666For more information on this, and how to apply and follow the GNU GPL, see
     667<http://www.gnu.org/licenses/>.
     668
     669  The GNU General Public License does not permit incorporating your program
     670into proprietary programs.  If your program is a subroutine library, you
     671may consider it more useful to permit linking proprietary applications with
     672the library.  If this is what you want to do, use the GNU Lesser General
     673Public License instead of this License.  But first, please read
     674<http://www.gnu.org/philosophy/why-not-lgpl.html>.
  • vendor/gnumake/current/tests/ChangeLog

    r900 r1989  
     12007-11-04  Paul Smith  <[email protected]>
     2
     3        * scripts/functions/eval: Update error message for command -> recipe.
     4
     5        * test_driver.pl (compare_output): Allow the answer to be a regex,
     6        if surrounded by '/'.
     7        * scripts/misc/close_stdout: Use a regex for the answer, since
     8        sometimes the error will have a description and sometimes it won't.
     9
     102007-09-10  Paul Smith  <[email protected]>
     11
     12        * scripts/variables/special: Add tests for .RECIPEPREFIX variable.
     13
     142007-08-15  Paul Smith  <[email protected]>
     15
     16        These test cases were contributed by
     17        Icarus Sparry <[email protected]> and J. David Bryan for
     18        Savannah bugs #3330 and #15919.
     19
     20        * scripts/targets/SECONDARY: Add tests for Savannah bugs 3330 and
     21        15919.
     22
     23        * scripts/features/parallelism: Add tests for wrong answer/hang
     24        combining INTERMEDIATE, order-only prereqs, and parallelism.
     25        See Savannah bugs 3330 and 15919.
     26
     272007-07-13  Paul Smith  <[email protected]>
     28
     29        Install a timeout so tests can never loop infinitely.
     30        Original idea and patch for a single-test version provided by
     31        Icarus Sparry <[email protected]>
     32
     33        * test_driver.pl (_run_command): New function: this is called by
     34        other functions to actually run a command.  Before we run it,
     35        install a SIGALRM handler and set up a timer to go off in the
     36        future (default is 5s; this can be overridden by individual tests).
     37        (run_command): Call it.
     38        (run_command_with_output): Call it.
     39
     40        * run_make_tests.pl (run_make_with_options): Override the default
     41        timeout if the caller requests it.
     42        (run_make_test): Pass any timeout override to run_make_with_options.
     43
     44        * scripts/features/parallelism: Increase the timeout for long tests.
     45        * scripts/options/dash-l: Ditto.
     46
    1472006-10-01  Paul Smith  <[email protected]>
    248
     
    835881
    836882Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
    837 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     8832002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    838884This file is part of GNU Make.
    839885
    840886GNU Make is free software; you can redistribute it and/or modify it under the
    841887terms of the GNU General Public License as published by the Free Software
    842 Foundation; either version 2, or (at your option) any later version.
     888Foundation; either version 3 of the License, or (at your option) any later
     889version.
    843890
    844891GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    847894
    848895You should have received a copy of the GNU General Public License along with
    849 GNU Make; see the file COPYING.  If not, write to the Free Software
    850 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     896this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/tests/NEWS

    r501 r1989  
    165165-------------------------------------------------------------------------------
    166166Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
    167 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     1672002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    168168This file is part of GNU Make.
    169169
    170170GNU Make is free software; you can redistribute it and/or modify it under the
    171171terms of the GNU General Public License as published by the Free Software
    172 Foundation; either version 2, or (at your option) any later version.
     172Foundation; either version 3 of the License, or (at your option) any later
     173version.
    173174
    174175GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    177178
    178179You should have received a copy of the GNU General Public License along with
    179 GNU Make; see the file COPYING.  If not, write to the Free Software
    180 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     180this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/tests/README

    r501 r1989  
    99 -----------------------------------------------------------------------------
    1010 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
    11  2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     11 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    1212 This file is part of GNU Make.
    1313
    1414 GNU Make is free software; you can redistribute it and/or modify it under the
    1515 terms of the GNU General Public License as published by the Free Software
    16  Foundation; either version 2, or (at your option) any later version.
     16 Foundation; either version 3 of the License, or (at your option) any later
     17 version.
    1718
    1819 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    2122
    2223 You should have received a copy of the GNU General Public License along with
    23  GNU Make; see the file COPYING.  If not, write to the Free Software
    24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     24 this program.  If not, see <http://www.gnu.org/licenses/>.
    2525 -----------------------------------------------------------------------------
    2626
  • vendor/gnumake/current/tests/mkshadow

    r501 r1989  
    55#
    66# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
    7 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     7# 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    88# This file is part of GNU Make.
    99#
    10 # GNU Make is free software; you can redistribute it and/or modify it under the
    11 # terms of the GNU General Public License as published by the Free Software
    12 # Foundation; either version 2, or (at your option) any later version.
     10# GNU Make is free software; you can redistribute it and/or modify it under
     11# the terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 3 of the License, or (at your option) any later
     13# version.
    1314#
    1415# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    15 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    16 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     16# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     17# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     18# details.
    1719#
    1820# You should have received a copy of the GNU General Public License along with
    19 # GNU Make; see the file COPYING.  If not, write to the Free Software
    20 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     21# this program.  If not, see <http://www.gnu.org/licenses/>.
    2122
    2223case "$1" in
  • vendor/gnumake/current/tests/run_make_tests.pl

    r900 r1989  
    1313
    1414# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
    15 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     15# 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    1616# This file is part of GNU Make.
    1717#
    18 # GNU Make is free software; you can redistribute it and/or modify it under the
    19 # terms of the GNU General Public License as published by the Free Software
    20 # Foundation; either version 2, or (at your option) any later version.
     18# GNU Make is free software; you can redistribute it and/or modify it under
     19# the terms of the GNU General Public License as published by the Free Software
     20# Foundation; either version 3 of the License, or (at your option) any later
     21# version.
    2122#
    2223# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    23 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    24 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     24# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     25# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     26# details.
    2527#
    2628# You should have received a copy of the GNU General Public License along with
    27 # GNU Make; see the file COPYING.  If not, write to the Free Software
    28 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     29# this program.  If not, see <http://www.gnu.org/licenses/>.
    2930
    3031$valgrind = 0;              # invoke make with valgrind
     
    8283sub run_make_test
    8384{
    84   local ($makestring, $options, $answer, $err_code) = @_;
     85  local ($makestring, $options, $answer, $err_code, $timeout) = @_;
    8586
    8687  # If the user specified a makefile string, create a new makefile to contain
     
    121122  $answer =~ s/#PWD#/$pwd/g;
    122123
    123   &run_make_with_options($makefile, $options, &get_logfile(0), $err_code);
     124  run_make_with_options($makefile, $options, &get_logfile(0),
     125                        $err_code, $timeout);
    124126  &compare_output($answer, &get_logfile(1));
    125127
     
    130132# The old-fashioned way...
    131133sub run_make_with_options {
    132   local ($filename,$options,$logname,$expected_code) = @_;
     134  local ($filename,$options,$logname,$expected_code,$timeout) = @_;
    133135  local($code);
    134136  local($command) = $make_path;
     
    151153  }
    152154
    153   $code = &run_command_with_output($logname,$command);
     155
     156  {
     157      my $old_timeout = $test_timeout;
     158      $test_timeout = $timeout if $timeout;
     159
     160      $code = &run_command_with_output($logname,$command);
     161
     162      $test_timeout = $old_timeout;
     163  }
    154164
    155165  # Check to see if we have Purify errors.  If so, keep the logfile.
  • vendor/gnumake/current/tests/scripts/features/parallelism

    r501 r1989  
    7070# for this situation and print a message if it occurred.  This test used
    7171# to trigger this code when I added it but no longer does after the fix.
     72# We have to increase the timeout from the default (5s) on this test.
    7273
    7374run_make_test("
     
    8081
    8182first second: ; \@echo \$\@; $sleep_command 1; echo \$\@",
    82               '-j2', "first\nfirst\nsecond\nsecond");
     83              '-j2', "first\nfirst\nsecond\nsecond", 0, 7);
    8384
    8485# Michael Matz <[email protected]> reported a bug where if make is running in
     
    127128
    128129
     130# TEST #9 -- Savannah bugs 3330 and 15919
     131# In earlier versions of make this will either give the wrong answer, or hang.
     132
     133utouch(-10, 'target');
     134run_make_test('target: intermed ; touch $@
     135
     136.INTERMEDIATE: intermed
     137intermed: | phony ; touch $@
     138
     139.PHONY: phony
     140phony: ; : phony', '-rR -j', ': phony');
     141unlink('target');
     142
     143
    129144# Make sure that all jobserver FDs are closed if we need to re-exec the
    130145# master copy.
  • vendor/gnumake/current/tests/scripts/functions/eval

    r501 r1989  
    164164
    165165run_make_test('deps: ; $(eval deps: foo)', '',
    166               '#MAKEFILE#:1: *** prerequisites cannot be defined in command scripts.  Stop.',
     166              '#MAKEFILE#:1: *** prerequisites cannot be defined in recipes.  Stop.',
    167167              512);
    168168
  • vendor/gnumake/current/tests/scripts/misc/close_stdout

    r501 r1989  
    44
    55if (-e '/dev/full') {
    6   run_make_test('', '-v > /dev/full', '#MAKE#: write error', 256);
     6  run_make_test('', '-v > /dev/full', '/^#MAKE#: write error/', 256);
    77}
    88
  • vendor/gnumake/current/tests/scripts/options/dash-l

    r53 r1989  
    4646$mkoptions .= " -j 4" if ($parallel_jobs);
    4747
    48 &run_make_with_options($makefile, $mkoptions, &get_logfile);
     48# We have to wait longer than the default (5s).
     49&run_make_with_options($makefile, $mkoptions, &get_logfile, 0, 8);
    4950
    5051$slurp = &read_file_into_string (&get_logfile(1));
  • vendor/gnumake/current/tests/scripts/targets/SECONDARY

    r284 r1989  
    122122unlink('version2');
    123123
     124# TEST #9 -- Savannah bug #15919
     125# The original fix for this bug caused a new bug, shown here.
     126
     127touch(qw(1.a 2.a));
     128
     129run_make_test('
     130%.c : %.b ; cp $< $@
     131%.b : %.a ; cp $< $@
     132all : 1.c 2.c', '-rR -j',
     133'cp 1.a 1.b
     134cp 2.a 2.b
     135cp 1.b 1.c
     136cp 2.b 2.c
     137rm 1.b 2.b');
     138
     139unlink(qw(1.a 2.a 1.c 2.c));
     140
     141# TEST #10 -- Savannah bug #15919
     142touch('test.0');
     143run_make_test('
     144.SECONDARY : test.1 test.2 test.3
     145
     146test : test.4
     147
     148%.4 : %.int %.3 ; touch $@
     149
     150%.int : %.3 %.2 ; touch $@
     151
     152%.3 : | %.2 ; touch $@
     153
     154%.2 : %.1 ; touch $@
     155
     156%.1 : %.0 ; touch $@', '-rR -j 2',
     157'touch test.1
     158touch test.2
     159touch test.3
     160touch test.int
     161touch test.4
     162rm test.int');
     163
     164# After a touch of test.0 it should give the same output, except we don't need
     165# to rebuild test.3 (order-only)
     166sleep(1);
     167touch('test.0');
     168run_make_test(undef, '-rR -j 2',
     169'touch test.1
     170touch test.2
     171touch test.int
     172touch test.4
     173rm test.int');
     174
     175# With both test.0 and test.3 updated it should still build everything except
     176# test.3
     177sleep(1);
     178touch('test.0', 'test.3');
     179run_make_test(undef, '-rR -j 2',
     180'touch test.1
     181touch test.2
     182touch test.int
     183touch test.4
     184rm test.int');
     185
     186unlink(qw(test.0 test.1 test.2 test.3 test.4));
     187
    124188# This tells the test driver that the perl test script executed properly.
    1251891;
  • vendor/gnumake/current/tests/scripts/variables/special

    r284 r1989  
    5151# &compare_output($answer, &get_logfile(1));
    5252
     53# Test the .RECIPEPREFIX variable
     54&run_make_test('
     55define foo
     56: foo-one \
     57foo-two
     58: foo-three
     59        : foo-four
     60endef
     61
     62orig: ; : orig-one
     63        : orig-two \
     64orig-three \
     65        orig-four \
     66                orig-five \\\\
     67        : orig-six
     68        $(foo)
     69
     70.RECIPEPREFIX = >
     71test: ; : test-one
     72>: test-two \
     73test-three \
     74>test-four \
     75>       test-five \\\\
     76>: test-six
     77>$(foo)
     78
     79.RECIPEPREFIX =
     80reset: ; : reset-one
     81        : reset-two \
     82reset-three \
     83        reset-four \
     84                reset-five \\\\
     85        : reset-six
     86        $(foo)
     87',
     88               'orig test reset',
     89               ': orig-one
     90: orig-two \
     91orig-three \
     92orig-four \
     93        orig-five \\\\
     94: orig-six
     95: foo-one foo-two
     96: foo-three
     97: foo-four
     98: test-one
     99: test-two \
     100test-three \
     101test-four \
     102        test-five \\\\
     103: test-six
     104: foo-one foo-two
     105: foo-three
     106: foo-four
     107: reset-one
     108: reset-two \
     109reset-three \
     110reset-four \
     111        reset-five \\\\
     112: reset-six
     113: foo-one foo-two
     114: foo-three
     115: foo-four');
    53116
    541171;
  • vendor/gnumake/current/tests/test_driver.pl

    r900 r1989  
    77#
    88# Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
    9 # 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     9# 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
    1010# This file is part of GNU Make.
    1111#
    12 # GNU Make is free software; you can redistribute it and/or modify it under the
    13 # terms of the GNU General Public License as published by the Free Software
    14 # Foundation; either version 2, or (at your option) any later version.
     12# GNU Make is free software; you can redistribute it and/or modify it under
     13# the terms of the GNU General Public License as published by the Free Software
     14# Foundation; either version 3 of the License, or (at your option) any later
     15# version.
    1516#
    1617# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    17 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    18 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     18# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     19# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     20# details.
    1921#
    2022# You should have received a copy of the GNU General Public License along with
    21 # GNU Make; see the file COPYING.  If not, write to the Free Software
    22 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     23# this program.  If not, see <http://www.gnu.org/licenses/>.
    2324
    2425
     
    2930# variables and then calls &toplevel, which does all the real work.
    3031
    31 # $Id: test_driver.pl,v 1.21 2007/03/20 03:02:26 psmith Exp $
     32# $Id: test_driver.pl,v 1.24 2007/11/04 21:54:02 psmith Exp $
    3233
    3334
     
    4849# Yeesh.  This whole test environment is such a hack!
    4950$test_passed = 1;
     51
     52
     53# Timeout in seconds.  If the test takes longer than this we'll fail it.
     54$test_timeout = 5;
    5055
    5156
     
    657662  } else {
    658663    # See if it is a slash or CRLF problem
    659     local ($answer_mod) = $answer;
     664    local ($answer_mod, $slurp_mod) = ($answer, $slurp);
    660665
    661666    $answer_mod =~ tr,\\,/,;
    662667    $answer_mod =~ s,\r\n,\n,gs;
    663668
    664     $slurp =~ tr,\\,/,;
    665     $slurp =~ s,\r\n,\n,gs;
    666 
    667     $answer_matched = ($slurp eq $answer_mod);
     669    $slurp_mod =~ tr,\\,/,;
     670    $slurp_mod =~ s,\r\n,\n,gs;
     671
     672    $answer_matched = ($slurp_mod eq $answer_mod);
     673
     674    # If it still doesn't match, see if the answer might be a regex.
     675    if (!$answer_matched && $answer =~ m,^/(.+)/$,) {
     676      $answer_matched = ($slurp =~ /$1/);
     677      if (!$answer_matched && $answer_mod =~ m,^/(.+)/$,) {
     678          $answer_matched = ($slurp_mod =~ /$1/);
     679      }
     680    }
    668681  }
    669682
     
    766779}
    767780
    768 # run one command (passed as a list of arg 0 - n), returning 0 on success
    769 # and nonzero on failure.
    770 
    771 sub run_command
    772 {
    773   local ($code);
     781# This runs a command without any debugging info.
     782sub _run_command
     783{
     784  my $code;
    774785
    775786  # We reset this before every invocation.  On Windows I think there is only
     
    778789  resetENV();
    779790
     791  eval {
     792      local $SIG{ALRM} = sub { die "timeout\n"; };
     793      alarm $test_timeout;
     794      $code = system @_;
     795      alarm 0;
     796  };
     797  if ($@) {
     798      # The eval failed.  If it wasn't SIGALRM then die.
     799      $@ eq "timeout\n" or die;
     800
     801      # Timed out.  Resend the alarm to our process group to kill the children.
     802      $SIG{ALRM} = 'IGNORE';
     803      kill -14, $$;
     804      $code = 14;
     805  }
     806
     807  return $code;
     808}
     809
     810# run one command (passed as a list of arg 0 - n), returning 0 on success
     811# and nonzero on failure.
     812
     813sub run_command
     814{
    780815  print "\nrun_command: @_\n" if $debug;
    781   $code = system @_;
    782   print "run_command: \"@_\" returned $code.\n" if $debug;
     816  my $code = _run_command(@_);
     817  print "run_command returned $code.\n" if $debug;
    783818
    784819  return $code;
     
    792827sub run_command_with_output
    793828{
    794   local ($filename) = shift;
    795   local ($code);
    796 
    797   # We reset this before every invocation.  On Windows I think there is only
    798   # one environment, not one per process, so I think that variables set in
    799   # test scripts might leak into subsequent tests if this isn't reset--???
    800   resetENV();
    801 
     829  my $filename = shift;
     830
     831  print "\nrun_command_with_output($filename): @_\n" if $debug;
    802832  &attach_default_output ($filename);
    803   $code = system @_;
     833  my $code = _run_command(@_);
    804834  &detach_default_output;
    805 
    806   print "run_command_with_output: '@_' returned $code.\n" if $debug;
     835  print "run_command_with_output returned $code.\n" if $debug;
    807836
    808837  return $code;
  • vendor/gnumake/current/variable.c

    r900 r1989  
    11/* Internals of variables for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    256256
    257257static struct variable *
    258 handle_special_var (struct variable *var)
     258lookup_special_var (struct variable *var)
    259259{
    260260  static unsigned long last_var_count = 0;
     
    357357      v = (struct variable *) hash_find_item ((struct hash_table *) &set->table, &var_key);
    358358      if (v)
    359         return v->special ? handle_special_var (v) : v;
     359        return v->special ? lookup_special_var (v) : v;
    360360    }
    361361
     
    804804     isn't one there.  */
    805805  v = define_variable ("SHELL", 5, default_shell, o_default, 0);
     806#ifdef __MSDOS__
     807  v->export = v_export;  /*  Export always SHELL.  */
     808#endif
    806809
    807810  /* On MSDOS we do use SHELL from environment, since it isn't a standard
     
    926929
    927930              case v_noexport:
    928                 /* If this is the SHELL variable and it's not exported, then
    929                    add the value from our original environment.  */
    930                 if (streq (v->name, "SHELL"))
    931                   {
    932                     extern struct variable shell_var;
    933                     v = &shell_var;
    934                     break;
    935                   }
    936                 continue;
     931                {
     932                  /* If this is the SHELL variable and it's not exported,
     933                     then add the value from our original environment, if
     934                     the original environment defined a value for SHELL.  */
     935                  extern struct variable shell_var;
     936                  if (streq (v->name, "SHELL") && shell_var.value)
     937                    {
     938                      v = &shell_var;
     939                      break;
     940                    }
     941                  continue;
     942                }
    937943
    938944              case v_ifset:
     
    9971003
    9981004
     1005static struct variable *
     1006set_special_var (struct variable *var)
     1007{
     1008  if (streq (var->name, RECIPEPREFIX_NAME))
     1009    {
     1010      /* The user is resetting the command introduction prefix.  This has to
     1011         happen immediately, so that subsequent rules are interpreted
     1012         properly.  */
     1013      cmd_prefix = var->value[0]=='\0' ? RECIPEPREFIX_DEFAULT : var->value[0];
     1014    }
     1015
     1016  return var;
     1017}
     1018
     1019
    9991020/* Given a variable, a value, and a flavor, define the variable.
    10001021   See the try_variable_definition() function for details on the parameters. */
     
    10311052      v = lookup_variable (varname, strlen (varname));
    10321053      if (v)
    1033         return v;
     1054        return v->special ? set_special_var (v) : v;
    10341055
    10351056      conditional = 1;
     
    12001221        }
    12011222      else
    1202         v = lookup_variable (varname, strlen (varname));
     1223        {
     1224          if (alloc_value)
     1225            free (alloc_value);
     1226
     1227          alloc_value = allocated_variable_expand (p);
     1228          if (find_and_set_default_shell (alloc_value))
     1229            {
     1230              v = define_variable_in_set (varname, strlen (varname), p,
     1231                                          origin, flavor == f_recursive,
     1232                                          (target_var
     1233                                           ? current_variable_set_list->set
     1234                                           : NULL),
     1235                                          flocp);
     1236              no_default_sh_exe = 0;
     1237            }
     1238          else
     1239            v = lookup_variable (varname, strlen (varname));
     1240        }
    12031241    }
    12041242  else
     
    12221260    free (alloc_value);
    12231261
    1224   return v;
     1262  return v->special ? set_special_var (v) : v;
    12251263}
    12261264
  • vendor/gnumake/current/variable.h

    r900 r1989  
    11/* Definitions for using variables in GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "hash.h"
  • vendor/gnumake/current/version.c

    r501 r1989  
    11/* Record version and build host architecture for GNU make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919/* We use <config.h> instead of "config.h" so that a compilation
  • vendor/gnumake/current/vmsdir.h

    r900 r1989  
    11/* dirent.h for vms
    2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     32007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef VMSDIR_H
  • vendor/gnumake/current/vmsfunctions.c

    r900 r1989  
    11/* VMS functions
    2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     32007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#include "make.h"
  • vendor/gnumake/current/vmsify.c

    r900 r1989  
    11/* vmsify.c -- Module for vms <-> unix file name conversion
    2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     32007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818/* Written by Klaus Kämpf ([email protected])
  • vendor/gnumake/current/vmsjobs.c

    r900 r1989  
    22   This file must be #included in job.c, as it accesses static functions.
    33
    4 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    5 2006 Free Software Foundation, Inc.
     4Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     52007 Free Software Foundation, Inc.
    66This file is part of GNU Make.
    77
    88GNU Make is free software; you can redistribute it and/or modify it under the
    99terms of the GNU General Public License as published by the Free Software
    10 Foundation; either version 2, or (at your option) any later version.
     10Foundation; either version 3 of the License, or (at your option) any later
     11version.
    1112
    1213GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1516
    1617You should have received a copy of the GNU General Public License along with
    17 GNU Make; see the file COPYING.  If not, write to the Free Software
    18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     18this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1919
    2020#include <string.h>
  • vendor/gnumake/current/vpath.c

    r900 r1989  
    11/* Implementation of pattern-matching file search paths for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    237237      /* Find the end of this entry.  */
    238238      v = p;
    239       while (*p != '\0' && *p != PATH_SEPARATOR_CHAR
     239      while (*p != '\0'
     240#if defined(HAVE_DOS_PATHS) && (PATH_SEPARATOR_CHAR == ':')
     241             /* Platforms whose PATH_SEPARATOR_CHAR is ':' and which
     242                also define HAVE_DOS_PATHS would like us to recognize
     243                colons after the drive letter in the likes of
     244                "D:/foo/bar:C:/xyzzy".  */
     245             && (*p != PATH_SEPARATOR_CHAR
     246                 || (p == v + 1 && (p[1] == '/' || p[1] == '\\')))
     247#else
     248             && *p != PATH_SEPARATOR_CHAR
     249#endif
    240250             && !isblank ((unsigned char)*p))
    241251        ++p;
     
    244254      /* Make sure there's no trailing slash,
    245255         but still allow "/" as a directory.  */
    246 #if defined(__MSDOS__) || defined(__EMX__)
     256#if defined(__MSDOS__) || defined(__EMX__) || defined(HAVE_DOS_PATHS)
    247257      /* We need also to leave alone a trailing slash in "d:/".  */
    248258      if (len > 3 || (len > 1 && v[1] != ':'))
  • vendor/gnumake/current/w32/Makefile.am

    r501 r1989  
    11# Makefile.am to create libw32.a for mingw32 host.
    2 # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    3 # Free Software Foundation, Inc.
     2# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     3# 2007 Free Software Foundation, Inc.
    44# This file is part of GNU Make.
    55#
    6 # GNU Make is free software; you can redistribute it and/or modify it under the
    7 # terms of the GNU General Public License as published by the Free Software
    8 # Foundation; either version 2, or (at your option) any later version.
     6# GNU Make is free software; you can redistribute it and/or modify it under
     7# the terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 3 of the License, or (at your option) any later
     9# version.
    910#
    1011# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    12 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     14# details.
    1315#
    1416# You should have received a copy of the GNU General Public License along with
    15 # GNU Make; see the file COPYING.  If not, write to the Free Software
    16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17# this program.  If not, see <http://www.gnu.org/licenses/>.
    1718
    1819noinst_LIBRARIES = libw32.a
  • vendor/gnumake/current/w32/compat/dirent.c

    r501 r1989  
    11/* Directory entry code for Window platforms.
    22Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818
  • vendor/gnumake/current/w32/include/dirent.h

    r501 r1989  
    11/* Windows version of dirent.h
    2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     32007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef _DIRENT_H
  • vendor/gnumake/current/w32/include/pathstuff.h

    r900 r1989  
    11/* Definitions for Windows path manipulation.
    2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     32007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef _PATHSTUFF_H
  • vendor/gnumake/current/w32/include/sub_proc.h

    r501 r1989  
    11/* Definitions for Windows process invocation.
    22Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef SUB_PROC_H
     
    2222 * Component Name:
    2323 *
    24  * $Date: 2006/02/11 22:16:05 $
     24 * $Date: 2007/10/24 20:06:32 $
    2525 *
    2626 * $Source: /sources/make/make/w32/include/sub_proc.h,v $
    2727 *
    28  * $Id: sub_proc.h,v 1.8 2006/02/11 22:16:05 psmith Exp $
     28 * $Id: sub_proc.h,v 1.10 2007/10/24 20:06:32 eliz Exp $
    2929 */
    3030
  • vendor/gnumake/current/w32/include/w32err.h

    r501 r1989  
    11/* Definitions for Windows error handling.
    22Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef _W32ERR_H_
  • vendor/gnumake/current/w32/pathstuff.c

    r900 r1989  
    11/* Path conversion for Windows pathnames.
    2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
     32007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#include <string.h>
     
    7171                /* all finished, force abort */
    7272                p += strlen(p);
     73        } else if (*p == '"') { /* a quoted directory */
     74            for (p++; *p && *p != '"'; p++) /* skip quoted part */
     75                ;
     76            etok = strpbrk(p, ":;");        /* find next delimiter */
     77            *etok = to_delim;
     78            p = ++etok;
    7379        } else {
    7480            /* found another one, no drive letter */
    7581            *etok = to_delim;
    7682            p = ++etok;
    77         }
     83        }
    7884
    7985    return Path;
  • vendor/gnumake/current/w32/subproc/NMakefile

    r501 r1989  
    33#
    44# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    5 # 2006 Free Software Foundation, Inc.
     5# 2006, 2007 Free Software Foundation, Inc.
    66# This file is part of GNU Make.
    77#
    8 # GNU Make is free software; you can redistribute it and/or modify it under the
    9 # terms of the GNU General Public License as published by the Free Software
    10 # Foundation; either version 2, or (at your option) any later version.
     8# GNU Make is free software; you can redistribute it and/or modify it under
     9# the terms of the GNU General Public License as published by the Free Software
     10# Foundation; either version 3 of the License, or (at your option) any later
     11# version.
    1112#
    1213# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    14 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     15# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     16# details.
    1517#
    1618# You should have received a copy of the GNU General Public License along with
    17 # GNU Make; see the file COPYING.  If not, write to the Free Software
    18 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     19# this program.  If not, see <http://www.gnu.org/licenses/>.
    1920
    2021#
  • vendor/gnumake/current/w32/subproc/build.bat

    r501 r1989  
    1212GoTo BuildEnd
    1313:GCCBuild
    14 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c misc.c -o ../../w32_misc.o
    15 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c sub_proc.c -o ../../sub_proc.o
    16 gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c w32err.c -o ../../w32err.o
     14gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c misc.c -o ../../w32_misc.o
     15gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c sub_proc.c -o ../../sub_proc.o
     16gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c w32err.c -o ../../w32err.o
    1717:BuildEnd
    1818
    1919@echo off
    2020rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
    21 rem 2005, 2006 Free Software Foundation, Inc.
     21rem 2005, 2006, 2007 Free Software Foundation, Inc.
    2222rem This file is part of GNU Make.
    23 
    24 rem GNU Make is free software; you can redistribute it and/or modify it under the
    25 rem terms of the GNU General Public License as published by the Free Software
    26 rem Foundation; either version 2, or (at your option) any later version.
    27 
    28 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
    29 rem WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    30 rem A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    31 
    32 rem You should have received a copy of the GNU General Public License along with
    33 rem GNU Make; see the file COPYING.  If not, write to the Free Software
    34 rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     23rem
     24rem GNU Make is free software; you can redistribute it and/or modify it under
     25rem the terms of the GNU General Public License as published by the Free
     26rem Software Foundation; either version 3 of the License, or (at your option)
     27rem any later version.
     28rem
     29rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
     30rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     31rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
     32rem more details.
     33rem
     34rem You should have received a copy of the GNU General Public License along
     35rem with this program.  If not, see <http://www.gnu.org/licenses/>.
  • vendor/gnumake/current/w32/subproc/misc.c

    r501 r1989  
    11/* Process handling for Windows
    22Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#include <stddef.h>
  • vendor/gnumake/current/w32/subproc/proc.h

    r501 r1989  
    11/* Definitions for Windows
    22Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#ifndef  _PROC_H
  • vendor/gnumake/current/w32/subproc/sub_proc.c

    r501 r1989  
    11/* Process handling for Windows.
    22Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#include <stdlib.h>
  • vendor/gnumake/current/w32/subproc/w32err.c

    r501 r1989  
    11/* Error handling for Windows
    22Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    3 2006 Free Software Foundation, Inc.
     32006, 2007 Free Software Foundation, Inc.
    44This file is part of GNU Make.
    55
    66GNU Make is free software; you can redistribute it and/or modify it under the
    77terms of the GNU General Public License as published by the Free Software
    8 Foundation; either version 2, or (at your option) any later version.
     8Foundation; either version 3 of the License, or (at your option) any later
     9version.
    910
    1011GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1314
    1415You should have received a copy of the GNU General Public License along with
    15 GNU Make; see the file COPYING.  If not, write to the Free Software
    16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     16this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1717
    1818#include <windows.h>
     
    6969    return szMessageBuffer;
    7070}
    71 
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette