Changeset 1989 in kBuild
- Timestamp:
- Oct 28, 2008 11:02:45 PM (16 years ago)
- Location:
- vendor/gnumake/current
- Files:
-
- 1 deleted
- 122 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/gnumake/current/AUTHORS
r501 r1989 61 61 Carl Staelin (Princeton University) 62 62 Ian Stewartson (Data Logic Limited) 63 Ramon Garcia Fernandez <[email protected]> 63 64 64 65 With suggestions/comments/bug reports from a cast of ... well ... … … 66 67 67 68 ------------------------------------------------------------------------------- 68 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 69 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 69 70 Free Software Foundation, Inc. 70 71 This file is part of GNU Make. … … 72 73 GNU Make is free software; you can redistribute it and/or modify it under the 73 74 terms of the GNU General Public License as published by the Free Software 74 Foundation; either version 2, or (at your option) any later version. 75 Foundation; either version 3 of the License, or (at your option) any later 76 version. 75 77 76 78 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 79 81 80 82 You 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. 83 this 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/> 7 5 Everyone is permitted to copy and distribute verbatim copies 8 6 of this license document, but changing it is not allowed. 9 7 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 11 software and other kinds of works. 12 13 The licenses for most software and other practical works are designed 14 to take away your freedom to share and change the works. By contrast, 15 the GNU General Public License is intended to guarantee your freedom to 16 share and change all versions of a program--to make sure it remains free 17 software for all its users. We, the Free Software Foundation, use the 18 GNU General Public License for most of our software; it applies also to 19 any other work released this way by its authors. You can apply it to 20 20 your programs, too. 21 21 … … 23 23 price. Our General Public Licenses are designed to make sure that you 24 24 have the freedom to distribute copies of free software (and charge for 25 th is service if you wish), that you receive source code or can get it26 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 forbid30 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.25 them if you wish), that you receive source code or can get it if you 26 want it, that you can change the software or use pieces of it in new 27 free programs, and that you know you can do these things. 28 29 To protect your rights, we need to prevent others from denying you 30 these rights or asking you to surrender the rights. Therefore, you have 31 certain responsibilities if you distribute copies of the software, or if 32 you modify it: responsibilities to respect the freedom of others. 33 33 34 34 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. 35 gratis or for a fee, you must pass on to the recipients the same 36 freedoms that you received. You must make sure that they, too, receive 37 or can get the source code. And you must show them these terms so they 38 know 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 42 giving you legal permission to copy, distribute and/or modify it. 43 44 For the developers' and authors' protection, the GPL clearly explains 45 that there is no warranty for this free software. For both users' and 46 authors' sake, the GPL requires that modified versions be marked as 47 changed, so that their problems will not be attributed erroneously to 48 authors of previous versions. 49 50 Some devices are designed to deny users access to install or run 51 modified versions of the software inside them, although the manufacturer 52 can do so. This is fundamentally incompatible with the aim of 53 protecting users' freedom to change the software. The systematic 54 pattern of such abuse occurs in the area of products for individuals to 55 use, which is precisely where it is most unacceptable. Therefore, we 56 have designed this version of the GPL to prohibit the practice for those 57 products. If such problems arise substantially in other domains, we 58 stand ready to extend this provision to those domains in future versions 59 of the GPL, as needed to protect the freedom of users. 60 61 Finally, every program is threatened constantly by software patents. 62 States should not allow patents to restrict development and use of 63 software on general-purpose computers, but in those that do, we wish to 64 avoid the special danger that patents applied to a free program could 65 make it effectively proprietary. To prevent this, the GPL assures that 66 patents cannot be used to render the program non-free. 56 67 57 68 The precise terms and conditions for copying, distribution and 58 69 modification follow. 59 70 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 78 works, such as semiconductor masks. 79 80 "The Program" refers to any copyrightable work licensed under this 81 License. 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 85 in a fashion requiring copyright permission, other than the making of an 86 exact copy. The resulting work is called a "modified version" of the 87 earlier work or a work "based on" the earlier work. 88 89 A "covered work" means either the unmodified Program or a work based 90 on the Program. 91 92 To "propagate" a work means to do anything with it that, without 93 permission, would make you directly or secondarily liable for 94 infringement under applicable copyright law, except executing it on a 95 computer or modifying a private copy. Propagation includes copying, 96 distribution (with or without modification), making available to the 97 public, and in some countries other activities as well. 98 99 To "convey" a work means any kind of propagation that enables other 100 parties to make or receive copies. Mere interaction with a user through 101 a computer network, with no transfer of a copy, is not conveying. 102 103 An interactive user interface displays "Appropriate Legal Notices" 104 to the extent that it includes a convenient and prominently visible 105 feature that (1) displays an appropriate copyright notice, and (2) 106 tells the user that there is no warranty for the work (except to the 107 extent that warranties are provided), that licensees may convey the 108 work under this License, and how to view a copy of this License. If 109 the interface presents a list of user commands or options, such as a 110 menu, 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 115 for making modifications to it. "Object code" means any non-source 116 form of a work. 117 118 A "Standard Interface" means an interface that either is an official 119 standard defined by a recognized standards body, or, in the case of 120 interfaces specified for a particular programming language, one that 121 is widely used among developers working in that language. 122 123 The "System Libraries" of an executable work include anything, other 124 than the work as a whole, that (a) is included in the normal form of 125 packaging a Major Component, but which is not part of that Major 126 Component, and (b) serves only to enable use of the work with that 127 Major Component, or to implement a Standard Interface for which an 128 implementation 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 132 produce 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 135 the source code needed to generate, install, and (for an executable 136 work) run the object code and to modify the work, including scripts to 137 control those activities. However, it does not include the work's 138 System Libraries, or general-purpose tools or generally available free 139 programs which are used unmodified in performing those activities but 140 which are not part of the work. For example, Corresponding Source 141 includes interface definition files associated with source files for 142 the work, and the source code for shared libraries and dynamically 143 linked subprograms that the work is specifically designed to require, 144 such as by intimate data communication or control flow between those 145 subprograms and other parts of the work. 146 147 The Corresponding Source need not include anything that users 148 can regenerate automatically from other parts of the Corresponding 149 Source. 150 151 The Corresponding Source for a work in source code form is that 152 same work. 153 154 2. Basic Permissions. 155 156 All rights granted under this License are granted for the term of 157 copyright on the Program, and are irrevocable provided the stated 158 conditions are met. This License explicitly affirms your unlimited 159 permission to run the unmodified Program. The output from running a 160 covered work is covered by this License only if the output, given its 161 content, constitutes a covered work. This License acknowledges your 162 rights 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 165 convey, without conditions so long as your license otherwise remains 166 in force. You may convey covered works to others for the sole purpose 167 of having them make modifications exclusively for you, or provide you 168 with facilities for running those works, provided that you comply with 169 the terms of this License in conveying all material for which you do 170 not control copyright. Those thus making or running the covered works 171 for you must do so exclusively on your behalf, under your direction 172 and control, on terms that prohibit them from making any copies of 173 your copyrighted material outside their relationship with you. 174 175 Conveying under any other circumstances is permitted solely under 176 the conditions stated below. Sublicensing is not allowed; section 10 177 makes 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 182 measure under any applicable law fulfilling obligations under article 183 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 similar laws prohibiting or restricting circumvention of such 185 measures. 186 187 When you convey a covered work, you waive any legal power to forbid 188 circumvention of technological measures to the extent such circumvention 189 is effected by exercising rights under this License with respect to 190 the covered work, and you disclaim any intention to limit operation or 191 modification of the work as a means of enforcing, against the work's 192 users, your or third parties' legal rights to forbid circumvention of 193 technological measures. 194 195 4. Conveying Verbatim Copies. 196 197 You may convey verbatim copies of the Program's source code as you 198 receive it, in any medium, provided that you conspicuously and 199 appropriately publish on each copy an appropriate copyright notice; 200 keep intact all notices stating that this License and any 201 non-permissive terms added in accord with section 7 apply to the code; 202 keep intact all notices of the absence of any warranty; and give all 203 recipients 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, 206 and 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 211 produce it from the Program, in the form of source code under the 212 terms 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 236 works, which are not by their nature extensions of the covered work, 237 and which are not combined with it such as to form a larger program, 238 in or on a volume of a storage or distribution medium, is called an 239 "aggregate" if the compilation and its resulting copyright are not 240 used to limit the access or legal rights of the compilation's users 241 beyond what the individual works permit. Inclusion of a covered work 242 in an aggregate does not cause this License to apply to the other 243 parts 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 248 of sections 4 and 5, provided that you also convey the 249 machine-readable Corresponding Source under the terms of this License, 250 in 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 294 from the Corresponding Source as a System Library, need not be 295 included in conveying the object code work. 296 297 A "User Product" is either (1) a "consumer product", which means any 298 tangible personal property which is normally used for personal, family, 299 or household purposes, or (2) anything designed or sold for incorporation 300 into a dwelling. In determining whether a product is a consumer product, 301 doubtful cases shall be resolved in favor of coverage. For a particular 302 product received by a particular user, "normally used" refers to a 303 typical or common use of that class of product, regardless of the status 304 of the particular user or of the way in which the particular user 305 actually uses, or expects or is expected to use, the product. A product 306 is a consumer product regardless of whether the product has substantial 307 commercial, industrial or non-consumer uses, unless such uses represent 308 the only significant mode of use of the product. 309 310 "Installation Information" for a User Product means any methods, 311 procedures, authorization keys, or other information required to install 312 and execute modified versions of a covered work in that User Product from 313 a modified version of its Corresponding Source. The information must 314 suffice to ensure that the continued functioning of the modified object 315 code is in no case prevented or interfered with solely because 316 modification has been made. 317 318 If you convey an object code work under this section in, or with, or 319 specifically for use in, a User Product, and the conveying occurs as 320 part of a transaction in which the right of possession and use of the 321 User Product is transferred to the recipient in perpetuity or for a 322 fixed term (regardless of how the transaction is characterized), the 323 Corresponding Source conveyed under this section must be accompanied 324 by the Installation Information. But this requirement does not apply 325 if neither you nor any third party retains the ability to install 326 modified object code on the User Product (for example, the work has 327 been installed in ROM). 328 329 The requirement to provide Installation Information does not include a 330 requirement to continue to provide support service, warranty, or updates 331 for a work that has been modified or installed by the recipient, or for 332 the User Product in which it has been modified or installed. Access to a 333 network may be denied when the modification itself materially and 334 adversely affects the operation of the network or violates the rules and 335 protocols for communication across the network. 336 337 Corresponding Source conveyed, and Installation Information provided, 338 in accord with this section must be in a format that is publicly 339 documented (and with an implementation available to the public in 340 source code form), and must require no special password or key for 341 unpacking, reading or copying. 342 343 7. Additional Terms. 344 345 "Additional permissions" are terms that supplement the terms of this 346 License by making exceptions from one or more of its conditions. 347 Additional permissions that are applicable to the entire Program shall 348 be treated as though they were included in this License, to the extent 349 that they are valid under applicable law. If additional permissions 350 apply only to part of the Program, that part may be used separately 351 under those permissions, but the entire Program remains governed by 352 this License without regard to the additional permissions. 353 354 When you convey a copy of a covered work, you may at your option 355 remove any additional permissions from that copy, or from any part of 356 it. (Additional permissions may be written to require their own 357 removal in certain cases when you modify the work.) You may place 358 additional permissions on material, added by you to a covered work, 359 for which you have or can give appropriate copyright permission. 360 361 Notwithstanding any other provision of this License, for material you 362 add to a covered work, you may (if authorized by the copyright holders of 363 that 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 389 restrictions" within the meaning of section 10. If the Program as you 390 received it, or any part of it, contains a notice stating that it is 391 governed by this License along with a term that is a further 392 restriction, you may remove that term. If a license document contains 393 a further restriction but permits relicensing or conveying under this 394 License, you may add to a covered work material governed by the terms 395 of that license document, provided that the further restriction does 396 not survive such relicensing or conveying. 397 398 If you add terms to a covered work in accord with this section, you 399 must place, in the relevant source files, a statement of the 400 additional terms that apply to those files, or a notice indicating 401 where to find the applicable terms. 402 403 Additional terms, permissive or non-permissive, may be stated in the 404 form of a separately written license, or stated as exceptions; 405 the above requirements apply either way. 406 407 8. Termination. 408 409 You may not propagate or modify a covered work except as expressly 410 provided under this License. Any attempt otherwise to propagate or 411 modify it is void, and will automatically terminate your rights under 412 this License (including any patent licenses granted under the third 413 paragraph of section 11). 414 415 However, if you cease all violation of this License, then your 416 license from a particular copyright holder is reinstated (a) 417 provisionally, unless and until the copyright holder explicitly and 418 finally terminates your license, and (b) permanently, if the copyright 419 holder fails to notify you of the violation by some reasonable means 420 prior to 60 days after the cessation. 421 422 Moreover, your license from a particular copyright holder is 423 reinstated permanently if the copyright holder notifies you of the 424 violation by some reasonable means, this is the first time you have 425 received notice of violation of this License (for any work) from that 426 copyright holder, and you cure the violation prior to 30 days after 427 your receipt of the notice. 428 429 Termination of your rights under this section does not terminate the 430 licenses of parties who have received copies or rights from you under 431 this License. If your rights have been terminated and not permanently 432 reinstated, you do not qualify to receive new licenses for the same 433 material 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 438 run a copy of the Program. Ancillary propagation of a covered work 439 occurring solely as a consequence of using peer-to-peer transmission 440 to receive a copy likewise does not require acceptance. However, 441 nothing other than this License grants you permission to propagate or 442 modify any covered work. These actions infringe copyright if you do 443 not accept this License. Therefore, by modifying or propagating a 444 covered 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 449 receives a license from the original licensors, to run, modify and 450 propagate that work, subject to this License. You are not responsible 451 for enforcing compliance by third parties with this License. 452 453 An "entity transaction" is a transaction transferring control of an 454 organization, or substantially all assets of one, or subdividing an 455 organization, or merging organizations. If propagation of a covered 456 work results from an entity transaction, each party to that 457 transaction who receives a copy of the work also receives whatever 458 licenses to the work the party's predecessor in interest had or could 459 give under the previous paragraph, plus a right to possession of the 460 Corresponding Source of the work from the predecessor in interest, if 461 the predecessor has it or can get it with reasonable efforts. 462 463 You may not impose any further restrictions on the exercise of the 464 rights granted or affirmed under this License. For example, you may 465 not impose a license fee, royalty, or other charge for exercise of 466 rights granted under this License, and you may not initiate litigation 467 (including a cross-claim or counterclaim in a lawsuit) alleging that 468 any patent claim is infringed by making, using, selling, offering for 469 sale, 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 474 License of the Program or a work on which the Program is based. The 475 work thus licensed is called the contributor's "contributor version". 476 477 A contributor's "essential patent claims" are all patent claims 478 owned or controlled by the contributor, whether already acquired or 479 hereafter acquired, that would be infringed by some manner, permitted 480 by this License, of making, using, or selling its contributor version, 481 but do not include claims that would be infringed only as a 482 consequence of further modification of the contributor version. For 483 purposes of this definition, "control" includes the right to grant 484 patent sublicenses in a manner consistent with the requirements of 199 485 this License. 200 486 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 488 patent license under the contributor's essential patent claims, to 489 make, use, sell, offer for sale, import and otherwise run, modify and 490 propagate the contents of its contributor version. 491 492 In the following three paragraphs, a "patent license" is any express 493 agreement or commitment, however denominated, not to enforce a patent 494 (such as an express permission to practice a patent or covenant not to 495 sue for patent infringement). To "grant" such a patent license to a 496 party means to make such an agreement or commitment not to enforce a 497 patent against the party. 498 499 If you convey a covered work, knowingly relying on a patent license, 500 and the Corresponding Source of the work is not available for anyone 501 to copy, free of charge and under the terms of this License, through a 502 publicly available network server or other readily accessible means, 503 then you must either (1) cause the Corresponding Source to be so 504 available, or (2) arrange to deprive yourself of the benefit of the 505 patent license for this particular work, or (3) arrange, in a manner 506 consistent with the requirements of this License, to extend the patent 507 license to downstream recipients. "Knowingly relying" means you have 508 actual knowledge that, but for the patent license, your conveying the 509 covered work in a country, or your recipient's use of the covered work 510 in a country, would infringe one or more identifiable patents in that 511 country that you have reason to believe are valid. 512 513 If, pursuant to or in connection with a single transaction or 514 arrangement, you convey, or propagate by procuring conveyance of, a 515 covered work, and grant a patent license to some of the parties 516 receiving the covered work authorizing them to use, propagate, modify 517 or convey a specific copy of the covered work, then the patent license 518 you grant is automatically extended to all recipients of the covered 519 work and works based on it. 520 521 A patent license is "discriminatory" if it does not include within 522 the scope of its coverage, prohibits the exercise of, or is 523 conditioned on the non-exercise of one or more of the rights that are 524 specifically granted under this License. You may not convey a covered 525 work if you are a party to an arrangement with a third party that is 526 in the business of distributing software, under which you make payment 527 to the third party based on the extent of your activity of conveying 528 the work, and under which the third party grants, to any of the 529 parties who would receive the covered work from you, a discriminatory 530 patent license (a) in connection with copies of the covered work 531 conveyed by you (or copies made from those copies), or (b) primarily 532 for and in connection with specific products or compilations that 533 contain the covered work, unless you entered into that arrangement, 534 or that patent license was granted, prior to 28 March 2007. 535 536 Nothing in this License shall be construed as excluding or limiting 537 any implied license or other defenses to infringement that may 538 otherwise 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 204 543 otherwise) 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 544 excuse you from the conditions of this License. If you cannot convey a 545 covered work so as to satisfy simultaneously your obligations under this 546 License and any other pertinent obligations, then as a consequence you may 547 not convey it at all. For example, if you agree to terms that obligate you 548 to collect a royalty for further conveying from those to whom you convey 549 the Program, the only way you could satisfy both those terms and this 550 License 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 555 permission to link or combine any covered work with a work licensed 556 under version 3 of the GNU Affero General Public License into a single 557 combined work, and to convey the resulting work. The terms of this 558 License will continue to apply to the part which is the covered work, 559 but the special requirements of the GNU Affero General Public License, 560 section 13, concerning interaction through a network will apply to the 561 combination as such. 562 563 14. Revised Versions of this License. 564 565 The Free Software Foundation may publish revised and/or new versions of 566 the GNU General Public License from time to time. Such new versions will 244 567 be similar in spirit to the present version, but may differ in detail to 245 568 address new problems or concerns. 246 569 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 571 Program specifies that a certain numbered version of the GNU General 572 Public License "or any later version" applies to it, you have the 573 option of following the terms and conditions either of that numbered 574 version or of any later version published by the Free Software 575 Foundation. If the Program does not specify a version number of the 576 GNU General Public License, you may choose any version ever published 577 by the Free Software Foundation. 578 579 If the Program specifies that a proxy can decide which future 580 versions of the GNU General Public License can be used, that proxy's 581 public statement of acceptance of a version permanently authorizes you 582 to choose that version for the Program. 583 584 Later license versions may give you additional or different 585 permissions. However, no additional obligations are imposed on any 586 author or copyright holder as a result of your choosing to follow a 587 later version. 588 589 15. Disclaimer of Warranty. 590 591 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 ALL 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 603 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 SUCH DAMAGES. 611 612 17. Interpretation of Sections 15 and 16. 613 614 If the disclaimer of warranty and limitation of liability provided 615 above cannot be given local legal effect according to their terms, 616 reviewing courts shall apply local law that most closely approximates 617 an absolute waiver of all civil liability in connection with the 618 Program, unless a warranty or assumption of liability accompanies a 619 copy 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 289 624 290 625 If you develop a new program, and you want it to be of the greatest … … 294 629 To do so, attach the following notices to the program. It is safest 295 630 to attach them to the start of each source file to most effectively 296 conveythe exclusion of warranty; and each file should have at least631 state the exclusion of warranty; and each file should have at least 297 632 the "copyright" line and a pointer to where the full notice is found. 298 633 299 634 <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 modify635 Copyright (C) <year> <name of author> 636 637 This program is free software: you can redistribute it and/or modify 303 638 it under the terms of the GNU General Public License as published by 304 the Free Software Foundation ; either version 2of the License, or639 the Free Software Foundation, either version 3 of the License, or 305 640 (at your option) any later version. 306 641 … … 311 646 312 647 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/>. 315 649 316 650 Also add information on how to contact you by electronic and paper mail. 317 651 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 author322 Gnomovisioncomes with ABSOLUTELY NO WARRANTY; for details type `show w'.652 If the program does terminal interaction, make it output a short 653 notice 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'. 323 657 This is free software, and you are welcome to redistribute it 324 658 under certain conditions; type `show c' for details. 325 659 326 660 The 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. 661 parts of the General Public License. Of course, your program's commands 662 might 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, 665 if any, to sign a "copyright disclaimer" for the program, if necessary. 666 For 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 670 into proprietary programs. If your program is a subroutine library, you 671 may consider it more useful to permit linking proprietary applications with 672 the library. If this is what you want to do, use the GNU Lesser General 673 Public 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 1 2008-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 8 2008-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 14 2008-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 21 2008-04-02 Ralf Wildenhues <[email protected]> 22 23 * doc/make.texi (Empty Targets): Fix typo. 24 25 2008-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 31 2008-03-08 Brian Dessent <[email protected]> 32 33 * maintMakefile: Update Translation Project location. 34 35 2008-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 40 2007-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 61 2007-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 72 2007-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 81 2007-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 89 2007-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 94 2007-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 100 2007-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 107 2007-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 112 2007-09-21 Eli Zaretskii <[email protected]> 113 114 * w32/pathstuff.c (convert_Path_to_windows32): Handle quoted 115 directories in Path. 116 117 2007-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 124 2007-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 136 2007-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 158 2007-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 164 2007-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 171 2007-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 182 2007-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 189 2007-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 196 2007-06-29 Thiemo Seufer <[email protected]> 197 198 * maintMakefile: Update Translation Project location. 199 200 2007-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 1 210 2007-05-11 Paul Smith <[email protected]> 2 211 … … 2955 3164 2956 3165 2957 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3166 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 2958 3167 Foundation, Inc. 2959 3168 This file is part of GNU Make. … … 2961 3170 GNU Make is free software; you can redistribute it and/or modify it under the 2962 3171 terms of the GNU General Public License as published by the Free Software 2963 Foundation; either version 2, or (at your option) any later version. 3172 Foundation; either version 3 of the License, or (at your option) any later 3173 version. 2964 3174 2965 3175 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 2968 3178 2969 3179 You 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. 3180 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/ChangeLog.1
r900 r1989 4984 4984 4985 4985 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 4986 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. 4986 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, 4987 Inc. 4987 4988 This file is part of GNU Make. 4988 4989 4989 4990 GNU Make is free software; you can redistribute it and/or modify it under the 4990 4991 terms of the GNU General Public License as published by the Free Software 4991 Foundation; either version 2, or (at your option) any later version. 4992 Foundation; either version 3 of the License, or (at your option) any later 4993 version. 4992 4994 4993 4995 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 4996 4998 4997 4999 You 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. 5000 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/ChangeLog.2
r900 r1989 6640 6640 6641 6641 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 6642 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc.6642 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. 6643 6643 This file is part of GNU Make. 6644 6644 6645 6645 GNU Make is free software; you can redistribute it and/or modify it under the 6646 6646 terms of the GNU General Public License as published by the Free Software 6647 Foundation; either version 2, or (at your option) any later version. 6647 Foundation; either version 3 of the License, or (at your option) any later 6648 version. 6648 6649 6649 6650 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 6652 6653 6653 6654 You 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. 6655 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/Makefile.DOS.template
r900 r1989 3 3 # 4 4 # 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. 6 6 # This file is part of GNU Make. 7 7 # 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. 11 12 # 12 13 # 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. 15 17 # 16 18 # 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/>. 19 20 20 21 SHELL = /bin/sh … … 83 84 make_LDADD = glob/libglob.a 84 85 85 info_TEXINFOS = make.texinfo86 86 man_MANS = make.1 87 87 … … 118 118 INFO_DEPS = make.info 119 119 DVIS = make.dvi 120 TEXINFOS = make.texinfo 120 TEXINFOS = doc/make.texi 121 noinst_TEXINFOS = doc/fdl.texi doc/make-stds.texi 121 122 man1dir = $(mandir)/man1 122 123 MANS = $(man_MANS) 124 125 TEXI2HTML = texi2html 126 TEXI2HTML_FLAGS = -split_chapter 123 127 124 128 NROFF = nroff … … 136 140 137 141 .SUFFIXES: 138 .SUFFIXES: .c .dvi .info .o .obj .ps .texi nfo .tex142 .SUFFIXES: .c .dvi .info .o .obj .ps .texi .tex .html 139 143 140 144 mostlyclean-hdr: … … 186 190 $(LINK) $(make_LDFLAGS) $(make_OBJECTS) $(make_LDADD) $(LIBS) 187 191 188 make.info: make.texinfo 189 make.dvi: make.texinfo 192 # Documentation 193 194 make.info: doc/make.texi 195 make.dvi: doc/make.texi 190 196 191 197 192 198 DVIPS = dvips 193 199 194 .texi nfo.info:200 .texi.info: 195 201 @command.com /c if exist make.info* del make.info* 196 202 @command.com /c if exist make.i* del make.i* 197 $(MAKEINFO) -I$(srcdir) $< -o ./$@198 199 .texi nfo:203 $(MAKEINFO) -I$(srcdir)/doc --no-split $< -o ./$@ 204 205 .texi: 200 206 @command.com /c if exist make.info* del make.info* 201 207 @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) $< 207 212 208 213 .dvi.ps: 209 214 $(DVIPS) $< -o $@ 215 216 # Other documentation formats 217 218 html: make_1.html 219 220 make_1.html: $(TEXINFOS) $(noinst_TEXINFOS) 221 $(TEXI2HTML) $(TEXI2HTML_FLAGS) $(srcdir)/doc/make.texi 210 222 211 223 install-info-am: $(INFO_DEPS) 212 224 @$(NORMAL_INSTALL) 213 225 $(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; done226 @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 215 227 @$(POST_INSTALL) 216 228 @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 … … 220 232 @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 221 233 $(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]); done234 for file in $(INFO_DEPS); do (cd $(DESTDIR)$(infodir) && rm -f $$file); done 223 235 224 236 dist-info: $(INFO_DEPS) … … 235 247 236 248 maintainer-clean-aminfo: 237 for i in $(INFO_DEPS) make.i; do rm -f `eval echo $$i*`; done249 for i in $(INFO_DEPS); do rm -f $$i*; done 238 250 239 251 install-man1: … … 455 467 install-exec install-data install uninstall all installdirs \ 456 468 mostlyclean-generic distclean-generic clean-generic \ 457 maintainer-clean-generic clean mostlyclean distclean maintainer-clean 469 maintainer-clean-generic clean mostlyclean distclean maintainer-clean \ 470 html 458 471 459 472 -
vendor/gnumake/current/Makefile.am
r900 r1989 1 1 # This is a -*-Makefile-*-, or close enough 2 2 # 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. 5 5 # This file is part of GNU Make. 6 6 # 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. 10 11 # 11 12 # 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. 14 16 # 15 17 # 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/>. 18 19 19 20 AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news -
vendor/gnumake/current/Makefile.ami
r501 r1989 5 5 # 6 6 # 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. 8 8 # This file is part of GNU Make. 9 9 # 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. 13 14 # 14 15 # 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. 17 19 # 18 20 # 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/>. 21 22 22 23 # -
vendor/gnumake/current/NEWS
r900 r1989 15 15 * Compiling GNU make now requires a conforming ISO C 1989 compiler and 16 16 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. 17 24 18 25 … … 53 60 54 61 * WARNING: Backward-incompatibility! 62 55 63 In order to comply with POSIX, the way in which GNU make processes 56 backslash-newline sequences in command strings has changed. If your57 makefiles use backslash-newline sequences inside of single-quoted58 strings in command scripts you will be impacted by this change. See59 the GNU make manual subsection "Splitting Command Lines" (node60 "Splitting Lines"), in section "Command Syntax", chapter "Writing the61 Commands in Rules", fordetails.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. 62 70 63 71 * WARNING: Backward-incompatibility! … … 68 76 backslash is now preserved, so you'll need to remove it. 69 77 70 * New command -line option: -L (--check-symlink-times). On systems that78 * New command line option: -L (--check-symlink-times). On systems that 71 79 support symbolic links, if this option is given then GNU make will 72 80 use the most recent modification time of any symbolic links that are … … 129 137 130 138 * Changes made for POSIX compatibility: 131 - Only touch targets (under -t) if they have a t least one command.139 - Only touch targets (under -t) if they have a recipe. 132 140 - Setting the SHELL make variable does NOT change the value of the 133 141 SHELL environment variable given to programs invoked by make. As … … 203 211 makefiles at that moment. 204 212 205 * A new command -line option is defined, -B or --always-make. If213 * A new command line option is defined, -B or --always-make. If 206 214 specified GNU make will consider all targets out-of-date even if they 207 215 would otherwise not be. … … 493 501 * The `MAKEFLAGS' variable (in the environment or in a makefile) can now 494 502 contain variable definitions itself; these are treated just like 495 command -line variable definitions. Make will automatically insert any503 command line variable definitions. Make will automatically insert any 496 504 variable definitions from the environment value of `MAKEFLAGS' or from 497 505 the command line, into the `MAKEFLAGS' value exported to children. The … … 502 510 503 511 * If `.DELETE_ON_ERROR' appears as a target, Make will delete the target of 504 a rule if it has changed when its commands exitwith a nonzero status,505 just as when the commands geta 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. 506 514 507 515 * The automatic variable `$+' is new. It lists all the dependencies like … … 513 521 dependencies to limit their effects to those files. If a file appears as 514 522 a dependency of `.IGNORE', then errors will be ignored while running the 515 commandsto update that file. Likewise if a file appears as a dependency516 of `.SILENT', then the commandsto update that file will not be printed517 before they arerun. (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.) 518 526 519 527 … … 566 574 Thus the value (in this release) is something like `3.69' or `3.69-Customs'. 567 575 568 * Commands in an invocation of the `shell' function are no longer run with569 a modified environment like target commands are. As in versions before576 * Commands in an invocation of the `shell' function are no longer run 577 with a modified environment like recipes are. As in versions before 570 578 3.68, they now run with the environment that `make' started with. We 571 579 have reversed the change made in version 3.68 because it turned out to … … 574 582 export variable = $(shell echo value) 575 583 576 When Make attempted to put this variable in the environment for a target577 command, it would try expand the value by running the shell command584 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 578 586 `echo value'. In version 3.68, because it constructed an environment 579 587 for that shell command in the same way, Make would begin to go into an 580 588 infinite loop and then get a fatal error when it detected the loop. 581 589 582 * The commands given for `.DEFAULT' arenow used for phony targets with no583 commands.590 * The recipe given for `.DEFAULT' is now used for phony targets with no 591 recipe. 584 592 585 593 … … 606 614 607 615 * 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' et609 alto set up variables for them. They used to run with the environment616 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 610 618 that `make' started with. 611 619 … … 655 663 656 664 * 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 two658 commands trying to change the file at the same time and interfering with665 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 659 667 one another. 660 668 … … 668 676 669 677 * There are two new directives: `export' and `unexport'. All variables are 670 no longer automatically put into the environments of the commands that678 no longer automatically put into the environments of the recipe lines that 671 679 Make runs. Instead, only variables specified on the command line or in 672 680 the environment are exported by default. To export others, use: … … 683 691 for a full description. 684 692 685 * The commands from the `.DEFAULT' special target areonly applied to686 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. 687 695 This change was made for compatibility with Unix make. 688 696 … … 737 745 We still recommend that you use `.cc' instead. 738 746 739 * If commands are given too many times for a single target,740 the last setgiven 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. 741 749 742 750 * Error messages about makefiles are in standard GNU error format, … … 756 764 * Archives on AIX now supposedly work. 757 765 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, 759 767 the $< automatic variable is given the same value as $@ for that target. 760 768 This is how Unix make behaves, and this behavior is mandated by POSIX.2. … … 785 793 Version 3.55 786 794 787 * There is now a Unix man page for GNU Make. It is certainly not a replacement788 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 put794 into the environment for child processes. (If these variables are reset by the795 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 always795 * 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 799 807 considered out of date and in need of remaking), will not be remade (if they 800 808 were being remade only because they were makefiles). This means that GNU … … 809 817 810 818 * When removing intermediate files, only one `rm' command line is printed, 811 listing all file names.819 listing all file names. 812 820 813 821 * 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 `$?'. 815 823 816 824 * Library dependencies given as `-lNAME' will use "libNAME.a" in the current 817 directory if it exists.825 directory if it exists. 818 826 819 827 * The automatic variable `$($/)' is no longer defined. 820 828 821 * Leading `+' characters on a commandline make that line be executed even822 under -n, -t, or -q (as if the line contained `$(MAKE)').823 824 * For commandlines 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}'.) 827 835 828 836 … … 832 840 833 841 * 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 comment835 characters.)842 (All information that isn't specified by makefiles is prefaced with comment 843 characters.) 836 844 837 845 … … 839 847 840 848 * The % character can be quoted with backslash in implicit pattern rules, 841 static pattern rules, `vpath' directives, and `patsubst', `filter', and842 `filter-out' functions. A warning is issued if a `vpath' directive's843 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 %. 844 852 845 853 * The `wildcard' variable expansion function now expands ~ and ~USER. 846 854 847 * Messages indicating failed commands now contain the target name:855 * Messages indicating failed recipe lines now contain the target name: 848 856 make: *** [target] Error 1 849 857 850 858 * 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. 852 860 853 861 … … 860 868 861 869 * 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 compilation864 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. 865 873 866 874 … … 868 876 869 877 * The automatic variable `$*' is now defined for explicit rules, 870 as it is in Unix make.878 as it is in Unix make. 871 879 872 880 … … 874 882 875 883 * 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. 881 889 882 890 … … 884 892 885 893 * A dependency is NOT considered newer than its dependent if 886 they have the same modification time. The behavior implemented887 in 3.43 conflicts with RCS.894 they have the same modification time. The behavior implemented 895 in 3.43 conflicts with RCS. 888 896 889 897 … … 893 901 894 902 * A dependency is considered newer than its dependent if 895 they have the same modification time.903 they have the same modification time. 896 904 897 905 … … 899 907 900 908 * 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 in902 explicit rules and expect them to be set. Unfortunately, there is no way to903 make setting these affect the Fortran implicit rules unless FC and FFLAGS904 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). 905 913 906 914 907 915 Version 3.41 908 916 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. 911 919 912 920 … … 919 927 920 928 * 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.) 922 930 923 931 … … 929 937 930 938 * Minimal support for Microport System V (a 16-bit machine and a 931 brain-damaged compiler). This has even lower priority than other USG932 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. 933 941 934 942 * Revamped default implicit rules (not much visible change). … … 942 950 943 951 * 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 make949 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). 951 959 952 960 … … 959 967 960 968 * 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). 962 970 963 971 * 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. 965 973 966 974 … … 968 976 969 977 * 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.) 971 979 972 980 … … 974 982 975 983 * Archive files will have their modification times recorded before doing 976 anything that might change their modification times by updating an archive977 member.984 anything that might change their modification times by updating an archive 985 member. 978 986 979 987 … … 986 994 987 995 * 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. 989 997 990 998 … … 994 1002 995 1003 * 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). 997 1005 998 1006 … … 1000 1008 1001 1009 * 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. 1004 1012 1005 1013 * Error messages from sub-makes will indicate the level of recursion. 1006 1014 1007 1015 * Hopefully some speed-up for large directories due to a change in the 1008 directory hashing scheme.1016 directory hashing scheme. 1009 1017 1010 1018 * One child will always get a standard input that is usable. … … 1016 1024 1017 1025 * 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)))'. 1019 1027 1020 1028 … … 1033 1041 * Makefiles will be updated and re-read if necessary. 1034 1042 1035 * Can now run several commands at once (parallelism), -j option.1043 * Can now run several recipes at once (parallelism), -j option. 1036 1044 1037 1045 * Error messages will contain the level of Make recursion, if any. 1038 1046 1039 1047 * 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 commandsrun.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.) 1044 1052 1045 1053 … … 1051 1059 ------------------------------------------------------------------------------- 1052 1060 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1053 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software1061 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 1054 1062 Foundation, Inc. 1055 1063 This file is part of GNU Make. … … 1057 1065 GNU Make is free software; you can redistribute it and/or modify it under the 1058 1066 terms of the GNU General Public License as published by the Free Software 1059 Foundation; either version 2, or (at your option) any later version. 1067 Foundation; either version 3 of the License, or (at your option) any later 1068 version. 1060 1069 1061 1070 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 1064 1073 1065 1074 You 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. 1075 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/NMakefile.template
r900 r1989 5 5 # 6 6 # 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. 8 8 # This file is part of GNU Make. 9 9 # 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. 13 14 # 14 15 # 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. 17 19 # 18 20 # 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/>. 21 22 22 23 LINK = link -
vendor/gnumake/current/README.Amiga
r501 r1989 64 64 ------------------------------------------------------------------------------- 65 65 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 66 2005, 2006 Free Software Foundation, Inc.66 2005, 2006, 2007 Free Software Foundation, Inc. 67 67 This file is part of GNU Make. 68 68 69 69 GNU Make is free software; you can redistribute it and/or modify it under the 70 70 terms of the GNU General Public License as published by the Free Software 71 Foundation; either version 2, or (at your option) any later version. 71 Foundation; either version 3 of the License, or (at your option) any later 72 version. 72 73 73 74 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 76 77 77 78 You 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. 79 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/README.DOS.template
r900 r1989 327 327 ------------------------------------------------------------------------------- 328 328 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 329 2006 Free Software Foundation, Inc.329 2006, 2007 Free Software Foundation, Inc. 330 330 This file is part of GNU Make. 331 331 332 332 GNU Make is free software; you can redistribute it and/or modify it under the 333 333 terms of the GNU General Public License as published by the Free Software 334 Foundation; either version 2, or (at your option) any later version. 334 Foundation; either version 3 of the License, or (at your option) any later 335 version. 335 336 336 337 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 339 340 340 341 You 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. 342 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/README.OS2.template
r900 r1989 162 162 163 163 ------------------------------------------------------------------------------- 164 Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.164 Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 165 165 This file is part of GNU Make. 166 166 167 167 GNU Make is free software; you can redistribute it and/or modify it under the 168 168 terms of the GNU General Public License as published by the Free Software 169 Foundation; either version 2, or (at your option) any later version. 169 Foundation; either version 3 of the License, or (at your option) any later 170 version. 170 171 171 172 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 174 175 175 176 You 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. 177 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/README.W32.template
r900 r1989 2 2 It has also been used on Windows 95/98/NT, and on OS/2. 3 3 4 It builds natively with MSVC 2.x, 4.x, 5.x, 6.x, and 2003 as well as5 .NET 7.x and .NET 2003. 6 7 It builds with the MinGW port of GCC 3.x (tested with GCC 3.4.2).4 It builds with the MinGW port of GCC (tested with GCC 3.4.2). 5 6 It also builds with MSVC 2.x, 4.x, 5.x, 6.x, and 2003 as well as 7 with .NET 7.x and .NET 2003. 8 8 9 9 The Windows 32-bit port of GNU make is maintained jointly by various … … 28 28 29 29 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. 31 32 32 33 … … 69 70 70 71 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. 75 78 76 79 Do not confuse this port of GNU make with other Windows32 projects … … 80 83 GNU make and sh.exe: 81 84 82 This port prefers you have a working sh.exe somewhere on your83 system. If you don't have sh.exe, the port falls back to84 MSDOS mode for launching programs (via a batch file). 85 The MSDOS mode style execution has not been tested that86 carefullythough (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). 87 90 88 91 There are very few true ports of Bourne shell for NT right now. … … 109 112 A native Windows32 system with no Bourne shell will also run 110 113 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 119 Support 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. 114 133 115 134 GNU make and Cygnus GNU Windows32 tools: … … 172 191 sh.exe. Tests were performed on both Windows NT and Windows 95. 173 192 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 as177 the project file would not be considered freely distributable178 (or so I think). It is easy enough to create one, though, if179 you know how to use Visual C.180 181 I build the program statically to avoid problems locating DLL's182 on machines that may not have MSVC runtime installed. If you183 prefer, you can change make to build with shared libraries by184 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. I189 have heard that this is possible though so don't be afraid to190 notify me of your successes!191 192 193 Pathnames and white space: 193 194 194 195 Unlike Unix, Windows 95/NT systems encourage pathnames which 195 196 contain white space (e.g. C:\Program Files\). These sorts of 196 pathnames are legal underUnix too, but are never encouraged.197 pathnames are valid on Unix too, but are never encouraged. 197 198 There is at least one place in make (VPATH/vpath handling) where 198 199 paths containing white space will simply not work. There may be … … 274 275 ------------------------------------------------------------------------------- 275 276 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 276 2006 Free Software Foundation, Inc.277 2006, 2007, 2008 Free Software Foundation, Inc. 277 278 This file is part of GNU Make. 278 279 279 280 GNU Make is free software; you can redistribute it and/or modify it under the 280 281 terms of the GNU General Public License as published by the Free Software 281 Foundation; either version 2, or (at your option) any later version. 282 Foundation; either version 3 of the License, or (at your option) any later 283 version. 282 284 283 285 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 286 288 287 289 You 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. 290 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/README.customs
r501 r1989 98 98 99 99 ------------------------------------------------------------------------------- 100 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 101 FreeSoftware Foundation, Inc.100 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free 101 Software Foundation, Inc. 102 102 This file is part of GNU Make. 103 103 104 104 GNU Make is free software; you can redistribute it and/or modify it under the 105 105 terms of the GNU General Public License as published by the Free Software 106 Foundation; either version 2, or (at your option) any later version. 106 Foundation; either version 3 of the License, or (at your option) any later 107 version. 107 108 108 109 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 111 112 112 113 You 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. 114 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/README.cvs
r900 r1989 2 2 3 3 ------------------------------------------------------------------------------- 4 Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.4 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 5 5 This file is part of GNU Make. 6 6 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. 17 this program. If not, see <http://www.gnu.org/licenses/>. 18 18 ------------------------------------------------------------------------------- 19 19 -
vendor/gnumake/current/README.template
r900 r1989 174 174 ------------------------------------------------------------------------------- 175 175 Copyright (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.176 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 177 Foundation, Inc. 178 178 This file is part of GNU Make. 179 179 180 180 GNU Make is free software; you can redistribute it and/or modify it under the 181 181 terms of the GNU General Public License as published by the Free Software 182 Foundation; either version 2, or (at your option) any later version. 182 Foundation; either version 3 of the License, or (at your option) any later 183 version. 183 184 184 185 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 187 188 188 189 You 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. 190 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/SMakefile.template
r900 r1989 5 5 # 6 6 # 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. 8 8 # This file is part of GNU Make. 9 9 # 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. 13 14 # 14 15 # 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. 17 19 # 18 20 # 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/>. 21 22 22 23 # -
vendor/gnumake/current/TODO.private
r900 r1989 130 130 131 131 ------------------------------------------------------------------------------- 132 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free133 Software Foundation, Inc.132 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 133 Free Software Foundation, Inc. 134 134 This file is part of GNU Make. 135 135 136 136 GNU Make is free software; you can redistribute it and/or modify it under the 137 137 terms of the GNU General Public License as published by the Free Software 138 Foundation; either version 2, or (at your option) any later version. 138 Foundation; either version 3 of the License, or (at your option) any later 139 version. 139 140 140 141 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 143 144 144 145 You 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. 146 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/acinclude.m4
r900 r1989 2 2 dnl 3 3 dnl Automake will incorporate this into its generated aclocal.m4. 4 dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 4 dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 5 5 dnl Free Software Foundation, Inc. 6 6 dnl This file is part of GNU Make. 7 7 dnl 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 by10 dnl the Free Software Foundation; either version 2, or (at your option)8 dnl GNU Make is free software; you can redistribute it and/or modify it under 9 dnl the terms of the GNU General Public License as published by the Free 10 dnl Software Foundation; either version 3 of the License, or (at your option) 11 11 dnl any later version. 12 12 dnl 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 of15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU16 dnl General Public License formore details.13 dnl GNU Make is distributed in the hope that it will be useful, but WITHOUT 14 dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for. 16 dnl more details. 17 17 dnl 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 18 dnl You should have received a copy of the GNU General Public License along 19 dnl with this program. If not, see <http://www.gnu.org/licenses/>. 23 20 24 21 dnl --------------------------------------------------------------------------- -
vendor/gnumake/current/amiga.c
r501 r1989 1 1 /* Running commands on Amiga 2 2 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. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #include "make.h" … … 117 117 return o; 118 118 } 119 -
vendor/gnumake/current/amiga.h
r900 r1989 1 1 /* Definitions for amiga specific things 2 2 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. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 int MyExecute (char ** argv); -
vendor/gnumake/current/ar.c
r900 r1989 1 1 /* Interface to `ar' archives for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 200 200 /* We have a match. Add it to the chain. */ 201 201 struct nameseq *new = xmalloc (state->size); 202 memset (new, '\0', state->size); 202 203 new->name = strcache_add (concat (state->arname, mem, ")")); 203 204 new->next = state->chain; -
vendor/gnumake/current/arscan.c
r900 r1989 1 1 /* Library function for scanning an archive file. 2 2 Copyright (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.3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 Foundation, Inc. 5 5 This file is part of GNU Make. 6 6 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 565 565 /* If the member name is "//" or "ARFILENAMES/" this may be 566 566 a list of file name mappings. The maximum file name 567 568 569 570 571 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, "//") 572 572 || !strcmp (name, "ARFILENAMES/")); 573 573 #endif /* Not AIAMAG. */ … … 577 577 578 578 #ifndef AIAMAG 579 580 581 582 583 584 585 586 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) 587 587 { 588 588 name = namemap + atoi (name + 1); 589 589 long_name = 1; 590 590 } 591 592 593 594 595 596 597 598 599 600 601 602 603 604 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'; 605 605 606 606 long_name = 1; 607 607 } 608 608 #endif /* Not AIAMAG. */ 609 609 } … … 646 646 #ifdef AIAMAGBIG 647 647 if (big_archive) 648 648 sscanf (member_header_big.ar_nxtmem, "%20ld", &member_offset); 649 649 else 650 650 #endif … … 658 658 #else 659 659 660 661 662 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. */ 663 663 if (is_namemap) 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 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 } 689 689 690 690 is_namemap = 0; 691 691 } 692 692 693 693 member_offset += AR_HDR_SIZE + eltsize; -
vendor/gnumake/current/build.template
r900 r1989 4 4 5 5 # 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. 7 7 # This file is part of GNU Make. 8 8 # 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. 12 13 # 13 14 # 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. 16 18 # 17 19 # 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/>. 20 21 21 22 # See Makefile.in for comments describing these variables. -
vendor/gnumake/current/build_w32.bat
r501 r1989 1 1 @echo off 2 2 rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 rem 2006 Free Software Foundation, Inc.3 rem 2006, 2007 Free Software Foundation, Inc. 4 4 rem This file is part of GNU Make. 5 rem 6 rem GNU Make is free software; you can redistribute it and/or modify it under 7 rem the terms of the GNU General Public License as published by the Free 8 rem Software Foundation; either version 3 of the License, or (at your option) 9 rem any later version. 10 rem 11 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT 12 rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for. 14 rem more details. 15 rem 16 rem You should have received a copy of the GNU General Public License along 17 rem with this program. If not, see <http://www.gnu.org/licenses/>. 5 18 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 19 if exist config.h.W32 GoTo NotCVS 20 sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.in > config.h.W32.sed 21 echo s,%%PACKAGE%%,make,g >> config.h.W32.sed 22 sed -f config.h.W32.sed config.h.W32.template > config.h.W32 23 :NotCVS 18 24 if not exist config.h copy config.h.W32 config.h 19 25 cd w32\subproc … … 165 171 :GCCBuild 166 172 echo on 167 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c variable.c168 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c rule.c169 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remote-stub.c170 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c commands.c171 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c file.c172 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getloadavg.c173 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c default.c174 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c signame.c175 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c expand.c176 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c dir.c177 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c main.c178 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt1.c179 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c job.c180 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c read.c181 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c version.c182 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt.c183 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c arscan.c184 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remake.c185 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c hash.c186 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c strcache.c187 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c misc.c188 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ar.c189 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c function.c190 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c vpath.c191 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c implicit.c192 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/glob.c -o glob.o193 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o194 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o195 gcc -mthreads -g stabs+ -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 -lodbccp32173 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c variable.c 174 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c rule.c 175 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remote-stub.c 176 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c commands.c 177 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c file.c 178 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getloadavg.c 179 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c default.c 180 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c signame.c 181 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c expand.c 182 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c dir.c 183 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c main.c 184 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt1.c 185 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c job.c 186 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c read.c 187 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c version.c 188 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt.c 189 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c arscan.c 190 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remake.c 191 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c hash.c 192 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c strcache.c 193 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c misc.c 194 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ar.c 195 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c function.c 196 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c vpath.c 197 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c implicit.c 198 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/glob.c -o glob.o 199 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o 200 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o 201 gcc -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 196 202 :BuildEnd 197 203 echo on -
vendor/gnumake/current/commands.c
r900 r1989 1 1 /* Command processing for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 603 603 const char *s; 604 604 605 fputs (_("# commandsto execute"), stdout);605 fputs (_("# recipe to execute"), stdout); 606 606 607 607 if (cmds->fileinfo.filenm == 0) … … 616 616 const char *end; 617 617 618 while (isspace ((unsigned char)*s))619 ++s;620 621 618 end = strchr (s, '\n'); 622 619 if (end == 0) 623 620 end = s + strlen (s); 624 621 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'); 628 625 } 629 626 } -
vendor/gnumake/current/commands.h
r900 r1989 1 1 /* Definition of data structures describing shell commands for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 /* Structure that gives the commands to make a file -
vendor/gnumake/current/config.ami.template
r900 r1989 1 1 /* config.h -- hand-massaged for Amiga -*-C-*- 2 2 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. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 /* Define if on AIX 3. -
vendor/gnumake/current/config.h-vms.template
r900 r1989 2 2 3 3 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. 5 5 This file is part of GNU Make. 6 6 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 /* config.h. Generated automatically by configure. */ -
vendor/gnumake/current/config.h.W32.template
r900 r1989 2 2 3 3 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. 5 5 This file is part of GNU Make. 6 6 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 /* Suppress some Visual C++ warnings. … … 419 419 /* #undef const */ 420 420 421 #include <sys/types.h> 422 421 423 /* Define to `int' if <sys/types.h> doesn't define. */ 422 424 #define gid_t int 423 425 424 426 /* Define to `int' if <sys/types.h> does not define. */ 427 /* GCC 4.x reportedly defines pid_t. */ 428 #ifndef _PID_T_ 425 429 #define pid_t int 430 #endif 426 431 427 432 /* Define to `int' if <sys/types.h> doesn't define. */ -
vendor/gnumake/current/config/ChangeLog
r501 r1989 30 30 31 31 32 Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.32 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 33 33 This file is part of GNU Make. 34 34 35 35 GNU Make is free software; you can redistribute it and/or modify it under the 36 36 terms of the GNU General Public License as published by the Free Software 37 Foundation; either version 2, or (at your option) any later version. 37 Foundation; either version 3 of the License, or (at your option) any later 38 version. 38 39 39 40 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 42 43 43 44 You 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. 45 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/config/Makefile.am
r501 r1989 1 1 # -*-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. 3 4 # This file is part of GNU Make. 4 5 # 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. 8 10 # 9 11 # 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. 12 15 # 13 16 # 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/>. 16 18 17 19 EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 nls.m4 \ -
vendor/gnumake/current/config/dospaths.m4
r900 r1989 1 1 # Test if the system uses DOS-style pathnames (drive specs and backslashes) 2 2 # By Paul Smith <[email protected]>. Based on dos.m4 by Jim Meyering. 3 3 # 4 4 # 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. 6 6 # This file is part of GNU Make. 7 7 # 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. 11 12 # 12 13 # 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. 15 17 # 16 18 # 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/>. 19 20 20 21 AC_DEFUN([pds_AC_DOS_PATHS], -
vendor/gnumake/current/configh.dos.template
r900 r1989 2 2 3 3 Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 4 2004, 2005, 2006 Free Software Foundation, Inc.4 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 5 5 This file is part of GNU Make. 6 6 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 /* Many things are defined already by a system header. */ … … 26 26 27 27 /* Define to 1 if the C library defines the variable `_sys_siglist'. */ 28 # define HAVE_ SYS_SIGLIST 128 # define HAVE_DECL_SYS_SIGLIST 1 29 29 30 30 #else -
vendor/gnumake/current/configure.bat
r501 r1989 1 1 @echo off 2 2 rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3 rem 2004, 2005, 2006 Free Software Foundation, Inc.3 rem 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 4 4 rem This file is part of GNU Make. 5 5 rem 6 6 rem GNU Make is free software; you can redistribute it and/or modify it under 7 7 rem 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 later9 rem version.10 8 rem Software Foundation; either version 3 of the License, or (at your option) 9 rem any later version. 10 rem 11 11 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT 12 12 rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for. 14 14 rem more details. 15 15 rem 16 16 rem 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. 17 rem with this program. If not, see <http://www.gnu.org/licenses/>. 19 18 20 19 echo Configuring MAKE for DJGPP -
vendor/gnumake/current/configure.in
r900 r1989 2 2 # 3 3 # 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. 5 5 # This file is part of GNU Make. 6 6 # 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. 10 11 # 11 12 # 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. 14 16 # 15 17 # 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/>. 18 19 19 20 AC_INIT([GNU make],[3.81.90],[[email protected]]) 20 21 21 22 AC_PREREQ(2.59) 22 AC_REVISION([[$Id: configure.in,v 1.14 7 2007/05/09 02:01:53psmith Exp $]])23 AC_REVISION([[$Id: configure.in,v 1.148 2007/07/04 19:35:17 psmith Exp $]]) 23 24 24 25 # Autoconf setup -
vendor/gnumake/current/debug.h
r501 r1989 1 1 /* Debugging macros and interface. 2 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 Foundation, Inc.2 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free 3 Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #define DB_NONE (0x000) -
vendor/gnumake/current/default.c
r900 r1989 1 1 /* Data base of default implicit rules for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" -
vendor/gnumake/current/dep.h
r900 r1989 1 1 /* Definitions of dependency data structures for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 /* Flag bits for the second argument to `read_makefile'. -
vendor/gnumake/current/dir.c
r900 r1989 1 1 /* Directory hashing for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 458 458 Find its device and inode numbers, and look it up by them. */ 459 459 460 #ifdef WINDOWS32461 /* Remove any trailing '\'. Windows32 stat fails even on valid462 directories if they end in '\'. */463 if (p[-1] == '\\')464 p[-1] = '\0';465 #endif466 467 460 #ifdef VMS 468 461 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 } 469 479 #else 470 480 EINTRLOOP (r, stat (name, &st)); 471 #endif472 473 #ifdef WINDOWS32474 /* Put back the trailing '\'. If we don't, we're permanently475 truncating the value! */476 if (p[-1] == '\0')477 p[-1] = '\\';478 481 #endif 479 482 -
vendor/gnumake/current/doc/Makefile.am
r501 r1989 1 1 # -*-Makefile-*-, or close enough 2 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software2 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 3 3 # Foundation, Inc. 4 4 # This file is part of GNU Make. 5 5 # 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. 9 10 # 10 11 # 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. 13 15 # 14 16 # 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/>. 17 18 18 19 TEXI2HTML = texi2html -
vendor/gnumake/current/doc/make.texi
r900 r1989 5 5 @include version.texi 6 6 @set EDITION 0.70 7 @set RCSID $Id: make.texi,v 1. 47 2007/05/11 20:57:21psmith Exp $7 @set RCSID $Id: make.texi,v 1.52 2008/05/18 15:11:40 psmith Exp $ 8 8 9 9 @settitle GNU @code{make} … … 27 27 28 28 Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 29 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 29 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007 30 30 Free Software Foundation, Inc. 31 31 … … 39 39 License.'' 40 40 41 (a) The FSF's Back-Cover Text is: ``You have freedomto copy and modify42 this GNU Manual , like GNU software. Copies published by the Free43 Software Foundation raise funds for GNU development.''41 (a) The FSF's Back-Cover Text is: ``You are free to copy and modify 42 this GNU Manual. Buying copies from GNU Press supports the FSF in 43 developing GNU and promoting software freedom.'' 44 44 @end quotation 45 45 @end copying … … 92 92 * Makefiles:: Makefiles tell @code{make} what to do. 93 93 * 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. 95 95 * Using Variables:: You can use variables to avoid repetition. 96 96 * Conditionals:: Use or ignore parts of the makefile based … … 119 119 Overview of @code{make} 120 120 121 * Preparing:: Preparing and Running Make122 * Reading:: On Reading this Text123 * Bugs:: Problems and Bugs121 * Preparing:: Preparing and running make 122 * Reading:: On reading this text 123 * Bugs:: Problems and bugs 124 124 125 125 An Introduction to Makefiles 126 126 127 127 * Rule Introduction:: What a rule looks like. 128 * Simple Makefile:: A Simple Makefile129 * How Make Works:: How @code{make} Processes This Makefile130 * Variables Simplify:: Variables Make Makefiles Simpler131 * make Deduces:: Letting @code{make} Deduce the Commands132 * Combine By Prerequisite:: Another Style of Makefile133 * Cleanup:: Rules for Cleaning the Directory128 * 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 134 134 135 135 Writing Makefiles … … 139 139 * Include:: How one makefile can use another makefile. 140 140 * MAKEFILES Variable:: The environment can specify extra makefiles. 141 * MAKEFILE_LIST Variable:: Discover which makefiles have been read.142 * Special Variables:: Other special variables.143 141 * Remaking Makefiles:: How makefiles get remade. 144 142 * Overriding Makefiles:: How to override part of one makefile … … 155 153 * Directory Search:: Searching other directories for source files. 156 154 * Phony Targets:: Using a target that is not a real file's name. 157 * Force Targets:: You can use a target without commands155 * Force Targets:: You can use a target without a recipe 158 156 or prerequisites to mark other targets 159 157 as phony. … … 185 183 for a specified class of names. 186 184 * Search Algorithm:: When and how search paths are applied. 187 * Commands/Search:: How to write shell commands that work together185 * Recipes/Search:: How to write recipes that work together 188 186 with search paths. 189 187 * Implicit/Search:: How search paths affect implicit rules. … … 195 193 * Static versus Implicit:: When are they better than implicit rules? 196 194 197 Writing the Commands in Rules198 199 * Command Syntax:: Commandsyntax 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 commandexecution error.204 * Interrupts:: What happens when a commandis interrupted.195 Writing 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. 205 203 * Recursion:: Invoking @code{make} from makefiles. 206 * Sequences:: Defining canned sequences of commands.207 * Empty Commands:: Defining useful, do-nothing commands.208 209 CommandSyntax210 211 * Splitting Lines:: Breaking long commandlines for readability.212 * Variables in Commands:: Using @code{make} variables in commands.213 214 CommandExecution204 * Sequences:: Defining canned recipes. 205 * Empty Recipes:: Defining useful, do-nothing recipes. 206 207 Recipe Syntax 208 209 * Splitting Lines:: Breaking long recipe lines for readability. 210 * Variables in Recipes:: Using @code{make} variables in recipes. 211 212 Recipe Execution 215 213 216 214 * Choosing the Shell:: How @code{make} chooses the shell used 217 to run commands.215 to run recipes. 218 216 219 217 Recursive Use of @code{make} … … 243 241 * Pattern-specific:: Target-specific variable values can be applied 244 242 to a group of targets that match a pattern. 243 * Special Variables:: Variables with special meaning or behavior. 245 244 246 245 Advanced Features for Reference to Variables … … 277 276 parts of the makefile to use. 278 277 * Instead of Execution:: How to use mode flags to specify what 279 kind of thing to do with the commands278 kind of thing to do with the recipes 280 279 in the makefile other than simply 281 280 execute them. … … 290 289 291 290 * Using Implicit:: How to use an existing implicit rule 292 to get the commandsfor updating a file.291 to get the recipe for updating a file. 293 292 * Catalogue of Rules:: A list of built-in implicit rules. 294 293 * Implicit Variables:: How to change what predefined rules do. 295 294 * Chained Rules:: How to use a chain of implicit rules. 296 295 * Pattern Rules:: How to define new implicit rules. 297 * Last Resort:: How to define commandsfor rules which296 * Last Resort:: How to define a recipe for rules which 298 297 cannot find any. 299 298 * Suffix Rules:: The old-fashioned style of implicit rule. … … 306 305 * Pattern Examples:: Examples of pattern rules. 307 306 * Automatic Variables:: How to use automatic variables in the 308 commandsof implicit rules.307 recipe of implicit rules. 309 308 * Pattern Match:: How patterns match. 310 309 * Match-Anything Rules:: Precautions you should take prior to … … 378 377 uses the makefile data base and the last-modification times of the files to 379 378 decide which of the files need to be updated. For each of those files, it 380 issues the commands recorded in the data base.379 issues the recipes recorded in the data base. 381 380 382 381 You can provide command line arguments to @code{make} to control which … … 432 431 these messages: it's best to cut and paste them into your report. 433 432 When generating this small makefile, be sure to not use any non-free 434 or unusual tools in your commands: you can almost always emulate what433 or unusual tools in your recipes: you can almost always emulate what 435 434 such a tool would do with simple shell commands. Finally, be sure to 436 435 explain what you expected to occur; this will help us decide whether … … 490 489 * How Make Works:: How @code{make} Processes This Makefile 491 490 * Variables Simplify:: Variables Make Makefiles Simpler 492 * make Deduces:: Letting @code{make} Deduce the Commands491 * make Deduces:: Letting @code{make} Deduce the Recipes 493 492 * Combine By Prerequisite:: Another Style of Makefile 494 493 * Cleanup:: Rules for Cleaning the Directory … … 506 505 @cindex targets, introduction to 507 506 @cindex prerequisites, introduction to 508 @cindex commands, introduction to507 @cindex recipes, introduction to 509 508 @example 510 509 @group 511 510 @var{target} @dots{} : @var{prerequisites} @dots{} 512 @var{ command}511 @var{recipe} 513 512 @dots{} 514 513 @dots{} … … 525 524 526 525 @cindex tabs in rules 527 A @dfn{ command} is an action that @code{make} carries out.528 A r ule may have more than one command, each on its own line.526 A @dfn{recipe} is an action that @code{make} carries out. 527 A recipe may have more than one command, each on its own line. 529 528 @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 529 every command line! This is an obscurity that catches the unwary. If 530 you prefer to prefix your recipes with a character other than tab, 531 you can set the @code{.CMDPREFIX} variable to an alternate character 532 (@pxref{Special Variables}). 533 534 Usually a recipe is in a rule with prerequisites and serves to create a 533 535 target file if any of the prerequisites change. However, the rule that 534 specifies commandsfor the target need not have prerequisites. For536 specifies a recipe for the target need not have prerequisites. For 535 537 example, the rule containing the delete command associated with the 536 538 target @samp{clean} does not have prerequisites. … … 538 540 A @dfn{rule}, then, explains how and when to remake certain files 539 541 which are the targets of the particular rule. @code{make} carries out 540 the commandson the prerequisites to create or update the target. A542 the recipe on the prerequisites to create or update the target. A 541 543 rule can also explain how and when to carry out an action. 542 544 @xref{Rules, , Writing Rules}. … … 615 617 prerequisites are files such as @samp{main.c} and @samp{defs.h}. 616 618 In 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}}.619 Recipes include @w{@samp{cc -c main.c}} and @w{@samp{cc -c kbd.c}}. 618 620 619 621 When a target is a file, it needs to be recompiled or relinked if any … … 624 626 on the header file @file{defs.h}. 625 627 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 628 A recipe may follow each line that contains a target and 629 prerequisites. These recipes say how to update the target file. A 630 tab character (or whatever character is specified by the 631 @code{.CMDPREFIX} variable; @pxref{Special Variables}) must come at 632 the beginning of every line in the recipe to distinguish recipes from 633 other lines in the makefile. (Bear in mind that @code{make} does not 634 know anything about how the recipes work. It is up to you to supply 635 recipes that will update the target file properly. All @code{make} 636 does is execute the commands in the recipe you have specified when the 637 target file needs to be updated.)@refill 638 @cindex recipe 635 639 636 640 The 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. 641 action. Since you normally do not want to carry out the actions in 642 this rule, @samp{clean} is not a prerequisite of any other rule. 640 643 Consequently, @code{make} never does anything with it unless you tell 641 it specifically. Note that this rule not only is not a prerequisite, it642 also does not have any prerequisites, so the only purpose of the rule643 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.644 it specifically. Note that this rule not only is not a prerequisite, 645 it also does not have any prerequisites, so the only purpose of the 646 rule is to run the specified recipe. Targets that do not refer to 647 files 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} 650 to ignore errors from @code{rm} or any other command. 648 651 @cindex @code{clean} target 649 652 @cindex @code{rm} (shell command) … … 793 796 794 797 @node make Deduces, Combine By Prerequisite, Variables Simplify, Introduction 795 @section Letting @code{make} Deduce the Commands796 @cindex deducing commands (implicit rules)798 @section Letting @code{make} Deduce the Recipes 799 @cindex deducing recipes (implicit rules) 797 800 @cindex implicit rule, introduction to 798 801 @cindex rule, implicit, introduction to 799 802 800 It is not necessary to spell out the commands for compiling the individual803 It is not necessary to spell out the recipes for compiling the individual 801 804 C source files, because @code{make} can figure them out: it has an 802 805 @dfn{implicit rule} for updating a @samp{.o} file from a correspondingly 803 806 named @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} into805 @file{main.o}. We can therefore omit the commands from the rules for the807 use 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 806 809 object files. @xref{Implicit Rules, ,Using Implicit Rules}.@refill 807 810 808 811 When a @samp{.c} file is used automatically in this way, it is also 809 812 automatically added to the list of prerequisites. We can therefore omit 810 the @samp{.c} files from the prerequisites, provided we omit the commands.813 the @samp{.c} files from the prerequisites, provided we omit the recipe. 811 814 812 815 Here is the entire example, with both of these changes, and a variable … … 839 842 This is how we would write the makefile in actual practice. (The 840 843 complications associated with @samp{clean} are described elsewhere. 841 See @ref{Phony Targets}, and @ref{Errors, ,Errors in Commands}.)844 See @ref{Phony Targets}, and @ref{Errors, ,Errors in Recipes}.) 842 845 843 846 Because implicit rules are so convenient, they are important. You … … 912 915 called @file{clean} and causes it to continue in spite of errors from 913 916 @code{rm}. (See @ref{Phony Targets}, and @ref{Errors, ,Errors in 914 Commands}.)917 Recipes}.) 915 918 916 919 @noindent … … 937 940 * Include:: How one makefile can use another makefile. 938 941 * MAKEFILES Variable:: The environment can specify extra makefiles. 939 * MAKEFILE_LIST Variable:: Discover which makefiles have been read.940 * Special Variables:: Other special variables.941 942 * Remaking Makefiles:: How makefiles get remade. 942 943 * Overriding Makefiles:: How to override part of one makefile … … 961 962 called the rule's @dfn{targets}. It lists the other files that the 962 963 targets depend on, called the @dfn{prerequisites} of the target, and 963 may also give commandsto use to create or update the targets.964 may also give a recipe to use to create or update the targets. 964 965 @xref{Rules, ,Writing Rules}. 965 966 … … 969 970 An @dfn{implicit rule} says when and how to remake a class of files 970 971 based on their names. It describes how a target may depend on a file 971 with a name similar to the target and gives commandsto create or972 with a name similar to the target and gives a recipe to create or 972 973 update such a target. @xref{Implicit Rules, ,Using Implicit Rules}. 973 974 … … 982 983 @cindex directive 983 984 @item 984 A @dfn{directive} is a command for @code{make} to do something special while985 reading the makefile. These include:985 A @dfn{directive} is an instruction for @code{make} to do something 986 special while reading the makefile. These include: 986 987 987 988 @itemize @bullet … … 1014 1015 start of a comment) inside a variable reference or function call. 1015 1016 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. 1017 Comments within a recipe are passed to the shell, just as with any 1018 other recipe text. The shell decides how to interpret it: whether or 1019 not this is a comment is up to the shell. 1020 1020 1021 1021 Within a @code{define} directive, comments are not ignored during the 1022 1022 definition of the variable, but rather kept intact in the value of the 1023 1023 variable. When the variable is expanded they will either be treated 1024 as @code{make} comments or as command script text, depending on the1025 context inwhich the variable is evaluated.1024 as @code{make} comments or as recipe text, depending on the context in 1025 which the variable is evaluated. 1026 1026 @end itemize 1027 1027 … … 1096 1096 1097 1097 Extra 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 1098 the first character must not be a tab (or the value of 1099 @code{.CMDPREFIX})---if the line begins with a tab, it will be 1100 considered a recipe line. Whitespace is required between 1100 1101 @code{include} and the file names, and between file names; extra 1101 1102 whitespace is ignored there and at the end of the directive. A … … 1182 1183 @code{sinclude} is another name for @w{@code{-include}}. 1183 1184 1184 @node MAKEFILES Variable, MAKEFILE_LIST Variable, Include, Makefiles1185 @node MAKEFILES Variable, Remaking Makefiles, Include, Makefiles 1185 1186 @section The Variable @code{MAKEFILES} 1186 1187 @cindex makefile, and @code{MAKEFILES} variable … … 1212 1213 in the makefiles. @xref{Include, , Including Other Makefiles}. 1213 1214 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 1395 1216 @section How Makefiles Are Remade 1396 1217 … … 1413 1234 date.)@refill 1414 1235 1415 If you know that one or more of your makefiles cannot be remade and you1416 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 writean1419 explicit rule with the makefile as the target, and an empty command 1420 string (@pxref{Empty Commands, ,Using Empty Commands}).1236 If you know that one or more of your makefiles cannot be remade and 1237 you want to keep @code{make} from performing an implicit rule search 1238 on them, perhaps for efficiency reasons, you can use any normal method 1239 of preventing implicit rule lookup to do so. For example, you can 1240 write an explicit rule with the makefile as the target, and an empty 1241 recipe (@pxref{Empty Recipes, ,Using Empty Recipes}). 1421 1242 1422 1243 If the makefiles specify a double-colon rule to remake a file with 1423 commandsbut no prerequisites, that file will always be remade1244 a recipe but no prerequisites, that file will always be remade 1424 1245 (@pxref{Double-Colon}). In the case of makefiles, a makefile that has a 1425 double-colon rule with commandsbut no prerequisites will be remade every1246 double-colon rule with a recipe but no prerequisites will be remade every 1426 1247 time @code{make} is run, and then again after @code{make} starts over 1427 1248 and reads the makefiles in again. This would cause an infinite loop: … … 1429 1250 else. So, to avoid this, @code{make} will @strong{not} attempt to 1430 1251 remake makefiles which are specified as targets of a double-colon rule 1431 with commandsbut no prerequisites.@refill1252 with a recipe but no prerequisites.@refill 1432 1253 1433 1254 If you do not specify any makefiles to be read with @samp{-f} or … … 1448 1269 1449 1270 When 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}), 1451 1272 you would not want to use an out-of-date makefile to decide which 1452 1273 targets to touch. So the @samp{-t} option has no effect on updating … … 1456 1277 out-of-date makefile would result in the wrong output for other targets. 1457 1278 Thus, @samp{make -f mfile -n foo} will update @file{mfile}, read it in, 1458 and then print the commandsto update @file{foo} and its prerequisites1459 without running them. The commands printed for @file{foo} will be those1279 and then print the recipe to update @file{foo} and its prerequisites 1280 without running it. The recipe printed for @file{foo} will be the one 1460 1281 specified in the updated contents of @file{mfile}. 1461 1282 … … 1467 1288 1468 1289 Thus, @samp{make -f mfile -n mfile foo} would read the makefile 1469 @file{mfile}, print the commandsneeded to update it without actually1470 running them, and then print the commandsneeded to update @file{foo}1471 without running th em. The commands for @file{foo} will be those1290 @file{mfile}, print the recipe needed to update it without actually 1291 running it, and then print the recipe needed to update @file{foo} 1292 without running that. The recipe for @file{foo} will be the one 1472 1293 specified by the existing contents of @file{mfile}. 1473 1294 … … 1480 1301 another makefile. You can often use the @samp{include} directive to 1481 1302 include one in the other, and add more targets or variable definitions. 1482 However, i f the two makefiles give different commands for the same1483 t arget, @code{make} will not let you just do this. But there is another way.1303 However, it is illegal for two makefiles to give different recipes for 1304 the same target. But there is another way. 1484 1305 1485 1306 @cindex match-anything rule, used to override … … 1504 1325 1505 1326 If 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 command1327 read it, and see that to make @file{foo}, it needs to run the recipe 1507 1328 @samp{frobnicate > foo}. If you say @samp{make bar}, @code{make} will 1508 1329 find no way to make @file{bar} in @file{GNUmakefile}, so it will use the 1509 commandsfrom the pattern rule: @samp{make -f Makefile bar}. If1330 recipe from the pattern rule: @samp{make -f Makefile bar}. If 1510 1331 @file{Makefile} provides a rule for updating @file{bar}, @code{make} 1511 1332 will apply the rule. And likewise for any other target that … … 1514 1335 The way this works is that the pattern rule has a pattern of just 1515 1336 @samp{%}, so it matches any target whatever. The rule specifies a 1516 prerequisite @file{force}, to guarantee that the commandswill be run even1517 if the target file already exists. We give @file{force} target empty1518 commandsto prevent @code{make} from searching for an implicit rule to1337 prerequisite @file{force}, to guarantee that the recipe will be run even 1338 if the target file already exists. We give the @file{force} target an 1339 empty recipe to prevent @code{make} from searching for an implicit rule to 1519 1340 build it---otherwise it would apply the same match-anything rule to 1520 1341 @file{force} itself and create a prerequisite loop! … … 1542 1363 construct as the makefile is parsed. We say that expansion is 1543 1364 @dfn{deferred} if expansion is not performed immediately. Expansion of 1544 deferred construct is not performed until either the construct appears1365 a deferred construct is not performed until either the construct appears 1545 1366 later in an immediate context, or until the second phase. 1546 1367 … … 1573 1394 (@samp{:=}), and deferred otherwise. 1574 1395 1575 @subheading Conditional Statements1396 @subheading Conditional Directives 1576 1397 @cindex ifdef, expansion 1577 1398 @cindex ifeq, expansion … … 1579 1400 @cindex ifneq, expansion 1580 1401 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. 1402 Conditional directives are parsed immediately. This means, for 1403 example, that automatic variables cannot be used in conditional 1404 directives, as automatic variables are not set until the recipe for 1405 that rule is invoked. If you need to use automatic variables in a 1406 conditional directive you @emph{must} move the condition into the 1407 recipe and use shell conditional syntax instead. 1589 1408 1590 1409 @subheading Rule Definition … … 1603 1422 1604 1423 That is, the target and prerequisite sections are expanded immediately, 1605 and the commands used to construct the target arealways deferred. This1424 and the recipe used to construct the target is always deferred. This 1606 1425 general rule is true for explicit rules, pattern rules, suffix rules, 1607 1426 static pattern rules, and simple prerequisite definitions. … … 1677 1496 target. This means that you can use variables such as @code{$@@}, 1678 1497 @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 is1680 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. Forexample:1498 expected values, just as in the recipe. All you have to do is defer 1499 the expansion by escaping the @code{$}. Also, secondary expansion 1500 occurs for both explicit and implicit (pattern) rules. Knowing this, 1501 the possible uses for this feature increase dramatically. For 1502 example: 1684 1503 1685 1504 @example … … 1699 1518 @code{$(lib_OBJS)}, or @code{lib.o api.o}. 1700 1519 1701 You can also mix functions here, as long as they are properly escaped:1520 You can also mix in functions here, as long as they are properly escaped: 1702 1521 1703 1522 @example … … 1715 1534 Evaluation of automatic variables during the secondary expansion 1716 1535 phase, especially of the target name variable @code{$$@@}, behaves 1717 similarly to evaluation within command scripts. However, there are1718 s ome subtle differences and ``corner cases'' which come into play for1719 the different types of rule definitions that @code{make} understands. 1720 The subtleties of using the different automatic variables are 1721 describedbelow.1536 similarly to evaluation within recipes. However, there are some 1537 subtle differences and ``corner cases'' which come into play for the 1538 different types of rule definitions that @code{make} understands. The 1539 subtleties of using the different automatic variables are described 1540 below. 1722 1541 1723 1542 @subheading Secondary Expansion of Explicit Rules … … 1752 1571 1753 1572 Rules undergo secondary expansion in makefile order, except that 1754 the rule with the command scriptis always evaluated last.1573 the rule with the recipe is always evaluated last. 1755 1574 1756 1575 The variables @code{$$?} and @code{$$*} are not available and expand … … 1809 1628 @code{$$*} instead of @code{%} in the prerequisites list. 1810 1629 1811 @node Rules, Commands, Makefiles, Top1630 @node Rules, Recipes, Makefiles, Top 1812 1631 @chapter Writing Rules 1813 1632 @cindex writing rules … … 1819 1638 certain files, called the rule's @dfn{targets} (most often only one per rule). 1820 1639 It lists the other files that are the @dfn{prerequisites} of the target, and 1821 @dfn{commands} to use to create or update the target.1640 the @dfn{recipe} to use to create or update the target. 1822 1641 1823 1642 @cindex default goal … … 1845 1664 * Directory Search:: Searching other directories for source files. 1846 1665 * Phony Targets:: Using a target that is not a real file's name. 1847 * Force Targets:: You can use a target without commands1666 * Force Targets:: You can use a target without recipes 1848 1667 or prerequisites to mark other targets 1849 1668 as phony. … … 1874 1693 1875 1694 Its 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}. 1696 The recipe starts with a tab to identify it as a recipe. 1878 1697 1879 1698 This rule says two things: … … 1887 1706 @item 1888 1707 How to update the file @file{foo.o}: by running @code{cc} as stated. 1889 The commanddoes not explicitly mention @file{defs.h}, but we presume1708 The recipe does not explicitly mention @file{defs.h}, but we presume 1890 1709 that @file{foo.c} includes it, and that that is why @file{defs.h} was 1891 1710 added to the prerequisites. … … 1902 1721 @example 1903 1722 @var{targets} : @var{prerequisites} 1904 @var{ command}1723 @var{recipe} 1905 1724 @dots{} 1906 1725 @end example … … 1910 1729 1911 1730 @example 1912 @var{targets} : @var{prerequisites} ; @var{ command}1913 @var{ command}1731 @var{targets} : @var{prerequisites} ; @var{recipe} 1732 @var{recipe} 1914 1733 @dots{} 1915 1734 @end example … … 1926 1745 (@pxref{Multiple Targets, , Multiple Targets in a Rule}).@refill 1927 1746 1928 @cindex commands1747 @cindex recipes 1929 1748 @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}. 1749 The @var{recipe} lines start with a tab character (or the first 1750 character in the value of the @code{.CMDPREFIX} variable; 1751 @pxref{Special Variables}). The first recipe line may appear on the line 1752 after the prerequisites, with a tab character, or may appear on the 1753 same line, with a semicolon. Either way, the effect is the same. 1754 There are other differences in the syntax of recipes. 1755 @xref{Recipes, ,Writing Recipes in Rules}. 1935 1756 1936 1757 @cindex dollar sign (@code{$}), in rules … … 1964 1785 valid. 1965 1786 1966 How to update is specified by @var{commands}. These are lines to be1967 executed by the shell (normally @samp{sh}), but with some extra features 1968 (@pxref{Commands, ,Writing the Commands in Rules}).1787 How to update is specified by a @var{recipe}. This is one or more 1788 lines to be executed by the shell (normally @samp{sh}), but with some 1789 extra features (@pxref{Recipes, ,Writing Recipes in Rules}). 1969 1790 1970 1791 @node Prerequisite Types, Wildcards, Rule Syntax, Rules … … 1982 1803 previous section, and @dfn{order-only} prerequisites. A normal 1983 1804 prerequisite makes two statements: first, it imposes an order of 1984 execution of build commands: any commands necessary to build any of a1985 target's prerequisites will be fully executed before any commands1805 execution of recipes: any recipes necessary to build any of a 1806 target's prerequisites will be fully executed before any recipe 1986 1807 necessary to build the target. Second, it imposes a dependency 1987 1808 relationship: if any prerequisite is newer than the target, then the … … 2070 1891 2071 1892 Wildcard expansion is performed by @code{make} automatically in 2072 targets and in prerequisites. In commandsthe shell is responsible1893 targets and in prerequisites. In recipes, the shell is responsible 2073 1894 for wildcard expansion. In other contexts, wildcard expansion happens 2074 1895 only if you request it explicitly with the @code{wildcard} function. … … 2089 1910 @subsection Wildcard Examples 2090 1911 2091 Wildcards can be used in the commandsof a rule, where they are expanded1912 Wildcards can be used in the recipe of a rule, where they are expanded 2092 1913 by the shell. For example, here is a rule to delete all the object files: 2093 1914 … … 2129 1950 then the value of the variable @code{objects} is the actual string 2130 1951 @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.1952 prerequisite, or recipe, wildcard expansion will take place at that time. 2132 1953 To set @code{objects} to the expansion, instead use: 2133 1954 … … 2276 2097 for a specified class of names. 2277 2098 * Search Algorithm:: When and how search paths are applied. 2278 * Commands/Search:: How to write shell commands that work together2099 * Recipes/Search:: How to write recipes that work together 2279 2100 with search paths. 2280 2101 * Implicit/Search:: How search paths affect implicit rules. … … 2297 2118 them, that file may become the prerequisite (see below). Rules may then 2298 2119 specify 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}. 2120 existed in the current directory. @xref{Recipes/Search, ,Writing Recipes with Directory Search}. 2301 2121 2302 2122 In the @code{VPATH} variable, directory names are separated by colons or … … 2433 2253 @file{bar}, then @file{blish}. 2434 2254 2435 @node Search Algorithm, Commands/Search, Selective Search, Directory Search2255 @node Search Algorithm, Recipes/Search, Selective Search, Directory Search 2436 2256 @subsection How Directory Searches are Performed 2437 2257 @cindex algorithm for directory search … … 2500 2320 rebuilt using the expanded path. 2501 2321 2502 @node Commands/Search, Implicit/Search, Search Algorithm, Directory Search2503 @subsection Writing Shell Commands with Directory Search2504 @cindex shell command, and directory search2505 @cindex directory search (@code{VPATH}), and shell commands2322 @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 2506 2326 2507 2327 When a prerequisite is found in another directory through directory search, 2508 this cannot change the commandsof the rule; they will execute as written.2509 Therefore, you must write the commands with care so that theywill look for2328 this cannot change the recipe of the rule; they will execute as written. 2329 Therefore, you must write the recipe with care so that it will look for 2510 2330 the prerequisite in the directory where @code{make} finds it. 2511 2331 … … 2529 2349 2530 2350 Often the prerequisites include header files as well, which you do not 2531 want to mention in the commands. The automatic variable @samp{$<} is2351 want to mention in the recipe. The automatic variable @samp{$<} is 2532 2352 just the first prerequisite: 2533 2353 … … 2538 2358 @end example 2539 2359 2540 @node Implicit/Search, Libraries/Search, Commands/Search, Directory Search2360 @node Implicit/Search, Libraries/Search, Recipes/Search, Directory Search 2541 2361 @subsection Directory Search and Implicit Rules 2542 2362 @cindex @code{VPATH}, and implicit rules … … 2559 2379 directories, the implicit rule for C compilation is applied. 2560 2380 2561 The commands of implicit rules normally use automatic variables as a2381 The recipes of implicit rules normally use automatic variables as a 2562 2382 matter of necessity; consequently they will use the file names found by 2563 2383 directory search with no extra effort. … … 2630 2450 @cindex targets without a file 2631 2451 2632 A phony target is one that is not really the name of a file . It is just a2633 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 commandswill not create the target file, the2638 commandswill be executed every time the target comes up for remaking.2452 A phony target is one that is not really the name of a file; rather it 2453 is just a name for a recipe to be executed when you make an explicit 2454 request. There are two reasons to use a phony target: to avoid a 2455 conflict with a file of the same name, and to improve performance. 2456 2457 If you write a rule whose recipe will not create the target file, the 2458 recipe will be executed every time the target comes up for remaking. 2639 2459 Here is an example: 2640 2460 … … 2656 2476 named @file{clean} in this directory. Since it has no prerequisites, the 2657 2477 file @file{clean} would inevitably be considered up to date, and its 2658 commandswould not be executed. To avoid this problem, you can explicitly2478 recipe would not be executed. To avoid this problem, you can explicitly 2659 2479 declare the target to be phony, using the special target @code{.PHONY} 2660 2480 (@pxref{Special Targets, ,Special Built-in Target Names}) as follows: … … 2665 2485 2666 2486 @noindent 2667 Once this is done, @samp{make clean} will run the commandsregardless of2487 Once this is done, @samp{make clean} will run the recipe regardless of 2668 2488 whether there is a file named @file{clean}. 2669 2489 … … 2690 2510 makefile will often contain a variable which lists a number of 2691 2511 subdirectories to be built. One way to handle this is with one rule 2692 whose commandis a shell loop over the subdirectories, like this:2512 whose recipe is a shell loop over the subdirectories, like this: 2693 2513 2694 2514 @example … … 2703 2523 @end example 2704 2524 2705 There are a fewproblems with this method, however. First, any error2706 detected in a submake is not noted by this rule, so it will continue to2707 build the rest of the directories even when one fails. This can be2525 There are problems with this method, however. First, any error 2526 detected in a submake is ignored by this rule, so it will continue 2527 to build the rest of the directories even when one fails. This can be 2708 2528 overcome 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. 2529 it will do so even if @code{make} is invoked with the @code{-k} 2530 option, which is unfortunate. Second, and perhaps more importantly, 2531 you cannot take advantage of @code{make}'s ability to build targets in 2532 parallel (@pxref{Parallel, ,Parallel Execution}), since there is only 2533 one rule. 2713 2534 2714 2535 By declaring the subdirectories as phony targets (you must do this as … … 2737 2558 2738 2559 A 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 that2560 is, its recipe will be run every time @code{make} goes to update that 2740 2561 file. As long as a phony target is never a prerequisite of a real 2741 target, the phony target commandswill be executed only when the phony2562 target, the phony target recipe will be executed only when the phony 2742 2563 target is a specified goal (@pxref{Goals, ,Arguments to Specify the 2743 2564 Goals}). … … 2788 2609 2789 2610 @node Force Targets, Empty Targets, Phony Targets, Rules 2790 @section Rules without Commands or Prerequisites2611 @section Rules without Recipes or Prerequisites 2791 2612 @cindex force targets 2792 2613 @cindex targets, force 2793 2614 @cindex @code{FORCE} 2794 @cindex rule, no commandsor prerequisites2795 2796 If a rule has no prerequisites or commands, and the target of the rule2615 @cindex rule, no recipe or prerequisites 2616 2617 If a rule has no prerequisites or recipe, and the target of the rule 2797 2618 is a nonexistent file, then @code{make} imagines this target to have 2798 2619 been updated whenever its rule is run. This implies that all targets 2799 depending on this one will always have their commandsrun.2620 depending on this one will always have their recipe run. 2800 2621 2801 2622 An example will illustrate this: … … 2810 2631 2811 2632 Here 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 name2814 commonly used this way.2633 target @file{clean} that depends on it is forced to run its recipe. 2634 There is nothing special about the name @samp{FORCE}, but that is one 2635 name commonly used this way. 2815 2636 2816 2637 As you can see, using @samp{FORCE} this way has the same results as using … … 2828 2649 2829 2650 The @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.2651 recipes for an action that you request explicitly from time to time. 2831 2652 Unlike a phony target, this target file can really exist; but the file's 2832 2653 contents do not matter, and usually are empty. 2833 2654 2834 2655 The purpose of the empty target file is to record, with its 2835 last-modification time, when the rule's commands werelast executed. It2836 does so because one of the commands i s a @code{touch} command to update the2837 target file.2656 last-modification time, when the rule's recipe was last executed. It 2657 does so because one of the commands in the recipe is a @code{touch} 2658 command to update the target file. 2838 2659 2839 2660 The empty target file should have some prerequisites (otherwise it 2840 2661 doesn't make sense). When you ask to remake the empty target, the 2841 commands areexecuted if any prerequisite is more recent than the target;2662 recipe is executed if any prerequisite is more recent than the target; 2842 2663 in other words, if a prerequisite has changed since the last time you 2843 2664 remade the target. Here is an example: … … 2872 2693 The prerequisites of the special target @code{.PHONY} are considered to 2873 2694 be phony targets. When it is time to consider such a target, 2874 @code{make} will run its commandsunconditionally, regardless of2695 @code{make} will run its recipe unconditionally, regardless of 2875 2696 whether a file with that name exists or what its last-modification 2876 2697 time is. @xref{Phony Targets, ,Phony Targets}. … … 2886 2707 @item .DEFAULT 2887 2708 2888 The commands specified for @code{.DEFAULT} areused for any target for2709 The recipe specified for @code{.DEFAULT} is used for any target for 2889 2710 which no rules are found (either explicit rules or implicit rules). 2890 @xref{Last Resort}. If @code{.DEFAULT} commands arespecified, every2711 @xref{Last Resort}. If a @code{.DEFAULT} recipe is specified, every 2891 2712 file mentioned as a prerequisite, but not as a target in a rule, will have 2892 th ese commandsexecuted on its behalf. @xref{Implicit Rule Search,2713 that recipe executed on its behalf. @xref{Implicit Rule Search, 2893 2714 ,Implicit Rule Search Algorithm}. 2894 2715 … … 2900 2721 The targets which @code{.PRECIOUS} depends on are given the following 2901 2722 special treatment: if @code{make} is killed or interrupted during the 2902 execution of their commands, the target is not deleted.2723 execution of their recipes, the target is not deleted. 2903 2724 @xref{Interrupts, ,Interrupting or Killing @code{make}}. Also, if the 2904 2725 target is an intermediate file, it will not be deleted after it is no … … 2947 2768 If @code{.DELETE_ON_ERROR} is mentioned as a target anywhere in the 2948 2769 makefile, then @code{make} will delete the target of a rule if it has 2949 changed and its commands exitwith a nonzero exit status, just as it2950 does when it receives a signal. @xref{Errors, ,Errors in Commands}.2770 changed and its recipe exits with a nonzero exit status, just as it 2771 does when it receives a signal. @xref{Errors, ,Errors in Recipes}. 2951 2772 2952 2773 @findex .IGNORE … … 2954 2775 2955 2776 If you specify prerequisites for @code{.IGNORE}, then @code{make} will 2956 ignore errors in execution of the commands run for those particular2957 files. The commands for @code{.IGNORE} are not meaningful.2777 ignore errors in execution of the recipe for those particular files. 2778 The recipe for @code{.IGNORE} (if any) is ignored. 2958 2779 2959 2780 If mentioned as a target with no prerequisites, @code{.IGNORE} says to 2960 ignore errors in execution of commands for all files. This usage of2781 ignore errors in execution of recipes for all files. This usage of 2961 2782 @samp{.IGNORE} is supported only for historical compatibility. Since 2962 this affects every commandin the makefile, it is not very useful; we2783 this affects every recipe in the makefile, it is not very useful; we 2963 2784 recommend you use the more selective ways to ignore errors in specific 2964 commands. @xref{Errors, ,Errors in Commands}.2785 recipes. @xref{Errors, ,Errors in Recipes}. 2965 2786 2966 2787 @findex .LOW_RESOLUTION_TIME … … 2969 2790 If you specify prerequisites for @code{.LOW_RESOLUTION_TIME}, 2970 2791 @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: 2792 generate low resolution time stamps. The recipe for the 2793 @code{.LOW_RESOLUTION_TIME} target are ignored. 2794 2795 The high resolution file time stamps of many modern file systems 2796 lessen the chance of @command{make} incorrectly concluding that a file 2797 is up to date. Unfortunately, some hosts do not provide a way to set a 2798 high resolution file time stamp, so commands like @samp{cp -p} that 2799 explicitly set a file's time stamp must discard its subsecond part. 2800 If a file is created by such a command, you should list it as a 2801 prerequisite of @code{.LOW_RESOLUTION_TIME} so that @command{make} 2802 does not mistakenly conclude that the file is out of date. For 2803 example: 2982 2804 2983 2805 @example … … 3004 2826 3005 2827 If you specify prerequisites for @code{.SILENT}, then @code{make} will 3006 not print the commands to remake those particular files before executing3007 them. The commands for @code{.SILENT} are not meaningful.2828 not print the recipe used to remake those particular files before 2829 executing them. The recipe for @code{.SILENT} is ignored. 3008 2830 3009 2831 If mentioned as a target with no prerequisites, @code{.SILENT} says not 3010 to print any commands before executing them. This usage of2832 to print any recipes before executing them. This usage of 3011 2833 @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 commands2834 recommend you use the more selective ways to silence specific recipes. 2835 @xref{Echoing, ,Recipe Echoing}. If you want to silence all recipes 3014 2836 for a particular run of @code{make}, use the @samp{-s} or 3015 2837 @w{@samp{--silent}} option (@pxref{Options Summary}). … … 3030 2852 of @code{make} will be run serially, even if the @samp{-j} option is 3031 2853 given. Any recursively invoked @code{make} command will still run 3032 commands in parallel (unless its makefile also contains this target).2854 recipes in parallel (unless its makefile also contains this target). 3033 2855 Any prerequisites on this target are ignored. 3034 2856 @end table … … 3051 2873 3052 2874 A rule with multiple targets is equivalent to writing many rules, each with 3053 one target, and all identical aside from that. The same commands applyto3054 all the targets, but their effectsmay vary because you can substitute the3055 actual target name into the commandusing @samp{$@@}. The rule contributes2875 one target, and all identical aside from that. The same recipe applies to 2876 all the targets, but its effect may vary because you can substitute the 2877 actual target name into the recipe using @samp{$@@}. The rule contributes 3056 2878 the same prerequisites to all the targets also. 3057 2879 … … 3060 2882 @itemize @bullet 3061 2883 @item 3062 You want just prerequisites, no commands. For example:2884 You want just prerequisites, no recipe. For example: 3063 2885 3064 2886 @example … … 3071 2893 3072 2894 @item 3073 Similar commands work for all the targets. The commands do not need2895 Similar recipes work for all the targets. The recipes do not need 3074 2896 to be absolutely identical, since the automatic variable @samp{$@@} 3075 2897 can be used to substitute the particular target to be remade into the … … 3102 2924 @end itemize 3103 2925 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 can3107 do it with a @dfn{static pattern rule}. 3108 @xref{Static Pattern,,Static Pattern Rules}.2926 Suppose you would like to vary the prerequisites according to the 2927 target, much as the variable @samp{$@@} allows you to vary the recipe. 2928 You cannot do this with multiple targets in an ordinary rule, but you 2929 can do it with a @dfn{static pattern rule}. @xref{Static Pattern, 2930 ,Static Pattern Rules}. 3109 2931 3110 2932 @node Multiple Rules, Static Pattern, Multiple Targets, Rules … … 3118 2940 mentioned in all the rules are merged into one list of prerequisites for 3119 2941 the target. If the target is older than any prerequisite from any rule, 3120 the commands areexecuted.3121 3122 There can only be one set of commands to be executed for a file. If3123 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 is3128 useful to have the same target invoke multiple commands which are2942 the recipe is executed. 2943 2944 There can only be one recipe to be executed for a file. If more than 2945 one rule gives a recipe for the same file, @code{make} uses the last 2946 one given and prints an error message. (As a special case, if the 2947 file's name begins with a dot, no error message is printed. This odd 2948 behavior is only for compatibility with other implementations of 2949 @code{make}@dots{} you should avoid using it). Occasionally it is 2950 useful to have the same target invoke multiple recipes which are 3129 2951 defined in different parts of your makefile; you can use 3130 2952 @dfn{double-colon rules} (@pxref{Double-Colon}) for this. … … 3148 2970 you wish to add the additional prerequisite intermittently. 3149 2971 3150 Another wrinkle is that the additional prerequisites could be specified with3151 a variable that you set with a command argument to @code{make} 3152 (@pxref{Overriding, ,Overriding Variables}). For example,2972 Another wrinkle is that the additional prerequisites could be 2973 specified with a variable that you set with a command line argument to 2974 @code{make} (@pxref{Overriding, ,Overriding Variables}). For example, 3153 2975 3154 2976 @example … … 3164 2986 will not. 3165 2987 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 commands2988 If none of the explicit rules for a target has a recipe, then @code{make} 2989 searches for an applicable implicit rule to find one 3168 2990 @pxref{Implicit Rules, ,Using Implicit Rules}). 3169 2991 … … 3196 3018 @example 3197 3019 @var{targets} @dots{}: @var{target-pattern}: @var{prereq-patterns} @dots{} 3198 @var{ commands}3020 @var{recipe} 3199 3021 @dots{} 3200 3022 @end example … … 3311 3133 3312 3134 An implicit rule @emph{can} apply to any target that matches its pattern, 3313 but it @emph{does} apply only when the target has no commandsotherwise3135 but it @emph{does} apply only when the target has no recipe otherwise 3314 3136 specified, and only when the prerequisites can be found. If more than one 3315 3137 implicit rule appears applicable, only one applies; the choice depends on … … 3319 3141 that you specify in the rule. It cannot apply to any other target and it 3320 3142 invariably does apply to each of the targets specified. If two conflicting 3321 rules apply, and both have commands, that's an error.3143 rules apply, and both have recipes, that's an error. 3322 3144 3323 3145 The static pattern rule can be better than an implicit rule for these … … 3352 3174 When a target appears in multiple rules, all the rules must be the same 3353 3175 type: 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 commands3355 areexecuted if the target is older than any prerequisites of that rule.3356 If there are no prerequisites for that rule, its commands arealways3176 of them is independent of the others. Each double-colon rule's recipe 3177 is executed if the target is older than any prerequisites of that rule. 3178 If there are no prerequisites for that rule, its recipe is always 3357 3179 executed (even if the target already exists). This can result in 3358 3180 executing none, any, or all of the double-colon rules. … … 3364 3186 The double-colon rules for a target are executed in the order they appear 3365 3187 in 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.3188 sense are those where the order of executing the recipes would not matter. 3367 3189 3368 3190 Double-colon rules are somewhat obscure and not often very useful; they … … 3371 3193 cases are rare. 3372 3194 3373 Each double-colon rule should specify commands; if it does not, an3195 Each double-colon rule should specify a recipe; if it does not, an 3374 3196 implicit rule will be used if one applies. 3375 3197 @xref{Implicit Rules, ,Using Implicit Rules}. … … 3516 3338 @xref{How Make Works}. 3517 3339 3518 @node Commands, Using Variables, Rules, Top3519 @chapter Writing the Commands in Rules3520 @cindex commands, how to write3521 @cindex r ule commands3522 @cindex writing r ule commands3523 3524 The commands of a rule consistof one or more shell command lines to3340 @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 3346 The recipe of a rule consists of one or more shell command lines to 3525 3347 be executed, one at a time, in the order they appear. Typically, the 3526 3348 result of executing these commands is that the target of the rule is 3527 3349 brought up to date. 3528 3350 3529 Users use many different shell programs, but commands in makefiles are3351 Users use many different shell programs, but recipes in makefiles are 3530 3352 always interpreted by @file{/bin/sh} unless the makefile specifies 3531 3353 otherwise. @xref{Execution, ,Command Execution}. 3532 3354 3533 3355 @menu 3534 * Command Syntax:: Commandsyntax 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 commandexecution error.3539 * Interrupts:: What happens when a commandis 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. 3540 3362 * 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. 3543 3365 @end menu 3544 3366 3545 @node Command Syntax, Echoing, Commands, Commands3546 @section CommandSyntax3547 @cindex commandsyntax3548 @cindex syntax of commands3367 @node Recipe Syntax, Echoing, Recipes, Recipes 3368 @section Recipe Syntax 3369 @cindex recipe syntax 3370 @cindex syntax of recipe 3549 3371 3550 3372 Makefiles have the unusual property that there are really two distinct 3551 3373 syntaxes 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 3375 to be interpreted by the shell and so they are written using shell 3376 syntax. The @code{make} program does not try to understand shell 3377 syntax: it performs only a very few specific translations on the 3378 content of the recipe before handing it to the shell. 3379 3380 Each line in the recipe must start with a tab (or the first character 3381 in the value of the @code{.CMDPREFIX} variable; @pxref{Special 3382 Variables}), except that the first recipe line may be attached to the 3383 target-and-prerequisites line with a semicolon in between. @emph{Any} 3384 line in the makefile that begins with a tab and appears in a ``rule 3385 context'' (that is, after a rule has been started until another rule 3386 or variable definition) will be considered part of a recipe for that 3387 rule. Blank lines and lines of just comments may appear among the 3388 recipe lines; they are ignored. 3565 3389 3566 3390 Some consequences of these rules include: … … 3569 3393 @item 3570 3394 A blank line that begins with a tab is not blank: it's an empty 3571 command (@pxref{Empty Commands}).3572 3573 @cindex comments, in commands3574 @cindex commands, comments in3575 @cindex @code{#} (comments), in commands3395 recipe (@pxref{Empty Recipes}). 3396 3397 @cindex comments, in recipes 3398 @cindex recipes, comments in 3399 @cindex @code{#} (comments), in recipes 3576 3400 @item 3577 A comment in a command line is not a @code{make} comment; it will be3401 A comment in a recipe is not a @code{make} comment; it will be 3578 3402 passed to the shell as-is. Whether the shell treats it as a comment 3579 3403 or not depends on your shell. … … 3581 3405 @item 3582 3406 A 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. 3407 as the first character on the line, will be considered part of a 3408 recipe, not a @code{make} variable definition, and passed to the 3409 shell. 3585 3410 3586 3411 @item … … 3588 3413 etc. @pxref{Conditional Syntax, ,Syntax of Conditionals}) in a ``rule 3589 3414 context'' 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.3415 line, will be considered part of a recipe and be passed to the shell. 3591 3416 3592 3417 @end itemize 3593 3418 3594 3419 @menu 3595 * Splitting Lines:: Breaking long commandlines 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. 3597 3422 @end menu 3598 3423 3599 @node Splitting Lines, Variables in Commands, Command Syntax, CommandSyntax3600 @subsection Splitting CommandLines3601 @cindex commands, splitting3602 @cindex splitting commands3603 @cindex commands, backslash (@code{\}) in3604 @cindex commands, quoting newlines in3605 @cindex backslash (@code{\}), in commands3606 @cindex @code{\} (backslash), in commands3607 @cindex quoting newline, in commands3608 @cindex newline, quoting, in commands3609 3610 One of the few ways in which @code{make} does interpret command lines3611 ischecking for a backslash just before the newline. As in normal3612 makefile syntax, a single command can be split into multiple lines in3613 the makefile by placing a backslash before each newline. A sequence3614 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 3435 One of the few ways in which @code{make} does interpret recipes is 3436 checking for a backslash just before the newline. As in normal 3437 makefile syntax, a single logical recipe line can be split into 3438 multiple physical lines in the makefile by placing a backslash before 3439 each newline. A sequence of lines like this is considered a single 3440 recipe line, and one instance of the shell will be invoked to run it. 3616 3441 3617 3442 However, in contrast to how they are treated in other places in a 3618 3443 makefile, backslash-newline pairs are @emph{not} removed from the 3619 command. Both the backslash and the newline characters are preserved3444 recipe. Both the backslash and the newline characters are preserved 3620 3445 and 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: 3446 depends on your shell. If the first character of the next line after 3447 the backslash-newline is the recipe prefix character (a tab by 3448 default; @pxref{Special Variables}), then that character (and only 3449 that character) is removed. Whitespace is never added to the recipe. 3450 3451 For example, the recipe for the all target in this makefile: 3626 3452 3627 3453 @example … … 3662 3488 3663 3489 @noindent 3664 will run one shell with a command scriptof:3490 will invoke one shell with a command of: 3665 3491 3666 3492 @example … … 3697 3523 or even be a syntax error. One simple way of handling this is to 3698 3524 place the quoted string, or even the entire command, into a 3699 @code{make} variable then use the variable in the command. In this3525 @code{make} variable then use the variable in the recipe. In this 3700 3526 situation the newline quoting rules for makefiles will be used, and 3701 3527 the backslash-newline will be removed. If we rewrite our example … … 3722 3548 If you like, you can also use target-specific variables 3723 3549 (@pxref{Target-specific, ,Target-specific Variable Values}) to obtain 3724 a tighter correspondence between the variable and the commandthat3550 a tighter correspondence between the variable and the recipe that 3725 3551 uses it. 3726 3552 3727 @node Variables in Commands, , Splitting Lines, CommandSyntax3728 @subsection Using Variables in Commands3729 @cindex variable references in commands3730 @cindex commands, using variables in3731 3732 The other way in which @code{make} processes commands is by expanding3553 @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 3558 The other way in which @code{make} processes recipes is by expanding 3733 3559 any variable references in them (@pxref{Reference,Basics of Variable 3734 3560 References}). This occurs after make has finished reading all the 3735 3561 makefiles 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 and3562 recipes for targets which are not rebuilt are never expanded. 3563 3564 Variable and function references in recipes have identical syntax and 3739 3565 semantics to references elsewhere in the makefile. They also have the 3740 3566 same quoting rules: if you want a dollar sign to appear in your 3741 command, you must double it (@samp{$$}). For shells like the default3567 recipe, you must double it (@samp{$$}). For shells like the default 3742 3568 shell, that use dollar signs to introduce variables, it's important to 3743 3569 keep clear in your mind whether the variable you want to reference is … … 3777 3603 @end example 3778 3604 3779 @node Echoing, Execution, Command Syntax, Commands3780 @section CommandEchoing3781 @cindex echoing of commands3605 @node Echoing, Execution, Recipe Syntax, Recipes 3606 @section Recipe Echoing 3607 @cindex echoing of recipes 3782 3608 @cindex silent operation 3783 @cindex @code{@@} (in commands)3784 @cindex commands, echoing3785 @cindex printing of commands3786 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 3613 Normally @code{make} prints each line of the recipe before it is 3614 executed. We call this @dfn{echoing} because it gives the appearance 3615 that you are typing the lines yourself. 3790 3616 3791 3617 When a line starts with @samp{@@}, the echoing of that line is suppressed. 3792 The @samp{@@} is discarded before the commandis passed to the shell.3618 The @samp{@@} is discarded before the line is passed to the shell. 3793 3619 Typically you would use this for a command whose only effect is to print 3794 3620 something, such as an @code{echo} command to indicate progress through … … 3804 3630 @cindex @code{--recon} 3805 3631 When @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,3632 it only echoes recipes, it won't execute them. @xref{Options Summary, 3807 3633 ,Summary of Options}. In this case and only this case, even the 3808 commands starting with @samp{@@} are printed. This flag is useful for3809 finding out which commands @code{make} thinks are necessary without3634 recipe lines starting with @samp{@@} are printed. This flag is useful for 3635 finding out which recipes @code{make} thinks are necessary without 3810 3636 actually doing them. 3811 3637 … … 3815 3641 @findex .SILENT 3816 3642 The @samp{-s} or @samp{--silent} 3817 flag to @code{make} prevents all echoing, as if all commands3643 flag to @code{make} prevents all echoing, as if all recipes 3818 3644 started with @samp{@@}. A rule in the makefile for the special target 3819 3645 @code{.SILENT} without prerequisites has the same effect … … 3821 3647 @code{.SILENT} is essentially obsolete since @samp{@@} is more flexible.@refill 3822 3648 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 3655 When it is time to execute recipes to update a target, they are 3656 executed by invoking a new subshell for each line of the recipe. (In 3832 3657 practice, @code{make} may take shortcuts that do not affect the 3833 3658 results.) 3834 3659 3835 3660 @cindex @code{cd} (shell command) 3836 @cindex shell variables, setting in commands3837 @cindex commands setting shell variables3661 @cindex shell variables, setting in recipes 3662 @cindex recipes setting shell variables 3838 3663 @strong{Please note:} this implies that setting shell variables and 3839 3664 invoking shell commands such as @code{cd} that set a context local to 3840 each process will not affect the following command lines.@footnote{On3665 each process will not affect the following lines in the recipe.@footnote{On 3841 3666 MS-DOS, the value of current working directory is @strong{global}, so 3842 changing it @emph{will} affect the following commandlines on those3667 changing it @emph{will} affect the following recipe lines on those 3843 3668 systems.} If you want to use @code{cd} to affect the next statement, 3844 put both statements in a single commandline. Then @code{make} will3669 put both statements in a single recipe line. Then @code{make} will 3845 3670 invoke one shell to run the entire line, and the shell will execute 3846 3671 the statements in sequence. For example: … … 3860 3685 @menu 3861 3686 * Choosing the Shell:: How @code{make} chooses the shell used 3862 to run commands.3687 to run recipes. 3863 3688 @end menu 3864 3689 … … 3882 3707 3883 3708 Furthermore, 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 explicitly3887 exp orting @code{SHELL} (@pxref{Variables/Recursion, ,Communicating3888 Variables to a Sub-@code{make}}), forcing it to be passed in the3889 environment to commands.3709 is @emph{not} exported in the environment to recipe lines that 3710 @code{make} invokes. Instead, the value inherited from the user's 3711 environment, if any, is exported. You can override this behavior by 3712 explicitly exporting @code{SHELL} (@pxref{Variables/Recursion, 3713 ,Communicating Variables to a Sub-@code{make}}), forcing it to be 3714 passed in the environment to recipe lines. 3890 3715 3891 3716 @vindex @code{MAKESHELL} @r{(MS-DOS alternative to @code{SHELL})} … … 3962 3787 directory along your @code{PATH}. 3963 3788 3964 @node Parallel, Errors, Execution, Commands3789 @node Parallel, Errors, Execution, Recipes 3965 3790 @section Parallel Execution 3966 @cindex commands, execution in parallel3791 @cindex recipes, execution in parallel 3967 3792 @cindex parallel execution 3968 3793 @cindex execution, in parallel … … 3971 3796 @cindex @code{--jobs} 3972 3797 3973 GNU @code{make} knows how to execute several commands at once.3974 Normally, @code{make} will execute only one commandat a time, waiting3798 GNU @code{make} knows how to execute several recipes at once. 3799 Normally, @code{make} will execute only one recipe at a time, waiting 3975 3800 for it to finish before executing the next. However, the @samp{-j} or 3976 @samp{--jobs} option tells @code{make} to execute many commands3801 @samp{--jobs} option tells @code{make} to execute many recipes 3977 3802 simultaneously. You can inhibit parallelism in a particular makefile 3978 3803 with the @code{.NOTPARALLEL} pseudo-target (@pxref{Special … … 3983 3808 3984 3809 If 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}.3810 recipes to execute at once; this is called the number of @dfn{job slots}. 3986 3811 If there is nothing looking like an integer after the @samp{-j} option, 3987 3812 there is no limit on the number of job slots. The default number of job 3988 3813 slots is one, which means serial execution (one thing at a time). 3989 3814 3990 One unpleasant consequence of running several commands simultaneously is3991 that output generated by the commands appears whenever each command3992 sends it, so messages from different commands may be interspersed.3815 One unpleasant consequence of running several recipes simultaneously is 3816 that output generated by the recipes appears whenever each recipe 3817 sends it, so messages from different recipes may be interspersed. 3993 3818 3994 3819 Another problem is that two processes cannot both take input from the 3995 same device; so to make sure that only one commandtries to take input3820 same device; so to make sure that only one recipe tries to take input 3996 3821 from the terminal at once, @code{make} will invalidate the standard 3997 input streams of all but one running command. This means that3822 input streams of all but one running recipe. This means that 3998 3823 attempting to read from standard input will usually be a fatal error (a 3999 3824 @samp{Broken pipe} signal) for most child processes if there are … … 4002 3827 @cindex standard input 4003 3828 4004 It is unpredictable which commandwill have a valid standard input stream3829 It is unpredictable which recipe will have a valid standard input stream 4005 3830 (which will come from the terminal, or wherever you redirect the standard 4006 input of @code{make}). The first commandrun will always get it first, and4007 the first commandstarted after that one finishes will get it next, and so3831 input of @code{make}). The first recipe run will always get it first, and 3832 the first recipe started after that one finishes will get it next, and so 4008 3833 on. 4009 3834 4010 3835 We 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 commandusing3836 alternative. In the mean time, you should not rely on any recipe using 4012 3837 standard input at all if you are using the parallel execution feature; but 4013 3838 if you are not using this feature, then standard input works normally in 4014 all commands.3839 all recipes. 4015 3840 4016 3841 Finally, handling recursive @code{make} invocations raises issues. For … … 4018 3843 @ref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}. 4019 3844 4020 If a commandfails (is killed by a signal or exits with a nonzero4021 status), and errors are not ignored for that command4022 (@pxref{Errors, ,Errors in Commands}),4023 the remaining commandlines to remake the same target will not be run.4024 If a commandfails and the @samp{-k} or @samp{--keep-going}3845 If a recipe fails (is killed by a signal or exits with a nonzero 3846 status), and errors are not ignored for that recipe 3847 (@pxref{Errors, ,Errors in Recipes}), 3848 the remaining recipe lines to remake the same target will not be run. 3849 If a recipe fails and the @samp{-k} or @samp{--keep-going} 4025 3850 option was not given 4026 3851 (@pxref{Options Summary, ,Summary of Options}), … … 4058 3883 By default, there is no load limit. 4059 3884 4060 @node Errors, Interrupts, Parallel, Commands4061 @section Errors in Commands4062 @cindex errors (in commands)4063 @cindex commands, errors in3885 @node Errors, Interrupts, Parallel, Recipes 3886 @section Errors in Recipes 3887 @cindex errors (in recipes) 3888 @cindex recipes, errors in 4064 3889 @cindex exit status (errors) 4065 3890 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.3891 After each shell invocation returns, @code{make} looks at its exit 3892 status. If the shell completed successfully (the exit status is 3893 zero), the next line in the recipe is executed in a new shell; after 3894 the last line is finished, the rule is finished. 4070 3895 4071 3896 If there is an error (the exit status is nonzero), @code{make} gives up on 4072 3897 the current rule, and perhaps on all rules. 4073 3898 4074 Sometimes the failure of a certain commanddoes not indicate a problem.3899 Sometimes the failure of a certain recipe line does not indicate a problem. 4075 3900 For example, you may use the @code{mkdir} command to ensure that a 4076 3901 directory exists. If the directory already exists, @code{mkdir} will 4077 3902 report an error, but you probably want @code{make} to continue regardless. 4078 3903 4079 @cindex @code{-} (in commands)4080 To ignore errors in a command line, write a @samp{-} at the beginning of4081 the line's text (after the initial tab). The @samp{-} is discarded before 4082 the commandis passed to the shell for execution.3904 @cindex @code{-} (in recipes) 3905 To ignore errors in a recipe line, write a @samp{-} at the beginning 3906 of the line's text (after the initial tab). The @samp{-} is discarded 3907 before the line is passed to the shell for execution. 4083 3908 4084 3909 For example, … … 4093 3918 4094 3919 @noindent 4095 This causes @code{rm} to continue even if it is unable to remove a file. 3920 This causes @code{make} to continue even if @code{rm} is unable to 3921 remove a file. 4096 3922 4097 3923 @cindex @code{-i} … … 4099 3925 @findex .IGNORE 4100 3926 When 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 the3927 flag, errors are ignored in all recipes of all rules. A rule in the 4102 3928 makefile for the special target @code{.IGNORE} has the same effect, if 4103 3929 there are no prerequisites. These ways of ignoring errors are obsolete … … 4107 3933 @samp{-i} flag, @code{make} treats an error return just like success, 4108 3934 except that it prints out a message that tells you the status code 4109 the commandexited with, and says that the error has been ignored.3935 the shell exited with, and says that the error has been ignored. 4110 3936 4111 3937 When an error happens that @code{make} has not been told to ignore, 4112 3938 it implies that the current target cannot be correctly remade, and neither 4113 3939 can any other that depends on it either directly or indirectly. No further 4114 commands will be executed for these targets, since their preconditions3940 recipes will be executed for these targets, since their preconditions 4115 3941 have not been achieved. 4116 3942 … … 4141 3967 @cindex removal of target files 4142 3968 @cindex target, deleting on error 4143 Usually when a commandfails, if it has changed the target file at all,3969 Usually when a recipe line fails, if it has changed the target file at all, 4144 3970 the file is corrupted and cannot be used---or at least it is not 4145 3971 completely updated. Yet the file's time stamp says that it is now up to 4146 3972 date, 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 commandis killed by a3973 file. The situation is just the same as when the shell is killed by a 4148 3974 signal; @pxref{Interrupts}. So generally the right thing to do is to 4149 delete the target file if the commandfails after beginning to change3975 delete the target file if the recipe fails after beginning to change 4150 3976 the file. @code{make} will do this if @code{.DELETE_ON_ERROR} appears 4151 3977 as a target. This is almost always what you want @code{make} to do, but … … 4153 3979 request it. 4154 3980 4155 @node Interrupts, Recursion, Errors, Commands3981 @node Interrupts, Recursion, Errors, Recipes 4156 3982 @section Interrupting or Killing @code{make} 4157 3983 @cindex interrupt … … 4162 3988 @cindex killing (interruption) 4163 3989 4164 If @code{make} gets a fatal signal while a commandis executing, it may4165 delete the target file that the commandwas supposed to update. This is3990 If @code{make} gets a fatal signal while a shell is executing, it may 3991 delete the target file that the recipe was supposed to update. This is 4166 3992 done if the target file's last-modification time has changed since 4167 3993 @code{make} first checked it. … … 4188 4014 times to prevent other sorts of trouble. 4189 4015 4190 @node Recursion, Sequences, Interrupts, Commands4016 @node Recursion, Sequences, Interrupts, Recipes 4191 4017 @section Recursive Use of @code{make} 4192 4018 @cindex recursion … … 4258 4084 4259 4085 The 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 commandexecuted4086 invoked. If this file name was @file{/bin/make}, then the recipe executed 4261 4087 is @samp{cd subdir && /bin/make}. If you use a special version of 4262 4088 @code{make} to run the top-level makefile, the same special version will be … … 4264 4090 @cindex @code{cd} (shell command) 4265 4091 4266 @cindex +, and commands4267 As a special feature, using the variable @code{MAKE} in the commandsof4092 @cindex +, and recipes 4093 As a special feature, using the variable @code{MAKE} in the recipe of 4268 4094 a rule alters the effects of the @samp{-t} (@samp{--touch}), @samp{-n} 4269 4095 (@samp{--just-print}), or @samp{-q} (@w{@samp{--question}}) option. 4270 4096 Using the @code{MAKE} variable has the same effect as using a @samp{+} 4271 character at the beginning of the commandline. @xref{Instead of4272 Execution, ,Instead of Executing the Commands}. This special feature4097 character at the beginning of the recipe line. @xref{Instead of 4098 Execution, ,Instead of Executing the Recipes}. This special feature 4273 4099 is 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 mustuse the @samp{+} token to get these special effects.@refill4100 recipe: it does not apply if the @code{MAKE} variable is referenced 4101 through expansion of another variable. In the latter case you must 4102 use the @samp{+} token to get these special effects.@refill 4277 4103 4278 4104 Consider the command @samp{make -t} in the above example. (The 4279 4105 @samp{-t} option marks targets as up to date without actually running 4280 any commands; see @ref{Instead of Execution}.) Following the usual4106 any recipes; see @ref{Instead of Execution}.) Following the usual 4281 4107 definition of @samp{-t}, a @samp{make -t} command in the example would 4282 4108 create 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 would4284 require executing the command, and @samp{-t} says not to execute 4285 commands.@refill4109 really want it to do is run @samp{@w{cd subdir &&} @w{make -t}}; but 4110 that would require executing the recipe, and @samp{-t} says not to 4111 execute recipes.@refill 4286 4112 @cindex @code{-t}, and recursion 4287 4113 @cindex recursion, and @code{-t} 4288 4114 @cindex @code{--touch}, and recursion 4289 4115 4290 The special feature makes this do what you want: whenever a command4116 The special feature makes this do what you want: whenever a recipe 4291 4117 line of a rule contains the variable @code{MAKE}, the flags @samp{-t}, 4292 @samp{-n} and @samp{-q} do not apply to that line. Commandlines4118 @samp{-n} and @samp{-q} do not apply to that line. Recipe lines 4293 4119 containing @code{MAKE} are executed normally despite the presence of a 4294 flag that causes most commands not to be run. The usual4120 flag that causes most recipes not to be run. The usual 4295 4121 @code{MAKEFLAGS} mechanism passes the flags to the sub-@code{make} 4296 4122 (@pxref{Options/Recursion, ,Communicating Options to a 4297 4123 Sub-@code{make}}), so your request to touch the files, or print the 4298 commands, is propagated to the subsystem.@refill4124 recipes, is propagated to the subsystem.@refill 4299 4125 4300 4126 @node Variables/Recursion, Options/Recursion, MAKE Variable, Recursion … … 4315 4141 ,Summary of Options}).@refill 4316 4142 4317 To pass down, or @dfn{export}, a variable, @code{make} adds the variable4318 and its value to the environment for running each command. The4319 sub-@code{make}, in turn, uses the environment to initialize its table 4320 of variable values. @xref{Environment, ,Variables from the 4321 Environment}.4143 To pass down, or @dfn{export}, a variable, @code{make} adds the 4144 variable and its value to the environment for running each line of the 4145 recipe. The sub-@code{make}, in turn, uses the environment to 4146 initialize its table of variable values. @xref{Environment, 4147 ,Variables from the Environment}. 4322 4148 4323 4149 Except by explicit request, @code{make} exports a variable only if it … … 4454 4280 by itself earlier (in an included makefile, perhaps). You 4455 4281 @strong{cannot} use @code{export} and @code{unexport} by themselves to 4456 have variables exported for some commands and not for others. The last4282 have variables exported for some recipes and not for others. The last 4457 4283 @code{export} or @code{unexport} directive that appears by itself 4458 4284 determines the behavior for the entire run of @code{make}.@refill … … 4465 4291 @samp{0} for the top-level @code{make}; @samp{1} for a sub-@code{make}, 4466 4292 @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.@refill4293 happens when @code{make} sets up the environment for a recipe.@refill 4468 4294 4469 4295 The main use of @code{MAKELEVEL} is to test it in a conditional … … 4534 4360 ensure that there are only @samp{N} jobs running at the same time 4535 4361 between 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}) 4537 4363 doesn't count against the total jobs (otherwise we could get @samp{N} 4538 4364 sub-@code{make}s running and have no slots left over for any real work!) … … 4670 4496 disable it. 4671 4497 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 4674 4502 @cindex sequences of commands 4675 4503 @cindex commands, sequences of 4676 4504 4677 When the same sequence of commands is useful in making various targets, you4678 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:4505 When the same sequence of commands is useful in making various 4506 targets, you can define it as a canned sequence with the @code{define} 4507 directive, and refer to the canned sequence from the recipes for those 4508 targets. The canned sequence is actually a variable, so the name must 4509 not conflict with other variable names. 4510 4511 Here is an example of defining a canned recipes: 4684 4512 4685 4513 @example … … 4706 4534 rule's target file name. 4707 4535 4708 To use the canned sequence, substitute the variable into the commandsof a4536 To use the canned sequence, substitute the variable into the recipe of a 4709 4537 rule. You can substitute it like any other variable 4710 4538 (@pxref{Reference, ,Basics of Variable References}). … … 4730 4558 @cindex -, and @code{define} 4731 4559 @cindex +, and @code{define} 4732 In commandexecution, each line of a canned sequence is treated just as4560 In recipe execution, each line of a canned sequence is treated just as 4733 4561 if the line appeared on its own in the rule, preceded by a tab. In 4734 4562 particular, @code{make} invokes a separate subshell for each line. You 4735 4563 can use the special prefix characters that affect command lines 4736 4564 (@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}. 4738 4566 For example, using this canned sequence: 4739 4567 … … 4748 4576 @noindent 4749 4577 @code{make} will not echo the first line, the @code{echo} command. 4750 But it @emph{will} echo the following two commandlines.4751 4752 On the other hand, prefix characters on the commandline that refers to4578 But it @emph{will} echo the following two recipe lines. 4579 4580 On the other hand, prefix characters on the recipe line that refers to 4753 4581 a canned sequence apply to every line in the sequence. So the rule: 4754 4582 … … 4759 4587 4760 4588 @noindent 4761 does not echo @emph{any} commands.4762 (@xref{Echoing, , CommandEchoing}, for a full explanation of @samp{@@}.)4763 4764 @node Empty Commands, , Sequences, Commands4765 @section Using Empty Commands4766 @cindex empty commands4767 @cindex commands, empty4768 4769 It is sometimes useful to define commands which do nothing. This is done4770 simply by giving a commandthat consists of nothing but whitespace. For4589 does 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 4597 It is sometimes useful to define recipes which do nothing. This is done 4598 simply by giving a recipe that consists of nothing but whitespace. For 4771 4599 example: 4772 4600 … … 4776 4604 4777 4605 @noindent 4778 defines an empty command string for @file{target}. You could also use a4779 line beginning with a tab character to define an empty command string,4606 defines an empty recipe for @file{target}. You could also use a line 4607 beginning with a recipe prefix character to define an empty recipe, 4780 4608 but this would be confusing because such a line looks empty. 4781 4609 4782 @findex .DEFAULT@r{, and empty commands}4783 You may be wondering why you would want to define a command stringthat4610 @findex .DEFAULT@r{, and empty recipes} 4611 You may be wondering why you would want to define a recipe that 4784 4612 does nothing. The only reason this is useful is to prevent a target 4785 from getting implicit commands (from implicit rules or the4613 from getting implicit recipes (from implicit rules or the 4786 4614 @code{.DEFAULT} special target; @pxref{Implicit Rules} and 4787 4615 @pxref{Last Resort, ,Defining Last-Resort Default Rules}).@refill … … 4797 4625 @end ignore 4798 4626 4799 You may be inclined to define empty command strings for targets that are4627 You may be inclined to define empty recipes for targets that are 4800 4628 not actual files, but only exist so that their prerequisites can be 4801 4629 remade. However, this is not the best way to do that, because the … … 4803 4631 @xref{Phony Targets, ,Phony Targets}, for a better way to do this. 4804 4632 4805 @node Using Variables, Conditionals, Commands, Top4633 @node Using Variables, Conditionals, Recipes, Top 4806 4634 @chapter How to Use Variables 4807 4635 @cindex variable … … 4812 4640 A @dfn{variable} is a name defined in a makefile to represent a string 4813 4641 of text, called the variable's @dfn{value}. These values are 4814 substituted by explicit request into targets, prerequisites, commands,4642 substituted by explicit request into targets, prerequisites, recipes, 4815 4643 and other parts of the makefile. (In some other versions of @code{make}, 4816 4644 variables are called @dfn{macros}.) … … 4818 4646 4819 4647 Variables and functions in all parts of a makefile are expanded when 4820 read, except for the shell commands in rules, the right-hand sides of4821 variable definitions using @samp{=}, and the bodies of variable 4822 definitionsusing the @code{define} directive.@refill4648 read, except for in recipes, the right-hand sides of variable 4649 definitions using @samp{=}, and the bodies of variable definitions 4650 using the @code{define} directive.@refill 4823 4651 4824 4652 Variables can represent lists of file names, options to pass to compilers, … … 4864 4692 * Pattern-specific:: Target-specific variable values can be applied 4865 4693 to a group of targets that match a pattern. 4694 * Special Variables:: Variables with special meaning or behavior. 4866 4695 @end menu 4867 4696 … … 4877 4706 @samp{$@{foo@}} is a valid reference to the variable @code{foo}. This 4878 4707 special 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.4708 the effect of a single dollar sign in a file name or recipe. 4880 4709 4881 4710 Variable references can be used in any context: targets, prerequisites, 4882 commands, most directives, and new variable values. Here is an4711 recipes, most directives, and new variable values. Here is an 4883 4712 example of a common case, where a variable holds the names of all the 4884 4713 object files in a program: … … 4962 4791 4963 4792 @noindent 4964 will do what was intended: when @samp{CFLAGS} is expanded in a command,4793 will do what was intended: when @samp{CFLAGS} is expanded in a recipe, 4965 4794 it will expand to @samp{-Ifoo -Ibar -O}. A major disadvantage is that you 4966 4795 cannot append something on the end of a variable, as in … … 5038 4867 @noindent 5039 4868 An advantage of this use of @samp{:=} is that a typical 5040 `descend into a directory' commandthen looks like this:4869 `descend into a directory' recipe then looks like this: 5041 4870 5042 4871 @example … … 5686 5515 You may nest @code{define} directives: @code{make} will keep track of 5687 5516 nested directives and report an error if they are not all properly 5688 closed with @code{endef}. Note that lines beginning with t ab5689 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 beconsidered @code{make} operators.5517 closed with @code{endef}. Note that lines beginning with the recipe 5518 prefix character are considered part of a recipe, so any @code{define} 5519 or @code{endef} strings appearing on such a line will not be 5520 considered @code{make} operators. 5692 5521 5693 5522 @example … … 5704 5533 5705 5534 @need 800 5706 When used in a command script, the previous example is functionally5707 equivalentto this:5535 When used in a recipe, the previous example is functionally equivalent 5536 to this: 5708 5537 5709 5538 @example … … 5715 5544 shell commands. However, note that using two separate lines means 5716 5545 @code{make} will invoke the shell twice, running an independent subshell 5717 for each line. @xref{Execution, , CommandExecution}.5546 for each line. @xref{Execution, ,Recipe Execution}. 5718 5547 5719 5548 If you want variable definitions made with @code{define} to take … … 5752 5581 and therefore are not affected by the value in the environment.) 5753 5582 5754 When @code{make} runs a command script, variables defined in the5755 makefile are placed into the environment of that command. This allows5583 When @code{make} runs a recipe, variables defined in the 5584 makefile are placed into the environment of each shell. This allows 5756 5585 you to pass values to sub-@code{make} invocations (@pxref{Recursion, 5757 5586 ,Recursive Use of @code{make}}). By default, only variables that came … … 5789 5618 based on the target that @code{make} is currently building. As with 5790 5619 automatic variables, these values are only available within the context 5791 of a target's command script(and in other target-specific assignments).5620 of a target's recipe (and in other target-specific assignments). 5792 5621 5793 5622 Set a target-specific variable value like this: … … 5824 5653 5825 5654 Target-specific variables have the same priority as any other makefile 5826 variable. Variables provided on the command -line (and in the5655 variable. Variables provided on the command line (and in the 5827 5656 environment if the @samp{-e} option is in force) will take precedence. 5828 5657 Specifying the @code{override} directive will allow the target-specific … … 5842 5671 5843 5672 @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. 5673 will set @code{CFLAGS} to @samp{-g} in the recipe for @file{prog}, but 5674 it 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 5676 create their prerequisites. 5849 5677 5850 5678 Be aware that a given prerequisite will only be built once per … … 5856 5684 ignore the target-specific values from any other targets. 5857 5685 5858 @node Pattern-specific, 5686 @node Pattern-specific, Special Variables, Target-specific, Using Variables 5859 5687 @section Pattern-specific Variable Values 5860 5688 @cindex pattern-specific variables … … 5889 5717 values, multiple @var{pattern} values create a pattern-specific variable 5890 5718 value for each pattern individually. The @var{variable-assignment} can 5891 be any valid form of assignment. Any command -line variable setting will5719 be any valid form of assignment. Any command line variable setting will 5892 5720 take precedence, unless @code{override} is specified. 5893 5721 … … 5902 5730 matching the pattern @code{%.o}. 5903 5731 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 5738 GNU @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 5746 Contains the name of each makefile that is parsed by @code{make}, in 5747 the order in which it was parsed. The name is appended just 5748 before @code{make} begins to parse the makefile. Thus, if the first 5749 thing a makefile does is examine the last word in this variable, it 5750 will be the name of the current makefile. Once the current makefile 5751 has used @code{include}, however, the last word will be the 5752 just-included makefile. 5753 5754 If a makefile named @code{Makefile} has this content: 5755 5756 @example 5757 @group 5758 name1 := $(lastword $(MAKEFILE_LIST)) 5759 5760 include inc.mk 5761 5762 name2 := $(lastword $(MAKEFILE_LIST)) 5763 5764 all: 5765 @@echo name1 = $(name1) 5766 @@echo name2 = $(name2) 5767 @end group 5768 @end example 5769 5770 @noindent 5771 then you would expect to see this output: 5772 5773 @example 5774 @group 5775 name1 = Makefile 5776 name2 = inc.mk 5777 @end group 5778 @end example 5779 5780 @vindex .DEFAULT_GOAL @r{(define default goal)} 5781 @item .DEFAULT_GOAL 5782 Sets the default goal to be used if no targets were specified on the 5783 command line (@pxref{Goals, , Arguments to Specify the Goals}). The 5784 @code{.DEFAULT_GOAL} variable allows you to discover the current 5785 default goal, restart the default goal selection algorithm by clearing 5786 its value, or to explicitly set the default goal. The following 5787 example illustrates these cases: 5788 5789 @example 5790 @group 5791 # Query the default goal. 5792 ifeq ($(.DEFAULT_GOAL),) 5793 $(warning no default goal is set) 5794 endif 5795 5796 .PHONY: foo 5797 foo: ; @@echo $@@ 5798 5799 $(warning default goal is $(.DEFAULT_GOAL)) 5800 5801 # Reset the default goal. 5802 .DEFAULT_GOAL := 5803 5804 .PHONY: bar 5805 bar: ; @@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 5814 This makefile prints: 5815 5816 @example 5817 @group 5818 no default goal is set 5819 default goal is foo 5820 default goal is bar 5821 foo 5822 @end group 5823 @end example 5824 5825 Note that assigning more than one target name to @code{.DEFAULT_GOAL} is 5826 illegal and will result in an error. 5827 5828 @vindex MAKE_RESTARTS @r{(number of times @code{make} has restarted)} 5829 @item MAKE_RESTARTS 5830 This variable is set only if this instance of @code{make} has 5831 restarted (@pxref{Remaking Makefiles, , How Makefiles Are Remade}): it 5832 will contain the number of times this instance has restarted. Note 5833 this is not the same as recursion (counted by the @code{MAKELEVEL} 5834 variable). You should not set, modify, or export this variable. 5835 5836 @vindex .CMDPREFIX @r{(change the recipe prefix character)} 5837 @item .CMDPREFIX 5838 The first character of the value of this variable is used as the 5839 character make assumes is introducing a recipe line. If the variable 5840 is empty (as it is by default) that character is the standard tab 5841 character. For example, this is a valid makefile: 5842 5843 @example 5844 @group 5845 .CMDPREFIX = > 5846 all: 5847 > @@echo Hello, world 5848 @end group 5849 @end example 5850 5851 The value of @code{.CMDPREFIX} can be changed multiple times; once set 5852 it stays in effect for all rules parsed until it is modified. 5853 5854 @vindex .VARIABLES @r{(list of variables)} 5855 @item .VARIABLES 5856 Expands to a list of the @emph{names} of all global variables defined 5857 so far. This includes variables which have empty values, as well as 5858 built-in variables (@pxref{Implicit Variables, , Variables Used by 5859 Implicit Rules}), but does not include any variables which are only 5860 defined in a target-specific context. Note that any value you assign 5861 to this variable will be ignored; it will always return its special 5862 value. 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 5876 Expands 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 5882 Supports @code{ar} (archive) files using special filename syntax. 5883 @xref{Archives, ,Using @code{make} to Update Archive Files}. 5884 5885 @item check-symlink 5886 Supports the @code{-L} (@code{--check-symlink-times}) flag. 5887 @xref{Options Summary, ,Summary of Options}. 5888 5889 @item else-if 5890 Supports ``else if'' non-nested conditionals. @xref{Conditional 5891 Syntax, ,Syntax of Conditionals}. 5892 5893 @item jobserver 5894 Supports ``job server'' enhanced parallel builds. @xref{Parallel, 5895 ,Parallel Execution}. 5896 5897 @item second-expansion 5898 Supports secondary expansion of prerequisite lists. 5899 5900 @item order-only 5901 Supports order-only prerequisites. @xref{Prerequisite Types, ,Types 5902 of Prerequisites}. 5903 5904 @item target-specific 5905 Supports 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 5912 Expands to a list of directories that @code{make} searches for 5913 included makefiles (@pxref{Include, , Including Other Makefiles}). 5914 5915 @end table 5916 5904 5917 @node Conditionals, Functions, Using Variables, Top 5905 5918 @chapter Conditional Parts of Makefiles 5906 5919 5907 5920 @cindex conditionals 5908 A @dfn{conditional} causes part of a makefile to be obeyed or ignored5909 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 co mmands at the time of execution.@refill5921 A @dfn{conditional} directive causes part of a makefile to be obeyed 5922 or ignored depending on the values of variables. Conditionals can 5923 compare the value of one variable to another, or the value of a 5924 variable to a constant string. Conditionals control what @code{make} 5925 actually ``sees'' in the makefile, so they @emph{cannot} be used to 5926 control recipes at the time of execution.@refill 5914 5927 5915 5928 @menu … … 5922 5935 @section Example of a Conditional 5923 5936 5924 The following example of a conditional tells @code{make} to use one set5925 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 which5937 The following example of a conditional tells @code{make} to use one 5938 set of libraries if the @code{CC} variable is @samp{gcc}, and a 5939 different set of libraries otherwise. It works by controlling which 5940 of 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 5929 5942 compiler is used but also which libraries are linked. 5930 5943 … … 6153 6166 @end table 6154 6167 6155 Extra spaces are allowed and ignored at the beginning of the conditional6156 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.6168 Extra spaces are allowed and ignored at the beginning of the 6169 conditional directive line, but a tab is not allowed. (If the line 6170 begins with a tab, it will be considered part of a recipe for a rule.) 6171 Aside from this, extra spaces or tabs may be inserted with no effect 6172 anywhere except within the directive name or within an argument. A 6173 comment starting with @samp{#} may appear at the end of the line. 6161 6174 6162 6175 The other two directives that play a part in a conditional are @code{else} … … 6175 6188 @code{make} evaluates conditionals when it reads a makefile. 6176 6189 Consequently, you cannot use automatic variables in the tests of 6177 conditionals because they are not defined until commands are run6190 conditionals because they are not defined until recipes are run 6178 6191 (@pxref{Automatic Variables}). 6179 6192 … … 6212 6225 6213 6226 @noindent 6214 The @samp{+} prefix marks those command lines as ``recursive'' so6215 th at they will be executed despite use of the @samp{-t} flag.6227 The @samp{+} prefix marks those recipe lines as ``recursive'' so that 6228 they will be executed despite use of the @samp{-t} flag. 6216 6229 @xref{Recursion, ,Recursive Use of @code{make}}. 6217 6230 … … 6220 6233 @cindex functions 6221 6234 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 6236 compute the files to operate on or the commands to use in recipes. 6237 You use a function in a @dfn{function call}, where you give the name 6238 of the function and some text (the @dfn{arguments}) for the function 6239 to operate on. The result of the function's processing is substituted 6240 into the makefile at the point of the call, just as a variable might 6241 be substituted. 6228 6242 6229 6243 @menu … … 7238 7252 @item automatic 7239 7253 7240 if @var{variable} is an automatic variable defined for the 7241 execution of the commands for each rule 7242 (@pxref{Automatic Variables}). 7254 if @var{variable} is an automatic variable defined for the execution 7255 of the recipe for each rule (@pxref{Automatic Variables}). 7243 7256 @end table 7244 7257 … … 7330 7343 @section The @code{shell} Function 7331 7344 @findex shell 7332 @cindex command s,expansion7345 @cindex command expansion 7333 7346 @cindex backquotes 7334 7347 @cindex shell command, function for … … 7389 7402 @cindex error, stopping on 7390 7403 @cindex stopping make 7391 Generates a fatal error where the message is @var{text}. Note that the7392 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 variable7394 assignment, it won't be evaluated until later. The @var{text} will be7395 expanded before the error is generated.7404 Generates a fatal error where the message is @var{text}. Note that 7405 the error is generated whenever this function is evaluated. So, if 7406 you put it inside a recipe or on the right side of a recursive 7407 variable assignment, it won't be evaluated until later. The 7408 @var{text} will be expanded before the error is generated. 7396 7409 7397 7410 For example, … … 7463 7476 The exit status is one if you use the @samp{-q} flag and @code{make} 7464 7477 determines 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}. 7466 7479 @end table 7467 7480 … … 7471 7484 parts of the makefile to use. 7472 7485 * Instead of Execution:: How to use mode flags to specify what 7473 kind of thing to do with the commands7486 kind of thing to do with the recipes 7474 7487 in the makefile other than simply 7475 7488 execute them. … … 7518 7531 (@pxref{Special Variables, , Other Special Variables}). 7519 7532 7520 You can also specify a different goal or goals with command -line7533 You can also specify a different goal or goals with command line 7521 7534 arguments to @code{make}. Use the name of the goal as an argument. 7522 7535 If you specify several goals, @code{make} processes each of them in … … 7568 7581 a rule in the makefile but is not a prerequisite of the default goal. 7569 7582 7570 Another use of specifying a goal is to run the commandsassociated with7583 Another use of specifying a goal is to run the recipe associated with 7571 7584 a phony target (@pxref{Phony Targets}) or empty target (@pxref{Empty 7572 7585 Targets, ,Empty Target Files to Record Events}). Many makefiles contain … … 7640 7653 7641 7654 @node Instead of Execution, Avoiding Compilation, Goals, Running 7642 @section Instead of Executing the Commands7655 @section Instead of Executing the Recipes 7643 7656 @cindex execution, instead of 7644 @cindex commands, instead of executing7657 @cindex recipes, instead of executing 7645 7658 7646 7659 The makefile tells @code{make} how to tell whether a target is up to date, … … 7659 7672 @cindex @code{-n} 7660 7673 7661 ``No-op''. The activity is to print what commandswould be used to make7662 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 7675 the targets up to date, but not actually execute it. 7663 7676 7664 7677 @item -t … … 7680 7693 7681 7694 ``Question''. The activity is to find out silently whether the targets 7682 are up to date already; but execute no commandsin either case. In other7695 are up to date already; but execute no recipe in either case. In other 7683 7696 words, neither compilation nor output will occur. 7684 7697 … … 7701 7714 @end table 7702 7715 7703 With the @samp{-n} flag, @code{make} prints the commandsthat it would7704 normally execute but does not execute them.7705 7706 With the @samp{-t} flag, @code{make} ignores the commands in the rules7716 With the @samp{-n} flag, @code{make} prints the recipe that it would 7717 normally execute but does not execute it. 7718 7719 With the @samp{-t} flag, @code{make} ignores the recipes in the rules 7707 7720 and uses (in effect) the command @code{touch} for each target that needs to 7708 7721 be remade. The @code{touch} command is also printed, unless @samp{-s} or … … 7711 7724 7712 7725 With 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 the7726 recipes, but the exit status code it returns is zero if and only if the 7714 7727 targets to be considered are already up to date. If the exit status is 7715 7728 one, then some updating needs to be done. If @code{make} encounters an … … 7720 7733 invocation of @code{make}. 7721 7734 7722 @cindex +, and commandexecution7723 The @samp{-n}, @samp{-t}, and @samp{-q} options do not affect command7735 @cindex +, and recipe execution 7736 The @samp{-n}, @samp{-t}, and @samp{-q} options do not affect recipe 7724 7737 lines that begin with @samp{+} characters or contain the strings 7725 7738 @samp{$(MAKE)} or @samp{$@{MAKE@}}. Note that only the line containing … … 7738 7751 @item 7739 7752 Without the @samp{-n} or @samp{-q} flag, when @code{make} is actually 7740 executing commands, the @samp{-W} flag can direct @code{make} to act7741 as if some files had been modified, without actually modifying the 7742 f iles.@refill7753 executing recipes, the @samp{-W} flag can direct @code{make} to act as 7754 if some files had been modified, without actually running the recipes 7755 for those files.@refill 7743 7756 @end itemize 7744 7757 … … 7766 7779 If you anticipate the problem before changing the header file, you can 7767 7780 use 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 by7781 recipes in the rules, but rather to mark the target up to date by 7769 7782 changing its last-modification date. You would follow this procedure: 7770 7783 … … 7817 7830 The most common way to use this facility is to pass extra flags to 7818 7831 compilers. For example, in a properly written makefile, the variable 7819 @code{CFLAGS} is included in each commandthat runs the C compiler, so a7832 @code{CFLAGS} is included in each recipe that runs the C compiler, so a 7820 7833 file @file{foo.c} would be compiled something like this: 7821 7834 … … 7847 7860 makefile works by changing the variables. 7848 7861 7849 When you override a variable with a command argument, you can define either7850 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.7862 When you override a variable with a command line argument, you can 7863 define either a recursively-expanded variable or a simply-expanded 7864 variable. The examples shown above make a recursively-expanded 7865 variable; to make a simply-expanded variable, write @samp{:=} instead 7866 of @samp{=}. But, unless you want to include a variable reference or 7867 function call in the @emph{value} that you specify, it makes no 7868 difference which kind of variable you create. 7856 7869 7857 7870 There is one way that the makefile can change a variable that you have … … 7866 7879 7867 7880 Normally, when an error happens in executing a shell command, @code{make} 7868 gives up immediately, returning a nonzero status. No further commands are7881 gives up immediately, returning a nonzero status. No further recipes are 7869 7882 executed for any target. The error implies that the goal cannot be 7870 7883 correctly remade, and @code{make} reports this as soon as it knows. … … 8015 8028 @itemx --ignore-errors 8016 8029 @cindex @code{--ignore-errors} 8017 Ignore all errors in commands executed to remake files.8018 @xref{Errors, ,Errors in Commands}.8030 Ignore all errors in recipes executed to remake files. 8031 @xref{Errors, ,Errors in Recipes}. 8019 8032 8020 8033 @item -I @var{dir} … … 8031 8044 @itemx --jobs[=@var{jobs}] 8032 8045 @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. 8046 Specifies the number of recipes (jobs) to run simultaneously. With no 8047 argument, @code{make} runs as many recipes simultaneously as possible. 8048 If there is more than one @samp{-j} option, the last one is effective. 8049 @xref{Parallel, ,Parallel Execution}, for more information on how 8050 recipes are run. Note that this option is ignored on MS-DOS. 8039 8051 8040 8052 @item -k … … 8053 8065 @itemx --max-load[=@var{load}] 8054 8066 @cindex @code{--max-load} 8055 Specifies that no new jobs (commands) should be started if there are8056 other jobs running and the load average is at least @var{load} (a8067 Specifies that no new recipes should be started if there are other 8068 recipes running and the load average is at least @var{load} (a 8057 8069 floating-point number). With no argument, removes a previous load 8058 8070 limit. @xref{Parallel, ,Parallel Execution}. … … 8078 8090 @c Extra blank line here makes the table look better. 8079 8091 8080 Print the commands that would be executed, but do not execute them.8081 @xref{Instead of Execution, ,Instead of Executing the Commands}.8092 Print the recipe that would be executed, but do not execute it. 8093 @xref{Instead of Execution, ,Instead of Executing the Recipes}. 8082 8094 8083 8095 @item -o @var{file} … … 8100 8112 @cindex predefined rules and variables, printing 8101 8113 Print 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. 8114 reading the makefiles; then execute as usual or as otherwise 8115 specified. This also prints the version information given by the 8116 @samp{-v} switch (see below). To print the data base without trying 8117 to remake any files, use @w{@samp{make -qp}}. To print the data base 8118 of predefined rules and variables, use @w{@samp{make -p -f /dev/null}}. 8119 The data base output contains filename and linenumber information for 8120 recipe and variable definitions, so it can be a useful debugging tool 8121 in complex environments. 8109 8122 8110 8123 @item -q … … 8112 8125 @itemx --question 8113 8126 @cindex @code{--question} 8114 ``Question mode''. Do not run any commands, or print anything; just8127 ``Question mode''. Do not run any recipes, or print anything; just 8115 8128 return an exit status that is zero if the specified targets are already 8116 8129 up to date, one if any remaking is required, or two if an error is 8117 8130 encountered. @xref{Instead of Execution, ,Instead of Executing the 8118 Commands}.@refill8131 Recipes}.@refill 8119 8132 8120 8133 @item -r … … 8151 8164 @c Extra blank line here makes the table look better. 8152 8165 8153 Silent operation; do not print the commands as they are executed.8154 @xref{Echoing, , CommandEchoing}.8166 Silent operation; do not print the recipes as they are executed. 8167 @xref{Echoing, ,Recipe Echoing}. 8155 8168 8156 8169 @item -S … … 8175 8188 8176 8189 Touch files (mark them up to date without really changing them) 8177 instead of running their commands. This is used to pretend that the8178 commands were done, in order to fool future invocations of8179 @code{make}. @xref{Instead of Execution, ,Instead of Executing the Commands}.8190 instead of running their recipes. This is used to pretend that the 8191 recipes were done, in order to fool future invocations of 8192 @code{make}. @xref{Instead of Execution, ,Instead of Executing the Recipes}. 8180 8193 8181 8194 @item -v … … 8218 8231 @code{make}, except that the modification time is changed only in the 8219 8232 imagination of @code{make}. 8220 @xref{Instead of Execution, ,Instead of Executing the Commands}.8233 @xref{Instead of Execution, ,Instead of Executing the Recipes}. 8221 8234 8222 8235 @item --warn-undefined-variables … … 8252 8265 @end iftex 8253 8266 8254 The built-in implicit rules use several variables in their commands so8267 The built-in implicit rules use several variables in their recipes so 8255 8268 that, by changing the values of the variables, you can change the way the 8256 8269 implicit rule works. For example, the variable @code{CFLAGS} controls the … … 8274 8287 @menu 8275 8288 * 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. 8277 8290 * Catalogue of Rules:: A list of built-in implicit rules. 8278 8291 * Implicit Variables:: How to change what predefined rules do. 8279 8292 * Chained Rules:: How to use a chain of implicit rules. 8280 8293 * Pattern Rules:: How to define new implicit rules. 8281 * Last Resort:: How to define commands for rules which8294 * Last Resort:: How to define recipes for rules which 8282 8295 cannot find any. 8283 8296 * Suffix Rules:: The old-fashioned style of implicit rule. … … 8291 8304 @cindex rule, implicit, how to use 8292 8305 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.8306 To allow @code{make} to find a customary method for updating a target 8307 file, all you have to do is refrain from specifying recipes yourself. 8308 Either write a rule with no recipe, or don't write a rule at all. 8309 Then @code{make} will figure out which implicit rule to use based on 8310 which kind of source file exists or can be made. 8298 8311 8299 8312 For example, suppose the makefile looks like this: … … 8309 8322 This happens whether or not the file @file{foo.o} currently exists. 8310 8323 8311 If an implicit rule is found, it can supply both commandsand one or8324 If an implicit rule is found, it can supply both a recipe and one or 8312 8325 more prerequisites (the source files). You would want to write a rule 8313 for @file{foo.o} with no command linesif you need to specify additional8326 for @file{foo.o} with no recipe if you need to specify additional 8314 8327 prerequisites, such as header files, that the implicit rule cannot 8315 8328 supply. … … 8338 8351 8339 8352 In 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 mentioned8353 for each double-colon rule, that has no recipe. A file that is mentioned 8341 8354 only as a prerequisite is considered a target whose rule specifies nothing, 8342 8355 so implicit rule search happens for it. @xref{Implicit Rule Search, ,Implicit Rule Search Algorithm}, for the … … 8361 8374 8362 8375 If you do not want an implicit rule to be used for a target that has no 8363 commands, you can give that target empty commandsby writing a semicolon8364 (@pxref{Empty Commands, ,Defining Empty Commands}).8376 recipe, you can give that target an empty recipe by writing a semicolon 8377 (@pxref{Empty Recipes, ,Defining Empty Recipes}). 8365 8378 8366 8379 @node Catalogue of Rules, Implicit Variables, Using Implicit, Implicit Rules … … 8408 8421 @pindex .c 8409 8422 @file{@var{n}.o} is made automatically from @file{@var{n}.c} with 8410 a commandof the form @samp{$(CC) -c $(CPPFLAGS) $(CFLAGS)}.@refill8423 a recipe of the form @samp{$(CC) -c $(CPPFLAGS) $(CFLAGS)}.@refill 8411 8424 8412 8425 @item Compiling C++ programs … … 8417 8430 @pindex .C 8418 8431 @file{@var{n}.o} is made automatically from @file{@var{n}.cc}, 8419 @file{@var{n}.cpp}, or @file{@var{n}.C} with a commandof the form8432 @file{@var{n}.cpp}, or @file{@var{n}.C} with a recipe of the form 8420 8433 @samp{$(CXX) -c $(CPPFLAGS) $(CXXFLAGS)}. We encourage you to use the 8421 8434 suffix @samp{.cc} for C++ source files instead of @samp{.C}.@refill … … 8426 8439 @pindex .p 8427 8440 @file{@var{n}.o} is made automatically from @file{@var{n}.p} 8428 with the command@samp{$(PC) -c $(PFLAGS)}.@refill8441 with the recipe @samp{$(PC) -c $(PFLAGS)}.@refill 8429 8442 8430 8443 @item Compiling Fortran and Ratfor programs … … 8437 8450 @file{@var{n}.o} is made automatically from @file{@var{n}.r}, 8438 8451 @file{@var{n}.F} or @file{@var{n}.f} by running the 8439 Fortran compiler. The precise commandused is as follows:@refill8452 Fortran compiler. The precise recipe used is as follows:@refill 8440 8453 8441 8454 @table @samp … … 8452 8465 @file{@var{n}.F}. This rule runs just the preprocessor to convert a 8453 8466 Ratfor or preprocessable Fortran program into a strict Fortran 8454 program. The precise commandused is as follows:@refill8467 program. The precise recipe used is as follows:@refill 8455 8468 8456 8469 @table @samp … … 8467 8480 @pindex .def 8468 8481 @pindex .mod 8469 @file{@var{n}.sym} is made from @file{@var{n}.def} with a command8482 @file{@var{n}.sym} is made from @file{@var{n}.def} with a recipe 8470 8483 of the form @samp{$(M2C) $(M2FLAGS) $(DEFFLAGS)}. @file{@var{n}.o} 8471 8484 is made from @file{@var{n}.mod}; the form is: … … 8478 8491 @pindex .s 8479 8492 @file{@var{n}.o} is made automatically from @file{@var{n}.s} by 8480 running the assembler, @code{as}. The precise commandis8493 running the assembler, @code{as}. The precise recipe is 8481 8494 @samp{$(AS) $(ASFLAGS)}.@refill 8482 8495 8483 8496 @pindex .S 8484 8497 @file{@var{n}.s} is made automatically from @file{@var{n}.S} by 8485 running the C preprocessor, @code{cpp}. The precise commandis8498 running the C preprocessor, @code{cpp}. The precise recipe is 8486 8499 @w{@samp{$(CPP) $(CPPFLAGS)}}. 8487 8500 … … 8492 8505 @file{@var{n}} is made automatically from @file{@var{n}.o} by running 8493 8506 the linker (usually called @code{ld}) via the C compiler. The precise 8494 commandused is @w{@samp{$(CC) $(LDFLAGS) @var{n}.o $(LOADLIBES) $(LDLIBS)}}.8507 recipe used is @w{@samp{$(CC) $(LDFLAGS) @var{n}.o $(LOADLIBES) $(LDLIBS)}}. 8495 8508 8496 8509 This rule does the right thing for a simple program with only one … … 8521 8534 In more complicated cases, such as when there is no object file whose 8522 8535 name derives from the executable file name, you must write an explicit 8523 commandfor linking.8536 recipe for linking. 8524 8537 8525 8538 Each kind of file automatically made into @samp{.o} object files will … … 8536 8549 @pindex .y 8537 8550 @file{@var{n}.c} is made automatically from @file{@var{n}.y} by 8538 running Yacc with the command@samp{$(YACC) $(YFLAGS)}.8551 running Yacc with the recipe @samp{$(YACC) $(YFLAGS)}. 8539 8552 8540 8553 @item Lex for C programs … … 8543 8556 @pindex .l 8544 8557 @file{@var{n}.c} is made automatically from @file{@var{n}.l} by 8545 running Lex. The actual commandis @samp{$(LEX) $(LFLAGS)}.8558 running Lex. The actual recipe is @samp{$(LEX) $(LFLAGS)}. 8546 8559 8547 8560 @item Lex for Ratfor programs 8548 8561 @file{@var{n}.r} is made automatically from @file{@var{n}.l} by 8549 running Lex. The actual commandis @samp{$(LEX) $(LFLAGS)}.8562 running Lex. The actual recipe is @samp{$(LEX) $(LFLAGS)}. 8550 8563 8551 8564 The convention of using the same suffix @samp{.l} for all Lex files … … 8572 8585 @pindex .ln 8573 8586 @file{@var{n}.ln} is made from @file{@var{n}.c} by running @code{lint}. 8574 The precise commandis @w{@samp{$(LINT) $(LINTFLAGS) $(CPPFLAGS) -i}}.8575 The same commandis used on the C code produced from8587 The precise recipe is @w{@samp{$(LINT) $(LINTFLAGS) $(CPPFLAGS) -i}}. 8588 The same recipe is used on the C code produced from 8576 8589 @file{@var{n}.y} or @file{@var{n}.l}.@refill 8577 8590 … … 8589 8602 @pindex .w 8590 8603 @pindex .ch 8591 @file{@var{n}.dvi} is made from @file{@var{n}.tex} with the command8604 @file{@var{n}.dvi} is made from @file{@var{n}.tex} with the recipe 8592 8605 @samp{$(TEX)}. @file{@var{n}.tex} is made from @file{@var{n}.web} with 8593 8606 @samp{$(WEAVE)}, or from @file{@var{n}.w} (and from @file{@var{n}.ch} if … … 8607 8620 @pindex .txinfo 8608 8621 @file{@var{n}.dvi} is made from @file{@var{n}.texinfo}, 8609 @file{@var{n}.texi}, or @file{@var{n}.txinfo}, with the command8622 @file{@var{n}.texi}, or @file{@var{n}.txinfo}, with the recipe 8610 8623 @w{@samp{$(TEXI2DVI) $(TEXI2DVI_FLAGS)}}. @file{@var{n}.info} is made from 8611 8624 @file{@var{n}.texinfo}, @file{@var{n}.texi}, or @file{@var{n}.txinfo}, with 8612 the command@w{@samp{$(MAKEINFO) $(MAKEINFO_FLAGS)}}.8625 the recipe @w{@samp{$(MAKEINFO) $(MAKEINFO_FLAGS)}}. 8613 8626 8614 8627 @item RCS … … 8618 8631 Any file @file{@var{n}} is extracted if necessary from an RCS file 8619 8632 named either @file{@var{n},v} or @file{RCS/@var{n},v}. The precise 8620 commandused is @w{@samp{$(CO) $(COFLAGS)}}. @file{@var{n}} will not be8633 recipe used is @w{@samp{$(CO) $(COFLAGS)}}. @file{@var{n}} will not be 8621 8634 extracted from RCS if it already exists, even if the RCS file is 8622 8635 newer. The rules for RCS are terminal … … 8631 8644 Any file @file{@var{n}} is extracted if necessary from an SCCS file 8632 8645 named either @file{s.@var{n}} or @file{SCCS/s.@var{n}}. The precise 8633 commandused is @w{@samp{$(GET) $(GFLAGS)}}. The rules for SCCS are8646 recipe used is @w{@samp{$(GET) $(GFLAGS)}}. The rules for SCCS are 8634 8647 terminal (@pxref{Match-Anything Rules, ,Match-Anything Pattern Rules}), 8635 8648 so SCCS files cannot be generated from another source; they must … … 8652 8665 above, which are documented in the following section. 8653 8666 8654 However, the commands in built-in implicit rules actually use8667 However, the recipes in built-in implicit rules actually use 8655 8668 variables 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. 8657 8670 8658 8671 @code{make} follows the convention that the rule to compile a … … 8679 8692 @cindex flags for compilers 8680 8693 8681 The commands in built-in implicit rules make liberal use of certain8694 The recipes in built-in implicit rules make liberal use of certain 8682 8695 predefined variables. You can alter the values of these variables in 8683 8696 the makefile, with arguments to @code{make}, or in the environment to … … 8686 8699 the @samp{-R} or @samp{--no-builtin-variables} option. 8687 8700 8688 For example, the commandused to compile a C source file actually says8701 For example, the recipe used to compile a C source file actually says 8689 8702 @samp{$(CC) -c $(CFLAGS) $(CPPFLAGS)}. The default values of the variables 8690 8703 used are @samp{cc} and nothing, resulting in the command @samp{cc -c}. By … … 8705 8718 The following tables describe of some of the more commonly-used predefined 8706 8719 variables. 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 the8720 not be what @code{make} selects for your environment. To see the 8708 8721 complete list of predefined variables for your instance of GNU @code{make} you 8709 8722 can run @samp{make -p} in a directory with no makefiles. … … 8999 9012 * Pattern Examples:: Examples of pattern rules. 9000 9013 * Automatic Variables:: How to use automatic variables in the 9001 commands of implicit rules.9014 recipes of implicit rules. 9002 9015 * Pattern Match:: How patterns match. 9003 9016 * Match-Anything Rules:: Precautions you should take prior to … … 9036 9049 9037 9050 @example 9038 %.o : %.c ; @var{ command}@dots{}9051 %.o : %.c ; @var{recipe}@dots{} 9039 9052 @end example 9040 9053 … … 9054 9067 9055 9068 @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. 9069 Pattern rules may have more than one target. Unlike normal rules, 9070 this does not act as many different rules with the same prerequisites 9071 and recipe. If a pattern rule has multiple targets, @code{make} knows 9072 that the rule's recipe is responsible for making all of the targets. 9073 The recipe is executed only once to make all the targets. When 9074 searching for a pattern rule to match a target, the target patterns of 9075 a rule other than the one that matches the target in need of a rule 9076 are incidental: @code{make} worries only about giving a recipe and 9077 prerequisites to the file presently in question. However, when this 9078 file's recipe is run, the other targets are marked as having been 9079 updated themselves. 9066 9080 @cindex multiple targets, in pattern rule 9067 9081 @cindex target, multiple in pattern rule … … 9091 9105 @noindent 9092 9106 defines a rule that can make any file @file{@var{x}.o} from 9093 @file{@var{x}.c}. The commanduses the automatic variables @samp{$@@} and9107 @file{@var{x}.c}. The recipe uses the automatic variables @samp{$@@} and 9094 9108 @samp{$<} to substitute the names of the target file and the source file 9095 9109 in each case where the rule applies (@pxref{Automatic Variables}).@refill … … 9122 9136 @noindent 9123 9137 @c The following paragraph is rewritten to avoid overfull hboxes 9124 This tells @code{make} that the command@samp{bison -d @var{x}.y} will9138 This tells @code{make} that the recipe @samp{bison -d @var{x}.y} will 9125 9139 make both @file{@var{x}.tab.c} and @file{@var{x}.tab.h}. If the file 9126 9140 @file{foo} depends on the files @file{parse.tab.o} and @file{scan.o} 9127 9141 and 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}9142 when @file{parse.y} is changed, the recipe @samp{bison -d parse.y} 9129 9143 will be executed only once, and the prerequisites of both 9130 9144 @file{parse.tab.o} and @file{scan.o} will be satisfied. (Presumably … … 9142 9156 Suppose you are writing a pattern rule to compile a @samp{.c} file into a 9143 9157 @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,9158 on the right source file name? You cannot write the name in the recipe, 9145 9159 because the name is different each time the implicit rule is applied. 9146 9160 … … 9155 9169 It's very important that you recognize the limited scope in which 9156 9170 automatic variable values are available: they only have values within 9157 the command script. In particular, you cannot use them anywhere9171 the recipe. In particular, you cannot use them anywhere 9158 9172 within the target list of a rule; they have no value there and will 9159 9173 expand to the empty string. Also, they cannot be accessed directly … … 9174 9188 rule that has multiple targets (@pxref{Pattern Intro, ,Introduction to 9175 9189 Pattern Rules}), @samp{$@@} is the name of whichever target caused the 9176 rule's commandsto be run.9190 rule's recipe to be run. 9177 9191 9178 9192 @vindex $% … … 9187 9201 @vindex < @r{(automatic variable)} 9188 9202 @item $< 9189 The name of the first prerequisite. If the target got its commandsfrom9203 The name of the first prerequisite. If the target got its recipe from 9190 9204 an implicit rule, this will be the first prerequisite added by the 9191 9205 implicit rule (@pxref{Implicit Rules}). … … 9196 9210 The names of all the prerequisites that are newer than the target, with 9197 9211 spaces between them. For prerequisites which are archive members, only 9198 the member namedis used (@pxref{Archives}).9212 the named member is used (@pxref{Archives}). 9199 9213 @cindex prerequisites, list of changed 9200 9214 @cindex list of changed prerequisites … … 9204 9218 @item $^ 9205 9219 The names of all the prerequisites, with spaces between them. For 9206 prerequisites which are archive members, only the member namedis used9220 prerequisites which are archive members, only the named member is used 9207 9221 (@pxref{Archives}). A target has only one prerequisite on each other file 9208 9222 it depends on, no matter how many times each file is listed as a … … 9453 9467 Special built-in dummy pattern rules are provided solely to recognize 9454 9468 certain file names so that nonterminal match-anything rules will not be 9455 considered. These dummy rules have no prerequisites and no commands, and9469 considered. These dummy rules have no prerequisites and no recipes, and 9456 9470 they are ignored for all other purposes. For example, the built-in 9457 9471 implicit rule … … 9474 9488 You can override a built-in implicit rule (or one you have defined 9475 9489 yourself) by defining a new pattern rule with the same target and 9476 prerequisites, but different commands. When the new rule is defined, the9490 prerequisites, but a different recipe. When the new rule is defined, the 9477 9491 built-in one is replaced. The new rule's position in the sequence of 9478 9492 implicit rules is determined by where you write the new rule. 9479 9493 9480 9494 You 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 following9495 same target and prerequisites, but no recipe. For example, the following 9482 9496 would cancel the rule that runs the assembler: 9483 9497 … … 9495 9509 Rules}). This is just like any other pattern rule; the only thing 9496 9510 special 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 9511 recipe is used for all targets and prerequisites that have no recipe 9498 9512 of their own and for which no other implicit rule applies. 9499 9513 … … 9511 9525 9512 9526 @findex .DEFAULT 9513 You can instead define commandsto be used for targets for which there9514 are no rules at all, even ones which don't specify commands. You do9527 You can instead define a recipe to be used for targets for which there 9528 are no rules at all, even ones which don't specify recipes. You do 9515 9529 this by writing a rule for the target @code{.DEFAULT}. Such a rule's 9516 commands areused for all prerequisites which do not appear as targets in9530 recipe is used for all prerequisites which do not appear as targets in 9517 9531 any explicit rule, and for which no implicit rule applies. Naturally, 9518 9532 there is no @code{.DEFAULT} rule unless you write one. 9519 9533 9520 If you use @code{.DEFAULT} with no commandsor prerequisites:9534 If you use @code{.DEFAULT} with no recipe or prerequisites: 9521 9535 9522 9536 @example … … 9525 9539 9526 9540 @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 commandsfrom a match-anything9531 pattern rule or @code{.DEFAULT}, but you also do not want any commands9532 to be run for the target, you can give it empty commands (@pxref{Empty9533 Commands, ,Defining Empty Commands}).@refill9541 the recipe previously stored for @code{.DEFAULT} is cleared. Then 9542 @code{make} acts as if you had never defined @code{.DEFAULT} at all. 9543 9544 If you do not want a target to get the recipe from a match-anything 9545 pattern rule or @code{.DEFAULT}, but you also do not want any recipe 9546 to be run for the target, you can give it an empty recipe 9547 (@pxref{Empty Recipes, ,Defining Empty Recipes}).@refill 9534 9548 9535 9549 You can use a last-resort rule to override part of another makefile. … … 9599 9613 @samp{.o} files using this pattern rule also depend on @file{foo.h}. 9600 9614 9601 Suffix rules with no commandsare also meaningless. They do not remove9602 previous rules as do pattern rules with no commands(@pxref{Canceling9603 Rules, , Canceling Implicit Rules}). They simply enter the suffix or pair of suffixes concatenated as9604 a target in the data base.@refill9615 Suffix rules with no recipe are also meaningless. They do not remove 9616 previous rules as do pattern rules with no recipe (@pxref{Canceling 9617 Rules, , Canceling Implicit Rules}). They simply enter the suffix or 9618 pair of suffixes concatenated as a target in the data base.@refill 9605 9619 9606 9620 @findex .SUFFIXES … … 9645 9659 Here is the procedure @code{make} uses for searching for an implicit rule 9646 9660 for 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 have9648 commands, and for each prerequisite that is not the target of any rule. It9661 rule with no recipe, for each target of ordinary rules none of which have 9662 a recipe, and for each prerequisite that is not the target of any rule. It 9649 9663 is also followed recursively for prerequisites that come from implicit 9650 9664 rules, in the search for a chain of rules. … … 9675 9689 9676 9690 @item 9677 Remove from the list all rules with no commands.9691 Remove from the list all rules with no recipe. 9678 9692 9679 9693 @item … … 9725 9739 @item 9726 9740 If no implicit rule applies, the rule for @code{.DEFAULT}, if any, 9727 applies. In that case, give @var{t} the same commandsthat9728 @code{.DEFAULT} has. Otherwise, there are no commandsfor @var{t}.9741 applies. In that case, give @var{t} the same recipe that 9742 @code{.DEFAULT} has. Otherwise, there is no recipe for @var{t}. 9729 9743 @end enumerate 9730 9744 9731 Once a rule that applies has been found, for each target pattern of the9732 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 automatic9740 variables are set corresponding to the target and prerequisites. 9741 @xref{Automatic Variables}.9745 Once a rule that applies has been found, for each target pattern of 9746 the 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 9748 file name is stored until the recipe to remake the target file @var{t} 9749 is executed. After the recipe is executed, each of these stored file 9750 names are entered into the data base and marked as having been updated 9751 and having the same update status as the file @var{t}. 9752 9753 When the recipe of a pattern rule is executed for @var{t}, the 9754 automatic variables are set corresponding to the target and 9755 prerequisites. @xref{Automatic Variables}. 9742 9756 9743 9757 @node Archives, Features, Implicit Rules, Top … … 9771 9785 @noindent 9772 9786 This 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}: 9787 recipes! Most programs that you might use in recipes do not support 9788 this syntax and cannot act directly on archive members. Only 9789 @code{ar} and other programs specifically designed to operate on 9790 archives can do so. Therefore, valid recipes to update an archive 9791 member target probably must use @code{ar}. For example, this rule 9792 says to create a member @file{hack.o} in archive @file{foolib} by 9793 copying the file @file{hack.o}: 9779 9794 9780 9795 @example … … 9829 9844 @samp{(} and @samp{)} from being interpreted specially by the shell) in 9830 9845 the presence of a file @file{bar.c} is enough to cause the following 9831 commandsto be run, even without a makefile:9846 recipe to be run, even without a makefile: 9832 9847 9833 9848 @example … … 9847 9862 it may be useful in a makefile to pretend that it does. If you write an 9848 9863 archive member target @file{foo.a(dir/file.o)}, @code{make} will perform 9849 automatic updating with this command:9864 automatic updating with this recipe: 9850 9865 9851 9866 @example … … 9912 9927 9913 9928 Possibly a future version of @code{make} will provide a mechanism to 9914 circumvent this problem by serializing all commands that operate on the9929 circumvent this problem by serializing all recipes that operate on the 9915 9930 same archive file. But for the time being, you must either write your 9916 9931 makefiles to avoid this problem in some other way, or not use @code{-j}. … … 10018 10033 10019 10034 @item 10020 The command -line options @samp{-b} and @samp{-m}, accepted and10035 The command line options @samp{-b} and @samp{-m}, accepted and 10021 10036 ignored. In System V @code{make}, these options actually do something. 10022 10037 … … 10035 10050 @item 10036 10051 The arrangement of lines and backslash-newline combinations in 10037 commands is retained when the commands are printed, so they appear as10052 recipes is retained when the recipes are printed, so they appear as 10038 10053 they do in the makefile, except for the stripping of initial 10039 10054 whitespace. … … 10069 10084 The ``what if'' flag (@samp{-W} in GNU @code{make}) was (as far as we know) 10070 10085 invented 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}. 10072 10087 10073 10088 @item 10074 10089 The concept of doing several things at once (parallelism) exists in 10075 10090 many incarnations of @code{make} and similar programs, though not in the 10076 System V or BSD implementations. @xref{Execution, , CommandExecution}.10091 System V or BSD implementations. @xref{Execution, ,Recipe Execution}. 10077 10092 10078 10093 @item … … 10086 10101 10087 10102 @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). 10103 The special significance of @samp{+} characters preceding recipe lines 10104 (@pxref{Instead of Execution, ,Instead of Executing the Recipes}) is 10105 mandated by @cite{IEEE Standard 1003.2-1992} (POSIX.2). 10092 10106 10093 10107 @item … … 10123 10137 10124 10138 @item 10125 Pass command -line variable assignments automatically through the10139 Pass command line variable assignments automatically through the 10126 10140 variable @code{MAKE} to recursive @code{make} invocations. 10127 10141 @xref{Recursion, ,Recursive Use of @code{make}}. … … 10255 10269 10256 10270 @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 10271 In System V and 4.3 BSD @code{make}, files found by @code{VPATH} 10272 search (@pxref{Directory Search, ,Searching Directories for 10273 Prerequisites}) have their names changed inside recipes. We feel it 10274 is much cleaner to always use automatic variables and thus make this 10275 feature obsolete.@refill 10261 10276 10262 10277 @item … … 10269 10284 10270 10285 @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 can10286 In some Unix @code{make}s, implicit rule search (@pxref{Implicit 10287 Rules, ,Using Implicit Rules}) is apparently done for @emph{all} 10288 targets, not just those without recipes. This means you can 10274 10289 do:@refill 10275 10290 … … 10295 10310 10296 10311 @item 10297 It appears that in SVR4 @code{make}, a suffix rule can be specified with10298 no commands, and it is treated as if it had empty commands 10299 (@pxref{Empty Commands}). For example:10312 It appears that in SVR4 @code{make}, a suffix rule can be specified 10313 with no recipe, and it is treated as if it had an empty recipe 10314 (@pxref{Empty Recipes}). For example: 10300 10315 10301 10316 @example … … 10306 10321 will override the built-in @file{.c.a} suffix rule. 10307 10322 10308 We feel that it is cleaner for a rule without commandsto always simply10323 We feel that it is cleaner for a rule without a recipe to always simply 10309 10324 add to the prerequisite list for the target. The above example can be 10310 10325 easily rewritten to get the desired behavior in GNU @code{make}: … … 10319 10334 Program}). The @samp{-e} flag tells the shell to exit as soon as any 10320 10335 program 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 this10336 write each line of the recipe to stand on its own and not require this 10322 10337 special treatment. 10323 10338 @end itemize … … 10571 10586 newer than the target, with spaces between them. 10572 10587 For prerequisites which are archive members, only 10573 the member namedis used (@pxref{Archives}).10588 the named member is used (@pxref{Archives}). 10574 10589 10575 10590 @item $^ 10576 10591 @itemx $+ 10577 10592 The names of all the prerequisites, with spaces between them. For 10578 prerequisites which are archive members, only the member namedis used10593 prerequisites which are archive members, only the named member is used 10579 10594 (@pxref{Archives}). The value of @code{$^} omits duplicate 10580 10595 prerequisites, while @code{$+} retains them and preserves their order. … … 10630 10645 The name of the system default command interpreter, usually @file{/bin/sh}. 10631 10646 You can set @code{SHELL} in the makefile to change the shell used to run 10632 commands. @xref{Execution, ,CommandExecution}. The @code{SHELL}10647 recipes. @xref{Execution, ,Recipe Execution}. The @code{SHELL} 10633 10648 variable is handled specially when importing from and exporting to the 10634 10649 environment. @xref{Choosing the Shell}. … … 10642 10657 @item MAKE 10643 10658 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}.10659 The name with which @code{make} was invoked. Using this variable in 10660 recipes has special meaning. @xref{MAKE Variable, ,How the 10661 @code{MAKE} Variable Works}. 10647 10662 10648 10663 @item MAKELEVEL … … 10657 10672 @xref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}. 10658 10673 10659 It is @emph{never} appropriate to use @code{MAKEFLAGS} directly on a10660 commandline: its contents may not be quoted correctly for use in the10674 It is @emph{never} appropriate to use @code{MAKEFLAGS} directly in a 10675 recipe line: its contents may not be quoted correctly for use in the 10661 10676 shell. Always allow recursive @code{make}'s to obtain these values 10662 10677 through the environment from its parent. … … 10694 10709 10695 10710 Sometimes @code{make} errors are not fatal, especially in the presence 10696 of a @code{-} prefix on a command script line, or the @code{-k} command10697 lineoption. Errors that are fatal are prefixed with the string10711 of a @code{-} prefix on a recipe line, or the @code{-k} command line 10712 option. Errors that are fatal are prefixed with the string 10698 10713 @code{***}. 10699 10714 … … 10709 10724 @itemx [@var{foo}] @var{signal description} 10710 10725 These errors are not really @code{make} errors at all. They mean that a 10711 program that @code{make} invoked as part of a command scriptreturned a10726 program that @code{make} invoked as part of a recipe returned a 10712 10727 non-0 error code (@samp{Error @var{NN}}), which @code{make} interprets 10713 10728 as failure, or it exited in some other abnormal fashion (with a 10714 signal of some type). @xref{Errors, ,Errors in Commands}.10729 signal of some type). @xref{Errors, ,Errors in Recipes}. 10715 10730 10716 10731 If no @code{***} is attached to the message, then the subprocess failed … … 10720 10735 @item missing separator. Stop. 10721 10736 @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. 10737 This means that @code{make} could not understand much of anything 10738 about the makefile line it just read. GNU @code{make} looks for 10739 various separators (@code{:}, @code{=}, recipe prefix characters, 10740 etc.) to indicate what kind of line it's parsing. This message means 10741 it couldn't find a valid one. 10742 10743 One of the most common reasons for this message is that you (or 10744 perhaps your oh-so-helpful editor, as is the case with many MS-Windows 10745 editors) have attempted to indent your recipe lines with spaces 10746 instead of a tab character. In this case, @code{make} will use the 10747 second form of the error above. Remember that every line in the 10748 recipe must begin with a tab character (unless you set 10749 @code{.CMDPREFIX}; @pxref{Special Variables}). Eight spaces do not 10750 count. @xref{Rule Syntax}. 10751 10752 @item recipe commences before first target. Stop. 10753 @itemx missing rule before recipe. Stop. 10754 This means the first thing in the makefile seems to be part of a 10755 recipe: it begins with a recipe prefix character and doesn't appear to 10756 be a legal @code{make} directive (such as a variable assignment). 10757 Recipes must always be associated with a target. 10742 10758 10743 10759 The second form is generated if the line has a semicolon as the first … … 10771 10787 (second form) was not found. 10772 10788 10773 @item warning: overriding commandsfor target `@var{xxx}'10774 @itemx warning: ignoring old commandsfor target `@var{xxx}'10775 GNU @code{make} allows commands to be specified only onceper target10776 (except for double-colon rules). If you give commandsfor a target10777 which already has been defined to have commands, this warning is issued10778 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}' 10791 GNU @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 10793 which already has been defined to have one, this warning is issued and 10794 the second recipe will overwrite the first. @xref{Multiple Rules, 10795 ,Multiple Rules for One Target}. 10780 10796 10781 10797 @item Circular @var{xxx} <- @var{yyy} dependency dropped. … … 11017 11033 11018 11034 @group 11019 .PHONY: tar11020 11035 tar: $(OBJS) 11021 11036 $(CC) $(LDFLAGS) -o $@@ $(OBJS) $(LIBS) … … 11118 11133 @end example 11119 11134 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 11121 11138 @include fdl.texi 11122 @lowersections11123 11139 11124 11140 @node Concept Index, Name Index, GNU Free Documentation License, Top -
vendor/gnumake/current/dosbuild.bat
r501 r1989 1 1 @echo off 2 rem Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free3 rem Software Foundation, Inc.2 rem Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 3 rem Free Software Foundation, Inc. 4 4 rem 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. 5 rem 6 rem GNU Make is free software; you can redistribute it and/or modify it under 7 rem the terms of the GNU General Public License as published by the Free 8 rem Software Foundation; either version 3 of the License, or (at your option) 9 rem any later version. 10 rem 11 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT 12 rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for. 14 rem more details. 15 rem 16 rem You should have received a copy of the GNU General Public License along 17 rem with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 18 19 echo Building Make for MSDOS -
vendor/gnumake/current/expand.c
r900 r1989 1 1 /* Variable expansion functions for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 466 466 { 467 467 char *result; 468 struct variable_set_list *save; 468 struct variable_set_list *savev; 469 const struct floc *savef; 469 470 470 471 if (file == 0) 471 472 return variable_expand (line); 472 473 473 save = current_variable_set_list;474 savev = current_variable_set_list; 474 475 current_variable_set_list = file->variables; 476 477 savef = reading_file; 475 478 if (file->cmds && file->cmds->fileinfo.filenm) 476 479 reading_file = &file->cmds->fileinfo; 477 480 else 478 481 reading_file = 0; 482 479 483 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; 482 487 483 488 return result; -
vendor/gnumake/current/file.c
r900 r1989 1 1 /* Target file management for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 257 257 if (to_file->cmds->fileinfo.filenm != 0) 258 258 error (&from_file->cmds->fileinfo, 259 _(" Commands werespecified for file `%s' at %s:%lu,"),259 _("Recipe was specified for file `%s' at %s:%lu,"), 260 260 from_file->name, to_file->cmds->fileinfo.filenm, 261 261 to_file->cmds->fileinfo.lineno); 262 262 else 263 263 error (&from_file->cmds->fileinfo, 264 _(" Commands for file `%s' werefound by implicit rule search,"),264 _("Recipe for file `%s' was found by implicit rule search,"), 265 265 from_file->name); 266 266 error (&from_file->cmds->fileinfo, … … 268 268 from_file->name, to_hname); 269 269 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'."), 271 271 to_hname, from_file->name); 272 272 } … … 362 362 /* Is this file eligible for automatic deletion? 363 363 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 or364 given on the command line, and it's either a -include makefile or 365 365 it's not precious. */ 366 366 if (f->intermediate && (f->dontcare || !f->precious) … … 487 487 p = variable_expand (""); 488 488 variable_buffer_output (p, d->name, strlen (d->name) + 1); 489 p = variable_buffer; 489 490 } 490 491 else … … 499 500 o = subst_expand (buffer, d->name, "%", "$*", 1, 2, 0); 500 501 501 d->name = strcache_add_len (buffer, o - buffer); 502 d->name = strcache_add_len (variable_buffer, 503 o - variable_buffer); 502 504 d->staticpattern = 0; /* Clear staticpattern so that we don't 503 505 re-expand %s below. */ … … 901 903 puts (_("# Phony target (prerequisite of .PHONY).")); 902 904 if (f->cmd_target) 903 puts (_("# Command -line target."));905 puts (_("# Command line target.")); 904 906 if (f->dontcare) 905 907 puts (_("# A default, MAKEFILES, or -include/sinclude makefile.")); … … 935 937 { 936 938 case cs_running: 937 puts (_("# Commandscurrently running (THIS IS A BUG)."));939 puts (_("# Recipe currently running (THIS IS A BUG).")); 938 940 break; 939 941 case cs_deps_running: 940 puts (_("# Dependencies commandsrunning (THIS IS A BUG)."));942 puts (_("# Dependencies recipe running (THIS IS A BUG).")); 941 943 break; 942 944 case cs_not_started: -
vendor/gnumake/current/filedef.h
r900 r1989 1 1 /* Definition of target file data structures for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 -
vendor/gnumake/current/function.c
r900 r1989 1 1 /* Builtin function expansion for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 1609 1609 #ifndef __MSDOS__ 1610 1610 /* 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); 1612 1613 if (command_argv == 0) 1613 1614 return o; … … 1793 1794 1794 1795 /* 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); 1797 1798 if (command_argv == 0) 1798 1799 return o; -
vendor/gnumake/current/getloadavg.c
r900 r1989 1 1 /* Get the system load averages. 2 2 Copyright (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. 3 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 4 Free Software Foundation, Inc. 5 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 3 of the License, or (at your option) any later 9 version. 10 11 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. 15 14 16 15 You 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 19 17 20 18 /* Compile-time symbols that this file uses: -
vendor/gnumake/current/getopt.c
r501 r1989 5 5 6 6 Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 7 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software7 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 8 8 Foundation, Inc. 9 9 … … 11 11 Bugs can be reported to [email protected]. 12 12 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. 13 GNU Make is free software; you can redistribute it and/or modify it under the 14 terms of the GNU General Public License as published by the Free Software 15 Foundation; either version 3 of the License, or (at your option) any later 16 version. 17 18 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 19 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 20 A PARTICULAR PURPOSE. See the GNU General Public License for more details. 22 21 23 22 You 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. */ 23 this program. If not, see <http://www.gnu.org/licenses/>. */ 26 24 27 25 /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>. -
vendor/gnumake/current/getopt.h
r501 r1989 1 1 /* Declarations for getopt. 2 2 Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, 4 Inc. 4 5 5 6 NOTE: The canonical source of this file is maintained with the GNU C Library. 6 7 Bugs can be reported to [email protected]. 7 8 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 the10 F ree Software Foundation; either version 2, or (at your option) any11 laterversion.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 3 of the License, or (at your option) any later 12 version. 12 13 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. 14 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. 17 17 18 18 You 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. */ 19 this program. If not, see <http://www.gnu.org/licenses/>. */ 21 20 22 21 #ifndef _GETOPT_H -
vendor/gnumake/current/getopt1.c
r501 r1989 1 1 /* getopt_long and getopt_long_only entry points for GNU getopt. 2 2 Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 … … 7 7 Bugs can be reported to [email protected]. 8 8 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 the11 F ree Software Foundation; either version 2, or (at your option) any12 laterversion.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 3 of the License, or (at your option) any later 12 version. 13 13 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. 14 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. 18 17 19 18 You 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. */ 19 this program. If not, see <http://www.gnu.org/licenses/>. */ 22 20 23 21 -
vendor/gnumake/current/gettext.h
r501 r1989 1 1 /* Convenience header for conditional use of GNU <libintl.h>. 2 2 Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef _LIBGETTEXT_H -
vendor/gnumake/current/glob/ChangeLog
r501 r1989 1 2007-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 1 6 2006-02-24 Eli Zaretskii <[email protected]> 2 7 3 8 * glob.c (my_malloc) [WINDOWS32]: Provide a full ISO C prototype, 4 9 to avoid compiler warnings. 5 10 6 11 2005-06-25 Paul D. Smith <[email protected]> … … 154 159 155 160 * posix/fnmatch.c (fnmatch): Fix \*[*?]+ case to increment name ptr 156 161 only for ?s, not for *s. Fix from Chet Ramey. 157 162 158 163 159 164 160 165 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 161 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software166 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 162 167 Foundation, Inc. 163 168 This file is part of GNU Make. … … 165 170 GNU Make is free software; you can redistribute it and/or modify it under the 166 171 terms of the GNU General Public License as published by the Free Software 167 Foundation; either version 2, or (at your option) any later version. 172 Foundation; either version 3 of the License, or (at your option) any later 173 version. 168 174 169 175 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 172 178 173 179 You 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. 180 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/glob/Makefile.am
r501 r1989 1 1 # -*-Makefile-*-, or close enough 2 2 # 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. 4 4 # This file is part of GNU Make. 5 5 # 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. 9 10 # 10 11 # 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. 13 15 # 14 16 # 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/>. 17 18 18 19 AUTOMAKE_OPTIONS = foreign -
vendor/gnumake/current/glob/Makefile.ami
r501 r1989 1 1 # Makefile for standalone libglob.a (fnmatch, glob). -*-Makefile-*- 2 2 # 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. 4 4 # This file is part of GNU Make. 5 5 # 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. 9 10 # 10 11 # 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. 13 15 # 14 16 # 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/>. 17 18 18 19 # Ultrix 2.2 make doesn't expand the value of VPATH. -
vendor/gnumake/current/glob/SMakefile
r501 r1989 1 1 # Makefile for standalone distribution of libglob.a (fnmatch, glob). 2 2 # 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. 4 4 # This file is part of GNU Make. 5 5 # 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. 9 10 # 10 11 # 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. 13 15 # 14 16 # 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/>. 17 18 18 19 # Ultrix 2.2 make doesn't expand the value of VPATH. -
vendor/gnumake/current/glob/configure.bat
r501 r1989 1 1 @echo off 2 2 rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3 rem 2004, 2005, 2006 Free Software Foundation, Inc.3 rem 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 4 4 rem This file is part of GNU Make. 5 5 rem 6 6 rem GNU Make is free software; you can redistribute it and/or modify it under 7 7 rem 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 later9 rem version.10 8 rem Software Foundation; either version 3 of the License, or (at your option) 9 rem any later version. 10 rem 11 11 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT 12 12 rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for. 14 14 rem more details. 15 15 rem 16 16 rem 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. 17 rem with this program. If not, see <http://www.gnu.org/licenses/>. 19 18 20 19 echo 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 2 Foundation, Inc. 2 3 This file is part of the GNU C Library. 3 4 -
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 2 Foundation, Inc. 2 3 This file is part of the GNU C Library. 3 4 -
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 2 Software Foundation, Inc. 2 3 3 4 This library is free software; you can redistribute it and/or … … 190 191 static void * 191 192 my_realloc (void *p, unsigned int n) 193 # elif defined(__DJGPP__) 194 static void * 195 my_realloc (void *p, size_t n) 192 196 # else 193 197 static char * … … 195 199 char *p; 196 200 unsigned int n; 197 # endif201 # endif 198 202 { 199 203 /* 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, 2 Inc. 2 3 3 4 The GNU C Library is free software; you can redistribute it and/or -
vendor/gnumake/current/hash.c
r501 r1989 1 1 /* 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. 2 Copyright (C) 1995, 1999, 2002 Free Software Foundation, Inc. 3 Written by Greg McGary <[email protected]> <[email protected]> 4 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 3 of the License, or (at your option) any later 8 version. 9 10 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. 14 13 15 14 You 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. */ 15 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 16 19 17 #include "make.h" -
vendor/gnumake/current/hash.h
r900 r1989 3 3 Written by Greg McGary <[email protected]> <[email protected]> 4 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. 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 3 of the License, or (at your option) any later 8 version. 9 10 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. 14 13 15 14 You 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. */ 15 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 16 19 17 #ifndef _hash_h_ -
vendor/gnumake/current/implicit.c
r900 r1989 1 1 /* Implicit rule searching for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" -
vendor/gnumake/current/job.c
r900 r1989 1 1 /* Job execution and handling for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 1023 1023 argv = p; 1024 1024 #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); 1026 1028 #endif 1027 1029 if (end == NULL) … … 1729 1731 1730 1732 /* 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.) */ 1732 1734 if (cmds->fileinfo.filenm) 1733 DB (DB_BASIC, (_("Invoking commandsfrom %s:%lu to update target `%s'.\n"),1735 DB (DB_BASIC, (_("Invoking recipe from %s:%lu to update target `%s'.\n"), 1734 1736 cmds->fileinfo.filenm, cmds->fileinfo.lineno, 1735 1737 c->file->name)); 1736 1738 else 1737 DB (DB_BASIC, (_("Invoking builtin commandsto update target `%s'.\n"),1739 DB (DB_BASIC, (_("Invoking builtin recipe to update target `%s'.\n"), 1738 1740 c->file->name)); 1739 1741 … … 1908 1910 1909 1911 /* EMX: Start a child process. This function returns the new pid. */ 1910 # if defined __ MSDOS__ || defined __EMX__1912 # if defined __EMX__ 1911 1913 int 1912 1914 child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp) … … 2211 2213 2212 2214 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. */ 2214 2221 2215 2222 static char ** 2216 2223 construct_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) 2218 2226 { 2219 2227 #ifdef __MSDOS__ … … 2464 2472 *(ap++) = *p; 2465 2473 } 2466 /* If there's a command prefix char here, skip it. */2467 if (p[1] == cmd_prefix)2468 ++p;2469 2474 } 2470 2475 else if (*p == '\n' && restp != NULL) … … 2514 2519 ++p; 2515 2520 2516 /* If there is a command prefix after a backslash-newline,2517 remove it. */2518 if (p[1] == cmd_prefix)2519 ++p;2520 2521 2521 /* If there's nothing in this argument yet, skip any 2522 2522 whitespace before the start of the next word. */ … … 2746 2746 else if (*p == '\\' && p[1] == '\n') 2747 2747 { 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 2751 2750 and remove the backslash/newline. */ 2752 2751 #if defined (__MSDOS__) || defined (__EMX__) || defined (WINDOWS32) … … 2758 2757 { 2759 2758 *(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++) = '\\'; 2761 2764 *(ap++) = '\n'; 2762 2765 } 2763 2764 2766 ++p; 2765 if (p[1] == cmd_prefix)2766 ++p;2767 2768 2767 continue; 2769 2768 } … … 2795 2794 command line (e.g. Cygnus GNUWIN32 sh.exe on WIN32 systems). In these 2796 2795 cases, run commands via a script file. */ 2797 if (just_print_flag ) {2796 if (just_print_flag && !(flags & COMMANDS_RECURSE)) { 2798 2797 /* Need to allocate new_argv, although it's unused, because 2799 2798 start_job_command will want to free it and its 0'th element. */ … … 2823 2822 fputc ('\n', batch); 2824 2823 fclose (batch); 2824 DB (DB_JOBS, (_("Batch file contents:%s\n\t%s\n"), 2825 !unixy_shell ? "\n\t@echo off" : "", command_ptr)); 2825 2826 2826 2827 /* create argv */ … … 2837 2838 #endif /* WINDOWS32 */ 2838 2839 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); 2840 2841 #ifdef __EMX__ 2841 2842 else if (!unixy_shell) … … 2852 2853 { 2853 2854 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' */ 2860 2856 else 2861 2857 *p++ = *q++; … … 2948 2944 char ** 2949 2945 construct_command_argv (char *line, char **restp, struct file *file, 2950 char **batch_filename_ptr)2946 int cmd_flags, char **batch_filename_ptr) 2951 2947 { 2952 2948 char *shell, *ifs; … … 3060 3056 } 3061 3057 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); 3063 3060 3064 3061 free (shell); -
vendor/gnumake/current/job.h
r900 r1989 1 1 /* Definitions for managing subprocesses in GNU Make. 2 2 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 3 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.3 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef SEEN_JOB_H … … 71 71 void start_waiting_jobs (void); 72 72 73 char **construct_command_argv (char *line, char **restp, struct file *file, char** batch_file); 73 char **construct_command_argv (char *line, char **restp, struct file *file, 74 int cmd_flags, char** batch_file); 74 75 #ifdef VMS 75 76 int child_execute_job (char *argv, struct child *child); -
vendor/gnumake/current/main.c
r900 r1989 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 323 323 -h, --help Print this message and exit.\n"), 324 324 N_("\ 325 -i, --ignore-errors Ignore errors from commands.\n"),325 -i, --ignore-errors Ignore errors from recipes.\n"), 326 326 N_("\ 327 327 -I DIRECTORY, --include-dir=DIRECTORY\n\ … … 338 338 N_("\ 339 339 -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"), 341 341 N_("\ 342 342 -o FILE, --old-file=FILE, --assume-old=FILE\n\ … … 345 345 -p, --print-data-base Print make's internal database.\n"), 346 346 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"), 348 348 N_("\ 349 349 -r, --no-builtin-rules Disable the built-in implicit rules.\n"), … … 351 351 -R, --no-builtin-variables Disable the built-in variable settings.\n"), 352 352 N_("\ 353 -s, --silent, --quiet Don't echo commands.\n"),353 -s, --silent, --quiet Don't echo recipes.\n"), 354 354 N_("\ 355 355 -S, --no-keep-going, --stop\n\ … … 1122 1122 define_variable (".VARIABLES", 10, "", o_default, 0)->special = 1; 1123 1123 /* define_variable (".TARGETS", 8, "", o_default, 0)->special = 1; */ 1124 define_variable (".RECIPEPREFIX", 13, "", o_default, 0)->special = 1; 1124 1125 1125 1126 /* Set up .FEATURES */ … … 2964 2965 return; 2965 2966 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 2966 2975 /* Print this untranslated. The coding standards recommend translating the 2967 2976 (C) to the copyright symbol, but this string is going to change every … … 2969 2978 word "Copyright", so it hardly seems worth it. */ 2970 2979 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"), 2978 2985 precede, precede, precede); 2979 2980 if (!remote_description || *remote_description == '\0')2981 printf (_("\n%sThis program built for %s\n"), precede, make_host);2982 else2983 printf (_("\n%sThis program built for %s (%s)\n"),2984 precede, make_host, remote_description);2985 2986 2986 2987 printed_version = 1; -
vendor/gnumake/current/maintMakefile
r900 r1989 136 136 # ftp://tiger.informatik.hu-berlin.de/pub/po/maint/ 137 137 138 po_repo = http:// www.iro.umontreal.ca/translation/maint/$(PACKAGE)138 po_repo = http://translationproject.org/latest/$(PACKAGE) 139 139 .PHONY: do-po-update po-update 140 140 do-po-update: … … 270 270 # This file is part of GNU Make. 271 271 # 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. 275 276 # 276 277 # 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. 279 281 # 280 282 # 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 341 341 Mike Frysinger. 342 342 .SH "COPYRIGHT" 343 Copyright (C) 1992, 1993, 1996, 1999 Free Software Foundation, Inc.343 Copyright (C) 1992, 1993, 1996, 1999, 2007 Free Software Foundation, Inc. 344 344 This file is part of GNU 345 345 .IR make . 346 346 .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 347 GNU Make is free software; you can redistribute it and/or modify it under the 348 terms of the GNU General Public License as published by the Free Software 349 Foundation; either version 3 of the License, or (at your option) any later 352 350 version. 353 351 .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. 352 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 353 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 354 A PARTICULAR PURPOSE. See the GNU General Public License for more details. 355 .LP 356 You should have received a copy of the GNU General Public License along with 357 this program. If not, see 358 .IR http://www.gnu.org/licenses/ . -
vendor/gnumake/current/make.h
r900 r1989 1 1 /* Miscellaneous global declarations and portability cruft for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 /* We use <config.h> instead of "config.h" so that a compilation … … 330 330 331 331 void sync_Path_environment (void); 332 int kill (int pid, int sig);332 int w32_kill (int pid, int sig); 333 333 char *end_of_token_w32 (const char *s, char stopchar); 334 334 int find_and_set_default_shell (const char *token); … … 498 498 extern int batch_mode_shell; 499 499 500 /* Resetting the command script introduction prefix character. */ 501 #define RECIPEPREFIX_NAME ".RECIPEPREFIX" 502 #define RECIPEPREFIX_DEFAULT '\t' 500 503 extern char cmd_prefix; 501 504 -
vendor/gnumake/current/makefile.com
r501 r1989 140 140 $!----------------------------------------------------------------------------- 141 141 $!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. 143 143 $!This file is part of GNU Make. 144 144 $! 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. 148 149 $! 149 150 $!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. 152 154 $! 153 155 $!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 2 2 # 3 3 # 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. 5 5 # This file is part of GNU Make. 6 6 # 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. 10 11 # 11 12 # 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. 14 16 # 15 17 # 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/>. 18 19 19 20 # VMS extensions from GNU Make 3.60 imported by -
vendor/gnumake/current/misc.c
r900 r1989 1 1 /* Miscellaneous generic support functions for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" -
vendor/gnumake/current/po/ChangeLog
r501 r1989 1 2008-05-17 Paul Smith <[email protected]> 2 3 * LINGUAS: Added new translation for Lithuanian (lt). 4 5 2007-08-15 Paul Smith <[email protected]> 6 7 * LINGUAS: The Kinyarwanda (rw) translation has disappeared from 8 the translation site, so remove it. 9 1 10 2006-01-28 Paul D. Smith <[email protected]> 2 11 … … 54 63 55 64 56 Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.65 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 57 66 This file is part of GNU Make. 58 67 59 68 GNU Make is free software; you can redistribute it and/or modify it under the 60 69 terms of the GNU General Public License as published by the Free Software 61 Foundation; either version 2, or (at your option) any later version. 70 Foundation; either version 3 of the License, or (at your option) any later 71 version. 62 72 63 73 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 66 76 67 77 You 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. 78 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/po/LINGUAS
r501 r1989 1 1 # Set of available languages: 23 languages 2 2 3 be da de es fi fr ga gl he hr id ja ko nl pl pt_BR ru rwsv tr uk vi zh_CN3 be da de es fi fr ga gl he hr id ja ko lt nl pl pt_BR ru sv tr uk vi zh_CN 4 4 5 5 # Can't seem to get en@quot and en@boldquot to build properly? -
vendor/gnumake/current/po/Makevars
r501 r1989 1 1 # 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. 3 4 # This file is part of GNU Make. 4 5 # 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. 8 10 # 9 11 # 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. 12 15 # 13 16 # 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/>. 16 18 17 19 -
vendor/gnumake/current/po/POTFILES.in
r501 r1989 1 1 # List of source files containing translatable strings. 2 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software2 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 3 3 # Foundation, Inc. 4 4 # This file is part of GNU Make. 5 5 # 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. 9 10 # 10 11 # 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. 13 15 # 14 16 # 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/>. 17 18 18 19 ar.c -
vendor/gnumake/current/read.c
r900 r1989 1 1 /* Reading and parsing of makefiles for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 468 468 #define record_waiting_files() \ 469 469 do \ 470 { 470 { \ 471 471 if (filenames != 0) \ 472 472 { \ … … 541 541 continue; 542 542 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. */ 544 545 if (commands_idx == 0) 545 546 cmds_started = ebuf->floc.lineno; 546 547 547 if (linelen + 1 +commands_idx > commands_len)548 if (linelen + commands_idx > commands_len) 548 549 { 549 commands_len = (linelen + 1 +commands_idx) * 2;550 commands_len = (linelen + commands_idx) * 2; 550 551 commands = xrealloc (commands, commands_len); 551 552 } 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; 555 568 556 569 continue; … … 575 588 576 589 /* Compare a word, both length and contents. */ 577 #define word1eq(s) 590 #define word1eq(s) (wlen == sizeof(s)-1 && strneq (s, p, sizeof(s)-1)) 578 591 p = collapsed; 579 592 while (isspace ((unsigned char)*p)) … … 613 626 if (!in_ignored_define) 614 627 { 615 628 int i = conditional_line (p, wlen, fstart); 616 629 if (i != -2) 617 630 { … … 849 862 variable definition. But now we know it is definitely lossage. */ 850 863 if (line[0] == cmd_prefix) 851 fatal(fstart, _(" commands commencebefore first target"));864 fatal(fstart, _("recipe commences before first target")); 852 865 853 866 /* This line describes some target files. This is complicated by … … 900 913 case w_eol: 901 914 if (cmdleft != 0) 902 fatal(fstart, _("missing rule before commands"));915 fatal(fstart, _("missing rule before recipe")); 903 916 /* This line contained something but turned out to be nothing 904 917 but whitespace (a comment?). */ … … 988 1001 one of the most common bugs found in makefiles... */ 989 1002 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?)")); 992 1005 continue; 993 1006 } … … 1881 1894 See Savannah bug # 12124. */ 1882 1895 if (snapped_deps) 1883 fatal (flocp, _("prerequisites cannot be defined in command scripts"));1896 fatal (flocp, _("prerequisites cannot be defined in recipes")); 1884 1897 1885 1898 if (commands_idx > 0) … … 1981 1994 { 1982 1995 error (&cmds->fileinfo, 1983 _("warning: overriding commandsfor target `%s'"),1996 _("warning: overriding recipe for target `%s'"), 1984 1997 f->name); 1985 1998 error (&f->cmds->fileinfo, 1986 _("warning: ignoring old commandsfor target `%s'"),1999 _("warning: ignoring old recipe for target `%s'"), 1987 2000 f->name); 1988 2001 } … … 2425 2438 /* Add it to the front of the chain. */ 2426 2439 new1 = xmalloc (size); 2440 memset (new1, '\0', size); 2427 2441 new1->name = name; 2428 2442 new1->next = new; … … 2977 2991 if (len > max_incl_len) 2978 2992 max_incl_len = len; 2979 dirs[idx++] = strcache_add_len (*cpp, len - 1);2993 dirs[idx++] = strcache_add_len (*cpp, len); 2980 2994 } 2981 2995 } -
vendor/gnumake/current/readme.vms
r501 r1989 300 300 ------------------------------------------------------------------------------- 301 301 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 302 2006 Free Software Foundation, Inc.302 2006, 2007 Free Software Foundation, Inc. 303 303 This file is part of GNU Make. 304 304 305 305 GNU Make is free software; you can redistribute it and/or modify it under the 306 306 terms of the GNU General Public License as published by the Free Software 307 Foundation; either version 2, or (at your option) any later version. 307 Foundation; either version 3 of the License, or (at your option) any later 308 version. 308 309 309 310 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 312 313 313 314 You 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. 315 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/remake.c
r900 r1989 1 1 /* Basic dependency engine for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 464 464 && default_file != 0 && default_file->cmds != 0) 465 465 { 466 DBF (DB_IMPLICIT, _("Using default commandsfor `%s'.\n"));466 DBF (DB_IMPLICIT, _("Using default recipe for `%s'.\n")); 467 467 file->cmds = default_file->cmds; 468 468 } … … 715 715 must_make = 0; 716 716 DBF (DB_VERBOSE, 717 _("No commandsfor `%s' and no prerequisites actually changed.\n"));717 _("No recipe for `%s' and no prerequisites actually changed.\n")); 718 718 } 719 719 else if (!must_make && file->cmds != 0 && always_make_flag) … … 765 765 if (file->command_state != cs_finished) 766 766 { 767 DBF (DB_VERBOSE, _(" Commands of `%s' arebeing run.\n"));767 DBF (DB_VERBOSE, _("Recipe of `%s' is being run.\n")); 768 768 return 0; 769 769 } … … 988 988 file on whose behalf we are checking. */ 989 989 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); 990 996 991 997 lastd = 0; … … 1026 1032 if (d->file->command_state == cs_running 1027 1033 || 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; 1032 1035 1033 1036 lastd = d; 1034 1037 d = d->next; 1035 1038 } 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); 1036 1045 } 1037 1046 } … … 1302 1311 + ((FILE_TIMESTAMP_NS (mtime) - FILE_TIMESTAMP_NS (now)) 1303 1312 / 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); 1306 1321 #endif 1307 1322 clock_skew_detected = 1; -
vendor/gnumake/current/remote-cstms.c
r900 r1989 5 5 6 6 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 7 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software7 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 8 8 Foundation, Inc. 9 9 This file is part of GNU Make. … … 11 11 GNU Make is free software; you can redistribute it and/or modify it under the 12 12 terms of the GNU General Public License as published by the Free Software 13 Foundation; either version 2, or (at your option) any later version. 13 Foundation; either version 3 of the License, or (at your option) any later 14 version. 14 15 15 16 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 18 19 19 20 You 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. */ 21 this program. If not, see <http://www.gnu.org/licenses/>. */ 22 22 23 23 #include "make.h" -
vendor/gnumake/current/remote-stub.c
r501 r1989 1 1 /* Template for the remote job exportation interface to GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" -
vendor/gnumake/current/rule.c
r900 r1989 1 1 /* Pattern and suffix rule internals for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" -
vendor/gnumake/current/rule.h
r900 r1989 1 1 /* Definitions for using pattern rules in GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 -
vendor/gnumake/current/signame.c
r501 r1989 1 1 /* Convert between signal names and numbers. 2 2 Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.3 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #include "make.h" -
vendor/gnumake/current/strcache.c
r900 r1989 1 1 /* Constant string caching for GNU Make. 2 Copyright (C) 2006 Free Software Foundation, Inc.2 Copyright (C) 2006, 2007 Free Software Foundation, Inc. 3 3 This file is part of GNU Make. 4 4 5 5 GNU Make is free software; you can redistribute it and/or modify it under the 6 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. 7 Foundation; either version 3 of the License, or (at your option) any later 8 version. 8 9 9 10 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 12 13 13 14 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. */ 15 this program. If not, see <http://www.gnu.org/licenses/>. */ 16 16 17 17 #include "make.h" -
vendor/gnumake/current/subproc.bat
r501 r1989 1 1 @echo off 2 2 rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 rem 2005, 2006 Free Software Foundation, Inc.3 rem 2005, 2006, 2007 Free Software Foundation, Inc. 4 4 rem This file is part of GNU Make. 5 5 rem 6 6 rem GNU Make is free software; you can redistribute it and/or modify it under 7 7 rem 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 later9 rem version.10 8 rem Software Foundation; either version 3 of the License, or (at your option) 9 rem any later version. 10 rem 11 11 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT 12 12 rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for. 14 14 rem more details. 15 15 rem 16 16 rem 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. 17 rem with this program. If not, see <http://www.gnu.org/licenses/>. 19 18 20 19 cd 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/> 6 5 Everyone is permitted to copy and distribute verbatim copies 7 6 of this license document, but changing it is not allowed. 8 7 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 11 software and other kinds of works. 12 13 The licenses for most software and other practical works are designed 14 to take away your freedom to share and change the works. By contrast, 15 the GNU General Public License is intended to guarantee your freedom to 16 share and change all versions of a program--to make sure it remains free 17 software for all its users. We, the Free Software Foundation, use the 18 GNU General Public License for most of our software; it applies also to 19 any other work released this way by its authors. You can apply it to 19 20 your programs, too. 20 21 … … 22 23 price. Our General Public Licenses are designed to make sure that you 23 24 have the freedom to distribute copies of free software (and charge for 24 th is service if you wish), that you receive source code or can get it25 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 forbid29 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.25 them if you wish), that you receive source code or can get it if you 26 want it, that you can change the software or use pieces of it in new 27 free programs, and that you know you can do these things. 28 29 To protect your rights, we need to prevent others from denying you 30 these rights or asking you to surrender the rights. Therefore, you have 31 certain responsibilities if you distribute copies of the software, or if 32 you modify it: responsibilities to respect the freedom of others. 32 33 33 34 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. 35 gratis or for a fee, you must pass on to the recipients the same 36 freedoms that you received. You must make sure that they, too, receive 37 or can get the source code. And you must show them these terms so they 38 know 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 42 giving you legal permission to copy, distribute and/or modify it. 43 44 For the developers' and authors' protection, the GPL clearly explains 45 that there is no warranty for this free software. For both users' and 46 authors' sake, the GPL requires that modified versions be marked as 47 changed, so that their problems will not be attributed erroneously to 48 authors of previous versions. 49 50 Some devices are designed to deny users access to install or run 51 modified versions of the software inside them, although the manufacturer 52 can do so. This is fundamentally incompatible with the aim of 53 protecting users' freedom to change the software. The systematic 54 pattern of such abuse occurs in the area of products for individuals to 55 use, which is precisely where it is most unacceptable. Therefore, we 56 have designed this version of the GPL to prohibit the practice for those 57 products. If such problems arise substantially in other domains, we 58 stand ready to extend this provision to those domains in future versions 59 of the GPL, as needed to protect the freedom of users. 60 61 Finally, every program is threatened constantly by software patents. 62 States should not allow patents to restrict development and use of 63 software on general-purpose computers, but in those that do, we wish to 64 avoid the special danger that patents applied to a free program could 65 make it effectively proprietary. To prevent this, the GPL assures that 66 patents cannot be used to render the program non-free. 55 67 56 68 The precise terms and conditions for copying, distribution and 57 69 modification follow. 58 70 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 78 works, such as semiconductor masks. 79 80 "The Program" refers to any copyrightable work licensed under this 81 License. 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 85 in a fashion requiring copyright permission, other than the making of an 86 exact copy. The resulting work is called a "modified version" of the 87 earlier work or a work "based on" the earlier work. 88 89 A "covered work" means either the unmodified Program or a work based 90 on the Program. 91 92 To "propagate" a work means to do anything with it that, without 93 permission, would make you directly or secondarily liable for 94 infringement under applicable copyright law, except executing it on a 95 computer or modifying a private copy. Propagation includes copying, 96 distribution (with or without modification), making available to the 97 public, and in some countries other activities as well. 98 99 To "convey" a work means any kind of propagation that enables other 100 parties to make or receive copies. Mere interaction with a user through 101 a computer network, with no transfer of a copy, is not conveying. 102 103 An interactive user interface displays "Appropriate Legal Notices" 104 to the extent that it includes a convenient and prominently visible 105 feature that (1) displays an appropriate copyright notice, and (2) 106 tells the user that there is no warranty for the work (except to the 107 extent that warranties are provided), that licensees may convey the 108 work under this License, and how to view a copy of this License. If 109 the interface presents a list of user commands or options, such as a 110 menu, 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 115 for making modifications to it. "Object code" means any non-source 116 form of a work. 117 118 A "Standard Interface" means an interface that either is an official 119 standard defined by a recognized standards body, or, in the case of 120 interfaces specified for a particular programming language, one that 121 is widely used among developers working in that language. 122 123 The "System Libraries" of an executable work include anything, other 124 than the work as a whole, that (a) is included in the normal form of 125 packaging a Major Component, but which is not part of that Major 126 Component, and (b) serves only to enable use of the work with that 127 Major Component, or to implement a Standard Interface for which an 128 implementation 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 132 produce 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 135 the source code needed to generate, install, and (for an executable 136 work) run the object code and to modify the work, including scripts to 137 control those activities. However, it does not include the work's 138 System Libraries, or general-purpose tools or generally available free 139 programs which are used unmodified in performing those activities but 140 which are not part of the work. For example, Corresponding Source 141 includes interface definition files associated with source files for 142 the work, and the source code for shared libraries and dynamically 143 linked subprograms that the work is specifically designed to require, 144 such as by intimate data communication or control flow between those 145 subprograms and other parts of the work. 146 147 The Corresponding Source need not include anything that users 148 can regenerate automatically from other parts of the Corresponding 149 Source. 150 151 The Corresponding Source for a work in source code form is that 152 same work. 153 154 2. Basic Permissions. 155 156 All rights granted under this License are granted for the term of 157 copyright on the Program, and are irrevocable provided the stated 158 conditions are met. This License explicitly affirms your unlimited 159 permission to run the unmodified Program. The output from running a 160 covered work is covered by this License only if the output, given its 161 content, constitutes a covered work. This License acknowledges your 162 rights 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 165 convey, without conditions so long as your license otherwise remains 166 in force. You may convey covered works to others for the sole purpose 167 of having them make modifications exclusively for you, or provide you 168 with facilities for running those works, provided that you comply with 169 the terms of this License in conveying all material for which you do 170 not control copyright. Those thus making or running the covered works 171 for you must do so exclusively on your behalf, under your direction 172 and control, on terms that prohibit them from making any copies of 173 your copyrighted material outside their relationship with you. 174 175 Conveying under any other circumstances is permitted solely under 176 the conditions stated below. Sublicensing is not allowed; section 10 177 makes 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 182 measure under any applicable law fulfilling obligations under article 183 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 similar laws prohibiting or restricting circumvention of such 185 measures. 186 187 When you convey a covered work, you waive any legal power to forbid 188 circumvention of technological measures to the extent such circumvention 189 is effected by exercising rights under this License with respect to 190 the covered work, and you disclaim any intention to limit operation or 191 modification of the work as a means of enforcing, against the work's 192 users, your or third parties' legal rights to forbid circumvention of 193 technological measures. 194 195 4. Conveying Verbatim Copies. 196 197 You may convey verbatim copies of the Program's source code as you 198 receive it, in any medium, provided that you conspicuously and 199 appropriately publish on each copy an appropriate copyright notice; 200 keep intact all notices stating that this License and any 201 non-permissive terms added in accord with section 7 apply to the code; 202 keep intact all notices of the absence of any warranty; and give all 203 recipients 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, 206 and 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 211 produce it from the Program, in the form of source code under the 212 terms 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 236 works, which are not by their nature extensions of the covered work, 237 and which are not combined with it such as to form a larger program, 238 in or on a volume of a storage or distribution medium, is called an 239 "aggregate" if the compilation and its resulting copyright are not 240 used to limit the access or legal rights of the compilation's users 241 beyond what the individual works permit. Inclusion of a covered work 242 in an aggregate does not cause this License to apply to the other 243 parts 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 248 of sections 4 and 5, provided that you also convey the 249 machine-readable Corresponding Source under the terms of this License, 250 in 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 294 from the Corresponding Source as a System Library, need not be 295 included in conveying the object code work. 296 297 A "User Product" is either (1) a "consumer product", which means any 298 tangible personal property which is normally used for personal, family, 299 or household purposes, or (2) anything designed or sold for incorporation 300 into a dwelling. In determining whether a product is a consumer product, 301 doubtful cases shall be resolved in favor of coverage. For a particular 302 product received by a particular user, "normally used" refers to a 303 typical or common use of that class of product, regardless of the status 304 of the particular user or of the way in which the particular user 305 actually uses, or expects or is expected to use, the product. A product 306 is a consumer product regardless of whether the product has substantial 307 commercial, industrial or non-consumer uses, unless such uses represent 308 the only significant mode of use of the product. 309 310 "Installation Information" for a User Product means any methods, 311 procedures, authorization keys, or other information required to install 312 and execute modified versions of a covered work in that User Product from 313 a modified version of its Corresponding Source. The information must 314 suffice to ensure that the continued functioning of the modified object 315 code is in no case prevented or interfered with solely because 316 modification has been made. 317 318 If you convey an object code work under this section in, or with, or 319 specifically for use in, a User Product, and the conveying occurs as 320 part of a transaction in which the right of possession and use of the 321 User Product is transferred to the recipient in perpetuity or for a 322 fixed term (regardless of how the transaction is characterized), the 323 Corresponding Source conveyed under this section must be accompanied 324 by the Installation Information. But this requirement does not apply 325 if neither you nor any third party retains the ability to install 326 modified object code on the User Product (for example, the work has 327 been installed in ROM). 328 329 The requirement to provide Installation Information does not include a 330 requirement to continue to provide support service, warranty, or updates 331 for a work that has been modified or installed by the recipient, or for 332 the User Product in which it has been modified or installed. Access to a 333 network may be denied when the modification itself materially and 334 adversely affects the operation of the network or violates the rules and 335 protocols for communication across the network. 336 337 Corresponding Source conveyed, and Installation Information provided, 338 in accord with this section must be in a format that is publicly 339 documented (and with an implementation available to the public in 340 source code form), and must require no special password or key for 341 unpacking, reading or copying. 342 343 7. Additional Terms. 344 345 "Additional permissions" are terms that supplement the terms of this 346 License by making exceptions from one or more of its conditions. 347 Additional permissions that are applicable to the entire Program shall 348 be treated as though they were included in this License, to the extent 349 that they are valid under applicable law. If additional permissions 350 apply only to part of the Program, that part may be used separately 351 under those permissions, but the entire Program remains governed by 352 this License without regard to the additional permissions. 353 354 When you convey a copy of a covered work, you may at your option 355 remove any additional permissions from that copy, or from any part of 356 it. (Additional permissions may be written to require their own 357 removal in certain cases when you modify the work.) You may place 358 additional permissions on material, added by you to a covered work, 359 for which you have or can give appropriate copyright permission. 360 361 Notwithstanding any other provision of this License, for material you 362 add to a covered work, you may (if authorized by the copyright holders of 363 that 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 389 restrictions" within the meaning of section 10. If the Program as you 390 received it, or any part of it, contains a notice stating that it is 391 governed by this License along with a term that is a further 392 restriction, you may remove that term. If a license document contains 393 a further restriction but permits relicensing or conveying under this 394 License, you may add to a covered work material governed by the terms 395 of that license document, provided that the further restriction does 396 not survive such relicensing or conveying. 397 398 If you add terms to a covered work in accord with this section, you 399 must place, in the relevant source files, a statement of the 400 additional terms that apply to those files, or a notice indicating 401 where to find the applicable terms. 402 403 Additional terms, permissive or non-permissive, may be stated in the 404 form of a separately written license, or stated as exceptions; 405 the above requirements apply either way. 406 407 8. Termination. 408 409 You may not propagate or modify a covered work except as expressly 410 provided under this License. Any attempt otherwise to propagate or 411 modify it is void, and will automatically terminate your rights under 412 this License (including any patent licenses granted under the third 413 paragraph of section 11). 414 415 However, if you cease all violation of this License, then your 416 license from a particular copyright holder is reinstated (a) 417 provisionally, unless and until the copyright holder explicitly and 418 finally terminates your license, and (b) permanently, if the copyright 419 holder fails to notify you of the violation by some reasonable means 420 prior to 60 days after the cessation. 421 422 Moreover, your license from a particular copyright holder is 423 reinstated permanently if the copyright holder notifies you of the 424 violation by some reasonable means, this is the first time you have 425 received notice of violation of this License (for any work) from that 426 copyright holder, and you cure the violation prior to 30 days after 427 your receipt of the notice. 428 429 Termination of your rights under this section does not terminate the 430 licenses of parties who have received copies or rights from you under 431 this License. If your rights have been terminated and not permanently 432 reinstated, you do not qualify to receive new licenses for the same 433 material 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 438 run a copy of the Program. Ancillary propagation of a covered work 439 occurring solely as a consequence of using peer-to-peer transmission 440 to receive a copy likewise does not require acceptance. However, 441 nothing other than this License grants you permission to propagate or 442 modify any covered work. These actions infringe copyright if you do 443 not accept this License. Therefore, by modifying or propagating a 444 covered 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 449 receives a license from the original licensors, to run, modify and 450 propagate that work, subject to this License. You are not responsible 451 for enforcing compliance by third parties with this License. 452 453 An "entity transaction" is a transaction transferring control of an 454 organization, or substantially all assets of one, or subdividing an 455 organization, or merging organizations. If propagation of a covered 456 work results from an entity transaction, each party to that 457 transaction who receives a copy of the work also receives whatever 458 licenses to the work the party's predecessor in interest had or could 459 give under the previous paragraph, plus a right to possession of the 460 Corresponding Source of the work from the predecessor in interest, if 461 the predecessor has it or can get it with reasonable efforts. 462 463 You may not impose any further restrictions on the exercise of the 464 rights granted or affirmed under this License. For example, you may 465 not impose a license fee, royalty, or other charge for exercise of 466 rights granted under this License, and you may not initiate litigation 467 (including a cross-claim or counterclaim in a lawsuit) alleging that 468 any patent claim is infringed by making, using, selling, offering for 469 sale, 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 474 License of the Program or a work on which the Program is based. The 475 work thus licensed is called the contributor's "contributor version". 476 477 A contributor's "essential patent claims" are all patent claims 478 owned or controlled by the contributor, whether already acquired or 479 hereafter acquired, that would be infringed by some manner, permitted 480 by this License, of making, using, or selling its contributor version, 481 but do not include claims that would be infringed only as a 482 consequence of further modification of the contributor version. For 483 purposes of this definition, "control" includes the right to grant 484 patent sublicenses in a manner consistent with the requirements of 198 485 this License. 199 486 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 488 patent license under the contributor's essential patent claims, to 489 make, use, sell, offer for sale, import and otherwise run, modify and 490 propagate the contents of its contributor version. 491 492 In the following three paragraphs, a "patent license" is any express 493 agreement or commitment, however denominated, not to enforce a patent 494 (such as an express permission to practice a patent or covenant not to 495 sue for patent infringement). To "grant" such a patent license to a 496 party means to make such an agreement or commitment not to enforce a 497 patent against the party. 498 499 If you convey a covered work, knowingly relying on a patent license, 500 and the Corresponding Source of the work is not available for anyone 501 to copy, free of charge and under the terms of this License, through a 502 publicly available network server or other readily accessible means, 503 then you must either (1) cause the Corresponding Source to be so 504 available, or (2) arrange to deprive yourself of the benefit of the 505 patent license for this particular work, or (3) arrange, in a manner 506 consistent with the requirements of this License, to extend the patent 507 license to downstream recipients. "Knowingly relying" means you have 508 actual knowledge that, but for the patent license, your conveying the 509 covered work in a country, or your recipient's use of the covered work 510 in a country, would infringe one or more identifiable patents in that 511 country that you have reason to believe are valid. 512 513 If, pursuant to or in connection with a single transaction or 514 arrangement, you convey, or propagate by procuring conveyance of, a 515 covered work, and grant a patent license to some of the parties 516 receiving the covered work authorizing them to use, propagate, modify 517 or convey a specific copy of the covered work, then the patent license 518 you grant is automatically extended to all recipients of the covered 519 work and works based on it. 520 521 A patent license is "discriminatory" if it does not include within 522 the scope of its coverage, prohibits the exercise of, or is 523 conditioned on the non-exercise of one or more of the rights that are 524 specifically granted under this License. You may not convey a covered 525 work if you are a party to an arrangement with a third party that is 526 in the business of distributing software, under which you make payment 527 to the third party based on the extent of your activity of conveying 528 the work, and under which the third party grants, to any of the 529 parties who would receive the covered work from you, a discriminatory 530 patent license (a) in connection with copies of the covered work 531 conveyed by you (or copies made from those copies), or (b) primarily 532 for and in connection with specific products or compilations that 533 contain the covered work, unless you entered into that arrangement, 534 or that patent license was granted, prior to 28 March 2007. 535 536 Nothing in this License shall be construed as excluding or limiting 537 any implied license or other defenses to infringement that may 538 otherwise 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 203 543 otherwise) 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 544 excuse you from the conditions of this License. If you cannot convey a 545 covered work so as to satisfy simultaneously your obligations under this 546 License and any other pertinent obligations, then as a consequence you may 547 not convey it at all. For example, if you agree to terms that obligate you 548 to collect a royalty for further conveying from those to whom you convey 549 the Program, the only way you could satisfy both those terms and this 550 License 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 555 permission to link or combine any covered work with a work licensed 556 under version 3 of the GNU Affero General Public License into a single 557 combined work, and to convey the resulting work. The terms of this 558 License will continue to apply to the part which is the covered work, 559 but the special requirements of the GNU Affero General Public License, 560 section 13, concerning interaction through a network will apply to the 561 combination as such. 562 563 14. Revised Versions of this License. 564 565 The Free Software Foundation may publish revised and/or new versions of 566 the GNU General Public License from time to time. Such new versions will 243 567 be similar in spirit to the present version, but may differ in detail to 244 568 address new problems or concerns. 245 569 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 571 Program specifies that a certain numbered version of the GNU General 572 Public License "or any later version" applies to it, you have the 573 option of following the terms and conditions either of that numbered 574 version or of any later version published by the Free Software 575 Foundation. If the Program does not specify a version number of the 576 GNU General Public License, you may choose any version ever published 577 by the Free Software Foundation. 578 579 If the Program specifies that a proxy can decide which future 580 versions of the GNU General Public License can be used, that proxy's 581 public statement of acceptance of a version permanently authorizes you 582 to choose that version for the Program. 583 584 Later license versions may give you additional or different 585 permissions. However, no additional obligations are imposed on any 586 author or copyright holder as a result of your choosing to follow a 587 later version. 588 589 15. Disclaimer of Warranty. 590 591 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 ALL 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 603 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 SUCH DAMAGES. 611 612 17. Interpretation of Sections 15 and 16. 613 614 If the disclaimer of warranty and limitation of liability provided 615 above cannot be given local legal effect according to their terms, 616 reviewing courts shall apply local law that most closely approximates 617 an absolute waiver of all civil liability in connection with the 618 Program, unless a warranty or assumption of liability accompanies a 619 copy 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 288 624 289 625 If you develop a new program, and you want it to be of the greatest … … 293 629 To do so, attach the following notices to the program. It is safest 294 630 to attach them to the start of each source file to most effectively 295 conveythe exclusion of warranty; and each file should have at least631 state the exclusion of warranty; and each file should have at least 296 632 the "copyright" line and a pointer to where the full notice is found. 297 633 298 634 <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 modify635 Copyright (C) <year> <name of author> 636 637 This program is free software: you can redistribute it and/or modify 302 638 it under the terms of the GNU General Public License as published by 303 the Free Software Foundation ; either version 2of the License, or639 the Free Software Foundation, either version 3 of the License, or 304 640 (at your option) any later version. 305 641 … … 310 646 311 647 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/>. 314 649 315 650 Also add information on how to contact you by electronic and paper mail. 316 651 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 author321 Gnomovisioncomes with ABSOLUTELY NO WARRANTY; for details type `show w'.652 If the program does terminal interaction, make it output a short 653 notice 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'. 322 657 This is free software, and you are welcome to redistribute it 323 658 under certain conditions; type `show c' for details. 324 659 325 660 The 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. 661 parts of the General Public License. Of course, your program's commands 662 might 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, 665 if any, to sign a "copyright disclaimer" for the program, if necessary. 666 For 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 670 into proprietary programs. If your program is a subroutine library, you 671 may consider it more useful to permit linking proprietary applications with 672 the library. If this is what you want to do, use the GNU Lesser General 673 Public 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 1 2007-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 10 2007-09-10 Paul Smith <[email protected]> 11 12 * scripts/variables/special: Add tests for .RECIPEPREFIX variable. 13 14 2007-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 27 2007-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 1 47 2006-10-01 Paul Smith <[email protected]> 2 48 … … 835 881 836 882 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 837 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.883 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 838 884 This file is part of GNU Make. 839 885 840 886 GNU Make is free software; you can redistribute it and/or modify it under the 841 887 terms of the GNU General Public License as published by the Free Software 842 Foundation; either version 2, or (at your option) any later version. 888 Foundation; either version 3 of the License, or (at your option) any later 889 version. 843 890 844 891 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 847 894 848 895 You 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. 896 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/tests/NEWS
r501 r1989 165 165 ------------------------------------------------------------------------------- 166 166 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 167 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.167 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 168 168 This file is part of GNU Make. 169 169 170 170 GNU Make is free software; you can redistribute it and/or modify it under the 171 171 terms of the GNU General Public License as published by the Free Software 172 Foundation; either version 2, or (at your option) any later version. 172 Foundation; either version 3 of the License, or (at your option) any later 173 version. 173 174 174 175 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 177 178 178 179 You 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. 180 this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/tests/README
r501 r1989 9 9 ----------------------------------------------------------------------------- 10 10 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. 12 12 This file is part of GNU Make. 13 13 14 14 GNU Make is free software; you can redistribute it and/or modify it under the 15 15 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. 17 18 18 19 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 21 22 22 23 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/>. 25 25 ----------------------------------------------------------------------------- 26 26 -
vendor/gnumake/current/tests/mkshadow
r501 r1989 5 5 # 6 6 # 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. 8 8 # This file is part of GNU Make. 9 9 # 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. 13 14 # 14 15 # 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. 17 19 # 18 20 # 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/>. 21 22 22 23 case "$1" in -
vendor/gnumake/current/tests/run_make_tests.pl
r900 r1989 13 13 14 14 # 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. 16 16 # This file is part of GNU Make. 17 17 # 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. 21 22 # 22 23 # 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. 25 27 # 26 28 # 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/>. 29 30 30 31 $valgrind = 0; # invoke make with valgrind … … 82 83 sub run_make_test 83 84 { 84 local ($makestring, $options, $answer, $err_code ) = @_;85 local ($makestring, $options, $answer, $err_code, $timeout) = @_; 85 86 86 87 # If the user specified a makefile string, create a new makefile to contain … … 121 122 $answer =~ s/#PWD#/$pwd/g; 122 123 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); 124 126 &compare_output($answer, &get_logfile(1)); 125 127 … … 130 132 # The old-fashioned way... 131 133 sub run_make_with_options { 132 local ($filename,$options,$logname,$expected_code ) = @_;134 local ($filename,$options,$logname,$expected_code,$timeout) = @_; 133 135 local($code); 134 136 local($command) = $make_path; … … 151 153 } 152 154 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 } 154 164 155 165 # Check to see if we have Purify errors. If so, keep the logfile. -
vendor/gnumake/current/tests/scripts/features/parallelism
r501 r1989 70 70 # for this situation and print a message if it occurred. This test used 71 71 # 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. 72 73 73 74 run_make_test(" … … 80 81 81 82 first second: ; \@echo \$\@; $sleep_command 1; echo \$\@", 82 '-j2', "first\nfirst\nsecond\nsecond" );83 '-j2', "first\nfirst\nsecond\nsecond", 0, 7); 83 84 84 85 # Michael Matz <[email protected]> reported a bug where if make is running in … … 127 128 128 129 130 # TEST #9 -- Savannah bugs 3330 and 15919 131 # In earlier versions of make this will either give the wrong answer, or hang. 132 133 utouch(-10, 'target'); 134 run_make_test('target: intermed ; touch $@ 135 136 .INTERMEDIATE: intermed 137 intermed: | phony ; touch $@ 138 139 .PHONY: phony 140 phony: ; : phony', '-rR -j', ': phony'); 141 unlink('target'); 142 143 129 144 # Make sure that all jobserver FDs are closed if we need to re-exec the 130 145 # master copy. -
vendor/gnumake/current/tests/scripts/functions/eval
r501 r1989 164 164 165 165 run_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.', 167 167 512); 168 168 -
vendor/gnumake/current/tests/scripts/misc/close_stdout
r501 r1989 4 4 5 5 if (-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); 7 7 } 8 8 -
vendor/gnumake/current/tests/scripts/options/dash-l
r53 r1989 46 46 $mkoptions .= " -j 4" if ($parallel_jobs); 47 47 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); 49 50 50 51 $slurp = &read_file_into_string (&get_logfile(1)); -
vendor/gnumake/current/tests/scripts/targets/SECONDARY
r284 r1989 122 122 unlink('version2'); 123 123 124 # TEST #9 -- Savannah bug #15919 125 # The original fix for this bug caused a new bug, shown here. 126 127 touch(qw(1.a 2.a)); 128 129 run_make_test(' 130 %.c : %.b ; cp $< $@ 131 %.b : %.a ; cp $< $@ 132 all : 1.c 2.c', '-rR -j', 133 'cp 1.a 1.b 134 cp 2.a 2.b 135 cp 1.b 1.c 136 cp 2.b 2.c 137 rm 1.b 2.b'); 138 139 unlink(qw(1.a 2.a 1.c 2.c)); 140 141 # TEST #10 -- Savannah bug #15919 142 touch('test.0'); 143 run_make_test(' 144 .SECONDARY : test.1 test.2 test.3 145 146 test : 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 158 touch test.2 159 touch test.3 160 touch test.int 161 touch test.4 162 rm 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) 166 sleep(1); 167 touch('test.0'); 168 run_make_test(undef, '-rR -j 2', 169 'touch test.1 170 touch test.2 171 touch test.int 172 touch test.4 173 rm test.int'); 174 175 # With both test.0 and test.3 updated it should still build everything except 176 # test.3 177 sleep(1); 178 touch('test.0', 'test.3'); 179 run_make_test(undef, '-rR -j 2', 180 'touch test.1 181 touch test.2 182 touch test.int 183 touch test.4 184 rm test.int'); 185 186 unlink(qw(test.0 test.1 test.2 test.3 test.4)); 187 124 188 # This tells the test driver that the perl test script executed properly. 125 189 1; -
vendor/gnumake/current/tests/scripts/variables/special
r284 r1989 51 51 # &compare_output($answer, &get_logfile(1)); 52 52 53 # Test the .RECIPEPREFIX variable 54 &run_make_test(' 55 define foo 56 : foo-one \ 57 foo-two 58 : foo-three 59 : foo-four 60 endef 61 62 orig: ; : orig-one 63 : orig-two \ 64 orig-three \ 65 orig-four \ 66 orig-five \\\\ 67 : orig-six 68 $(foo) 69 70 .RECIPEPREFIX = > 71 test: ; : test-one 72 >: test-two \ 73 test-three \ 74 >test-four \ 75 > test-five \\\\ 76 >: test-six 77 >$(foo) 78 79 .RECIPEPREFIX = 80 reset: ; : reset-one 81 : reset-two \ 82 reset-three \ 83 reset-four \ 84 reset-five \\\\ 85 : reset-six 86 $(foo) 87 ', 88 'orig test reset', 89 ': orig-one 90 : orig-two \ 91 orig-three \ 92 orig-four \ 93 orig-five \\\\ 94 : orig-six 95 : foo-one foo-two 96 : foo-three 97 : foo-four 98 : test-one 99 : test-two \ 100 test-three \ 101 test-four \ 102 test-five \\\\ 103 : test-six 104 : foo-one foo-two 105 : foo-three 106 : foo-four 107 : reset-one 108 : reset-two \ 109 reset-three \ 110 reset-four \ 111 reset-five \\\\ 112 : reset-six 113 : foo-one foo-two 114 : foo-three 115 : foo-four'); 53 116 54 117 1; -
vendor/gnumake/current/tests/test_driver.pl
r900 r1989 7 7 # 8 8 # 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. 10 10 # This file is part of GNU Make. 11 11 # 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. 15 16 # 16 17 # 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. 19 21 # 20 22 # 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/>. 23 24 24 25 … … 29 30 # variables and then calls &toplevel, which does all the real work. 30 31 31 # $Id: test_driver.pl,v 1.2 1 2007/03/20 03:02:26psmith Exp $32 # $Id: test_driver.pl,v 1.24 2007/11/04 21:54:02 psmith Exp $ 32 33 33 34 … … 48 49 # Yeesh. This whole test environment is such a hack! 49 50 $test_passed = 1; 51 52 53 # Timeout in seconds. If the test takes longer than this we'll fail it. 54 $test_timeout = 5; 50 55 51 56 … … 657 662 } else { 658 663 # See if it is a slash or CRLF problem 659 local ($answer_mod ) = $answer;664 local ($answer_mod, $slurp_mod) = ($answer, $slurp); 660 665 661 666 $answer_mod =~ tr,\\,/,; 662 667 $answer_mod =~ s,\r\n,\n,gs; 663 668 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 } 668 681 } 669 682 … … 766 779 } 767 780 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. 782 sub _run_command 783 { 784 my $code; 774 785 775 786 # We reset this before every invocation. On Windows I think there is only … … 778 789 resetENV(); 779 790 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 813 sub run_command 814 { 780 815 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; 783 818 784 819 return $code; … … 792 827 sub run_command_with_output 793 828 { 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; 802 832 &attach_default_output ($filename); 803 $code = system @_;833 my $code = _run_command(@_); 804 834 &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; 807 836 808 837 return $code; -
vendor/gnumake/current/variable.c
r900 r1989 1 1 /* Internals of variables for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 256 256 257 257 static struct variable * 258 handle_special_var (struct variable *var)258 lookup_special_var (struct variable *var) 259 259 { 260 260 static unsigned long last_var_count = 0; … … 357 357 v = (struct variable *) hash_find_item ((struct hash_table *) &set->table, &var_key); 358 358 if (v) 359 return v->special ? handle_special_var (v) : v;359 return v->special ? lookup_special_var (v) : v; 360 360 } 361 361 … … 804 804 isn't one there. */ 805 805 v = define_variable ("SHELL", 5, default_shell, o_default, 0); 806 #ifdef __MSDOS__ 807 v->export = v_export; /* Export always SHELL. */ 808 #endif 806 809 807 810 /* On MSDOS we do use SHELL from environment, since it isn't a standard … … 926 929 927 930 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 } 937 943 938 944 case v_ifset: … … 997 1003 998 1004 1005 static struct variable * 1006 set_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 999 1020 /* Given a variable, a value, and a flavor, define the variable. 1000 1021 See the try_variable_definition() function for details on the parameters. */ … … 1031 1052 v = lookup_variable (varname, strlen (varname)); 1032 1053 if (v) 1033 return v ;1054 return v->special ? set_special_var (v) : v; 1034 1055 1035 1056 conditional = 1; … … 1200 1221 } 1201 1222 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 } 1203 1241 } 1204 1242 else … … 1222 1260 free (alloc_value); 1223 1261 1224 return v ;1262 return v->special ? set_special_var (v) : v; 1225 1263 } 1226 1264 -
vendor/gnumake/current/variable.h
r900 r1989 1 1 /* Definitions for using variables in GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "hash.h" -
vendor/gnumake/current/version.c
r501 r1989 1 1 /* Record version and build host architecture for GNU make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 /* We use <config.h> instead of "config.h" so that a compilation -
vendor/gnumake/current/vmsdir.h
r900 r1989 1 1 /* dirent.h for vms 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 200 6Free Software Foundation, Inc.2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 3 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef VMSDIR_H -
vendor/gnumake/current/vmsfunctions.c
r900 r1989 1 1 /* VMS functions 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 200 6Free Software Foundation, Inc.2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 3 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #include "make.h" -
vendor/gnumake/current/vmsify.c
r900 r1989 1 1 /* vmsify.c -- Module for vms <-> unix file name conversion 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 200 6Free Software Foundation, Inc.2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 3 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 /* Written by Klaus Kämpf ([email protected]) -
vendor/gnumake/current/vmsjobs.c
r900 r1989 2 2 This file must be #included in job.c, as it accesses static functions. 3 3 4 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 5 200 6Free Software Foundation, Inc.4 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 5 2007 Free Software Foundation, Inc. 6 6 This file is part of GNU Make. 7 7 8 8 GNU Make is free software; you can redistribute it and/or modify it under the 9 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. 10 Foundation; either version 3 of the License, or (at your option) any later 11 version. 11 12 12 13 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 15 16 16 17 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. */ 18 this program. If not, see <http://www.gnu.org/licenses/>. */ 19 19 20 20 #include <string.h> -
vendor/gnumake/current/vpath.c
r900 r1989 1 1 /* Implementation of pattern-matching file search paths for GNU Make. 2 2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software 4 4 Foundation, Inc. 5 5 This file is part of GNU Make. … … 7 7 GNU Make is free software; you can redistribute it and/or modify it under the 8 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. 9 Foundation; either version 3 of the License, or (at your option) any later 10 version. 10 11 11 12 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 14 15 15 16 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. */ 17 this program. If not, see <http://www.gnu.org/licenses/>. */ 18 18 19 19 #include "make.h" … … 237 237 /* Find the end of this entry. */ 238 238 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 240 250 && !isblank ((unsigned char)*p)) 241 251 ++p; … … 244 254 /* Make sure there's no trailing slash, 245 255 but still allow "/" as a directory. */ 246 #if defined(__MSDOS__) || defined(__EMX__) 256 #if defined(__MSDOS__) || defined(__EMX__) || defined(HAVE_DOS_PATHS) 247 257 /* We need also to leave alone a trailing slash in "d:/". */ 248 258 if (len > 3 || (len > 1 && v[1] != ':')) -
vendor/gnumake/current/w32/Makefile.am
r501 r1989 1 1 # 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. 4 4 # This file is part of GNU Make. 5 5 # 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. 9 10 # 10 11 # 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. 13 15 # 14 16 # 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/>. 17 18 18 19 noinst_LIBRARIES = libw32.a -
vendor/gnumake/current/w32/compat/dirent.c
r501 r1989 1 1 /* Directory entry code for Window platforms. 2 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 -
vendor/gnumake/current/w32/include/dirent.h
r501 r1989 1 1 /* Windows version of dirent.h 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 200 6Free Software Foundation, Inc.2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 3 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef _DIRENT_H -
vendor/gnumake/current/w32/include/pathstuff.h
r900 r1989 1 1 /* Definitions for Windows path manipulation. 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 200 6Free Software Foundation, Inc.2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 3 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef _PATHSTUFF_H -
vendor/gnumake/current/w32/include/sub_proc.h
r501 r1989 1 1 /* Definitions for Windows process invocation. 2 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef SUB_PROC_H … … 22 22 * Component Name: 23 23 * 24 * $Date: 200 6/02/11 22:16:05$24 * $Date: 2007/10/24 20:06:32 $ 25 25 * 26 26 * $Source: /sources/make/make/w32/include/sub_proc.h,v $ 27 27 * 28 * $Id: sub_proc.h,v 1. 8 2006/02/11 22:16:05 psmithExp $28 * $Id: sub_proc.h,v 1.10 2007/10/24 20:06:32 eliz Exp $ 29 29 */ 30 30 -
vendor/gnumake/current/w32/include/w32err.h
r501 r1989 1 1 /* Definitions for Windows error handling. 2 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef _W32ERR_H_ -
vendor/gnumake/current/w32/pathstuff.c
r900 r1989 1 1 /* Path conversion for Windows pathnames. 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 200 6Free Software Foundation, Inc.2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 3 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #include <string.h> … … 71 71 /* all finished, force abort */ 72 72 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; 73 79 } else { 74 80 /* found another one, no drive letter */ 75 81 *etok = to_delim; 76 82 p = ++etok; 77 83 } 78 84 79 85 return Path; -
vendor/gnumake/current/w32/subproc/NMakefile
r501 r1989 3 3 # 4 4 # 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. 6 6 # This file is part of GNU Make. 7 7 # 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. 11 12 # 12 13 # 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. 15 17 # 16 18 # 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/>. 19 20 20 21 # -
vendor/gnumake/current/w32/subproc/build.bat
r501 r1989 12 12 GoTo BuildEnd 13 13 :GCCBuild 14 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c misc.c -o ../../w32_misc.o15 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c sub_proc.c -o ../../sub_proc.o16 gcc -mthreads -Wall -g stabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c w32err.c -o ../../w32err.o14 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c misc.c -o ../../w32_misc.o 15 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c sub_proc.c -o ../../sub_proc.o 16 gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c w32err.c -o ../../w32err.o 17 17 :BuildEnd 18 18 19 19 @echo off 20 20 rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 21 rem 2005, 2006 Free Software Foundation, Inc.21 rem 2005, 2006, 2007 Free Software Foundation, Inc. 22 22 rem 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. 23 rem 24 rem GNU Make is free software; you can redistribute it and/or modify it under 25 rem the terms of the GNU General Public License as published by the Free 26 rem Software Foundation; either version 3 of the License, or (at your option) 27 rem any later version. 28 rem 29 rem GNU Make is distributed in the hope that it will be useful, but WITHOUT 30 rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 31 rem FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for. 32 rem more details. 33 rem 34 rem You should have received a copy of the GNU General Public License along 35 rem with this program. If not, see <http://www.gnu.org/licenses/>. -
vendor/gnumake/current/w32/subproc/misc.c
r501 r1989 1 1 /* Process handling for Windows 2 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #include <stddef.h> -
vendor/gnumake/current/w32/subproc/proc.h
r501 r1989 1 1 /* Definitions for Windows 2 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #ifndef _PROC_H -
vendor/gnumake/current/w32/subproc/sub_proc.c
r501 r1989 1 1 /* Process handling for Windows. 2 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #include <stdlib.h> -
vendor/gnumake/current/w32/subproc/w32err.c
r501 r1989 1 1 /* Error handling for Windows 2 2 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3 2006 Free Software Foundation, Inc.3 2006, 2007 Free Software Foundation, Inc. 4 4 This file is part of GNU Make. 5 5 6 6 GNU Make is free software; you can redistribute it and/or modify it under the 7 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. 8 Foundation; either version 3 of the License, or (at your option) any later 9 version. 9 10 10 11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY … … 13 14 14 15 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. */ 16 this program. If not, see <http://www.gnu.org/licenses/>. */ 17 17 18 18 #include <windows.h> … … 69 69 return szMessageBuffer; 70 70 } 71
Note:
See TracChangeset
for help on using the changeset viewer.