Changeset 3138 for vendor/gnumake/current/ChangeLog.3
- Timestamp:
- Mar 12, 2018, 8:32:29 PM (7 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
vendor/gnumake/current/ChangeLog.3
r3137 r3138 1 2013-10-09 Paul Smith <psmith@gnu.org> 2 3 Version 4.0 released. 4 5 * configure.ac: Updated for the release. 6 * NEWS: Updated for the release. 7 8 * maintMakefile (tag-release): New target to add a Git tag. 9 * read.c (eval): Typo fix. 10 * ChangeLog.1: Typo fixes. 11 * w32/subproc/sub_proc.c (process_cleanup): Typo fix. 12 13 2013-10-07 Eli Zaretskii <eliz@gnu.org> 14 15 * w32/compat/posixfcn.c (tmpfile): Move declaration of h before 16 the first executable statement. Reported by Gisle Vanem 17 <gvanem@yahoo.no>. 18 19 2013-10-05 Paul Smith <psmith@gnu.org> 20 21 * makeint.h (MAP_USERFUNC): A new map type for function names. 22 * main.c (initialize_stopchar_map): Set up the function name map. 23 24 * gnumake.h (gmk_func_ptr): Define a type for function pointers. 25 (gmk_add_function): Convert the last argument to FLAGS. 26 (GMK_FUNC_*): Define flags for the function. Change the default 27 behavior to "expand" since that's the most common one. 28 29 * function.c (function_table_entry): Use new function pointer type. 30 (lookup_function): Accept any valid function name character based 31 on the MAP_USERFUNC values. 32 (define_new_function): Use the new calling signature. Verify that 33 registered functions have valid names. 34 35 * guile.c (guile_gmake_setup): Use new calling signatures. 36 * loadapi.c (gmk_add_function): Ditto. 37 * variable.h (define_new_function): Ditto. 38 39 * doc/make.texi (Loaded Object API): Make the registered function 40 API documentation more clear. 41 42 2013-10-03 Eli Zaretskii <eliz@gnu.org> 43 44 * function.c (abspath): Reset root_len to one for Cygwin only when 45 HAVE_DOS_PATHS is defined. Suggested by Christopher Faylor. 46 47 2013-10-02 Eli Zaretskii <eliz@gnu.org> 48 49 * w32/compat/posixfcn.c (tmpfile): New function, a replacement for 50 the Windows libc version. 51 52 Fix $abspath on Cygwin when HAVE_DOS_PATHS is in effect. 53 * function.c (IS_ABSOLUTE) [__CYGWIN__]: Special definition for 54 Cygwin. 55 (abspath) [__CYGWIN__]: Reset root_len to 1 if the absolute file 56 name has the Posix /foo/bar form. 57 [HAVE_DOS_PATHS]: Use root_len instead of hard-coded 2. 58 59 2013-10-01 Paul Smith <psmith@gnu.org> 60 61 * configure.ac: Update version to 3.99.93. 62 * NEWS: Ditto. 63 64 2013-09-30 Paul Smith <psmith@gnu.org> 65 66 * guile.c: Portability fixes for Guile 1.8. 67 68 2013-09-29 Paul Smith <psmith@gnu.org> 69 70 * output.c (output_dump): Always write Enter/Leave messages to stdio. 71 (log_working_directory): This now always writes to stdio, so we 72 don't need the struct output parameter anymore. 73 (output_start): Show the working directory when output_sync is not 74 set or is recursive. 75 * main.c (main): Ensure the special "already shown Enter message" 76 token is removed from MAKE_RESTARTS before the user can see it. 77 * function.c (func_shell_base): If the output_context stderr 78 exists but is invalid, write to the real stderr. 79 Fixes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>. 80 81 * output.c: Guard unistd.h inclusion, add io.h. 82 * gnumake.h: Move GMK_EXPORT before the declarations. 83 * make_msvc_net2003.vcproj: Add missing files. 84 Changes for MSVC suggested by Gerte Hoogewerf <g.hoogewerf@gmail.com> 85 86 * function.c (func_shell_base) [EMX]: Fix EMX support for output-sync. 87 * job.c (child_execute_job) [EMX]: Ditto. 88 * job.h (child_execute_job) [EMX]: Ditto. 89 * w32/compat/posixfcn.c: Invert the test for NO_OUTPUT_SYNC. 90 91 * guile.c (GSUBR_TYPE): Pre-2.0 Guile doesn't provide a typedef 92 for gsubr pointers. Create one. 93 (guile_define_module): Use it. 94 (internal_guile_eval): Force UTF-8 encoding for Guile strings. 95 96 * main.c (main): Clear GNUMAKEFLAGS after parsing, to avoid 97 proliferation of options. 98 * NEWS: Document it. 99 * doc/make.texi (Options/Recursion): Ditto. 100 101 2013-09-23 Eli Zaretskii <eliz@gnu.org> 102 103 * w32/compat/posixfcn.c: Fix the forgotten OUTPUT_SYNC conditional. 104 105 * job.h: Ditto, but in a comment. 106 107 2013-09-22 Paul Smith <psmith@gnu.org> 108 109 * configure.ac: Update version to 3.99.92. 110 * NEWS: Ditto. 111 112 * implicit.c (pattern_search): After second expansion be sure to 113 handle order-only markers inside the expansion properly. 114 Fixes Savannah bug #31155. 115 116 * guile.c (guile_define_module): Technically a void* cannot 117 contain a pointer-to-function and some compilers warn about this. 118 Cast the function pointers. 119 * load.c (load_object): Ditto. 120 121 * read.c (eval): If load_file() returns -1, don't add this to the 122 "to be rebuilt" list. 123 * doc/make.texi (load Directive): Document it. 124 125 * guile.c (guile_gmake_setup): Don't initialize Guile so early. 126 (func_guile): Lazily initialize Guile the first time the $(guile ..) 127 function is invoked. Guile can steal file descriptors which 128 confuses our jobserver FD checking, so we don't want to initialize 129 it before we have to. 130 131 VMS port updates by Hartmut Becker <becker.ismaning@freenet.de> 132 133 * makefile.com: Add output to the filelist. 134 * output.c (va_copy): Add an implementation of this macro for VMS. 135 * commands.c: Ensure filedef.h is #included before dep.h. 136 * dir.c: Ditto. 137 * file.c: Ditto. 138 * guile.c: Ditto. 139 * main.c: Ditto. 140 * misc.c: Ditto. 141 * read.c: Ditto. 142 * rule.c: Ditto. 143 * variable.c: Ditto. 144 * readme.vms: Renamed to README.VMS and updates for this release. 145 * Makefile.am: Ditto. 146 * NEWS: Ditto. 147 * README.template: Ditto. 148 * Makefile.DOS.template: Ditto. 149 150 2013-09-21 Paul Smith <psmith@gnu.org> 151 152 * maintMakefile (check-alt-config): Create a target to test 153 alternative configurations. Each one will build make with a 154 different configuration then run the test suite. 155 156 Invert the output-sync #define to NO_OUTPUT_SYNC 157 158 * configure.ac: Don't set OUTPUT_SYNC. 159 * makeint.h: Ditto. 160 * main.c: Use NO_OUTPUT_SYNC instead of OUTPUT_SYNC. 161 * output.c: Ditto. 162 * output.h: Ditto. 163 * job.h: Ditto. 164 * job.c: Ditto. 165 * config.ami.template: Set NO_OUTPUT_SYNC. 166 * config.h-vms.template: Ditto. 167 * config.h.W32.template: Ditto. 168 * configh.dos.template: Ditto. 169 170 Output generated while reading makefiles should be synced. 171 172 * main.c (make_sync): Define a context for syncing while reading 173 makefiles and other top-level operations. 174 (main): If we request syncing, enable it while we are parsing 175 options, reading makefiles, etc. to capture that output. Just 176 before we start to run rules, dump the output if any. 177 (die): Dump any output we've been syncing before we die 178 * output.h (OUTPUT_SET): Disable output_context if not syncout. 179 180 Stderr generated from shell functions in recipes should be synced. 181 182 * job.h (FD_STDIN, FD_STDOUT, FD_STDERR): Create new macros to 183 avoid magic numbers. 184 (child_execute_job): Take a FD for stderr. 185 * job.c (child_execute_job): Handle STDERR FD's in addition to 186 stdin and stdout. 187 (start_job_command): Call child_execute_job() with the new STDERR 188 parameter. Instead of performing the dup() here, send it to 189 child_execute_job() where it's already being done. 190 * function.c (func_shell_base): Pass the OUTPUT_CONTEXT stderr to 191 child_execute_job() if it's set, otherwise FD_STDERR. 192 * main.c (main): Pass FD_STDERR to child_execute_job(). 193 194 2013-09-19 Paul Smith <psmith@gnu.org> 195 196 * main.c (main): Set MAKE_RESTARTS to negative before re-exec if 197 we've already generated an "Entering" message. If we are started 198 and notice that MAKE_RESTARTS is negative, assume we already wrote 199 "Entering" and don't write it again. 200 201 2013-09-18 Paul Smith <psmith@gnu.org> 202 203 * main.c (main): Set starting_directory before we write any 204 errors. Fixes Savannah bug #40043. 205 206 2013-09-16 Eli Zaretskii <eliz@gnu.org> 207 208 * output.c [WINDOWS32]: Include windows.h and sub_proc.h, to avoid 209 compiler warnings for CLOSE_ON_EXEC. 210 211 2013-09-16 Paul Smith <psmith@gnu.org> 212 213 * configure.ac: Update version to 3.99.91. 214 * NEWS: Ditto. 215 216 2013-09-15 Paul Smith <psmith@gnu.org> 217 218 * doc/make.texi (Error Messages): Add a bit more info to the 219 section on static pattern errors, since they're common. 220 Fixes Savannah bug #31326. 221 222 * read.c (eval_makefile): If the file open fails with an 223 unrecoverable error, stop now rather than trying to make it. 224 Fixes Savannah bug #27374. 225 226 * main.c (main): Perform the validation of the jobserver FDs 227 early, before we read makefiles, to ensure that something hasn't 228 opened and used those FDs for some other reason. 229 Fixes Savannah bug #39934. 230 231 * main.c (main): Don't set MAKEFLAGS in the environment when we 232 restart. We have the original command line flags so keep the 233 original MAKEFLAGS settings as well. 234 Fixes Savannah bug #39203. 235 236 2013-09-14 Paul Smith <psmith@gnu.org> 237 238 * main.c (decode_debug_flags): Add support for the "n" flag to 239 disable all debugging. 240 * make.1: Document the "n" (none) flag. 241 * doc/make.texi (Options Summary): Ditto. 242 * NEWS: Ditto. 243 Fixes Savannah bug #35248. 244 245 * misc.c (close_stdout): Move to output.c. 246 * main.c (main): Move atexit call to output_init(). 247 * makeint.h: Remove close_stdout() declaration. 248 * output.c (output_init): Add close_stdout at exit only if it's open. 249 Fixes Savannah bug #33134. Suggested by David Boyce <dsb@boyski.com>. 250 251 2013-09-14 Paul Smith <psmith@gnu.org> 252 253 * misc.c (set_append_mode, open_tmpfd, open_tmpfile): Move to output.c. 254 * misc.h: Ditto. 255 * output.h: Ditto. 256 * main.c (main): Move stdio init into output.c:output_init(). 257 Change open_tmpfile() to output_tmpfile(). 258 * output.c: Rename open_*() to output_*(). set_append_mode() and 259 open_tmpfd() are static. 260 (_outputs, log_working_directory): Accept a struct output and 261 print to that rather than the global context. 262 (output_dump): In recurse mode print enter/leave once for the 263 whole makefile. 264 (output_init): Initialize this processes stdio as well as child's. 265 266 * vmsjobs.c: Reformat to be closer to convention. 267 268 2013-09-12 Paul Smith <psmith@gnu.org> 269 270 Rework output to handle synchronization and directory logging more 271 reliably. 272 273 * output.c: New file. Implement lazy synchronization and 274 directory logging so that we manage them "just in time", and the 275 destination of the output is set via a global state variable. 276 * output.h: New file. 277 * function.c (func_shell_base): Ensure the output is set up before 278 running a shell command, in case it writes to stderr. 279 (func_error): Use outputs() to generate output. 280 * job.h (struct child): Add struct output to track the child's output. 281 * job.c: Use struct output in the child structure to track output. 282 (child_out, sync_init, assign_child_tempfiles, pump_from_tmp) 283 (acquire_semaphore, release_semaphore, sync_output): Move most of 284 the output_sync handling to output.c. 285 (child_error): Set output, then use simple message() and error() 286 not _s versions. 287 * main.c (log_working_directory): Moved to output.c 288 (trace_option, decode_trace_flags) Remove. Remove support for 289 different trace modes; we don't use it anymore. 290 (die) Invoke output_close() before we exit. 291 * misc.c (message_s, error_s): Removed; no longer needed. 292 (message, error, fatal, perror_with_name, pfatal_with_name): Moved 293 to output.c. 294 * makeint.h: Remove message_s(), error_s(), and 295 log_working_directory(). Remove the TRACE_* macros. 296 * doc/make.texi: Enhance documentation for output sync, and remove 297 MODE assignment for --trace. 298 * make.1: Remove MODE assignment for --trace. 299 * Makefile.am: Add new files. 300 * NMakefile.template: Ditto. 301 * SMakefile.template: Ditto. 302 * build_w32.bat: Ditto. 303 * dosbuild.bat: Ditto. 304 * make.lnk: Ditto. 305 * make_nsvc_net2003.vcproj: Ditto. 306 * makefile.vms: Ditto. 307 * po/POTFILES.in: Ditto. 308 309 2013-08-22 Petr Machata <pmachata@redhat.com> 310 311 * function.c (func_shell_base): Get rid of any avoidable limit on 312 stack size for processes spawned via $(shell). 313 314 2013-07-22 Paul Smith <psmith@gnu.org> 315 316 * implicit.c (pattern_search): Use PARSE_SIMPLE_SEQ() even for 317 non-second expansion prerequisites, to handle globbing in patterns. 318 Fixes Savannah bug #39310. 319 320 * dep.h (PARSE_SIMPLE_SEQ): Macro for simple file sequence parsing. 321 * default.c (set_default_suffixes): Use it. 322 * file.c (split_prereqs): Ditto. 323 * main.c (main): Ditto. 324 * read.c (eval): Ditto. 325 * rule.c (install_pattern_rule): Ditto. 326 * file.c (split_prereqs): Use PARSEFS_NONE instead of 0. 327 328 2013-07-21 Paul Smith <psmith@gnu.org> 329 330 Cleanups detected by cppcheck. Fixes Savannah bug #39158. 331 * arscan.c (ar_scan): Reduce the scope of local variables. 332 * dir.c (vms_hash): Ditto. 333 (find_directory): Ditto. 334 (file_impossible_p): Ditto. 335 * expand.c (variable_expand_string): Ditto. 336 * function.c (func_sort): Ditto. 337 (func_and): Ditto. 338 * job.c (reap_children): Ditto. 339 (exec_command): Ditto. 340 * main.c (main): Ditto. 341 * misc.c (collapse_continuations): Ditto. 342 * read.c (eval): Ditto. 343 (parse_file_seq): Ditto. 344 * vpath.c (gpath_search): Ditto. 345 (selective_vpath_search): Ditto. 346 * job.c (is_bourne_compatible_shell): Simplify for non-Windows systems. 347 * remake.c (f_mtime): Remove duplicate test. 348 * signame.c (strsignal): Fix bogus conditional. 349 350 * job.c (assign_child_tempfiles): Assign OUTFD to -1 for safety. 351 (start_job_command): Don't test output_sync and sync_cmd: redundant. 352 Changes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>. 353 354 2013-07-14 Paul Smith <psmith@gnu.org> 355 356 * filedef.h (update_status): Convert UPDATE_STATUS from a char to 357 an enumeration. Some systems declare "char" to be "unsigned" 358 which broke the code (which expected to be able to use -1 as a 359 flag). Using magic values was unpleasant, so rather than just 360 force "signed char" I reworked it to use an enum. 361 362 * dep.h (update_goal_chain): Return an update_status value not int. 363 * remake.c (touch_file): Ditto. 364 (update_goal_chain): Track the update_status enum. 365 366 * file.c (enter_file): Use new enumeration values with update_status. 367 (remove_intermediates): Ditto. 368 (print_file): Ditto. 369 * commands.c (execute_file_commands): Ditto. 370 * job.c (reap_children): Ditto. 371 (start_job_command): Ditto. 372 (start_waiting_job): Ditto. 373 * main.c (main): Ditto. 374 * remake.c (update_file): Ditto. 375 (complain): Ditto. 376 (update_file_1): Ditto. 377 (notice_finished_file): Ditto. 378 (remake_file): Ditto. 379 * vmsjobs.c (vmsHandleChildTerm): Ditto. 380 381 2013-07-09 Paul Smith <psmith@gnu.org> 382 383 * implicit.c (pattern_search): Keep a local copy of the number of 384 deps in deplist: the global max might change due to recursion. 385 Fixes a bug reported by Martin d'Anjou <martin.danjou14@gmail.com>. 386 387 2013-06-28 Paul Smith <psmith@gnu.org> 388 389 * misc.c (set_append_mode): Set the O_APPEND flag on a file descriptor. 390 (open_tmpfd): Set append mode on the temporary file descriptor. 391 * main.c (main): Set append mode on stdout and stderr. 392 * makeint.h (set_append_mode): Declare it. 393 394 2013-06-22 Eli Zaretskii <eliz@gnu.org> 395 396 * build_w32.bat (LinkGCC): Prevent a comment from being displayed 397 at build time. 398 399 * job.c (construct_command_argv_internal) [WINDOWS32]: Use 400 case-insensitive comparison with internal commands of non-Unix 401 shells. 402 403 * main.c (find_and_set_default_shell): Don't use file_exists_p or 404 dir_file_exists_p, as those call readdir, which can fail if PATH 405 includes directories with non-ASCII characters, and that would 406 cause Make to fail at startup with confusing diagnostics. See 407 https://sourceforge.net/mailarchive/message.php?msg_id=30846737 408 for the details. 409 410 2013-06-22 Paul Smith <psmith@gnu.org> 411 412 Improve performance by using a character map to determine where we 413 want to stop searching strings, rather than discrete comparisons. 414 415 * read.c (find_char_unquote): Pass a stop map instead of various 416 flags and use that to check when to stop parsing the string. 417 (eval): Use the new find_char_unquote() calling signature. 418 (remove_comments): Ditto. 419 (unescape_char): Ditto. 420 (find_percent_cached): Ditto. 421 (parse_file_seq): Use a stop-map flag. 422 * main.c (stopchar_map): Character map definition. 423 (initialize_stopchar_map): Initialize the map definition. 424 (main): Invoke the map initialization function. 425 * misc.c (end_of_token_w32): Remove unused function. 426 * dir.c (dosify): Use STOP_SET to check for stop chars. 427 * main.c (main): Ditto. 428 * misc.c (end_of_token): Ditto. 429 * function.c (subst_expand): Ditto. 430 (func_notdir_suffix): Ditto. 431 (func_basename_dir): Ditto. 432 (abspath): Ditto. 433 * job.c (is_bourne_compatible_shell): Ditto. 434 * variable.c (parse_variable_definition): Ditto. 435 * read.c (eval): Ditto. 436 (conditional_line): Ditto. 437 (find_percent_cached): Ditto. 438 * dep.h (PARSE_FILE_SEQ): Update function declaration. 439 * default.c (set_default_suffixes): Update PARSE_FILE_SEQ() call. 440 * file.c (split_prereqs): Ditto. 441 * function.c (string_glob): Ditto. 442 * implicit.c (pattern_search): Ditto. 443 * rule.c (install_pattern_rule): Ditto. 444 * main.c (main): Ditto. 445 446 2013-06-21 Paul Smith <psmith@gnu.org> 447 448 * main.c (verify_flag): Global variable to determine whether to 449 verify the database or not. 450 (decode_debug_flags): If debug mode, enable verify_flag. 451 (main): If MAKE_MAINTAINER_MODE, enable verify_flag, otherwise not. 452 (die): Only verify the database if verify_flag is set. 453 * file.c (enter_file): Don't check caching unless verify_flag. 454 * makeint.h: Export verify_flag. 455 456 2013-05-27 Paul Smith <psmith@gnu.org> 457 458 * variable.c (define_automatic_variables): Create a new variable 459 MAKE_HOST. 460 461 2013-05-27 Hartmut Becker <becker.ismaning@freenet.de> 462 463 * function.c (func_shell_base) [VMS]: Support VMS. 464 * makefile.com [VMS]: Ditto. 465 * makefile.vms [VMS]: Ditto. 466 * makeint.h [VMS]: Ditto. 467 * vmsjobs.c [VMS]: Ditto. 468 * job.h: Define RECORD_SYNC_MUTEX() when OUTPUT_SYNC is not set. 469 * load.c (unload_file): Fix signature if MAKE_LOAD is not set. 470 471 2013-05-26 Paul Smith <psmith@gnu.org> 472 473 * remake.c (f_mtime): Ensure that archive file names are in the 474 string cache. Fixes Savannah bug #38442. 475 476 * read.c (readline): To be safe, move the entire buffer if we 477 detect a CR. Fixes Savannah bug #38945. 478 479 * job.c (new_job): Compare OUT to the beginning of the OUT 480 var/function, not IN. Fixes Savannah bug #39035. 481 482 2013-05-22 Paul Smith <psmith@gnu.org> 483 484 * main.c (switches[]): Order switches so simple flags all come first. 485 (define_makeflags): Rework to make option passing more 486 reliable and the code less tricksy. Ensure simple flags are kept 487 in the initial batch of flags. Do not allow any flags with 488 options in that batch. If there are only non-simple flags MAKEFLAGS 489 begins with ' '. 490 (print_data_base): Print the version. Fixes part of Savannah #35336. 491 492 * read.c (eval_buffer): Initialize lineno. 493 494 2013-05-18 Alexey Pavlov <alexpux@gmail.com> (tiny change) 495 496 * w32/Makefile.am (libw32_a_SOURCES): Add compat/posixfcn.c. 497 498 * configure.ac (OUTPUT_SYNC): Define for mingw32 target. 499 500 * job.c (construct_command_argv_internal) <sh_cmds_dos> 501 [WINDOWS32]: Add "move". Fixes Savannah bug #30714. 502 503 * guile.c: Move inclusion of makeint.h before gnumake.h. This 504 order must be observed when building Make, because gnumake.h must 505 be included with GMK_BUILDING_MAKE defined, which makeint.h 506 already does. Otherwise, the linker will look for, and fail to 507 find, gmk_* functions in some external dynamic library. 508 509 2013-05-17 Benno Schulenberg <bensberg@justemail.net> 510 511 * main.c (decode_output_sync_flags): Fix output message. 512 * read.c (EXTRANEOUS): Ditto. 513 (record_files): Ditto. 514 * remake.c (update_file_1): Ditto. 515 516 2013-05-17 Eli Zaretskii <eliz@gnu.org> 517 518 * main.c (prepare_mutex_handle_string): Define conditioned on 519 OUTPUT_SYNC. 520 521 * build_w32.bat: Copy config.h.W32 to config.h regardless of 522 whether or not we are building from SCM. 523 524 2013-05-17 Paul Smith <psmith@gnu.org> 525 526 * configure.ac: Update version to 3.99.90. 527 * NEWS: Ditto. 528 529 * Source (*.[ch]): Remove TABs, use GNU coding styles. 530 531 * ALL: Update copyright. 532 533 * hash.c (CALLOC): Use xcalloc() to handle out of memory errors. 534 535 * makeint.h: Prototype new unload_file() function. 536 * load.c (unload_file): Create a function to unload a file. 537 (struct load_list): Type to remember loaded objects. 538 (loaded_syms): Global variable of remembered loaded objects so we 539 can unload them later. We don't have to remove from the list 540 because the only time we unload is if we're about to re-exec. 541 (load_object): Remove unneeded extra DLP argument. 542 (load_file): Remove unneeded extra DLP argument. 543 * filedef.h (struct file): Remove the DLP pointer and add the 544 LOADED bit flag. Saves 32/64 bytes per file, as this pointer is 545 almost never needed. 546 * read.c (eval): Set the new LOADED bit flag on the file. 547 * file.c (rehash_file): Merge the loaded bitfield. 548 * commands.c (execute_file_commands): Call unload_file() instead 549 of dlclose() directly. 550 551 2013-05-14 Paul Smith <psmith@gnu.org> 552 553 * doc/make.texi (Loaded Object API): Document the requirement for 554 the plugin_is_GPL_compatible symbol. 555 * load.c (load_object): Check for plugin_is_GPL_compatible symbol. 556 557 2013-05-13 Paul Smith <psmith@gnu.org> 558 559 * filedef.h (struct file): Add a builtin flag. 560 * file.c (enter_file): Unset the builtin flag. 561 (rehash_file): Ditto. 562 (print_file): Don't print builtin files if we've omitted them. 563 * default.c (undefine_default_variables): New function: go through 564 the default variables and undefine them. 565 (set_default_suffixes): Mark these suffix rules as builtin. 566 * makeint.h: Prototype. 567 * main.c (main): Handle addition of -r and -R to MAKEFLAGS in the 568 makefile. Fixes Savannah bug #20501. 569 570 * main.c (define_makeflags): Assign o_env_override level to 571 MAKEFLAGS to ensure it's set even in the presence of -e. 572 Fixes Savannah bug #2216. 573 574 * makeint.h (TRACE_NONE, TRACE_RULE, TRACE_DIRECTORY): Define 575 constants for the trace mode. 576 * main.c: Add new --trace mode parsing. 577 (decode_trace_flags): New function. 578 (decode_switches): Call it. 579 (define_makeflags): Fix a bug with long-name options. 580 * misc.c (fatal): Remove special output-sync handling. 581 * make.1: Document new --trace mode flags. 582 * doc/make.texi (Options Summary): Ditto. 583 584 2013-05-11 Eli Zaretskii <eliz@gnu.org> 585 586 * job.c (child_out): Output the newline following the message 587 before fllush-ing the stream. Avoids displaying the following 588 failure message, which goes to stderr, on the same line. 589 590 2013-05-06 Eli Zaretskii <eliz@gnu.org> 591 592 * gnumake.h (GMK_EXPORT) [_WIN32]: Move the dllexport declaration 593 here from makeint.h. 594 595 * makeint.h (GMK_BUILDING_MAKE) [WINDOWS32]: Define before 596 including gnumake.h. 597 598 * doc/make.texi (Loaded Object Example): Add a note about building 599 shared objects on MS-Windows. 600 601 2013-05-05 Paul Smith <psmith@gnu.org> 602 603 * makeint.h (OUTPUT_SYNC_LINE, OUTPUT_SYNC_RECURSE): Rename 604 output-sync options "job" to "line" and "make" to "recurse". 605 * main.c (decode_output_sync_flags): Ditto. 606 * job.c (reap_children): Ditto. 607 (start_job_command): Ditto. 608 * make.1: Ditto. 609 * doc/make.texi (Parallel Output): Ditto. 610 611 * job.c (child_out): Write newlines explicitly, and don't do 612 anything if the message is empty. 613 (sync_output): Put working dir messages around stdout AND stderr. 614 (start_job_command): Move the tmp file assignment earlier. After 615 we do it, write the command line to the temp file to get the order 616 correct. 617 618 * misc.c (message): Remove special handling for output_sync. 619 (error): Ditto. 620 621 2013-05-04 Paul Smith <psmith@gnu.org> 622 623 * loadapi.c (gmk_alloc): New function. 624 * gnumake.h: Add gmk_alloc(). Clean GMK_EXPORT a bit to avoid MAIN. 625 * makeint.h (GMK_EXPORT): New handling, vs. MAIN. 626 * doc/make.texi (Loaded Object API): Add information on the memory 627 handling functions. 628 (Loaded Object Example): Create an example. 629 630 * job.c (pump_from_tmp): (Rename) Write to stdout/stderr using 631 FILE* rather than fd. It's not a good idea to mix and match. 632 633 2013-05-04 Eli Zaretskii <eliz@gnu.org> 634 635 * makeint.h (ftruncate) [_MSC_VER]: Redirect to _chsize. 636 (_S_ISDIR): If not defined (MinGW64), define to S_ISDIR. 637 638 2013-05-04 Paul Smith <psmith@gnu.org> 639 640 * job.c (child_out): Handle EINTR and incomplete write scenarios. 641 (sync_init): New function: separate the initialization code. 642 (assign_child_tempfiles): Remove truncation from this function, 643 (sync_output): and add it here after output is generated. 644 (reap_children): Always call sync_output() in case output_sync was 645 reset after the child started, due to error. 646 (start_job_command): Create new sync_cmd variable. Use new method 647 for initializing the handle. 648 If we're not syncing the output be sure any output we've saved is 649 dumped immediately before starting the child. 650 651 2013-05-04 Eli Zaretskii <eliz@gnu.org> 652 653 * job.c (start_job_command): Make the condition for creating a 654 temporary output file be identical to the Posix code branch. 655 Suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>. 656 657 2013-05-03 Eli Zaretskii <eliz@gnu.org> 658 659 * w32/subproc/sub_proc.c: Include makeint.h. Remove a private 660 incompatible prototype of xmalloc. 661 (batch_file_with_spaces): New function, detects Windows batch 662 files whose names include whitespace characters. 663 (process_begin): If exec_name is a batch file with whitespace 664 characters in its name, pass NULL as the first argument to 665 CreateProcess. This avoids weird failures due to buggy quoting by 666 CreateProcess. For the details, see the discussion starting at 667 http://lists.gnu.org/archive/html/make-w32/2013-04/msg00008.html. 668 669 * load.c (load_object, load_file): Accept an additional argument 670 DLP and return in it a pointer that can be used to unload the 671 dynamic object. 672 673 * read.c (eval): Call load_file with an additional argument, and 674 record the pointer returned there in the 'struct file' object of 675 dynamic objects in that object's 'struct file'. 676 677 * commands.c (execute_file_commands): Unload dynamic objects 678 before remaking them, to avoid failure to remake if the OS doesn't 679 allow overwriting objects that are in use. 680 681 * filedef.h (struct file): New member dlopen_ptr. 682 683 * gnumake.h (GMK_EXPORT): Define to dllexport/dllimport 684 decorations for Windows and to nothing on other platforms. 685 (gmk_eval, gmk_expand, gmk_add_function): Add GMK_EXPORT qualifier 686 to prototypes. 687 688 * makeint.h (MAIN): Define before including gnumake.h, to give 689 correct dllexport decorations to exported functions. 690 (load_file): Adjust prototype. 691 692 * loadapi.c: Don't include gnumake.h, since makeint.h already 693 includes it, and takes care of defining MAIN before doing so. 694 695 * build_w32.bat (LinkGCC): Produce an import library for functions 696 exported by Make for loadable dynamic objects. 697 698 * w32/compat/posixfcn.c (dlclose): New function. 699 700 * w32/include/dlfcn.h (dlclose): Add prototype. 701 702 2013-05-01 Eli Zaretskii <eliz@gnu.org> 703 704 * job.c (start_job_command) [WINDOWS32]: Make the same fix for 705 MS-Windows as the previous commit did for Posix platforms. 706 (construct_command_argv_internal): Don't treat a backslash as an 707 escape character before whitespace, if the shell is not a Posix 708 shell. For the description of the problem, see 709 http://lists.gnu.org/archive/html/make-w32/2013-04/msg00014.html. 710 711 2013-05-01 Paul Smith <psmith@gnu.org> 712 713 * job.c (start_job_command): Don't redirect output for recursive 714 make jobs, unless we're in makefile synchronization mode. 715 716 2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change) 717 718 build: enable the 'silent-rules' automake options 719 720 * configure.ac (AM_INIT_AUTOMAKE): Here. The future major Automake 721 version 2.0 (ETA about one, one and half year from now) will enable 722 it by default, so better prepare ourselves. 723 724 2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change) 725 726 build: require Autoconf >= 2.62 and Automake >= 1.11.1 727 728 Older versions of those tools should be considered fully obsolete. 729 Also, GNU make already requires Gettext >= 0.18.1, which has been 730 released six months after Automake 1.11.1 and two years after 731 Autoconf 2.62; so the new requirement shouldn't be problematic 732 for people already bootstrapping GNU make from the Git repository. 733 734 * configure.ac (AC_PREREQ): Require Autoconf 2.62 or later. 735 (AM_INIT_AUTOMAKE): Require Automake 1.11.1 or later (1.11 had 736 some serious bugs, and should not be used). 737 738 2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change) 739 740 build: get rid of 'HAVE_ANSI_COMPILER' C preprocessor conditional 741 742 GNU make already assume C89 or later throughout the codebase, and 743 that preprocessor conditional was no longer used anyway. 744 745 * configure.ac: Remove AC_DEFINE of HAVE_ANSI_COMPILER. 746 * config.ami.template: Remove #define of HAVE_ANSI_COMPILER. 747 * config.h-vms.template: Likewise. 748 * config.h.W32.template: Likewise. 749 * configh.dos.template: Likewise. 750 751 2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change) 752 753 cosmetics: fix few innocuous typos 754 755 Most of these were found using Lucas De Marchi's 'codespell' tool. 756 757 * ChangeLog: Fix minor typos. 758 * ChangeLog.2: Likewise. 759 * README.Amiga: Likewise. 760 * TODO.private: Likewise. 761 * function.c: Likewise. 762 * glob/glob.h: Likewise. 763 * job.c: Likewise. 764 * main.c: Likewise. 765 * readme.vms: Likewise. 766 * remake.c: Likewise. 767 * tests/ChangeLog: Likewise. 768 * tests/NEWS: Likewise. 769 * tests/README: Likewise. 770 * tests/scripts/variables/private: Likewise. 771 * vmsdir.h: Likewise. 772 * signame.c: Likewise. While at it, improve line wrapping in the 773 touched comment. 774 775 2013-04-29 Eli Zaretskii <eliz@gnu.org> 776 777 * w32/include/dlfcn.h: New file. 778 779 * w32/compat/posixfcn.c: Include dlfcn.h. 780 (dlopen, dlerror, dlsym) [MAKE_LOAD]: New functions, in support of 781 dynamic loading. 782 783 * config.h.W32.template (MAKE_LOAD): Define. 784 785 * load.c (load_object) [HAVE_DOS_PATHS]: Support backslashes and 786 drive letters in file names of dynamic objects. 787 788 * job.c (construct_command_argv_internal) [WINDOWS32]: Return 789 right after generating new_argv for one_shell case. This fixes 790 the Windows build for both Unixy shell and stock Windows shells. 791 792 2013-04-28 Eli Zaretskii <eliz@gnu.org> 793 794 * dir.c (local_stat) [WINDOWS32]: Use the wrapper on MS-Windows. 795 If the argument ends in "dir/.", make sure the parent dir exists 796 and is indeed a directory. Fixes Savannah bug #37065. 797 798 2013-04-28 Paul Smith <psmith@gnu.org> 799 800 * makeint.h (message_s, error_s): Functions that print to strings 801 rather than directly to files. 802 * misc.c (message_s, error_s): Create them. 803 * job.c (child_error): Print error messages to the output sync 804 logs, if one exists, rather then directly to the terminal. 805 (reap_children): Move the per-line sync after child_error(). 806 807 * configure.ac: Remove support for pre-ANSI variadic function calls. 808 * makeint.h: Ditto. 809 * misc.c: Ditto. 810 * config.ami.template: Ditto. 811 * config.h-vms.template: Ditto. 812 * config.h.W32.template: Ditto. 813 * configh.dos.template: Ditto. 814 815 Implement a "per-job" output synchronization option. 816 817 * main.c (decode_output_sync_flags): Recognize the new option. 818 * makeint.h (OUTPUT_SYNC_JOB): Add new values for "job" 819 * job.c (assign_child_tempfiles): In per-job mode, truncate the 820 temp file for re-use by the next job. 821 (sync_output): Don't close the temp files as we may still use them. 822 (free_child): Close the temp files here as we definitely don't 823 need them. 824 (new_job): In per-job output mode, sync_output() after each job. 825 * job.h (struct child): Avoid ifdefs. 826 * make.1: Add new options to the man page. 827 * doc/make.texi (Parallel Output): Break documentation on input 828 and output into separate sections for readability. Document the 829 new "job" and "none" modes. 830 831 2013-04-27 Paul Smith <psmith@gnu.org> 832 833 * job.c (construct_command_argv_internal): Fix oneshell support 834 for non-POSIX-sh shells. 835 836 * load.c (load_object): Extract all POSIX-isms into a separate 837 function for portability. 838 (load_file): Check the .LOADED variable first and don't invoke 839 load_object() if it's already been loaded. 840 841 2013-04-27 Eli Zaretskii <eliz@gnu.org> 842 843 * read.c (record_files): Pay attention to .ONESHELL in MS-Windows. 844 845 * job.c (construct_command_argv_internal): Support .ONESHELL on 846 MS-Windows, when the shell is not a Unixy shell. 847 848 2013-04-27 Eli Zaretskii <eliz@gnu.org> 849 850 * job.c: Fix compilation error on GNU/Linux due to "label at end 851 of compound statement". 852 853 2013-04-27 Frank Heckenbach <f.heckenbach@fh-soft.de> (tiny change) 854 855 * job.c (sync_output): Don't discard the output if 856 acquire_semaphore fails; instead, dump the output unsynchronized. 857 858 2013-04-27 Eli Zaretskii <eliz@gnu.org> 859 860 Support --output-sync on MS-Windows. 861 * w32/compat/posixfcn.c: New file, with emulations of Posix 862 functions and Posix functionality for MS-Windows. 863 864 * w32/subproc/sub_proc.c: Include io.h. 865 (process_noinherit): New function, forces a file descriptor to not 866 be inherited by child processes. 867 (process_easy): Accept two additional arguments, and use them to 868 set up the standard output and standard error handles of the child 869 process. 870 871 * w32/include/sub_proc.h (process_easy): Adjust prototype. 872 (process_noinherit): Add prototype. 873 874 * read.c [WINDOWS32]: Include windows.h and sub_proc.h. 875 876 * makeint.h (LOCALEDIR) [WINDOWS32}: Define to NULL if not 877 defined. This is needed because the MS-Windows build doesn't have 878 a canonical place for LOCALEDIR. 879 (WIN32_LEAN_AND_MEAN) [WINDOWS32]: Define, to avoid getting from 880 windows.h header too much stuff that could conflict with the code. 881 882 * main.c <sync_mutex>: New static variable. 883 <switches>: Add support for "--sync-mutex" switch. 884 (decode_output_sync_flags): Decode the --sync-mutex= switch. 885 (prepare_mutex_handle_string) [WINDOWS32]: New function. 886 (main): Add "output-sync" to .FEATURES. 887 888 * job.h (CLOSE_ON_EXEC) [WINDOWS32]: Define to call 889 process_noinherit. 890 (F_GETFD, F_SETLKW, F_WRLCK, F_UNLCK, struct flock) [WINDOWS32]: 891 New macros. 892 (RECORD_SYNC_MUTEX): New macro, a no-op for Posix platforms. 893 (sync_handle_t): New typedef. 894 895 * job.c <sync_handle>: Change type to sync_handle_t. 896 (FD_NOT_EMPTY): Seek to the file's end. Suggested by Frank 897 Heckenbach <f.heckenbach@fh-soft.de>. 898 (pump_from_tmp_fd) [WINDOWS32]: Switch to_fd to binary mode for 899 the duration of this function, and then change back before 900 returning. 901 (start_job_command) [WINDOWS32]: Support output_sync mode on 902 MS-Windows. Use a system-wide mutex instead of locking 903 stdout/stderr. Call process_easy with two additional arguments: 904 child->outfd and child->errfd. 905 (exec_command) [WINDOWS32]: Pass two additional arguments, both 906 -1, to process_easy, to adjust for the changed function signature. 907 908 * function.c (windows32_openpipe) [WINDOWS32]: This function now 909 returns an int, which is -1 if it fails and zero otherwise. It 910 also calls 'error' instead of 'fatal', to avoid exiting 911 prematurely. 912 (func_shell_base) [WINDOWS32]: Call perror_with_name if 913 windows32_openpipe fails, now that it always returns. This avoids 914 a compiler warning that error_prefix is not used in the MS-Windows 915 build. 916 917 * config.h.W32.template (OUTPUT_SYNC): Define. 918 919 * build_w32.bat: Add w32/compat/posixfcn.c to compilation and 920 linking commands. 921 922 2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change) 923 924 * README.git: Our autoconf input file is 'configure.ac', not 925 'configure.in'. Adjust accordingly. 926 * build_w32.bat: Likewise. 927 * config.h-vms.template: Likewise. 928 * Makefile.DOS.template: Likewise. 929 930 2013-04-16 Paul Smith <psmith@gnu.org> 931 932 * misc.c (open_tmpfd): Add a new function that returns a temporary 933 file by file descriptor. 934 (open_tmpfile): Move here from main.c. 935 * job.c (assign_child_tempfiles): Use the new open_tmpfd(). 936 937 2013-04-15 Paul Smith <psmith@gnu.org> 938 939 * makeint.h (OUTPUT_SYNC_TARGET, OUTPUT_SYNC_MAKE): Rename. 940 * job.c (start_job_command): Use new constants. 941 * main.c: New -O argument format. 942 943 * doc/make.texi (Options Summary): Document the argument to -O. 944 * make.1: Ditto. 945 946 * main.c (define_makeflags): Don't add space between a single-char 947 option and its argument. 948 949 2013-04-06 Paul Smith <psmith@gnu.org> 950 951 * doc/make.texi (Implicit Variables): Clarify LDFLAGS vs. LDLIBS. 952 Fixes Savannah bug #37970. 953 954 * remake.c (check_dep): Reconsider files waiting on prerequisites, 955 as they may have finished. Fixes Savannah bug #37703. 956 957 2013-02-28 Paul Smith <psmith@gnu.org> 958 959 * function.c (func_realpath): On Solaris (at least) realpath() can 960 fail due to EINTR, so loop it. Fixes Savannah bug #38420. 961 962 2013-02-25 Paul Smith <psmith@gnu.org> 963 964 Add a proposed supported API for GNU make loaded objects. 965 966 * doc/make.texi (Loaded Object API): Document it. 967 * Makefile.am (make_SOURCES): Add new loadapi.c. 968 * dep.h: Remove eval_buffer(); moved to loadapi.c:gmk_eval(). 969 * read.c (eval_buffer): Change eval_buffer() signature. 970 * main.c (main): Change eval_buffer() signature. 971 * variable.h (define_new_function): Change func_ptr signature. 972 * load.c (SYMBOL_EXTENSION): Change the extension. 973 * loadapi.c: Implement the new API. 974 * gnumake.h (gmk_eval): New function prototype. 975 (gmk_expand) Ditto. 976 (gmk_add_function) Ditto. 977 * gmk-default.scm (gmk-eval): Remove: now implemented in guile.c. 978 * guile.c (guile_expand_wrapper): Use gmk_expand() 979 (guile_eval_wrapper): Implement eval here to avoid double-expansion. 980 (guile_define_module): Define gmk-eval. 981 (func_guile): Use new func_ptr calling model. 982 (guile_gmake_setup): Use gmk_add_function() to declare $(guile ...) 983 * function.c (function_table_entry): Provide alternative func_ptr. 984 (func_eval): New signature for eval_buffer(); 985 (function_table_init): New initialization for function_table_entry. 986 (expand_builtin_function): Support alternative invocation signature. 987 (define_new_function): Ditto. 988 989 2013-01-20 Paul Smith <psmith@gnu.org> 990 991 * gnumake.h: New file to contain externally-visible content. 992 * makeint.h: Include gnumake.h. Move gmk_floc type to gnumake.h. 993 * Makefile.am (include_HEADERS): Install the gnumake.h header. 994 995 * makeint.h: Change struct floc to gmk_floc typedef. 996 * Many: Use the new typedef. 997 998 * make.h: Rename to makeint.h. 999 * Many: Use the new name makeint.h. 1000 1001 2013-01-19 Paul Smith <psmith@gnu.org> 1002 1003 * doc/make.texi (load Directive): Update to discuss location of 1004 loaded object file. 1005 (Remaking Loaded Objects): Document remaking of loaded objects. 1006 1007 * main.c (main): Rename READ_MAKEFILES to READ_FILES. 1008 * read.c: Change READ_MAKEFILES to READ_FILES since it now 1009 contains loaded object files as well. 1010 (read_all_makefiles): Ditto. 1011 (eval_makefile): Ditto. 1012 (eval): Add any loaded file to the READ_FILES list, so that it 1013 will be considered for re-build. 1014 1015 * load.c (load_file): Return the simple filename (no symbol) in 1016 the LDNAME argument (now a const char **). 1017 This filename should no longer have "./" prepended: modify the 1018 function to always check the current directory if the name has no 1019 "/", before using the normal methods. 1020 * make.h: Change the load_file() prototype. 1021 1022 * README.git: Add a bit more documentation on Git workflow & rules. 1023 1024 2013-01-13 Paul Smith <psmith@gnu.org> 1025 1026 * main.c (main): Restore all make flags after re-exec is complete. 1027 Fixes Savannah bug #38051. 1028 1029 2013-01-12 Paul Smith <psmith@gnu.org> 1030 1031 Convert CVS archive to Git. 1032 1033 * configure.in: Rename to configure.ac. 1034 * README.cvs: Rename to README.git and rework for Git. 1035 * maintMakefile: Use git clean for cleanup. 1036 * ChangeLog: Use new Git repository URL. 1037 * ChangeLog.2: Ditto. 1038 * Makefile.am: Change documentation for Git 1039 * Makefile.DOS.template: Ditto. 1040 * README.template: Ditto. 1041 * build_w32.bat: Ditto. 1042 * prepare_w32.bat: Ditto. 1043 * .cvsignore: Rename to .gitignore, and change to Git format. 1044 1045 2012-12-08 Eli Zaretskii <eliz@gnu.org> 1046 1047 * job.c (create_batch_file): Fix last change: always increment the 1048 counter of batch files before trying to use it. 1049 1050 2012-12-07 Eli Zaretskii <eliz@gnu.org> 1051 1052 * job.c (construct_command_argv_internal): Remove " from 1053 sh_chars_dos[]. Ignore an escaped backslash inside a string 1054 quoted with "..". This lifts the 4KB or 8KB command-line length 1055 limitation imposed by the Windows shells when a command uses quoted 1056 strings, because we now don't call the shell in that case. 1057 1058 * job.c (create_batch_file): Declare the counter of batch files 1059 static, to avoid having 2 jobs using the same file name and 1060 stepping on each other's toes. When all 64K names are used up, 1061 make one more loop looking for slots that became vacant. This 1062 avoids leaving behind temporary batch files in the temporary 1063 directory, which happens frequently on a fast machine when using 1064 parallel builds. 1065 (reap_children): Add debug message for when removal of a temporary 1066 batch file fails. 1067 1068 2012-10-29 Paul Smith <psmith@gnu.org> 1069 1070 New feature: "load" directive for dynamically-loaded objects. 1071 1072 * NEWS: Document new "load" directive. 1073 * doc/make.texi (Extending make): New chapter on extensions to make. 1074 * configure.in: Check for dlopen/dlsym/dlerror and -ldl. 1075 * Makefile.am (make_SOURCES): Add new file load.c. 1076 * make.h: Prototype for load_file(). 1077 * main.c (main): Add "load" to .FEATURES if it's available. 1078 * read.c (eval): Parse "load" and "-load" directives. 1079 1080 2012-09-29 Paul Smith <psmith@gnu.org> 1081 1082 * configure.in: Require a new version of gettext (1.18.1). 1083 Fixes Savannah bug #37307. 1084 1085 2012-09-09 Paul Smith <psmith@gnu.org> 1086 1087 * configure.in (bsd_signal): Define _GNU_SOURCE, a la make.h. 1088 Fixes Savannah bug #32247. 1089 1090 * remake.c (update_file_1): Force intermediate files to be 1091 considered, not pruned, if their non-intermediate parent needs to 1092 be remade. Fixes Savannah bug #30653. 1093 1094 * job.c (construct_command_argv_internal): Keep the command line 1095 on the heap for very long lines. Fixes Savannah bug #36451. 1096 1097 * function.c (func_realpath): BSD realpath(3) doesn't fail if the 1098 file does not exist: use stat. Fixes Savannah bug #35919. 1099 1100 * file.c (expand_deps): Duplicate the current variable buffer, not 1101 the old pointer. Fixes Savannah bug #36925. 1102 1103 * read.c (eval): If we detect an initial UTF-8 BOM, skip it. 1104 Fixes Savannah bug #36529. 1105 (record_target_var): Remove unused variable "fname". 1106 (eval): Use the correct pointer when adding to the variable buffer. 1107 Fixes Savannah bug #36106. 1108 1109 2012-09-09 Eli Zaretskii <eliz@gnu.org> 1110 1111 * read.c (unescape_char): Fix a thinko in the last change. 1112 1113 2012-09-09 Paul Smith <psmith@gnu.org> 1114 1115 * default.c (default_variables): Use a correct default LIBPPATERNS 1116 for MacOS. Fixes Savannah bug #37197. 1117 1118 * read.c (record_files): Reset the default macro values if .POSIX 1119 is set. Fixes Savannah bug #37069. 1120 (parse_file_seq): Break out of an infinite loop if we're not 1121 making progress when parsing archive references. 1122 1123 2012-09-01 Eli Zaretskii <eliz@gnu.org> 1124 1125 * README.W32.template: Update for job-server and Guile support. 1126 1127 * read.c (unescape_char): Advance 'p' after copying the unescaped 1128 characters. Otherwise the backslashes are incorrectly erased from 1129 the original string. 1130 1131 2012-03-05 Paul Smith <psmith@gnu.org> 1132 1133 Update copyright notices to use year ranges, as allowed by 1134 clarifications in the GNU Maintainer's Manual. 1135 1136 2012-03-04 Paul Smith <psmith@gnu.org> 1137 1138 * read.c (unescape_char): New function to remove escapes from a char. 1139 (record_files): Call it on the dependency string to unescape ":". 1140 Fixes Savannah bug #12126 and bug #16545. 1141 1142 * make.h (CSTRLEN): Determine the length of a constant string. 1143 * main.c: Use the new macro. 1144 * read.c: Ditto. 1145 * variable.h: Ditto. 1146 * function.c: Simplify checks for function alternatives. 1147 1148 * expand.c (variable_append): If the current set is local and the 1149 next one is not a parent, then treat the next set as 1150 local as well. Fixes Savannah bug #35468. 1151 1152 2012-03-03 Paul Smith <psmith@gnu.org> 1153 1154 * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for AIX 5.2+ 1155 nanosecond timestamps. Fixes Savannah bug #32485. 1156 1157 Convert uses of `foo' for quoting to 'foo' to reflect changes in 1158 the GNU Coding Standards. Fixes Savannah bug #34530. 1159 1160 * job.c (construct_command_argv_internal): In oneshell we need to 1161 break the SHELLFLAGS up for argv. Fixes Savannah bug #35397. 1162 1163 * function.c (func_filter_filterout): Recompute the length of each 1164 filter word in case it was compressed due to escape chars. Don't 1165 reset the string as it's freed. Fixes Savannah bug #35410. 1166 1167 * misc.c (collapse_continuations): Only use POSIX-style 1168 backslash/newline handling if the .POSIX target is set. 1169 Addresses Savannah bug #16670 without backward-incompatibility. 1170 * NEWS: Document behavior change. 1171 * doc/make.texi (Splitting Lines): New section describing how to 1172 use backslash/newline to split long lines. 1173 1174 2012-02-26 Paul Smith <psmith@gnu.org> 1175 1176 * implicit.c (pattern_search): Check the stem length to avoid 1177 stack overflows in stem_str. Fixes Savannah bug #35525. 1178 1179 2012-02-03 Eli Zaretskii <eliz@gnu.org> 1180 1181 * w32/subproc/sub_proc.c (proc_stdin_thread, proc_stdout_thread) 1182 (proc_stderr_thread, process_pipe_io): Ifdef away unused 1183 functions. 1184 1185 * w32/subproc/w32err.c (map_windows32_error_to_string) [_MSC_VER]: 1186 Don't use TLS storage for szMessageBuffer. Ifdef away special 1187 code for handling Winsock error codes. Make the function return a 1188 `const char *'. Suggested by Ozkan Sezer. Fixes Savannah bug #34832. 1189 1190 2012-01-29 Paul Smith <psmith@gnu.org> 1191 1192 * gmk-default.scm (to-string-maybe): Variables map to empty strings. 1193 In Guile 2.0, (define ...) results in a variable object so make 1194 sure that maps to an empty string in make. 1195 1196 * variable.c (parse_variable_definition): New POSIX assignment ::= 1197 Take a struct variable to return more information after parsing. 1198 (assign_variable_definition): New parse_variable_definition() call. 1199 * variable.h: New declaration of parse_variable_definition(). 1200 * read.c (do_define): New parse_variable_definition() call. 1201 (parse_var_assignment): Ditto. 1202 (get_next_mword): Parse ::= as a variable assignment. 1203 * doc/make.texi (Flavors): Describe the new ::= syntax. 1204 * NEWS: Mention the ::= operator. 1205 1206 * variable.h (struct variable): Rearrange elts to reduce struct size. 1207 1208 * function.c (func_file): Create a new function, $(file ...) 1209 * doc/make.texi (File Function): Document the $(file ..) function. 1210 * NEWS: Announce it. 1211 1212 * gmk-default.scm (to-string-maybe): Use a more portable way to 1213 test for unprintable characters. 1214 * configure.in [GUILE]: Guile 1.6 doesn't have pkg-config 1215 * build_w32.bat: Ditto. 1216 1217 2012-01-28 Eli Zaretskii <eliz@gnu.org> 1218 1219 * config.h.W32.template: Update from config.h.in. 1220 1221 Support a Windows build with Guile. 1222 1223 * README.W32.template: Update with instructions for building with 1224 Guile. 1225 1226 * build_w32.bat: Support building with Guile. 1227 1228 * make.h [HAVE_STDINT_H]: Include stdint.h. 1229 1230 * main.c (main, clean_jobserver): Move declarations of variables 1231 not used in the WINDOWS32 build to the #else branch, to avoid 1232 compiler warnings. 1233 1234 Fix failures on MS-Windows when Make's standard handles are invalid. 1235 This can happen when Make is invoked from a GUI application. 1236 1237 * w32/subproc/sub_proc.c (process_init_fd): Don't dereference 1238 pproc if it is a NULL pointer. 1239 (process_begin, process_cleanup): Don't try to close pipe handles 1240 whose value is INVALID_HANDLE_VALUE. 1241 (process_easy): Initialize hIn, hOut, and hErr to 1242 INVALID_HANDLE_VALUE. If DuplicateHandle fails with 1243 ERROR_INVALID_HANDLE, duplicate a handle for the null device 1244 instead of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE or 1245 STD_ERROR_HANDLE. Don't try to close pipe handles whose value is 1246 INVALID_HANDLE_VALUE. 1247 1248 * function.c (windows32_openpipe): Initialize hIn and hErr to 1249 INVALID_HANDLE_VALUE. If DuplicateHandle fails with 1250 ERROR_INVALID_HANDLE, duplicate a handle for the null device 1251 instead of STD_INPUT_HANDLE or STD_ERROR_HANDLE. Fix indentation. 1252 Don't try to close handles whose value is INVALID_HANDLE_VALUE. 1253 1254 2012-01-25 Eli Zaretskii <eliz@gnu.org> 1255 1256 * function.c (define_new_function): Fix format strings in calls to 1257 `fatal'. 1258 1259 2012-01-17 Paul Smith <psmith@gnu.org> 1260 1261 * guile.c (func_guile): Handle NULL returns from Guile. 1262 1263 2012-01-16 Paul Smith <psmith@gnu.org> 1264 1265 * make.h (PATH_SEPARATOR_CHAR): Allow resetting for crosscompiling 1266 for Windows. Patch by Chris Sutcliffe <ir0nh34d@gmail.com> 1267 Fixes Savannah bug #34818. 1268 1269 2012-01-15 Paul Smith <psmith@gnu.org> 1270 1271 * variable.h: Prototype an interface for defining new make functions. 1272 * function.c (define_new_function): Define it. 1273 (func_guile): Remove the "guile" function. 1274 (function_table_init): Ditto. 1275 * guile.c (func_guile): Add the "guile" function here. 1276 (setup_guile): Call define_new_function() to define it. 1277 (guile_eval_string): Obsolete. 1278 1279 * all: Update copyright notices. 1280 1281 2012-01-12 Paul Smith <psmith@gnu.org> 1282 1283 Support GNU Guile as an embedded extension language for GNU make. 1284 1285 * NEWS: Note the new Guile capability. 1286 * Makefile.am (EXTRA_DIST, make_SOURCES): Add new guile source files. 1287 (AM_CFLAGS): Add Guile compiler flags. 1288 (guile): Add a rule for converting default SCM into a C header. 1289 * configure.in: Add support for --with-guile. 1290 Also, convert the entire file to properly escaped autoconf m4, and 1291 utilize newer features such as AS_IF() and AS_CASE(). 1292 * doc/make.texi (Guile Function): Document the GNU guile integration. 1293 * make.h (guile_eval_string, guile_boot): Prototypes for Guile. 1294 * main.c (main): Run guile_boot() to handle main(). 1295 (real_main): All the previous content of main() is here. 1296 (real_main): Add "guile" to the .FEATURES variable. 1297 * function.c (func_guile): Call Guile. 1298 * guile.c: New file implementing GNU make integration with GNU Guile. 1299 * gmk-default.scm: The integration of GNU make with Guile uses 1300 Guile itself for much of the parsing and conversion of return 1301 types, etc. This implementation is embedded into GNU make. 1302 * config.h-vms.template: Disable Guile support. 1303 * config.h.W32.template: Ditto. 1304 * configh.dos.template: Ditto. 1305 * config.ami.template: Ditto. 1306 * makefile.vms: Add new Guile files. 1307 * Makefile.DOS.template: Ditto. 1308 * Makefile.ami: Ditto. 1309 * NMakefile.template: Ditto. 1310 * SMakefile.template: Ditto. 1311 * build_w32.bat: Ditto. 1312 * dosbuild.bat: Ditto. 1313 * make_msvc_net2001.vcproj: Ditto. 1314 1315 2011-11-15 Paul Smith <psmith@gnu.org> 1316 1317 * main.c (main): Use %ld when printing DWORD values. 1318 * job.c (new_job): Ditto. 1319 * w32/include/sub_proc.h: Use const. 1320 * w32/subproc/sub_proc.c (open_jobserver_semaphore): Use const. 1321 Fixes Savannah bug #34830. Changes suggested by Ozkan Sezer. 1322 1323 * configure.in (MAKE_JOBSERVER): Enable jobserver on W32 systems. 1324 * config.h.W32.template (MAKE_JOBSERVER): Ditto. 1325 1326 2011-11-14 Paul Smith <psmith@gnu.org> 1327 1328 * read.c (eval): parse_file_seq() might shorten the string due to 1329 backslash removal. Start parsing again at the colon. 1330 Fixes Savannah bug #33399. 1331 1332 2011-11-13 Paul Smith <psmith@gnu.org> 1333 1334 * file.c (file_timestamp_cons): Match up data types to avoid warnings. 1335 * filedef.h: Ditto. 1336 * misc.c (concat): Ditto. 1337 * read.c (eval): Assign value to avoid warnings. 1338 * function.c (func_shell_base): Use fork() instead of vfork() to 1339 avoid warnings. 1340 * make.h (INTEGER_TYPE_SIGNED): Use <=0 to avoid warnings. 1341 Fixes Savannah bug #34608. 1342 1343 * job.c (construct_command_argv): Remove _p. 1344 (construct_command_argv_internal): Remove _ptr. 1345 Fixes Savannah bug #32567. 1346 1347 * main.c (clean_jobserver): Don't write the free token to the pipe. 1348 Change suggested by Tim Newsome <tnewsome@aristanetworks.com> 1349 1350 * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for Darwin. 1351 * filedef.h (FILE_TIMESTAMP_STAT_MODTIME): Ditto. 1352 Patch provided by Troy Runkel <Troy.Runkel@mathworks.com> 1353 1354 2011-10-11 Troy Runkel <Troy.Runkel@mathworks.com> 1355 1356 * config.h.W32: Enable job server support for Windows. 1357 * main.c [WINDOWS32]: Include sub_proc.h 1358 (main): Create a named semaphore to implement the job server. 1359 (clean_jobserver): Free the job server semaphore when make is finished. 1360 * job.c [WINDOWS32]: Define WAIT_NOHANG 1361 (reap_children): Support non-blocking wait for child processes. 1362 (free_child): Release job server semaphore when child process finished. 1363 (job_noop): Don't define function on Windows. 1364 (set_child_handler_action_flags): Don't define function on Windows. 1365 (new_job): Wait for job server semaphore or child process termination. 1366 (exec_command): Pass new parameters to process_wait_for_any. 1367 * w32/include/sub_proc.h [WINDOWS32]: New/updated EXTERN_DECL entries. 1368 * w32/subproc/sub_proc.c [WINDOWS32]: Added job server implementation. 1369 (open_jobserver_semaphore): Open existing job server semaphore by name. 1370 (create_jobserver_semaphore): Create new job server named semaphore. 1371 (free_jobserver_semaphore): Close existing job server semaphore. 1372 (acquire_jobserver_semaphore): Decrement job server semaphore count. 1373 (release_jobserver_semaphore): Increment job server semaphore count. 1374 (has_jobserver_semaphore): Returns whether job server semaphore exists. 1375 (get_jobserver_semaphore_name): Returns name of job server semaphore. 1376 (wait_for_semaphore_or_child_process): Wait for either the job server 1377 semaphore to become signalled or a child process to terminate. 1378 (process_wait_for_any_private): Support for non-blocking wait for child. 1379 (process_wait_for_any): Added support for non-blocking wait for child. 1380 (process_file_io): Pass new parameters to process_wait_for_any_private. 1381 1382 2011-09-18 Paul Smith <psmith@gnu.org> 1383 1384 * main.c (main): If we're re-exec'ing and we're the master make, 1385 then restore the job_slots value so it goes back into MAKEFLAGS 1386 properly. See Savannah bug #33873. 1387 1388 * remake.c (library_search): STD_DIRS is computed when other 1389 static vars like buflen etc. are computed, so it must be static 1390 as well. See Savannah bug #32511. 1391 1392 2011-09-16 Paul Smith <psmith@gnu.org> 1393 1394 * maintMakefile (do-po-update): Apparently we have to avoid 1395 certificate checks on the http://translationproject.org site now. 1396 1397 2011-09-12 Paul Smith <psmith@gnu.org> 1398 1399 * read.c (eval): Ensure exported variables are defined in the 1400 global scope. Fixes Savannah bug #32498. 1401 1402 2011-09-11 Paul Smith <psmith@gnu.org> 1403 1404 * Makefile.am (dist-hook): Remove w32/Makefile and .deps/ from the 1405 dist file. Fixes Savannah bug #31489. 1406 1407 * doc/make.texi (Complex Makefile): Add a hint about using 1408 #!/usr/bin/make (for Savannah support request #106459) 1409 1410 2011-09-02 Paul Smith <psmith@gnu.org> 1411 1412 * remake.c (touch_file): If we have both -n and -t, -n takes 1413 precedence. Patch from Michael Witten <mfwitten@gmail.com> 1414 1415 2011-08-29 Paul Smith <psmith@gnu.org> 1416 1417 * expand.c (variable_expand_string): Always allocate a new buffer 1418 for a string we're expanding. The string we're working on can get 1419 freed while we work on it (for example if it's the value of a 1420 variable which modifies itself using an eval operation). 1421 See Savannah patch #7534 for the original report by Lubomir Rintel. 1422 1423 2011-06-12 Paul Smith <psmith@gnu.org> 1424 1425 * read.c (parse_file_seq): Move the check for empty members out of 1426 the loop so we can go to the next member properly. 1427 Another fix for Savannah bug #30612. 1428 1429 * config.h-vms.template: Newer versions of VMS have strncasecmp() 1430 Patch provided by: Hartmut Becker <becker.ismaning@freenet.de> 1431 1432 2011-05-07 Paul Smith <psmith@gnu.org> 1433 1434 * expand.c (variable_append): Add a LOCAL argument to track 1435 whether this is the first invocation or not. If it's not and 1436 private_var is set, then skip this variable and try the next one. 1437 Fixes Savannah bug #32872. 1438 1439 * read.c (parse_file_seq): Ensure existence checks use glob(). 1440 1441 2011-05-07 Eli Zaretskii <eliz@gnu.org> 1442 1443 * job.c (construct_command_argv_internal): Don't assume shellflags 1444 is always non-NULL. Escape-protect characters special to the 1445 shell when copying the value of SHELL into new_line. Fixes 1446 Savannah bug #23922. 1447 1448 2011-05-02 Paul Smith <psmith@gnu.org> 1449 1450 * doc/make.texi (Special Variables): Add documentation for the new 1451 words in .FEATURES. Fixes Savannah bug #32058. 1452 (Flavor Function): Rewrite the section on the flavor function. 1453 Fixes Savannah bug #31582. 1454 1455 * function.c (func_sort): Use the same algorithm to count the 1456 number of words we will get after the split, as we use to split. 1457 Based on a patch from Matthias Hopf. Fixes Savannah bug #33125. 1458 1459 * make.h: Make global variable stack_limit extern. 1460 Fixes Savannah bug #32753. 1461 1462 2011-05-01 Paul Smith <psmith@gnu.org> 1463 1464 * read.c (parse_file_seq): Don't try to invoke glob() unless there 1465 are potential wildcard characters in the filename. Performance 1466 enhancement suggested by Michael Meeks <michael.meeks@novell.com> 1467 1468 2011-04-29 Boris Kolpackov <boris@codesynthesis.com> 1469 1470 * read.c (eval_makefile): Delay caching of the file name until after 1471 all the expansions and searches. 1472 1473 2011-04-17 David A. Wheeler <dwheeler@dwheeler.com> 1474 1475 * doc/make.texi (Reading Makefiles): Document "!=". 1476 (Setting): Ditto. 1477 (Features): Ditto. 1478 * variable.h (enum variable_flavor): New type "f_shell". 1479 * variable.c (shell_result): Send a string to the shell and store 1480 the output. 1481 (do_variable_definition): Handle f_shell variables: expand the 1482 value, then send it to the shell and store the result. 1483 (parse_variable_definition): Parse "!=" shell assignments. 1484 * read.c (get_next_mword): Treat "!=" as a varassign word. 1485 * function.c (fold_newlines): If trim_newlines is set remove all 1486 trailing newlines; otherwise remove only the last newline. 1487 (func_shell_base): Move the guts of the shell function here. 1488 (func_shell): Call func_shell_base(). 1489 1490 2011-02-21 Paul Smith <psmith@gnu.org> 1491 1492 * strcache.c (various): Increase performance based on comments 1493 from Ralf Wildenhues <Ralf.Wildenhues@gmx.de>. Stop looking for 1494 a buffer when we find the first one that fits, not the best fit. 1495 If there is not enough free space in a buffer move it to a 1496 separate list so we don't have to walk it again. 1497 * make.h (NDEBUG): Turn off asserts unless maintainer mode is set. 1498 (strcache_add_len, strcache_setbufsize): Use unsigned length/size. 1499 * maintMakefile (AM_CPPFLAGS): Enable MAKE_MAINTAINER_MODE. 1500 1501 * remake.c (complain): Move translation lookups closer to use. 1502 1503 2011-02-13 Paul Smith <psmith@gnu.org> 1504 1505 * doc/make.texi: Clean up references to "static" variables and 1506 semicolon errors. Patch from Michael Witten <mfwitten@gmail.com>. 1507 1508 2010-12-27 Paul Smith <psmith@gnu.org> 1509 1510 * make.1: Update the header/footer info in the man page. 1511 1512 2010-11-28 Paul Smith <psmith@gnu.org> 1513 1514 * read.c (record_target_var): Don't reset v if it's the same as 1515 the global version. Fixes Savannah bug #31743. 1516 1517 2010-11-06 Paul Smith <psmith@gnu.org> 1518 1519 * variable.c (print_auto_variable): Print auto variables; ignore others. 1520 (print_noauto_variable): Print non-auto variables; ignore others. 1521 (print_variable_set): Allow the caller to select which type to print. 1522 (print_target_variables): Show all the non-auto variables for a target. 1523 1524 * default.c (install_default_suffix_rules): Initialize recipe_prefix. 1525 * rule.c (install_pattern_rule): Ditto. 1526 * read.c (record_files): Pass in the current recipe prefix. Remember 1527 it in the struct command for these targets. 1528 (eval): Remember the value of RECIPEPREFIX when we start parsing. 1529 Do not remove recipe prefixes from the recipe here: we'll do it later. 1530 * job.c (start_job_command): Remove recipe prefix characters early, 1531 before we print the output or chop it up. 1532 * file.c (print_file): If recipe_prefix is not standard, reset it 1533 in -p output. Assign target variables in -p output as well. 1534 1535 * commands.c (chop_commands): Max command lines is USHRT_MAX. 1536 Set any_recurse as a bitfield. 1537 * make.h (USHRT_MAX): Define if not set. 1538 1539 2010-10-27 Paul Smith <psmith@gnu.org> 1540 1541 * commands.h (struct commands): Rearrange to make better use of 1542 memory. Add new recipe_prefix value. 1543 1544 2010-10-26 Paul Smith <psmith@gnu.org> 1545 1546 * doc/make.texi (Setting): Document the treatment of 1547 backslash-newline in variable values. 1548 * misc.c (collapse_continuations): Do not collapse multiple 1549 backslash-newlines into a single space. Fixes Savannah bug #16670. 1550 1551 2010-08-29 Paul Smith <psmith@gnu.org> 1552 1553 * doc/make.texi (Implicit Variables): Document LDLIBS and LOADLIBES. 1554 Fixes Savannah bug #30807. 1555 (Instead of Execution): Mention that included makefiles are still 1556 rebuilt even with -n. Fixes Savannah bug #30762. 1557 1558 * configure.in: Bump to 3.82.90. 1559 1560 * make.h: Add trace_flag variable. 1561 * main.c (switches): Add --trace option. 1562 (trace_flag): Declare variable. 1563 * job.c (start_job_command): Show recipe if trace_flag is set. 1564 (new_job): Show trace messages if trace_flag is set. 1565 * doc/make.texi (Options Summary): Document the new --trace option. 1566 * make.1: Add --trace documentation. 1567 * NEWS: Mention --trace. 1568 1569 * job.c (child_error): Show recipe filename/linenumber on error. 1570 Also show "(ignored)" when appropriate even for signals/coredumps. 1571 * NEWS: Mention file/linenumber change. 1572 1573 * main.c (main): Print version info when DB_BASIC is set. 1574 1575 * job.c (construct_command_argv_internal): If shellflags is not 1576 set, choose an appropriate default value. Fixes Savannah bug #30748. 1577 1578 2010-08-27 Eli Zaretskii <eliz@gnu.org> 1579 1580 * variable.c (define_automatic_variables) [__MSDOS__ || WINDOWS32]: 1581 Remove trailing backslashes in $(@D), $(<D), etc., for consistency 1582 with forward slashes. Fixes Savannah bug #30795. 1583 1584 2010-08-13 Paul Smith <psmith@gnu.org> 1585 1586 * NEWS: Accidentally forgot to back out the sorted wildcard 1587 enhancement in 3.82, so update NEWS. 1588 Also add NEWS about the error check for explicit and pattern 1589 targets in the same rule, added to 3.82. 1590 1591 * main.c (main): Add "oneshell" to $(.FEATURES) (forgot to add 1592 this in 3.82!) 1593 1594 * read.c (parse_file_seq): Fix various errors parsing archives 1595 with multiple objects in the parenthesis, as well as wildcards. 1596 Fixes Savannah bug #30612. 1597 1598 2010-08-10 Paul Smith <psmith@gnu.org> 1599 1600 * main.c (main): Expand MAKEFLAGS before adding it to the 1601 environment when re-exec'ing. Fixes Savannah bug #30723. 1602 1603 2010-08-07 Eli Zaretskii <eliz@gnu.org> 1604 1605 * w32/subproc/build.bat: Make all 3 cl.exe compile command lines 1606 use the same /I switches. Fixes Savannah bug #30662. 1607 1608 * function.c (func_shell) [WINDOWS32]: Reset just_print_flag 1609 around the call to construct_command_argv, so that a temporary 1610 batch file _is_ created when needed for $(shell). 1611 Fixes Savannah bug #16362. 1612 1613 2010-08-07 Juan Manuel Guerrero <juan.guerrero@gmx.de> 1614 1615 * configh.dos.template (HAVE_STRNCASECMP): Define. 1616 1 1617 2010-07-28 Paul Smith <psmith@gnu.org> 2 1618 … … 3996 5612 3997 5613 3998 See ChangeLog.2, available in the CVSrepository at:3999 4000 http:// savannah.gnu.org/cvs/?group=make5614 See ChangeLog.2, available in the Git repository at: 5615 5616 http://git.savannah.gnu.org/cgit/make.git/tree/ 4001 5617 4002 5618 for earlier changes. 4003 5619 4004 5620 4005 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free 4006 Software Foundation, Inc. 5621 Copyright (C) 2000-2013 Free Software Foundation, Inc. 4007 5622 This file is part of GNU Make. 4008 5623
Note:
See TracChangeset
for help on using the changeset viewer.