12000-06-22 Paul D. Smith <psmith@gnu.org> 2 3 * job.c (start_job_command): Increment commands_started before the 4 special check for ":" (empty command) to avoid spurious "is up to 5 date" messages. Also move the test for question_flag after we 6 expand arguments, and only stop if the expansion provided an 7 actual command to run, not just whitespace. This fixes PR/1780. 8 92000-06-21 Paul D. Smith <psmith@gnu.org> 10 11 * read.c (read_makefile): If we find a semicolon in the target 12 definition, remember where it was. If the line turns out to be a 13 target-specific variable, add back the semicolon and everything 14 after it. Fixes PR/1709. 15 162000-06-19 Paul D. Smith <psmith@gnu.org> 17 18 * config.h-vms.template: #define uintmax_t for this system. 19 * config.ami.template: Ditto. 20 * config.h.W32.template: Ditto. 21 22 * configure.in: We don't use select(2) anymore, so don't bother 23 checking for it. 24 * acconfig.h: Ditto. 25 * acinclude.m4: Ditto. 26 27 * file.c (all_secondary): New static global; if 1 it means 28 .SECONDARY with no prerequisites was seen in the makefile. 29 (snap_deps): Set it appropriately. 30 (remove_intermediates): Check it. 31 (num_intermediates): Remove this global, it's not used anywhere. 32 (considered): Move this to remake.c and make it static. 33 34 * NEWS: Document the change to .SECONDARY. 35 * make.texinfo (Special Targets): Document the change to .SECONDARY. 36 37 * implicit.c (pattern_search): Remove the increment of 38 num_intermediates; it's not used. 39 * filedef.h: Remove num_intermediates and considered. 40 41 * function.c (handle_function): If the last argument was empty, we 42 were pretending it didn't exist rather than providing an empty 43 value. Keep looking until we're past the end, not just at the end. 44 45 * implicit.c (pattern_search): Multi-target implicit rules weren't 46 expanding the "also made" targets correctly if the pattern didn't 47 contain a slash but the target did; in that case the directory 48 part wasn't being added back to the stem on the "also made" 49 targets. Reported by Seth M LaForge <sethml@newtonlabs.com>, with 50 a patch. 51 522000-06-17 Eli Zaretskii <eliz@is.elta.co.il> 53 54 * Makefile.DOS.template (DESTDIR, bindir, datadir, libdir) 55 (infodir, mandir, includedir): Support installation under a 56 non-default DESTDIR. 57 58 * remake.c (f_mtime): Fix the spelling of __MSDOS__. 59 60 * configh.DOS.template (HAVE_FDOPEN, HAVE_MKSTEMP): Define. 61 622000-06-14 Paul D. Smith <psmith@gnu.org> 63 64 * acinclude.m4 (pds_WITH_GETTEXT): rewrite fp_WITH_GETTEXT and 65 rename it to avoid confusion. This version is very specific: it 66 won't accept any gettext that isn't GNU. If the user doesn't 67 explicitly ask for the included gettext, we look to see if the 68 system gettext is GNU (testing both the actual libintl library, 69 and the libintl.h header file). Only if the system gettext is 70 really GNU gettext will we allow it to be used. 71 (pds_CHECK_SYSTEM_GETTEXT): A helper function. 72 732000-06-13 Paul D. Smith <psmith@gnu.org> 74 75 * gettext.h: If we have libintl.h, use that instead of any of the 76 contents of gettext.h. We won't check for libintl.h unless we're 77 using the system gettext. 78 79 * function.c (func_word): Clarify error message. 80 812000-06-10 Paul Eggert <eggert@twinsun.com> 82 83 Support nanosecond resolution on hosts with 64-bit time_t and 84 uintmax_t (e.g. 64-bit Sparc Solaris), by splitting 85 FILE_TIMESTAMP into a 30-bit part for nanoseconds, with the 86 rest for seconds, if FILE_TIMESTAMP is at least 64 bits wide. 87 88 * make.h: Always define FILE_TIMESTAMP to be uintmax_t, for 89 simplicity. 90 91 * filedef.h (FILE_TIMESTAMP_HI_RES, FILE_TIMESTAMP_LO_BITS) 92 (UNKNOWN_MTIME, NONEXISTENT_MTIME, OLD_MTIME) 93 (ORDINARY_MTIME_MIN, ORDINARY_MTIME_MAX): New macros. 94 (FILE_TIMESTAMP_STAT_MODTIME): Now takes fname arg. All uses changed. 95 (FILE_TIMESTAMP_DIV, FILE_TIMESTAMP_MOD) 96 (FILE_TIMESTAMP_FROM_S_AND_NS): Remove. 97 (FILE_TIMESTAMP_S, FILE_TIMESTAMP_NS): Use shifts instead of 98 multiplication and division. Offset the timestamps by 99 ORDINARY_MTIME_MIN. 100 (file_timestamp_cons): New decl. 101 (NEW_MTIME): Now just the maximal timestamp value, as we no longer use 102 -1 to refer to nonexistent files. 103 104 * file.c (snap_deps, print_file): Use NONEXISTENT_MTIME, 105 UNKNOWN_MTIME, and OLD_MTIME instead of magic constants. 106 * filedef.h (file_mtime_1): Likewise. 107 * main.c (main): Likewise. 108 * remake.c (update_file_1, notice_finished_file, check_dep) 109 (f_mtime, name_mtime, library_search): Likewise. 110 * vpath.c (selective_vpath_search): Likewise. 111 112 * remake.c (f_mtime): Do not assume that (time_t) -1 equals 113 NONEXISTENT_MTIME. When futzing with time stamps, adjust by 114 multiples of 2**30, not 10**9. Do not calculate timestamp 115 adjustments on DOS unless they are needed. 116 117 * commands.c (delete_target): Do not assume that 118 FILE_TIMESTAMP_S yields -1 for a nonexistent file, as that is 119 no longer true with the new representation. 120 121 * file.c (file_timestamp_cons): New function, replacing 122 FILE_TIMESTAMP_FROM_S_AND_NS. All uses changed. 123 (file_timestamp_now): Use FILE_TIMESTAMP_HI_RES instead of 1 < 124 FILE_TIMESTAMPS_PER_S to determine whether we're using hi-res 125 timestamps. 126 (print_file): Print OLD_MTIME values as "very old" instead of 127 as a timestamp. 128 1292000-05-31 Paul Eggert <eggert@twinsun.com> 130 131 * remake.c (name_mtime): Check for stat failures. Retry if EINTR. 132 1332000-05-24 Paul D. Smith <psmith@gnu.org> 134 135 * main.c (decode_switches): The "positive_int" switch uses atoi() 136 which succeeds for any input, and doesn't notice if extra, 137 non-digit text is after the number. This causes make to mis-parse 138 command lines like "make -j 5foo" as "make -j5" (ignoring "foo" 139 completely) instead of "make -j0 5foo" (where "5foo" is a 140 target). Fix this by checking the value by hand. We could use 141 strtol() if we were sure of having it; this is the only 142 questionable use of atoi() I found so we'll just stick with that. 143 Fixes PR/1716. 144 145 * i18n/ja.po, i18n/nl.po, i18n/pt_BR.po: New translation files. 146 * configure.in (ALL_LINGUAS): Added pt_BR. 147 1482000-05-22 Paul Eggert <eggert@twinsun.com> 149 150 * remake.c (f_mtime): Fix bug when handling future odd 151 timestamps in the WINDOWS32 case. Do not bother initializing 152 static var to zero. Simplify code that works around WINDOWS32 153 and __MSDOS__ time skew brain damage. 154 1552000-05-22 Paul Eggert <eggert@twinsun.com> 156 157 * job.c: Don't include time.h, as make.h already does this. 158 1592000-05-22 Paul Eggert <eggert@twinsun.com> 160 161 * configure.in (AC_CHECK_HEADERS): Add sys/time.h. 162 (AC_HEADER_TIME): Add. 163 (clock_gettime): Prefer -lrt to -lposix4, for Solaris 7. 164 (gettimeofday): Add check for standard version of gettimeofday. 165 This merges changes written by Paul D. Smith. 166 167 * file.c (file_timestamp_now): Use gettimeofday if available 168 and if clock_gettime does not work. Don't bother with 169 high-resolution clocks if file timestamps have only one-second 170 resolution. 171 172 * make.h <sys/time.h>: Include, conditionally on the usual 173 TIME_WITH_SYS_TIME and HAVE_SYS_TIME_H macros. This is needed 174 for gettimeofday. 175 1762000-05-20 Paul D. Smith <psmith@gnu.org> 177 178 * read.c (read_makefile): We weren't keeping makefile names around 179 unless there was a rule defined in them; but now we need to keep 180 them for variables as well. Forget trying to be fancy: just keep 181 every makefile name we successfully open. 182 183 * remote-cstms.c (start_remote_job_p): Change DB_EXTRA (?) to DB_JOBS. 184 1852000-05-17 Paul Eggert <eggert@twinsun.com> 186 187 * commands.c (chop_commands): Ensure ctype macro args are nonnegative. 188 * expand.c (variable_expand_string): Likewise. 189 * function.c (subst_expand, lookup_function, msdos_openpipe): 190 Likewise. 191 * job.c (vms_redirect, start_job_command, new_job, child_execute_job, 192 construct_command_argv_internal, construct_command_argv): Likewise. 193 * main.c (decode_env_switches, quote_for_env): Likewise. 194 * misc.c (collapse_continuations, end_of_token, end_of_token_w32, 195 next_token): Likewise. 196 * read.c (read_makefile, do_define, conditional_line, 197 find_char_unquote,get_next_mword): Likewise. 198 * variable.c (try_variable_definition): Likewise. 199 * vpath.c (construct_vpath_list): Likewise. 200 * w32/pathstuff.c (convert_vpath_to_windows32): Likewise. 201 2022000-05-10 Eli Zaretskii <eliz@is.elta.co.il> 203 204 * main.c (main) [__MSDOS__]: Add SIGFPE to signals we block when 205 running child programs, to prevent Make from dying on Windows 9X 206 when the child triggers an FP exception. 207 2082000-05-08 Paul D. Smith <psmith@gnu.org> 209 210 * dir.c (find_directory) [WINDOWS32]: If we strip a trailing "\" 211 from the directory name, remember to add it back. The argument 212 might really be inside a longer string (e.g. %Path%) and if you 213 don't restore the "\" it'll be truncated permanently. Fixes PR/1722. 214 Reported by <steven@surfcast.com> 215 2162000-05-02 Paul D. Smith <psmith@gnu.org> 217 218 * job.c (construct_command_argv_internal) [WINDOWS32]: Added "rd" 219 and "rmdir" to the list of command.com commands. 220 Reported by Elod Horvath <Elod_Horvath@lnotes5.bankofny.com> 221 2222000-04-24 Paul D. Smith <psmith@gnu.org> 223 224 * i18n/ja.po: New translation file from the Japanese language team. 225 2262000-04-18 Paul D. Smith <psmith@gnu.org> 227 228 * remake.c (f_mtime): If ar_member_date() returns -1 (the member 229 doesn't exist), then return (FILE_TIMESTAMP)-1 rather than 230 returning the timestamp calculated from the value -1. Fixes PR/1696. 231 Reported by Gilles Bourhis <Gilles.Bourhis@univ-rennes1.fr>. 232 2332000-04-17 Paul D. Smith <psmith@gnu.org> 234 235 * config.h.W32.template: Add LOCALEDIR macro resolving to "". 236 * w32/subproc/sub_proc.c (process_begin): Remove reference to 237 debug_flag; change it to a DB() call. Fixes PR/1700. 238 Reported by Jim Smith <jwksmith@attglobal.net> 239 2402000-04-17 Bruno Haible <haible@clisp.cons.org> 241 242 * arscan.c [BeOS]: Add replacement for nonexistent <ar.h> from GNU 243 binutils. 244 2452000-04-11 Paul D. Smith <psmith@gnu.org> 246 247 * function.c (expand_builtin_function): If no arguments were 248 provided, just quit early rather than changing each function to 249 test for this. 250 (function_table[]): Change the min # of arguments to 0 for all 251 those functions for which it makes sense (currently everything 252 that used to take a minimum of 1 argument, except $(call ...)). 253 Fixes PR/1689. 254 2552000-04-09 Eli Zaretskii <eliz@is.elta.co.il> 256 257 * README.DOS: Add instructions to install a binary distro. 258 Mention latest versions of Windows. 259 2602000-04-07 Eli Zaretskii <eliz@is.elta.co.il> 261 262 * main.c (main): Rename TMP_TEMPLATE into DEFAULT_TMPDIR, and use 263 it for the directory of the temporary file. If P_tmpdir is 264 defined, use it in preference to "/tmp/". Try $TMPDIR, $TEMP, and 265 $TMP in the environment before defaulting to DEFAULT_TMPDIR. 266 (print_version): Add year 2000 to the Copyright line. 267 2682000-04-04 Paul D. Smith <psmith@gnu.org> 269 270 * Version 3.79 released. 271 272 * make.texinfo: Update documentation with new features for 3.79. 273 274 * function.c (func_wordlist): Don't re-order arguments to 275 wordlist. 276 2772000-04-03 Paul D. Smith <psmith@gnu.org> 278 279 * remake.c (f_mtime): Archive member timestamps are stored as 280 time_t, without nanoseconds. But, f_mtime() wants to return 281 nanosecond info on those systems that support it. So, convert the 282 return value of ar_member_date() into a FILE_TIMESTAMP, using 0 as 283 the nanoseconds. 284 2852000-03-28 Paul D. Smith <psmith@gnu.org> 286 287 * Version 3.78.92 released. 288 289 * build.template: Updates for gettext support; some bugs fixed. 290 2912000-03-27 Paul D. Smith <psmith@gnu.org> 292 293 * config.guess, config.sub: Updated from config CVS archive at 294 :pserver:anoncvs@subversions.gnu.org:/home/cvs as of today. 295 296 * read.c (record_files): Check if expanding a static pattern 297 rule's prerequisite pattern leaves an empty string as the 298 prerequisite, and issue an error if so. Fixes PR/1670. 299 (read_makefile): Store the starting linenumber for a rule in 300 TGTS_STARTED. 301 (record_waiting_files): Use the TGTS_STARTED value for the file 302 location passed to record_file() instead of the current 303 linenumber, so error messages list the line where the target was 304 defined instead of the line after the end of the rule definition. 305 306 * remake.c (start_updating, finish_updating, is_updating): Fix 307 PR/1671; circular dependencies in double-colon rules are not 308 diagnosed. These macros set the updating flag in the root 309 double-colon file instead of the current one, if it's part of a 310 double-colon list. This solution provided by Tim Magill 311 <magill@gate.net>; I just changed the macro names :). 312 (update_file_1): Call them. 313 (check_dep): Call them. 314 315 The change to not automatically evaluate the $(call ...) 316 function's arguments breaks recursive use of call. Although using 317 $(if ...) and $(foreach ...) in $(call ...) macros is important, 318 the error conditions generated are simply to obscure for me to 319 feel comfortable with. If a method is devised to get both 320 working, we'll revisit. For now, remove this change. 321 322 * function.c (function_table): Turn on the expand bit for func_call. 323 (func_call): Don't expand arguments for builtin functions; that 324 will have already been done. 325 3262000-03-26 Paul D. Smith <psmith@gnu.org> 327 328 * file.c (remove_intermediates): Never remove targets explicitly 329 requested on the command-line by checking the cmd_target flag. 330 Fixed PR/1669. 331 3322000-03-23 Paul Eggert <eggert@twinsun.com> 333 334 * filedef.h (FILE_TIMESTAMP_STAT_MODTIME): Use st_mtime instead of 335 st_mtim.tv_sec; the latter doesn't work on Unixware. 336 3372000-03-18 Paul D. Smith <psmith@gnu.org> 338 339 * file.c (file_hash_enter): If we're trying to change a file into 340 itself, just return. We used to assert this wasn't true, but 341 someone came up with a weird case involving archives. After 342 playing with it for a while I decided it was OK to ignore it. 343 344 * default.c: Define COFLAGS to empty to avoid spurious warnings. 345 346 * filedef.h: Change #if ST_MTIM_NSEC to #ifdef; this is a macro 347 containing the name of the nsec field, not true/false. 348 * make.h: Ditto. 349 Reported by Marco Franzen <Marco.Franzen@Thyron.com>. 350 3512000-03-08 Tim Magill <magill@gate.net> 352 353 * remake.c (update_file): Return the exit status of the pruned 354 file when pruning, not just 0. Fixes PR/1634. 355 3562000-02-24 Paul D. Smith <psmith@gnu.org> 357 358 * configure.in: Close a minor potential security hole; if you're 359 reading makefiles from stdin (who does that?) you could run into a 360 race condition with the temp file using mktemp() or tmpnam(). Add 361 a check for mkstemp() and fdopen(). 362 * main.c (open_tmpfile): New function to open a temporary file. 363 If we have mkstemp() (and fdopen()), use that. If not use 364 mktemp() or tmpnam(). If we have fdopen(), use open() to open the 365 file O_CREAT|O_EXCL. If not, fall back to normal fopen() (insecure). 366 (main): Call it. 367 * job.c (child_execute_job) [VMS]: Call it. 368 369 * variable.c (lookup_variable): If we find a variable which is 370 being expanded, then note it but keep looking through the rest of 371 the set list to see if we can find one that isn't. If we do, 372 return that. If we don't, return the original. Fix for PR/1610. 373 374 While implementing this I realized that it also solves PR/1380 in 375 a much more elegant way. I don't know what I was smoking before. 376 So, remove the hackage surrounding the original fix for that (see 377 below). Change this function back to lookup_variable and remove 378 the extra setlist argument. 379 * variable.h (recursively_expand_setlist): Remove the macro, 380 rename the prototype, and remove the extra setlist argument. 381 (lookup_variable): Ditto. 382 * expand.c (recursively_expand): Rename and remove the extra 383 setlist argument. 384 (reference_variable): Use lookup_variable() again. 385 (allocated_variable_append): Remove the extra setlist argument. 386 3872000-02-21 Paul D. Smith <psmith@gnu.org> 388 389 * README.template: A few updates. 390 391 * i18n/de.po: New version from the German translation team. 392 3932000-02-09 Paul D. Smith <psmith@gnu.org> 394 395 * Version 3.78.91 released. 396 3972000-02-07 Paul D. Smith <psmith@gnu.org> 398 399 * read.c (read_makefile): Reset *p2 to ':', not *colonp. If any 400 filenames contained backslashes the resulting output (without 401 backslashes) will be shorter, so setting *colonp doesn't change 402 the right character. Fix for PR/1586. 403 404 For += target-specific variables we need to remember which 405 variable set we found the variable in, so we can start looking 406 from there in the next iteration (otherwise we might see it again 407 in recursively_expand and fail!). This is turning into a hack; if 408 it gets any worse we'll have to rethink this entire algorithm... 409 implementing expansion of these references separately from the 410 "normal" expansion, say, instead of using the same codepath. 411 Actually, it's already "worse enough" :-/. 412 Fix for PR/1380. 413 414 * variable.h (recursively_expand_setlist): Rename 415 recursively_expand to add a struct variable_set_list argument, and 416 make a macro for recursively_expand. 417 (lookup_variable_setlist): Rename lookup_variable to add a struct 418 variable_set_list argument, and make a macro for lookup_variable. 419 420 * expand.c (recursively_expand_setlist): Take an extra struct 421 variable_set_list argument and pass it to allocated_variable_append(). 422 (reference_variable): Use lookup_variable_setlist() and pass the 423 returned variable_set_list to recursively_expand_setlist. 424 (allocated_variable_append): Take an extra setlist argument and 425 use this as the starting place when searching for the appended 426 expansion. If it's null, use current_variable_set_list as before. 427 428 * variable.c (lookup_variable_setlist): If the LISTP argument is 429 not nil, set it to the list containing the variable we found. 430 4312000-02-04 Paul D. Smith <psmith@gnu.org> 432 433 * variable.c (print_variable): Write out filename/linenumber 434 information for the variable definition if present. 435 (define_variable_in_set): Store filename information if provided. 436 (define_variable, define_variable_for_file): Removed. 437 (try_variable_definition): Use define_variable_loc() to keep 438 variable definition location information. 439 * read.c (read_makefile): Keep variable definition location info. 440 (do_define): Ditto. 441 (record_target_var): Ditto. 442 * variable.h (define_variable_in_set): New fileinfo argument. 443 (define_variable, define_variable_loc, define_variable_for_file): 444 Declare new macros. 445 446 Fix PR/1407: 447 448 * filedef.h (struct file): Rename patvar to pat_variables and make 449 it just a variable_set_list; we need our own copy of the pattern 450 variable's variable set list here to avoid overwriting the global 451 one. 452 * variable.c (initialize_file_variables): Move the instantiation 453 of the pat_variables pointer here. Only do the search after we're 454 done reading the makefiles so we don't search too early. If 455 there's a pat_variables value, set up the variables next ptr. 456 * expand.c (variable_expand_for_file): Remove the setup of the 457 pat_variables info; it's done earlier now to ensure the parent's 458 pattern variables are set up correctly as well. 459 4602000-02-03 Paul D. Smith <psmith@gnu.org> 461 462 * job.c (sh_chars_dos) [WINDOWS32]: Add "&" as a shell 463 metacharacter for the W32 DOS shell. 464 Reported by Warren Jones <wjones@tc.fluke.com>. 465 4662000-02-02 Paul D. Smith <psmith@gnu.org> 467 468 Fixes for the OpenVMS port from Hartmut Becker <becker@rto.dec.com> 469 470 * config.h-vms [VMS]: Define LOCALEDIR to something; needed for 471 the expansion of bindtextdomain() even though it's a no-op. 472 * vmsfunctions.c (strcmpi): Remove duplicate definition of strcmpi(). 473 (readdir): Use DB() instead of testing debug_flag. 474 * dir.c (file_impossible) [VMS]: Search "p" not "name". 475 * job.c [VMS]: Switch from debug_flag to the new DB macro. Add 476 some i18n _() macros (even though VMS doesn't yet support it). 477 478 * function.c (patsubst_expand): Change "len" to not be unsigned to 479 avoid type mismatches. 480 481 * main.c (main): Declare signame_init() if we're going to call it. 482 4832000-01-29 Eli Zaretskii <eliz@is.elta.co.il> 484 485 * Makefile.DOS.template: Track changes in Makefile.in 486 (install-recursive, uninstall-recursive): Add missing targets. 487 (DESTDIR): Define. 488 (install-binPROGRAMS, uninstall-binPROGRAMS): Use $(DESTDIR). 489 490 * default.c (default_variables) [__MSDOS__]: Define CXX to gpp. 491 4922000-01-27 Paul D. Smith <psmith@gnu.org> 493 494 * gettext.c: Some warning cleanups, and a fix for systems which 495 don't define HAVE_ALLOCA (the workaround code was included 496 twice). 497 4982000-01-26 Paul D. Smith <psmith@gnu.org> 499 500 * Version 3.78.90 released. 501 5022000-01-25 Paul D. Smith <psmith@gnu.org> 503 504 Change gettext support to use the simplified version in libit 0.7. 505 506 * getopt.c, make.h: Use gettext.h instead of libintl.h. 507 * ABOUT-NLS, gettext.h, gettext.c: New files from libit 0.7. 508 Modified to remove some static declarations which aren't defined. 509 * acconfig.h: Use new gettext #defines. 510 * acinclude.m4: Add fp_WITH_GETTEXT; remove AM_GNU_GETTEXT. 511 * configure.in: Call fp_WITH_GETTEXT instead. 512 * Makefile.am: New gettext stuff. Also force inclusion of glob 513 files for systems which have LIBC glob. 514 515 * i18n/Makefile.am, i18n/.cvsignore: New dir for translation files. 516 * i18n/de.po, i18n/es.po, i18n/fr.po, i18n/ko.po, i18n/nl.po: 517 * i18n/pl.po, i18n/ru.po: Import translations already done for 518 earlier versions of GNU make. Thanks for that work!! 519 520 * po/Makefile.in.in, po/POTFILES.in: Removed. 521 5222000-01-23 Paul D. Smith <psmith@gnu.org> 523 524 * main.c (decode_debug_flags): If debug_flag is set, enable all 525 debugging levels. 526 (debug_flag): Resurrect this flag variable. 527 (switches): Make -d give the old behavior of turning on all 528 debugging. Change --debug alone to emit basic debugging and take 529 optional arguments to expand debugging. 530 * NEWS: Document the new debugging options. 531 532 * remake.c (no_rule_error): Remove this function. This tries to 533 fix a real problem--see the description with the introduction of 534 this function below. However, the cure is worse than the disease 535 and this approach won't work. 536 (remake_file): Put the code from no_rule_error back here. 537 (update_file_1): Remove call to no_rule_error. 538 539 * filedef.h (struct file): Remove mfile_status field. 540 5412000-01-22 Paul D. Smith <psmith@gnu.org> 542 543 Integrate GNU gettext support. 544 545 * configure.in: Add AM_GNU_GETTEXT. 546 * Makefile.am: Add options for setting LOCALEDIR, -Iintl, etc. 547 * acinclude.m4: Add gettext autoconf macros. 548 * acconfig.h: Add new gettext #defines. 549 * make.h: Include libintl.h. Make sure _() and N_() macros are 550 declared. Make gettext() an empty macro is NLS is disabled. 551 * main.c (struct command_switch switches[]): Can't initialize 552 static data with _() (gettext calls), so use N_() there then use 553 gettext() directly when printing the strings. 554 * remake.c (no_rule_error): The string constants can't be static 555 when initializing _() macros. 556 * file.c (print_file): Reformat a few strings to work better for 557 translation. 558 * po/POTFILES.in, po/Makefile.in.in: New files. Take 559 Makefile.in.in from the latest GNU tar distribution, as that 560 version works better than the one that comes with gettext. 561 * NEWS: Mention i18n ability. 562 5632000-01-21 Paul D. Smith <psmith@gnu.org> 564 565 Installed patches for the VMS port. 566 Patches provided by: Hartmut Becker <Hartmut.Becker@compaq.com> 567 568 * readme.vms, arscan.c, config.h-vms, default.c, dir.c, file.c: 569 * implicit.c, job.c, make.h, makefile.com, makefile.vms, rule.c: 570 * variable.c, vmsdir.h, vmsfunctions.c, vmsify.c, glob/glob.c: 571 * glob/glob.h: Installed patches. See readme.vms for details. 572 5732000-01-14 Andreas Schwab <schwab@suse.de> 574 575 * dir.c (read_dirstream): Initialize d_type if it exists. 576 5772000-01-11 Paul D. Smith <psmith@gnu.org> 578 579 Resolve PR/xxxx: don't automatically evaluate the $(call ...) 580 function's arguments. While we're here, clean up argument passing 581 protocol to always use simple nul-terminated strings, instead of 582 sometimes using offset pointers to mark the end of arguments. 583 This change also fixes PR/1517. 584 Reported by Damien GIBOU <damien.gibou@st.com>. 585 586 * function.c (struct function_table_entry): Remove the negative 587 required_args hack; put in explicit min and max # of arguments. 588 (function_table): Add in the max value. Turn off the expand bit 589 for func_call. 590 (expand_builtin_function): Test against minimum_args instead of 591 the obsolete required_args. 592 (handle_function): Rewrite this. We don't try to be fancy and 593 pass one style of arguments to expanded functions and another 594 style to non-expanded functions: pass pointers to nul-terminated 595 strings to all functions. 596 (func_call): Rewrite this. If we are invoking a builtin function 597 and it's supposed to have its arguments expanded, do that (since 598 it's not done by handle_function for $(call ...) anymore). For 599 non-builtins, just add the variables as before but mark them as 600 recursive so they'll be expanded later, as needed. 601 (func_if): All arguments are vanilla nul-terminated strings: 602 remove trickery with "argv[1]-1". 603 (func_foreach): Ditto. 604 605 * expand.c (expand_argument): If the second arg is NULL, expand 606 the entire first argument. 607 608 * job.c (new_job): Zero the child struct. This change was just 609 made to keep some heap checking software happy, not because there 610 was an actual bug (the important memory was being cleared properly). 611 6121999-12-15 Paul D. Smith <psmith@gnu.org> 613 614 * variable.c (print_variable): Print the variable with += if the 615 append flag is set. 616 617 * implicit.c (pattern_search): Remove the extra check of the 618 implicit flag added on 8/24/1998. This causes problems and the 619 reason for the change was better resolved by the change made to 620 check_deps() on 1998-08-26. This fixes PR/1423. 621 6221999-12-08 Paul D. Smith <psmith@gnu.org> 623 624 * dir.c (dir_setup_glob): On 64 bit ReliantUNIX (5.44 and above) 625 in LFS mode, stat() is actually a macro for stat64(). Assignment 626 doesn't work in that case. So, stat is a macro, make a local 627 wrapper function to invoke it. 628 (local_stat): Wrapper function, if needed. 629 Reported by Andrej Borsenkow <Andrej.Borsenkow@mow.siemens.ru>. 630 6311999-12-02 Paul D. Smith <psmith@gnu.org> 632 633 * remake.c (update_file): Move the considered test outside the 634 double-colon loop, _but_ make sure we test the double_colon target 635 not the "current" target. If we stop early because one 636 double-colon target is running, mark all the rest considered and 637 try to start their prerequisites (so they're marked considered). 638 Fix for PR/1476 suggested by Tim Magill <tim.magill@telops.gte.com>. 639 6401999-11-22 Rob Tulloh <rob_tulloh@dev.tivoli.com> 641 642 * function.c (windows32_openpipe, func_shell): Correct Windows32 643 problem where $(shell nosuchfile) would incorrectly exit make. The 644 fix is to print the error and let make continue. 645 Reported by David Masterson <David.Masterson@kla-tencor.com>. 646 647 * w32/subproc/misc.c (arr2envblk): Memory leak fix. 648 6491999-11-21 Paul D. Smith <psmith@gnu.org> 650 651 Rework GNU make debugging to provide different levels of output. 652 653 * NEWS: mention it. 654 * debug.h: New file. Define various debugging levels and macros. 655 * function.c, implicit.c, job.c, main.c, misc.c, read.c, remake.c 656 * remote-cstms.c, vmsfunctions.c: Replace all code depending on 657 debug_flag with invocations of debugging macros. 658 * make.h: Remove debug_flag and DEBUGPR, add db_level. 659 6601999-11-18 Paul Eggert <eggert@twinsun.com> 661 662 * acinclude.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a problem 663 with the QNX 4.25 shell, which doesn't propagate exit status of 664 failed commands inside shell assignments. 665 6661999-11-17 Paul D. Smith <psmith@gnu.org> 667 668 * function.c (func_if): Find the end of the arg list by testing 669 the next item for NULL; any other test is not correct. 670 Reported by Graham Reed <grahamr@algorithmics.com> (PR/1429). 671 672 Fix += when used in a target-specific variable context. 673 674 * variable.h: New bitfield APPEND set if we have a += 675 target-specific variable. 676 677 * variable.c (try_variable_definition): Add an argument to specify 678 if we're trying a target-specific variable. If we are and it's an 679 append style, don't append it, record it as normal recursive, but 680 set the APPEND flag so it'll be expanded later. 681 * main.c (handle_non_switch_argument): Use new 682 try_variable_definition() signature. 683 * read.c (read_makefile,record_target_var): Ditto. 684 685 * expand.c (allocated_variable_append): New function: like 686 allocated_variable_expand(), but we expand the same variable name 687 in the context of the ``next'' variable set, then we append this 688 expanded value. 689 (recursively_expand): Invoke it, if the APPEND bit is set. 690 6911999-11-10 Paul D. Smith <psmith@gnu.org> 692 693 * file.c (snap_deps): If the .NOTPARALLEL target is defined, turn 694 off parallel builds for this make only (still allow submakes to be 695 run in parallel). 696 * main.c: New variable, ``not_parallel''. 697 * make.h: Add an extern for it. 698 * job.c (new_job): Test NOT_PARALLEL as well as JOB_SLOTS. 699 * NEWS: Add info on .NOTPARALLEL. 700 * make.texinfo (Special Targets): Document it. 701 702 * configure.in (GLOBDIR): Set to "glob" if we need to build the 703 glob library. 704 * Makefile.am (SUBDIRS): Use the GLOBDIR variable instead of 705 "glob" so we don't try to build glob if we don't need to (if we 706 have GLIBC glob). Reported by Lars Hecking <lhecking@nmrc.ucc.ie>. 707 708 * main.c (main): Don't put "***" in the clock skew warning 709 message. Reported by karl@gnu.org. 710 711 * make.h: Remove unneeded signal setup. 712 713 * signame.c: Remove extraneous #includes; some versions of Ultrix 714 don't protect against multiple inclusions and it causes compile 715 errors. Reported by Simon Burge <simonb@thistledown.com.au>. 716 7171999-10-15 Paul D. Smith <psmith@gnu.org> 718 719 * main.c (quote_for_env): Rename from quote_as_word(). 720 721 * make.h, *.c: Prefer strchr() and strrchr() in the code 722 rather than index() and rindex(). Define strchr/strrchr in terms 723 of index/rindex if the former aren't supported. 724 725 * default.c (CHECKOUT,v): Replace the fancy, complicated 726 patsubst/filter expression with a simple $(if ...) expression. 727 728 * main.c (print_usage): Add the bug reporting mailing address to 729 the --help output, as per the GNU coding standards. 730 Reported by Paul Eggert <eggert@twinsun.com>. 731 732 * README.customs: Installed information on running Customs-ized 733 GNU make and setuid root, collected by Ted Stern <stern@tera.com>. 734 735 * read.c (read_all_makefiles): PR/1394: Mark the end of the next 736 token in the MAKEFILES value string _before_ we dup it. 737 7381999-10-13 Paul D. Smith <psmith@gnu.org> 739 740 * configure.in (make_cv_sys_gnu_glob): We used to add the -Iglob 741 flag to CPPFLAGS, but that loses if the user specifies his own 742 CPPFLAGS; this one gets added _after_ his and if he happens to 743 have an old or broken glob.h--boom. Instead, put it in GLOBINC 744 and SUBST it. 745 746 * Makefile.am (INCLUDES): Add @GLOBINC@ to the INCLUDES macro; 747 these things get on the compile line well before the user's 748 CPPFLAGS. 749 7501999-10-12 Paul D. Smith <psmith@gnu.org> 751 752 * remake.c (notice_finished_file): If we get here and -n is set, 753 see if all the command lines are marked recursive. If so, then we 754 ran every command there is, so check the mtime on this file just 755 like we would normally. If not, we assume the command we didn't 756 run would updates the target and set mtime of the target to "very new". 757 758 * job.c (start_job_command): Update lines_flags in the file's cmds 759 structure with any per-line tokens we found (`@', `-', `+'). 760 7611999-10-08 Paul D. Smith <psmith@gnu.org> 762 763 * variable.c (initialize_file_variables): Always recurse to 764 initialize the parent's file variables: the parent might not have 765 any rules to run so it might not have been initialized before 766 this--we need this to set up the chain properly for 767 target-specific variables. 768 7691999-09-29 Paul Eggert <eggert@twinsun.com> 770 771 * main.c (quote_as_word): Always quote for decode_env_switches 772 instead of for the shell, so that arguments with strange 773 characters are are passed to submakes correctly. Remove 774 double_dollars arg; we always double dollars now. All callers 775 changed. 776 (decode_env_switches): Don't run off the end of an environment 777 variable whose contents ends in a unescaped backslash. 778 7791999-09-23 Paul D. Smith <psmith@gnu.org> 780 781 * commands.c, function.c, job.c, read.c: Cast arguments to 782 ctype.h functions/macros to _unsigned_ char for portability. 783 784 * remake.c, function.c: Compiler warning fixes: the second 785 argument to find_next_token() should be an _unsigned_ int*. 786 Reported by Han-Wen Nienhuys <hanwen@cs.uu.nl>. 787 7881999-09-23 Paul D. Smith <psmith@gnu.org> 789 790 * Version 3.78.1 released. 791 792 * make.texinfo: Update version/date stamp. 793 794 * main.c (main): Argh. For some reason we were closing _all_ the 795 jobserver pipes before we re-exec'd due to changed makefiles. 796 This means that any re-exec got a "jobserver unavailable" error :-/. 797 I can't believe we didn't notice this before. 798 7991999-09-22 Paul D. Smith <psmith@gnu.org> 800 801 * Version 3.78 released. 802 803 * main.c (main): Only fail on multiple --jobserver-fds options if 804 they aren't all the same. Some makefiles use things like 805 $(MAKE) $(MFLAGS) which will cause multiple, identical copies of 806 --jobserver-fds to show up. 807 8081999-09-16 Paul D. Smith <psmith@gnu.org> 809 810 * main.c (define_makeflags): Zero out FLAGSTRING to avoid 811 uninitialized memory reads when checking *p != '-' in the loop. 812 8131999-09-15 Paul D. Smith <psmith@gnu.org> 814 815 * Version 3.77.97 released. 816 817 * configure.in (MAKE_HOST): AC_SUBST this so it will go into the 818 makefile. 819 * Makefile.am (check-local): Print a success banner if the check 820 succeeds. 821 (check-regression): A bit of fine-tuning. 822 8231999-09-15 Eli Zaretskii <eliz@is.elta.co.il> 824 825 * README.DOS.template: Document requirements for the test suite. 826 * Makefile.DOS.template: Updates to allow the test suite to run 827 from "make check". 828 829 * main.c (main): Handle it if argv[0] isn't an absolute path. 830 8311999-09-13 Paul D. Smith <psmith@gnu.org> 832 833 * Version 3.77.96 released. 834 835 * Makefile.am (loadavg): Use CPPFLAGS, etc. to make sure we get 836 all the right #defines to compile. 837 (check-regression): Look for the regression test suite in the make 838 package itself. If we're building remotely, use symlinks to make 839 a local copy. 840 (dist-hook): Put the test suite into the tar file. 841 842 * configure.in: Look for perl for the test suite. 843 8441999-09-10 Paul Eggert <eggert@twinsun.com> 845 846 * acinclude.m4 (AC_SYS_LARGEFILE_FLAGS): If on HP-UX 10.20 or 847 later, and using GCC, define __STDC_EXT__; this works around a 848 bug in GCC 2.95.1. 849 8501999-09-08 Paul D. Smith <psmith@gnu.org> 851 852 * main.c (print_version): Ugh. GLIBC's configure tries to check 853 make version strings and is too aggressive with their matching 854 expressions. I've struck a deal with them to leave the version 855 output as-is for 3.78, and they'll change their configure checks 856 so that I can change this back in the future. 857 8581999-09-07 Eli Zaretskii <eliz@is.elta.co.il> 859 860 * job.c (construct_command_argv_internal) [__MSDOS__]: Add "echo" 861 and "unset" to the list of builtin shell commands. 862 863 * configh.DOS.template (MAKE_HOST): Define to "i386-pc-msdosdjgpp" 864 which is the canonical name of the DJGPP host. 865 8661999-09-05 Paul D. Smith <psmith@gnu.org> 867 868 * Version 3.77.95 released. 869 870 * make.texinfo (Make Errors): Document some new jobserver error 871 messages. 872 8731999-09-04 Eli Zaretskii <eliz@is.elta.co.il> 874 875 * make.texinfo (Make Errors): Document the hint about 8 spaces 876 instead of a TAB. 877 (Call Function, Quick Reference): Use @code{$(1)}, not @var. 878 879 * main.c (main) [__MSDOS__]: Say "on this platform" instead of "on 880 MS-DOS", since the MSDOS version could run on Windows. 881 8821999-09-03 Paul D. Smith <psmith@gnu.org> 883 884 * remake.c (notice_finished_file): Always set mtime_before_update 885 if it's not been set, not just if we ran some rules. Otherwise we 886 may have a situation where a target's prerequisite was rebuilt but 887 not changed, so this target's rules weren't run, then 888 update_goal_chain() sees mtime_before_update != last_mtime and 889 thinks that the top-level target changed when it really didn't. 890 This can cause an infinite loop when remaking makefiles. 891 (update_goal_chain): If we get back to the top and we don't know 892 what the goal's last_mtime was, find it now. We need to know so 893 we can compare it to mtime_before_update later (this is only 894 crucial when remaking makefiles--should we only do it then?) 895 8961999-09-02 Paul D. Smith <psmith@gnu.org> 897 898 * read.c (read_makefile): If "override" appears as the first 899 prerequisite, look further to ensure this is really a 900 target-specific variable definition, and not just some 901 prerequisite named "override". 902 9031999-09-01 Paul D. Smith <psmith@gnu.org> 904 905 * function.c (IS_PATHSEP) [WINDOWS32]: Allow backslash separators 906 for W32 platforms. 907 * read.c (record_files) [WINDOWS32]: Allow backslash separators 908 for W32 platforms. 909 * implicit.c (pattern_search) [WINDOWS32]: Allow backslash 910 separators for W32 platforms. 911 912 * configure.in (MAKE_HOST): Define it to be the canonical build 913 host info, now that we need AC_CANONICAL_HOST anyway (for large 914 file support). 915 * version.c (make_host): Define a variable to MAKE_HOST so we're 916 sure to get it from the local config.h. 917 * main.c (print_version): Use it in the version information. 918 * config.ami.template: Add MAKE_HOST. 919 * configh.dos.template: Ditto. 920 * config.h.W32.template: Ditto. 921 * config.h-vms.template: Ditto. 922 923 * main.c (main): Close the jobserver file descriptors if we need 924 to re-exec ourselves. 925 Also print more reasonable error if users force -jN for submakes. 926 This may be common for a while until people use the jobserver 927 feature. If it happens, we ignore the existing jobserver stuff 928 and use whatever they specified on the commandline. 929 (define_makeflags): Fixed a long-standing bug: if a long name 930 only option comes immediately after a single letter option with no 931 argument, then the option string is constructed incorrectly. For 932 example, with -w and --jobserver-fds you get "-w-jobserver-fds..." 933 instead of "-w --jobserver-fds..."; add in an extra " -". 934 935 * make.texinfo (Phony Targets): Add another example of using 936 .PHONY with subdirectories/recursive make. 937 9381999-08-30 Paul D. Smith <psmith@gnu.org> 939 940 * README.W32.template: Renamed from README.W32 so it's 941 autogenerated during the dist. A few minor modifications. 942 943 * configure.in: Check for kstat_open before AC_FUNC_GETLOADAVG 944 since the latter needs to know whether the former exists to give 945 an accurate result. 946 9471999-08-26 Rob Tulloh <rob_tulloh@dev.tivoli.com> 948 949 * NMakefile [WINDOWS32]: Now more robust. If you change a file 950 under w32/subproc, the make.exe will be relinked. Also added some 951 tests to make sure erase commands won't fail when executed in a 952 pristine build environment. 953 954 * w32/subproc/sub_proc.c [WINDOWS32]: Added support for 955 HAVE_CYGWIN_SHELL. If you are using the Cygwin B20.1 release, it 956 is now possible to have have native support for this shell without 957 having to rely on klutzy BATCH_MODE_ONLY_SHELL. 958 959 * config.h.W32 [WINDOWS32]: Added HAVE_CYGWIN_SHELL macro which 960 users can define if they want to build make to use this shell. 961 962 * README.W32 [WINDOWS32]: Added informaton about 963 HAVE_CYGWIN_SHELL. Cleaned up text a bit to make it more current. 964 9651999-08-26 Paul Eggert <eggert@twinsun.com> 966 967 Support large files in AIX, HP-UX, and IRIX. 968 969 * acinclude.m4 (AC_LFS): Remove. Superseded by AC_SYS_LARGEFILE. 970 (AC_SYS_LARGEFILE_FLAGS, AC_SYS_LARGEFILE_SPACE_APPEND, 971 AC_SYS_LARGEFILE_MACRO_VALUE, AC_SYS_LARGEFILE): New macros. 972 (jm_AC_TYPE_UINTMAX_T): Check for busted compilers that can't 973 shift or divide unsigned long long. 974 (AM_PROG_CC_STDC): New macro; a temporary workaround of a bug in 975 automake 1.4. 976 977 * configure.in (AC_CANONICAL_HOST): Add; required by new 978 AC_SYS_LARGEFILE. 979 (AC_SYS_LARGEFILE): Renamed from AC_LFS. 980 (AM_PROG_CC_STDC): Add. 981 982 * config.guess, config.sub: New files, needed for AC_CANONICAL_HOST. 983 9841999-08-25 Paul Eggert <eggert@twinsun.com> 985 986 * make.h (CHAR_MAX): New macro. 987 * main.c (struct command_switch): c is now int, 988 so that it can store values greater than CHAR_MAX. 989 (switches): Replace small numbers N with CHAR_MAX+N-1, 990 to avoid problems with non-ASCII character sets. 991 (short_option): New macro. 992 (init_switches, print_usage, define_makeflags): Use it instead of 993 isalnum. 994 9951999-08-25 Paul D. Smith <psmith@gnu.org> 996 997 * Version 3.77.94 released. 998 999 * main.c (main) [__MSDOS__]: If the user uses -j, warn that it's 1000 not supported and reset it. 1001 1002 * make.h (ISDIGIT): Obtained this from the textutils distribution. 1003 * main.c (decode_switches): Use it. 1004 * function.c (is_numeric): Use it. 1005 1006 * main.c (struct command_switch): Store the switch char in an 1007 unsigned char to shut up GCC about using it with ctype.h macros. 1008 Besides, it _is_ always unsigned. 1009 10101999-08-24 Paul D. Smith <psmith@gnu.org> 1011 1012 * make.texinfo: Change "dependency" to "prerequisite" and 1013 "dependencies" to "prerequisites". Various other cleanups related 1014 to the terminology change. 1015 * file.c: Change debugging and error messages to use 1016 "prerequisite" instead of "dependency". 1017 * implicit.c: Ditto. 1018 * remake.c: Ditto. 1019 * NEWS: Document it. 1020 10211999-08-23 Paul D. Smith <psmith@gnu.org> 1022 1023 * remake.c (update_file): Move the considered check into the 1024 double-colon rule loop, so we consider double-colon rules 1025 individually (otherwise after the first is pruned, the rest won't 1026 get run). 1027 1028 * README.template: Minor changes. 1029 1030 Remove the debugging features of the jobserver, so it no longer 1031 writes distinct tokens to the pipe. Thus, we don't need to store 1032 the token we get. A side effect of this is to remove a potential 1033 "unavailable token" situation: make-1 invokes make-2 with its 1034 special token and make-3 with a normal token; make-2 completes. 1035 Now we're waiting for make-3 but using 2 tokens; our special token 1036 is idle. In the new version we don't have special tokens per se, 1037 we merely decide if we already have a child or not. If we don't, 1038 we don't need a token. If we do, we have to get one to run the 1039 next child. Similar for putting tokens back: if we're cleaning up 1040 the last child, we don't put a token back. Otherwise, we do. 1041 1042 * main.c: Add a new, internal flag --jobserver-fds instead of 1043 overloading the meaning of -j. Remove job_slots_str and add the 1044 stringlist jobserver_fds. 1045 (struct command_switch): We don't need the int_string type. 1046 (switches[]): Add a new option for --jobserver-fds and remove 1047 conditions around -j. Make the description for the former 0 so it 1048 doesn't print during "make --help". 1049 (main): Rework jobserver parsing. If we got --jobserver-fds 1050 make sure it's valid. We only get one and job_slots must be 0. 1051 If we're the toplevel make (-jN without --jobserver-fds) create 1052 the pipe and write generic tokens. 1053 Create the stringlist struct for the submakes. 1054 Clean up the stringlist where necessary. 1055 (init_switches): Remove int_string handling. 1056 (print_usage): Don't print internal flags (description ptr is 0). 1057 (decode_switches): Remove int_string handling. 1058 (define_makeflags): Remove int_string handling. 1059 1060 * job.c: Remove my_job_token flag and all references to the 1061 child->job_token field. 1062 (free_job_token): Remove this and merge it into free_child(). 1063 (reap_children): Rework the "reaped a child" logic slightly. 1064 Don't call defunct free_job_token anymore. Always call 1065 free_child, even if we're dying. 1066 (free_child): If we're not freeing the only child, put a token 1067 back in the pipe. Then, if we're dying, don't bother to free. 1068 (new_job): If we are using the jobserver, loop checking to see if 1069 a) there are no children or b) we get a token from the pipe. 1070 1071 * job.h (struct child): Remove the job_token field. 1072 10731999-08-20 Paul D. Smith <psmith@gnu.org> 1074 1075 * variable.c (try_variable_definition): Allocate for variable 1076 expansion in f_append with a simple variable: if we're looking at 1077 target-specific variables we don't want to trash the buffer. 1078 Noticed by Reiner Beninga <Reiner.Beninga@mchp.siemens.de>. 1079 10801999-08-16 Eli Zaretskii <eliz@is.elta.co.il> 1081 1082 * main.c (main) [__MSDOS__]: Mirror any backslashes in argv[0], to 1083 avoid problems in shell commands that use backslashes as escape 1084 characters. 1085 10861999-08-16 Paul D. Smith <psmith@gnu.org> 1087 1088 * Version 3.77.93 released. 1089 10901999-08-13 Paul D. Smith <psmith@gnu.org 1091 1092 * function.c (func_if): New function $(if ...) based on the 1093 original by Han-Wen but reworked quite a bit. 1094 (function_table): Add it. 1095 * NEWS: Introduce it. 1096 * make.texinfo (If Function): Document it. 1097 1098 * job.c (free_job_token): Check for EINTR when writing tokens to 1099 the jobserver pipe. 1100 11011999-08-12 Paul D. Smith <psmith@gnu.org> 1102 1103 Another jobserver algorithm change. We conveniently forgot that 1104 the blocking bit is shared by all users of the pipe, it's not a 1105 per-process setting. Since we have many make processes all 1106 sharing the pipe we can't use the blocking bit as a signal handler 1107 flag. Instead, we'll dup the pipe's read FD and have the SIGCHLD 1108 handler close the dup'd FD. This will cause the read() to fail 1109 with EBADF the next time we invoke it, so we know we need to reap 1110 children. We then re-dup and reap. 1111 1112 * main.c (main): Define the job_rfd variable to hold the dup'd FD. 1113 Actually dup the read side of the pipe. Don't bother setting the 1114 blocking bit on the file descriptor. 1115 * make.h: Declare the job_rfd variable. 1116 * job.c (child_handler): If the dup'd jobserver pipe is open, 1117 close it and assign -1 to job_rfd to notify the main program that 1118 we got a SIGCHLD. 1119 (start_job_command): Close the dup'd FD before exec'ing children. 1120 Since we open and close this thing so often it doesn't seem 1121 worth it to use the close-on-exec bit. 1122 (new_job): Remove code for testing/setting the blocking bit. 1123 Instead of EAGAIN, test for EBADF. If the dup'd FD has been 1124 closed, re-dup it before we reap children. 1125 1126 * function.c (func_shell): Be a little more accurate about the 1127 length of the error string to allocate. 1128 1129 * expand.c (variable_expand_for_file): If there's no filenm info 1130 (say, from a builtin command) then reset reading_file to 0. 1131 11321999-08-09 Paul D. Smith <psmith@gnu.org> 1133 1134 * maintMakefile: Use g in sed (s///g) to replace >1 variable per 1135 line. 1136 1137 * Makefile.DOS.template [__MSDOS__]: Fix mostlyclean-aminfo to 1138 remove the right files. 1139 11401999-08-01 Eli Zaretskii <eliz@is.elta.co.il> 1141 1142 * function.c (msdos_openpipe) [__MSDOS__]: *Really* return a FILE 1143 ptr. 1144 11451999-08-01 Paul D. Smith <psmith@gnu.org> 1146 1147 New jobserver algorithm to avoid a possible hole where we could 1148 miss SIGCHLDs and get into a deadlock. The original algorithm was 1149 suggested by Roland McGrath with a nice refinement by Paul Eggert. 1150 Many thanks as well to Tim Magill and Howard Chu, who also 1151 provided many viable ideas and critiques. We all had a fun week 1152 dreaming up interesting ways to use and abuse UNIX syscalls :). 1153 1154 Previously we could miss a SIGCHLD if it happened after we reaped 1155 the children but before we re-entered the blocking read. If this 1156 happened to all makes and/or all children, make would never wake 1157 up. 1158 1159 We avoid this by having the SIGCHLD handler reset the blocking bit 1160 on the jobserver pipe read FD (normally read does block in this 1161 algorithm). Now if the handler is called between the time we reap 1162 and the time we read(), and there are no tokens available, the 1163 read will merely return with EAGAIN instead of blocking. 1164 1165 * main.c (main): Set the blocking bit explicitly here. 1166 * job.c (child_handler): If we have a jobserver pipe, set the 1167 non-blocking bit for it. 1168 (start_waiting_job): Move the token stuff back to new_job; if we 1169 do it here then we're not controlling the number of remote jobs 1170 started! 1171 (new_job): Move the check for job slots to _after_ we've created a 1172 child structure. If the read returns without getting a token, set 1173 the blocking bit then try to reap_children. 1174 1175 * make.h (EINTR_SET): Define to test errno if EINTR is available, 1176 or 0 otherwise. Just some code cleanup. 1177 * arscan.c (ar_member_touch): Use it. 1178 * function.c (func_shell): Use it. 1179 * job.c (reap_children): Use it. 1180 * remake.c (touch_file): Use it. 1181 11821999-07-28 Paul D. Smith <psmith@gnu.org> 1183 1184 * make.h: Define _() and N_() macros as passthrough to initiate 1185 NLS support. 1186 * <all>: Add _()/N_() around translatable strings. 1187 11881999-07-27 Paul D. Smith <psmith@gnu.org> 1189 1190 * read.c: Make sure make.h comes before other headers. 1191 11921999-07-26 Paul D. Smith <psmith@gnu.org> 1193 1194 * make.texinfo (Quick Reference): Update with the new features. 1195 11961999-07-25 Eli Zaretskii <eliz@is.elta.co.il> 1197 1198 * remake.c [__MSDOS__]: Don't include variables.h, it's already 1199 included. 1200 1201 * function.c (msdos_openpipe) [__MSDOS__]: Return FILE ptr. 1202 (func_shell) [__MSDOS__]: Fix the argument list. 1203 1204 * Makefile.DOS.template: Update from Makefile.in. 1205 1206 * README.DOS.template: Configure command fixed. 1207 1208 * configh.dos.template: Update to provide definitions for 1209 uintmax_t, fd_set_size_t, and HAVE_SELECT. 1210 12111999-07-24 Paul D. Smith <psmith@gnu.org> 1212 1213 * Version 3.77.91 released. 1214 1215 * configure.in: Changes to the boostrapping code: if build.sh.in 1216 doesn't exist configure spits an error and generates an empty 1217 build.sh file which causes make to be confused. 1218 * maintMakefile: Don't build README early. 1219 12201999-07-23 Paul D. Smith <psmith@gnu.org> 1221 1222 * job.c (my_job_token): This variable controls whether we've 1223 handed our personal token to a subprocess or not. Note we could 1224 probably infer this from the value of job_slots_used, but it's 1225 clearer to just keep it separately. Job_slots_used isn't really 1226 relevant when running the job server. 1227 (free_job_token): New function: free a job token. If we don't 1228 have one, no-op. If we have the personal token, reclaim it. If 1229 we have another token, write it back to the pipe. 1230 (reap_children): Call free_job_token. 1231 (free_child): Call free_job_token. 1232 (start_job_command): Remove duplicate test for '+' in the command. 1233 If we don't appear to be running a recursive make, close the 1234 jobserver filedescriptors. 1235 (start_waiting_job): If our personal token is available, use that 1236 instead of going to the server pipe. 1237 (*): Add the token value to many debugging statements, and print 1238 the child target name in addition to the ptr hex value. 1239 Change the default "no token" value from '\0' to '-' so it looks 1240 better in the output. 1241 1242 * main.c (main): Install the child_handler with sigaction() 1243 instead of signal() if we have it. On SysV systems, signal() uses 1244 SysV semantics which are a pain. But sigaction() always does what 1245 we want. 1246 (main): If we got job server FDs from the environment, test them 1247 to see if they're open. If not, the parent make closed them 1248 because it didn't think we were a submake. Print a warning and 1249 suggestion to use "+" on the submake invocation, and hard-set to 1250 -j1 for this instance of make. 1251 (main): Change the algorithm for assigning slots to be more 1252 robust. Previously make checked to see if it thought a subprocess 1253 was a submake and if so, didn't give it a token. Since make's 1254 don't consume tokens we could spawn many of makes fighting for a 1255 small number of tokens. Plus this is unreliable because submakes 1256 might not be recognized by the parent (see above) then all the 1257 tokens could be used up by unrecognized makes, and no one could 1258 run. Now every make consumes a token from its parent. However, 1259 the make can also use this token to spawn a child. If the make 1260 wants more than one, it goes to the jobserver pipe. Thus there 1261 will never be more than N makes running for -jN, and N*2 processes 1262 (N makes and their N children). Every make can always run at 1263 least one job, and we'll never deadlock. (Note the closing of the 1264 pipe for non-submakes also solves this, but this is still a better 1265 algorithm.) So! Only put N-1 tokens into the pipe, since the 1266 topmost make keeps one for itself. 1267 1268 * configure.in: Find sigaction. Disable job server support unless 1269 the system provides it, in addition to either waitpid() or 1270 wait3(). 1271 12721999-07-22 Rob Tulloh <rob_tulloh@dev.tivoli.com> 1273 1274 * arscan.c (ar_member_touch) [WINDOWS32]: The ar_date field is a 1275 string on Windows, not a timestamp. 1276 12771999-07-21 Paul D. Smith <psmith@gnu.org> 1278 1279 * Version 3.77.90 released. 1280 1281 * Makefile.am (AUTOMAKE_OPTIONS): Require automake 1.4. 1282 1283 * function.c: Rearrange so we don't need to predeclare the 1284 function_table array; K&R C compilers don't like that. 1285 1286 * acinclude.m4 (AC_FUNC_SELECT): Ouch; this requires an ANSI C 1287 compiler! Change to work with K&R compilers as well. 1288 1289 * configure.in (AC_OUTPUT): Put build.sh back. I don't know how I 1290 thought it would work this way :-/. We'll have to think of 1291 something else. 1292 * Makefile.am: Remove rule to create build.sh. 1293 1294 * default.c (default_suffix_rules): Rearrange the default command 1295 lines to conform to POSIX rules (put the filename argument $< 1296 _after_ the OUTPUT_OPTION, not before it). 1297 1298 * various: Changed !strncmp() calls to strneq() macros. 1299 1300 * misc.c (sindex): Make slightly more efficient. 1301 1302 * dir.c (file_impossible): Change savestring(X,strlen(X)) to xstrdup(). 1303 * implicit.c (pattern_search): Ditto. 1304 * main.c (enter_command_line_file): Ditto. 1305 (main): Ditto. 1306 * misc.c (copy_dep_chain): Ditto. 1307 * read.c (read_makefile): Ditto. 1308 (parse_file_seq): Ditto. 1309 (tilde_expand): Ditto. 1310 (multi_glob): Ditto. 1311 * rule.c (install_pattern_rule): Ditto. 1312 * variable.c (define_variable_in_set): Ditto. 1313 (define_automatic_variables): Ditto. 1314 * vpath.c (construct_vpath_list): Ditto. 1315 1316 * misc.c (xrealloc): Some reallocs are non-standard: work around 1317 them in xrealloc by calling malloc if PTR is NULL. 1318 * main.c (main): Call xrealloc() directly instead of testing for 1319 NULL. 1320 1321 * function.c (func_sort): Don't try to free NULL; some older, 1322 non-standard versions of free() don't like it. 1323 1324 * configure.in (--enable-dmalloc): Install some support for using 1325 dmalloc (http://www.dmalloc.com/) with make. Use --enable-dmalloc 1326 with configure to enable it. 1327 1328 * function.c (function_table_entry): Whoops! The function.c 1329 rewrite breaks backward compatibility: all text to a function is 1330 broken into arguments, and extras are ignored. So $(sort a,b,c) 1331 returns "a"! Etc. Ouch. Fix it by making a positive value in 1332 the REQUIRED_ARGS field mean exactly that many arguments to the 1333 function; any "extras" are considered part of the last argument as 1334 before. A negative value means at least that many, but may be 1335 more: in this case all text is broken on commas. 1336 (handle_function): Stop when we've seen REQUIRED_ARGS args, if >0. 1337 (expand_builtin_function): Compare number of args to the absolute 1338 value of REQUIRED_ARGS. 1339 13401999-07-20 Paul D. Smith <psmith@gnu.org> 1341 1342 * job.c (start_job_command): Ensure that the state of the target 1343 is cs_running. It might not be if we skipped all the lines due to 1344 -n (for example). 1345 1346 * commands.c (execute_file_commands): If we discover that the 1347 command script is empty and succeed early, set cs_running so the 1348 modtime of the target is still rechecked. 1349 1350 * rule.c (freerule): Free the dependency list for the rule. 1351 1352 * implicit.c (pattern_search): When turning an intermediate file 1353 into a real target, keep the also_make list. 1354 Free the dep->name if we didn't use it during enter_file(). 1355 13561999-07-16 Paul D. Smith <psmith@gnu.org> 1357 1358 * read.c (read_makefile): Don't allocate the commands buffer until 1359 we're sure we found a makefile and won't return early (mem leak). 1360 1361 * job.c (start_job_command): Broken #ifdef test: look for F_SETFD, 1362 not FD_SETFD. Close-on-exec isn't getting set on the bad_stdin 1363 file descriptor and it's leaking :-/. 1364 * getloadavg.c (getloadavg): Ditto. 1365 13661999-07-15 Paul D. Smith <psmith@gnu.org> 1367 1368 * read.c (read_makefile): Fix some potential memory stomps parsing 1369 `define' directives where no variable name is given. 1370 1371 * function.c (func_call): Rename from func_apply. Various code 1372 cleanup and tightening. 1373 (function_table): Add "call" as a valid builtin function. 1374 1375 * make.texinfo (Call Function): Document it. 1376 1377 * NEWS: Announce it. 1378 13791999-07-09 Eli Zaretskii <eliz@is.elta.co.il> 1380 1381 * variable.c (try_variable_definition) [__MSDOS__, WINDOWS32]: 1382 Treat "override SHELL=" the same as just "SHELL=". 1383 13841999-07-09 Paul D. Smith <psmith@gnu.org> 1385 1386 * job.c (start_waiting_job): Don't get a second job token if we 1387 already have one; if we're waiting on the load to go down 1388 start_waiting_job() might get called twice on the same file. 1389 1390 * filedef.h (struct file): Add new field, mtime_before_update. 1391 When notice_finished_file runs it assigns the cached last_mtime to 1392 this field. 1393 * remake.c (update_goal_chain): Notice that a file wasn't updated 1394 by asking if it changed (g->changed) and comparing the current 1395 cached time (last_mtime) with the previous one, stored in 1396 mtime_before_update. The previous check ("did last_mtime changed 1397 during the run of update_file?") fails for parallel builds because 1398 last_mtime is set during reap_children, before update_file is run. 1399 This causes update_goal_chain to always return -1 (nothing 1400 rebuilt) when running parallel (-jN). This is OK during "normal" 1401 builds since our caller (main) treats these cases identically in 1402 that case, but if when rebuilding makefiles the difference is very 1403 important, as it controls whether we re-exec or not. 1404 * file.c (file_hash_enter): Copy the mtime_before_update field. 1405 (snap_deps): Initialize mtime_before_update to -1. 1406 * main.c (main): Initialize mtime_before_update on old (-o) and 1407 new (-W) files. 1408 14091999-07-08 Paul D. Smith <psmith@gnu.org> 1410 1411 * main.c (switches): Define a new switch -R (or 1412 --no-builtin-variables). This option disables the defining of all 1413 the GNU make builtin variables. 1414 (main): If -R was given, force -r as well. 1415 * default.c (define_default_variables): Test the new flag. 1416 * make.h: Declare global flag. 1417 * make.texinfo (Options Summary): Document the new option. 1418 (Implicit Variables): Ditto. 1419 14201999-07-06 Paul D. Smith <psmith@gnu.org> 1421 1422 * make.texinfo (Options Summary): Correct examples in 1423 --print-data-base option summary (problem reported by David Morse 1424 <morse@nichimen.com>). 1425 1426 * arscan.c: Add support for archives in Windows (VC++). Frank 1427 Libbrecht <frankl@abzx.belgium.hp.com> provided info on how to do 1428 this. 1429 * NMakefile.template (CFLAGS_any): Remove NO_ARCHIVES from the 1430 compile line. 1431 * build_w32.bat: Ditto. 1432 1433 * remake.c (no_rule_error): Fix -include/sinclude so it doesn't 1434 give errors if you try to -include the same file twice. 1435 (updating_makefiles): New variable: we need to know this info in 1436 no_rule_error() so we know whether to print an error or not. 1437 (update_file_1): Unconditionally call no_rule_error(), don't try 1438 to play games with the dontcare flag. 1439 14401999-06-14 Paul D. Smith <psmith@gnu.org> 1441 1442 * make.texinfo (Remaking Makefiles): Add a description of how to 1443 prevent implicit rule searches for makefiles. 1444 1445 * make.1: Remove statement that make continues processing when -v 1446 is given. 1447 14481999-06-14 Paul D. Smith <psmith@gnu.org> 1449 1450 * read.c (read_makefile): Cast -1 arguments to 1451 variable_expand_string() to long. Alexandre Sauve 1452 <Alexandre.SAUVE@ifp.fr> reports that without casts, this breaks 1453 on a NEC SUPER-UX SX-4 system (and it's wrong without a cast 1454 anyway). Of course, (a) I'd really love to start using function 1455 prototypes, and (b) there's a whole slew of issues related to int 1456 vs. long and signed vs. unsigned in the length handling of 1457 variable buffers, etc. Gross. Needs a complete mucking-out. 1458 * expand.c (variable_expand): Ditto. 1459 1460 * acinclude.m4 (AC_FUNC_SELECT): Slight enhancement for AIX 3.2 by 1461 Lars Hecking <lhecking@nmrc.ucc.ie>. 1462 1463 * read.c (get_next_mword): Allow colons to be escaped in target 1464 names: fix for regression failure. 1465 14661999-04-26 Paul D. Smith <psmith@gnu.org> 1467 1468 * main.c (main): Reset read_makefiles to empty after processing so 1469 we get the right error message. 1470 14711999-04-25 Paul D. Smith <psmith@gnu.org> 1472 1473 * make.texinfo: Updates to @dircategory and @direntry suggested by 1474 Karl Berry <karl@cs.umb.edu>. 1475 14761999-04-23 Eli Zaretskii <eliz@is.elta.co.il> 1477 1478 * job.c (start_job_command) [__MSDOS__]: Call unblock_sigs before 1479 turning off dos_command_running, so child's signals produce the 1480 right effect. 1481 1482 * commands.c (fatal_error_signal) [__MSDOS__]: Use EXIT_FAILURE 1483 instead of 1. 1484 14851999-04-18 Eli Zaretskii <eliz@is.elta.co.il> 1486 1487 * configh.dos.template: Update to recognize that version 2.02 of 1488 DJGPP contains sys_siglist stuff. 1489 14901999-04-14 Paul D. Smith <psmith@gnu.org> 1491 1492 * make.texinfo (Options/Recursion): Document the job server. 1493 (Parallel): Tweaks. 1494 14951999-04-13 Paul D. Smith <psmith@gnu.org> 1496 1497 Implement a new "job server" feature; the implementation was 1498 suggested by Howard Chu <hyc@highlandsun.com>. 1499 1500 * configure.in (job-server): New disable option for job server 1501 support--it's enabled by default. If it works well this will go 1502 away. 1503 1504 * NEWS: Summarize the new feature. 1505 1506 * acconfig.h: New definition MAKE_JOBSERVER if job server support 1507 is enabled. 1508 * config.h-vms.template: Undef MAKE_JOBSERVER for this port. 1509 * config.h.W32.template: Ditto. 1510 * config.ami.template: Ditto. 1511 1512 * main.c (struct command_switch): Add a new type: int_string. 1513 (switches[]) Use int_string for -j if MAKE_JOBSERVER. 1514 (init_switches): Initialize the new int_string switch type. 1515 (print_usage): New function, extracted from decode_switches(). 1516 (decode_switches): Call it. Decode the new int_string switch type. 1517 (define_makeflags): Add new int_string switch data to MAKEFLAGS. 1518 (job_fds[]) Array to contain the pipe file descriptors. 1519 (main): Parse the job_slots_str option results. If necessary, 1520 create the pipe and seed it with tokens. Set the non-blocking bit 1521 for the read fd. Enable the signal handler for SIGCHLD even if we 1522 have a non-hanging wait; it's needed to interrupt the select() in 1523 job.c:start_waiting_job(). 1524 1525 * make.h: Declare job_fds[]. 1526 1527 * job.h (struct child): Add job_token field to store the token for 1528 this job (if any). 1529 1530 * job.c (reap_children): When a child is fully reaped, release the 1531 token back into the pipe. 1532 (free_child): If the child to be freed still has a token, put it 1533 back. 1534 (new_job): Initialize the job_token member. 1535 (start_waiting_job): For local jobs, if we're using the pipe, get 1536 a token before we check the load, etc. We do this by performing a 1537 non-blocking read in a loop. If the read fails, no token is 1538 available. Do a select on the fd to wait for a token. We need to 1539 re-enable the signal handler for SIGCHLD even if we have a 1540 non-hanging waitpid() or wait3(), so that the signal will 1541 interrupt the select() and we can wake up to reap children. 1542 (child_handler): Re-enable the signal handler. The count is still 1543 kept although it's not needed or used unless you don't have 1544 waitpid() or wait3(). 1545 15461999-04-10 Paul D. Smith <psmith@gnu.org> 1547 1548 * main.c (main): Reset the considered bit on all the makefiles if 1549 something failed to update; we need to examine them again if they 1550 appear as normal targets in order to get the proper error message. 1551 15521999-04-09 Paul D. Smith <psmith@gnu.org> 1553 1554 Performance enhancement from Tim Magill <tim.magill@telops.gte.com>. 1555 1556 * remake.c (update_file): If you have large numbers of 1557 dependencies and you run in parallel, make can spend considerable 1558 time each pass through the graph looking at branches it has 1559 already seen. Since we only reap_children() when starting a pass, 1560 not in the middle, if a branch has been seen already in that pass 1561 nothing interesting can happen until the next pass. So, we toggle 1562 a bit saying whether we've seen this target in this pass or not. 1563 (update_goal_chain): Initially set the global considered toggle to 1564 1, since all targets initialize their boolean to 0. At the end of 1565 each pass, toggle the global considered variable. 1566 * filedef.h (struct file): Per-file considered toggle bit. 1567 * file.c: New global toggle variable considered. 1568 15691999-04-05 Paul D. Smith <psmith@gnu.org> 1570 1571 * arscan.c (ar_scan): Added support for ARFZMAG (compressed 1572 archives?) for Digital UNIX C++. Information provided by 1573 Patrick E. Krogel <pekrogel@mtu.edu>. 1574 (ar_member_touch): Ditto. 1575 15761999-04-03 Paul D. Smith <psmith@gnu.org> 1577 1578 * remake.c (f_mtime): If: a) we found a file and b) we didn't 1579 create it and c) it's not marked as an implicit target and d) it 1580 is marked as an intermediate target, then it was so marked due to 1581 an .INTERMEDIATE special target, but it already existed in the 1582 directory. In this case, unset the intermediate flag so we won't 1583 delete it when make is done. It feels like it would be cleaner to 1584 put this check in update_file_1() but I worry it'll get missed... 1585 15861999-04-01 Paul D. Smith <psmith@gnu.org> 1587 1588 * job.c (construct_command_argv_internal): Use bcopy() to copy 1589 overlapping strings, rather than strcpy(). ISO C says the latter 1590 is undefined. Found this in a bug report from 1996! Ouch! 1591 15921999-03-31 Paul D. Smith <psmith@gnu.org> 1593 1594 * read.c (readline): Ignore carriage returns at the end of the 1595 line, to allow Windows-y CRLF line terminators. 1596 15971999-03-30 Paul D. Smith <psmith@gnu.org> 1598 1599 * configure.in: Don't put build.sh here, since build.sh.in doesn't 1600 exist initially. This cause autoreconf and automake to fail when 1601 run on a clean CVS checkout. Instead, we create build.sh in the 1602 Makefile (see below). 1603 1604 * Makefile.am: Remove BUILT_SOURCES; this is no longer relevant. 1605 Put those files directly into EXTRA_DIST so they're distributed. 1606 Create a local build rule to create build.sh. 1607 Create a local maintainer-clean rule to delete all the funky 1608 maintainers files. 1609 1610 * maintMakefile: Makefile.in depends on README, since automake 1611 fails if it doesn't exist. Also don't remove glob/Makefile.in 1612 here, as it causes problems. 1613 16141999-03-26 Paul D. Smith <psmith@gnu.org> 1615 1616 * configure.in: Substitute GLOBLIB if we need the link the 1617 glob/libglob.a library. 1618 * Makefile.am (make_LDADD): Use the subst variable GLOBLIB so we 1619 don't link the local libglob.a at all if we don't need it. 1620 * build.template: Don't compile glob/*.o unless we want globlib. 1621 * maintMakefile (build.sh.in): Substitute the glob/*.o files 1622 separately. 1623 16241999-03-25 Paul D. Smith <psmith@gnu.org> 1625 1626 * make.texinfo: Various typos and additions, pointed out by James 1627 G. Sack <jsack@dornfeld.com>. 1628 16291999-03-22 Paul D. Smith <psmith@gnu.org> 1630 1631 * make.texinfo (Functions): Add a new section documenting the new 1632 $(error ...) and $(warning ...) functions. Also updated copyright 1633 dates. 1634 * NEWS: Updated for the new functions. 1635 * function.c (func_error): Implement the new $(error ...) and 1636 $(warning ...) functions. 1637 (function_table): Insert new functions into the table. 1638 (func_firstword): Don't call find_next_token() with argv[0] 1639 itself, since that function modifies the pointer. 1640 * function.c: Cleanups and slight changes to the new method of 1641 calling functions. 1642 16431999-03-20 Han-Wen Nienhuys <hanwen@cs.uu.nl> 1644 1645 * function.c: Rewrite to use one C function per make function, 1646 instead of a huge switch statement. Also allows some cleanup of 1647 multi-architecture issues, and a cleaner API which makes things 1648 like func_apply() simple. 1649 1650 * function.c (func_apply): Initial implementation. Expand either 1651 a builtin function or a make variable in the context of some 1652 arguments, provided as $1, $2, ... $N. 1653 16541999-03-19 Eli Zaretskii <eliz@is.elta.co.il> 16551999-03-19 Rob Tulloh <rob_tulloh@dev.tivoli.com> 1656 1657 * job.c (construct_command_argv_internal): Don't treat _all_ 1658 backslashes as escapes, only those which really escape a special 1659 character. This allows most normal "\" directory separators to be 1660 treated normally. 1661 16621999-03-05 Paul D. Smith <psmith@gnu.org> 1663 1664 * configure.in: Check for a system strdup(). 1665 * misc.c (xstrdup): Created. Suggestion by Han-Wen Nienhuys 1666 <hanwen@cs.uu.nl>. 1667 * make.h: Prototype xstrdup(). 1668 * remake.c (library_search): Use it. 1669 * main.c (main): Use it. 1670 (find_and_set_default_shell): Use it. 1671 * job.c (construct_command_argv_internal): Use it. 1672 * dir.c (find_directory): Use it. 1673 1674 * Makefile.am, configure.in: Use AC_SUBST_FILE to insert the 1675 maintMakefile instead of "include", to avoid automake 1.4 1676 incompatibility. 1677 16781999-03-04 Paul D. Smith <psmith@gnu.org> 1679 1680 * amiga.c, amiga.h, ar.c, arscan.c, commands.c, commands.h, 1681 * default.c, dep.h, dir.c, expand.c, file.c, filedef.h, function.c, 1682 * implicit.c, job.c, job.h, main.c, make.h, misc.c, read.c, remake.c 1683 * remote-cstms.c, remote-stub.c, rule.h, variable.c, variable.h, 1684 * vpath.c, Makefile.ami, NMakefile.template, build.template, 1685 * makefile.vms: Updated FSF address in the copyright notice. 1686 1687 * variable.c (try_variable_definition): If we see a conditional 1688 variable and we decide to set it, re-type it as recursive so it 1689 will be expanded properly later. 1690 16911999-02-22 Paul D. Smith <psmith@gnu.org> 1692 1693 * NEWS: Mention new .LIBPATTERNS feature. 1694 1695 * make.texinfo (Libraries/Search): Describe the use and 1696 ramifications of the new .LIBPATTERNS variable. 1697 1698 * remake.c (library_search): Instead of searching only for the 1699 hardcoded expansion "libX.a" for a library reference "-lX", we 1700 obtain a list of patterns from the .LIBPATTERNS variable and 1701 search those in order. 1702 1703 * default.c: Added a new default variable .LIBPATTERNS. The 1704 default for UNIX is "lib%.so lib%.a". Amiga and DOS values are 1705 also provided. 1706 1707 * read.c: Remove bogus HAVE_GLOB_H references; always include 1708 vanilla glob.h. 1709 17101999-02-21 Paul D. Smith <psmith@gnu.org> 1711 1712 * function.c (expand_function): Set value to 0 to avoid freeing it. 1713 * variable.c (pop_variable_scope): Free the value of the variable. 1714 (try_variable_definition): For simple variables, use 1715 allocated_variable_expand() to avoid stomping on the variable 1716 buffer when we still need it for other things. 1717 1718 * arscan.c: Modified to support AIX 4.3 big archives. The changes 1719 are based on information provided by Phil Adams 1720 <padams@austin.ibm.com>. 1721 17221999-02-19 Paul D. Smith <psmith@gnu.org> 1723 1724 * configure.in: Check to see if the GNU glob library is already 1725 installed on the system. If so, _don't_ add -I./glob to the 1726 compile line. Using the system glob code with the local headers 1727 is very bad mojo! 1728 Rewrite SCCS macros to use more autoconf facilities. 1729 1730 * Makefile.am: Move -Iglob out of INCLUDES; it'll get added to 1731 CPPFLAGS by configure now. 1732 Automake 1.4 introduced its own "include" feature which conflicts 1733 with the maintMakefile stuff. A hack that seems to work is add a 1734 space before the include :-/. 1735 1736 * build.template: Move -Iglob out of the compile line; it'll get 1737 added to CPPFLAGS by configure now. 1738 17391999-02-16 Glenn D. Wolf <Glenn_Wolf@email.sps.mot.com> 1740 1741 * arscan.c (ar_scan) [VMS]: Initialized VMS_member_date before 1742 calling lbr$get_index since if the archive is empty, 1743 VMS_get_member_info won't get called at all, and any leftover date 1744 will be used. This bug shows up if any member of any archive is 1745 made, followed by a dependency check on a different, empty 1746 archive. 1747 17481998-12-13 Martin Zinser <zinser@decus.decus.de> 1749 1750 * config.h-vms [VMS]: Set _POSIX_C_SOURCE. Redefine the getopt 1751 functions so we don't use the broken VMS versions. 1752 * makefile.com [VMS]: Allow debugging. 1753 * dir.c (dir_setup_glob) [VMS]: Don't extern stat() on VMS. 1754 17551998-11-30 Paul D. Smith <psmith@gnu.org> 1756 1757 * signame.c (init_sig): Check the sizes of signals being set up to 1758 avoid array overwrites (if the system headers have problems). 1759 17601998-11-17 Paul D. Smith <psmith@gnu.org> 1761 1762 * read.c (record_files): Clean up some indentation. 1763 17641998-11-08 Han-Wen Nienhuys <hanwen@cs.uu.nl> 1765 1766 * rule.c (print_rule_data_base): Fix arguments to fatal() call. 1767 17681998-10-13 Paul D. Smith <psmith@gnu.org> 1769 1770 * job.c (start_job_command): If the command list resolves to no 1771 chars at all (e.g.: "foo:;$(empty)") then command_ptr is NULL; 1772 quit early. 1773 17741998-10-12 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 1775 1776 * rule.c (print_rule_data_base): Ignore num_pattern_rules if it is 1777 zero. 1778 17791998-10-09 Paul D. Smith <psmith@gnu.org> 1780 1781 * read.c (read_makefile): Allow non-empty lines to expand to the 1782 empty string after variable, etc., expansion, and be ignored. 1783 17841998-09-21 Paul D. Smith <psmith@gnu.org> 1785 1786 * job.c (construct_command_argv_internal): Only add COMMAND.COM 1787 "@echo off" line for non-UNIXy shells. 1788 17891998-09-09 Paul D. Smith <psmith@gnu.org> 1790 1791 * w32/subproc/sub_proc.c: Add in missing HAVE_MKS_SHELL tests. 1792 17931998-09-04 Paul D. Smith <psmith@gnu.org> 1794 1795 * read.c (read_makefile): If we hit the "missing separator" error, 1796 check for the common case of 8 spaces instead of a TAB and give an 1797 extra comment to help people out. 1798 17991998-08-29 Paul Eggert <eggert@twinsun.com> 1800 1801 * configure.in (AC_STRUCT_ST_MTIM_NSEC): 1802 Renamed from AC_STRUCT_ST_MTIM. 1803 1804 * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Likewise. 1805 Port to UnixWare 2.1.2 and pedantic Solaris 2.6. 1806 1807 * acconfig.h (ST_MTIM_NSEC): 1808 Renamed from HAVE_ST_MTIM, with a new meaning. 1809 1810 * filedef.h (FILE_TIMESTAMP_FROM_S_AND_NS): 1811 Use new ST_MTIM_NSEC macro. 1812 18131998-08-26 Paul D. Smith <psmith@gnu.org> 1814 1815 * remake.c (check_dep): For any intermediate file, not just 1816 secondary ones, try implicit and default rules if no explicit 1817 rules are given. I'm not sure why this was restricted to 1818 secondary rules in the first place. 1819 18201998-08-24 Paul D. Smith <psmith@gnu.org> 1821 1822 * make.texinfo (Special Targets): Update documentation for 1823 .INTERMEDIATE: if used with no dependencies, then it does nothing; 1824 old docs said it marked all targets as intermediate, which it 1825 didn't... and which would be silly :). 1826 1827 * implicit.c (pattern_search): If we find a dependency in our 1828 internal tables, make sure it's not marked intermediate before 1829 accepting it as a found_file[]. 1830 18311998-08-20 Paul D. Smith <psmith@gnu.org> 1832 1833 * ar.c (ar_glob): Use existing alpha_compare() with qsort. 1834 (ar_glob_alphacompare): Remove it. 1835 1836 Modify Paul Eggert's patch so we don't abandon older systems: 1837 1838 * configure.in: Warn the user if neither waitpid() nor wait3() is 1839 available. 1840 1841 * job.c (WAIT_NOHANG): Don't syntax error on ancient hosts. 1842 (child_handler, dead_children): Define these if WAIT_NOHANG is not 1843 available. 1844 (reap_children): Only track the dead_children count if no 1845 WAIT_NOHANG. Otherwise, it's a boolean. 1846 1847 * main.c (main): Add back signal handler if no WAIT_NOHANG is 1848 available; only use default signal handler if it is. 1849 18501998-08-20 Paul Eggert <eggert@twinsun.com> 1851 1852 Install a more robust signal handling mechanism for systems which 1853 support it. 1854 1855 * job.c (WAIT_NOHANG): Define to a syntax error if our host 1856 is truly ancient; this should never happen. 1857 (child_handler, dead_children): Remove. 1858 (reap_children): Don't try to keep separate track of how many 1859 dead children we have, as this is too bug-prone. 1860 Just ask the OS instead. 1861 (vmsHandleChildTerm): Fix typo in error message; don't mention 1862 child_handler. 1863 1864 * main.c (main): Make sure we're not ignoring SIGCHLD/SIGCLD; 1865 do this early, before we could possibly create a subprocess. 1866 Just use the default behavior; don't have our own handler. 1867 18681998-08-18 Eli Zaretskii <eliz@is.elta.co.il> 1869 1870 * read.c (read_makefile) [__MSDOS__, WINDOWS32]: Add code to 1871 recognize library archive members when dealing with drive spec 1872 mess. Discovery and initial fix by George Racz <gracz@mincom.com>. 1873 18741998-08-18 Paul D. Smith <psmith@gnu.org> 1875 1876 * configure.in: Check for stdlib.h explicitly (some hosts have it 1877 but don't have STDC_HEADERS). 1878 * make.h: Use HAVE_STDLIB_H. Clean up some #defines. 1879 * config.ami: Re-compute based on new config.h.in contents. 1880 * config.h-vms: Ditto. 1881 * config.h.W32: Ditto. 1882 * configh.dos: Ditto. 1883 1884 * dir.c (find_directory) [WINDOWS32]: Windows stat() fails if 1885 directory names end with `\' so strip it. 1886 18871998-08-17 Paul D. Smith <psmith@gnu.org> 1888 1889 * make.texinfo: Added copyright year to the printed copy. Removed 1890 the price from the manual. Change the top-level reference to 1891 running make to be "Invoking make" instead of "make Invocation", 1892 to comply with GNU doc standards. 1893 1894 * make.h (__format__, __printf__): Added support for these in 1895 __attribute__ macro. 1896 (message, error, fatal): Use ... prototype form under __STDC__. 1897 Add __format__ attributes for printf-style functions. 1898 1899 * configure.in (AC_FUNC_VPRINTF): Check for vprintf()/_doprnt(). 1900 1901 * misc.c (message, error, fatal): Add preprocessor stuff to enable 1902 creation of variable-argument functions with appropriate 1903 prototypes, that works with ANSI, pre-ANSI, varargs.h, stdarg.h, 1904 v*printf(), _doprnt(), or none of the above. Culled from GNU 1905 fileutils and slightly modified. 1906 (makefile_error, makefile_error): Removed (merged into error() and 1907 fatal(), respectively). 1908 * amiga.c: Use them. 1909 * ar.c: Use them. 1910 * arscan.c: Use them. 1911 * commands.c: Use them. 1912 * expand.c: Use them. 1913 * file.c: Use them. 1914 * function.c: Use them. 1915 * job.c: Use them. 1916 * main.c: Use them. 1917 * misc.c: Use them. 1918 * read.c: Use them. 1919 * remake.c: Use them. 1920 * remote-cstms.c: Use them. 1921 * rule.c: Use them. 1922 * variable.c: Use them. 1923 1924 * make.h (struct floc): New structure to store file location 1925 information. 1926 * commands.h (struct commands): Use it. 1927 * variable.c (try_variable_definition): Use it. 1928 * commands.c: Use it. 1929 * default.c: Use it. 1930 * file.c: Use it. 1931 * function.c: Use it. 1932 * misc.c: Use it. 1933 * read.c: Use it. 1934 * rule.c: Use it. 1935 19361998-08-16 Paul Eggert <eggert@twinsun.com> 1937 1938 * filedef.h (FILE_TIMESTAMP_PRINT_LEN_BOUND): Add 10, for nanoseconds. 1939 19401998-08-16 Paul Eggert <eggert@twinsun.com> 1941 1942 * filedef.h (FLOOR_LOG2_SECONDS_PER_YEAR): New macro. 1943 (FILE_TIMESTAMP_PRINT_LEN_BOUND): Tighten bound, and try to 1944 make it easier to understand. 1945 19461998-08-14 Paul D. Smith <psmith@gnu.org> 1947 1948 * read.c (read_makefile): We've already unquoted any colon chars 1949 by the time we're done reading the targets, so arrange for 1950 parse_file_seq() on the target list to not do so again. 1951 19521998-08-05 Paul D. Smith <psmith@gnu.org> 1953 1954 * configure.in: Added glob/configure.in data. We'll have the glob 1955 code include the regular make config.h, rather than creating its 1956 own. 1957 1958 * getloadavg.c (main): Change return type to int. 1959 19601998-08-01 Paul Eggert <eggert@twinsun.com> 1961 1962 * job.c (reap_children): Ignore unknown children. 1963 19641998-07-31 Paul D. Smith <psmith@gnu.org> 1965 1966 * make.h, filedef.h, dep.h, rule.h, commands.h, remake.c: 1967 Add prototypes for functions. Some prototypes needed to be moved 1968 in order to get #include order reasonable. 1969 19701998-07-30 Paul D. Smith <psmith@gnu.org> 1971 1972 * make.h: Added MIN/MAX. 1973 * filedef.h: Use them; remove FILE_TIMESTAMP_MIN. 1974 19751998-07-30 Paul Eggert <eggert@twinsun.com> 1976 1977 Add support for sub-second timestamp resolution on hosts that 1978 support it (just Solaris 2.6, so far). 1979 1980 * acconfig.h (HAVE_ST_MTIM, uintmax_t): New undefs. 1981 * acinclude.m4 (jm_AC_HEADER_INTTYPES_H, AC_STRUCT_ST_MTIM, 1982 jm_AC_TYPE_UINTMAX_T): New defuns. 1983 * commands.c (delete_target): Convert file timestamp to 1984 seconds before comparing to archive timestamp. Extract mod 1985 time from struct stat using FILE_TIMESTAMP_STAT_MODTIME. 1986 * configure.in (C_STRUCT_ST_MTIM, jm_AC_TYPE_UINTMAX_T): Add. 1987 (AC_CHECK_LIB, AC_CHECK_FUNCS): Add clock_gettime. 1988 * file.c (snap_deps): Use FILE_TIMESTAMP, not time_t. 1989 (file_timestamp_now, file_timestamp_sprintf): New functions. 1990 (print_file): Print file timestamps as FILE_TIMESTAMP, not 1991 time_t. 1992 * filedef.h: Include <inttypes.h> if available and if HAVE_ST_MTIM. 1993 (FILE_TIMESTAMP, FILE_TIMESTAMP_STAT_MODTIME, FILE_TIMESTAMP_MIN, 1994 FILE_TIMESTAMPS_PER_S, FILE_TIMESTAMP_FROM_S_AND_NS, 1995 FILE_TIMESTAMP_DIV, FILE_TIMESTAMP_MOD, FILE_TIMESTAMP_S, 1996 FILE_TIMESTAMP_NS, FILE_TIMESTAMP_PRINT_LEN_BOUND): New macros. 1997 (file_timestamp_now, file_timestamp_sprintf): New decls. 1998 (struct file.last_mtime, f_mtime, file_mtime_1, NEW_MTIME): 1999 time_t -> FILE_TIMESTAMP. 2000 * implicit.c (pattern_search): Likewise. 2001 * vpath.c (vpath_search, selective_vpath_search): Likewise. 2002 * main.c (main): Likewise. 2003 * remake.c (check_dep, name_mtime, library_search, f_mtime): Likewise. 2004 (f_mtime): Use file_timestamp_now instead of `time'. 2005 Print file timestamp with file_timestamp_sprintf. 2006 * vpath.c (selective_vpath_search): Extract file time stamp from 2007 struct stat with FILE_TIMESTAMP_STAT_MODTIME. 2008 20091998-07-28 Paul D. Smith <psmith@gnu.org> 2010 2011 * Version 3.77 released. 2012 2013 * dosbuild.bat: Change to DOS CRLF line terminators. 2014 2015 * make-stds.texi: Update from latest version. 2016 2017 * make.texinfo (Options Summary): Clarify that the -r option 2018 affects only rules, not builtin variables. 2019 20201998-07-27 Paul D. Smith <psmith@gnu.org> 2021 2022 * make.h: Make __attribute__ resolve to empty for non-GCC _and_ 2023 for GCC pre-2.5.x. 2024 2025 * misc.c (log_access): Print UID/GID's as unsigned long int for 2026 maximum portability. 2027 2028 * job.c (reap_children): Print PIDs as long int for maximum 2029 portability. 2030 20311998-07-24 Eli Zaretskii <eliz@is.elta.co.il> 2032 2033 * Makefile.DOS (*_INSTALL, *_UNINSTALL): Replace `true' with `:'. 2034 20351998-07-25 Paul D. Smith <psmith@gnu.org> 2036 2037 * Version 3.76.94 released. 2038 20391998-07-23 Paul D. Smith <psmith@gnu.org> 2040 2041 * config.h.W32.template: Make sure all the #defines of macros here 2042 have a value (e.g., use ``#define HAVE_STRING_H 1'' instead of 2043 just ``#define HAVE_STRING_H''. Keeps the preprocessor happy in 2044 some contexts. 2045 2046 * make.h: Remove __attribute__((format...)) stuff; using it with 2047 un-prototyped functions causes older GCC's to fail. 2048 2049 * Version 3.76.93 released. 2050 20511998-07-22 Paul D. Smith <psmith@gnu.org> 2052 2053 * file.c (print_file_data_base): Fix average calculation. 2054 20551998-07-20 Paul D. Smith <psmith@gnu.org> 2056 2057 * main.c (die): Postpone the chdir() until after 2058 remove_intermediates() so that intermediate targets with relative 2059 pathnames are removed properly. 2060 20611998-07-17 Paul D. Smith <psmith@gnu.org> 2062 2063 * filedef.h (struct file): New flag: did we print an error or not? 2064 2065 * remake.c (no_rule_error): New function to print error messages, 2066 extraced from remake_file(). 2067 2068 * remake.c (remake_file): Invoke the new error print function. 2069 (update_file_1): Invoke the error print function if we see that we 2070 already tried this target and it failed, but that an error wasn't 2071 printed for it. This can happen if a file is included with 2072 -include or sinclude and couldn't be built, then later is also 2073 the dependency of another target. Without this change, make just 2074 silently stops :-/. 2075 20761998-07-16 Paul D. Smith <psmith@gnu.org> 2077 2078 * make.texinfo: Removed "beta" version designator. 2079 Updated ISBN for the next printing. 2080 20811998-07-13 Paul Eggert <eggert@twinsun.com> 2082 2083 * acinclude.m4: New AC_LFS macro to determine if special compiler 2084 flags are needed to allow access to large files (e.g., Solaris 2.6). 2085 * configure.in: Invoke it. 2086 20871998-07-08 Eli Zaretskii <eliz@is.elta.co.il> 2088 2089 * Makefile.DOS: track changes in Makefile.in. 2090 20911998-07-07 Paul D. Smith <psmith@gnu.org> 2092 2093 * remote-cstms.c (start_remote_job): Move gethostbyaddr() to the 2094 top so host is initialized early enough. 2095 2096 * acinclude.m4: New file. Need some special autoconf macros to 2097 check for network libraries (-lsocket, -lnsl, etc.) when 2098 configuring Customs. 2099 2100 * configure.in (make_try_customs): Invoke new network libs macro. 2101 21021998-07-06 Paul D. Smith <psmith@gnu.org> 2103 2104 * Version 3.76.92 released. 2105 2106 * README.customs: Added to the distribution. 2107 2108 * configure.in (make_try_customs): Rewrite to require an installed 2109 Customs library, rather than looking at the build directory. 2110 2111 * Makefile.am (man_MANS): Install make.1. 2112 * make.1: Renamed from make.man. 2113 2114 * make.texinfo (Bugs): New mailing list address for GNU make bug 2115 reports. 2116 21171998-07-02 Paul D. Smith <psmith@gnu.org> 2118 2119 * Version 3.76.91 released. 2120 2121 * default.c: Added default rule for new-style RCS master file 2122 storage; ``% :: RCS/%''. 2123 Added default rules for DOS-style C++ files with suffix ".cpp". 2124 They use the new LINK.cpp and COMPILE.cpp macros, which are set by 2125 default to be equal to LINK.cc and COMPILE.cc. 2126 21271998-06-19 Eli Zaretskii <eliz@is.elta.co.il> 2128 2129 * job.c (start_job_command): Reset execute_by_shell after an empty 2130 command was skipped. 2131 21321998-06-09 Paul D. Smith <psmith@gnu.org> 2133 2134 * main.c (main): Keep track of the temporary filename created when 2135 reading a makefile from stdin (-f-) and attempt to remove it 2136 as soon as we know we're not going to re-exec. If we are, add it 2137 to the exec'd make's cmd line with "-o" so the exec'd make doesn't 2138 try to rebuild it. We still have a hole: if make re-execs then 2139 the temporary file will never be removed. To fix this we'd need 2140 a brand new option that meant "really delete this". 2141 * AUTHORS, getopt.c, getopt1.c, getopt.h, main.c (print_version): 2142 Updated mailing addresses. 2143 21441998-06-08 Paul D. Smith <psmith@gnu.org> 2145 2146 * main.c (main): Andreas Luik <luik@isa.de> points out that the 2147 check for makefile :: rules with commands but no dependencies 2148 causing a loop terminates incorrectly. 2149 2150 * maintMakefile: Make a template for README.DOS to update version 2151 numbers. 2152 21531998-05-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 2154 2155 * remake.c (update_file_1): Don't free the memory for the 2156 dependency structure when dropping a circular dependency. 2157 21581998-05-30 Eli Zaretskii <eliz@is.elta.co.il> 2159 2160 * dir.c (file_exists_p, file_impossible_p, file_impossible) 2161 [__MSDOS__, WINDOWS32]: Retain trailing slash in "d:/", and make 2162 dirname of "d:foo" be "d:". 2163 21641998-05-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 2165 2166 * read.c (read_makefile): Avoid running past EOS when scanning 2167 file name after `include'. 2168 21691998-05-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 2170 2171 * make.texinfo (Flavors): Correct description of conditional 2172 assignment, which is not equivalent to ifndef. 2173 (Setting): Likewise. 2174 21751998-05-24 Paul D. Smith <psmith@gnu.org> 2176 2177 * arscan.c (ar_name_equal): strncmp() might be implemented as a 2178 macro, so don't put preprocessor conditions inside the arguments 2179 list. 2180 21811998-05-23 Eli Zaretskii <eliz@is.elta.co.il> 2182 2183 * read.c (read_makefile) [__MSDOS__, WINDOWS32]: Skip colons in 2184 drive specs when parsing targets, target-specific variables and 2185 static pattern rules. A colon can only be part of drive spec if 2186 it is after the first letter in a token. 2187 21881998-05-22 Eli Zaretskii <eliz@is.elta.co.il> 2189 2190 * remake.c (f_mtime) [__MSDOS__]: Allow up to 3 sec of skew before 2191 yelling bloody murder. 2192 2193 * dosbuild.bat: Use -DINCLUDEDIR= and -DLIBDIR= where appropriate. 2194 2195 * read.c (parse_file_seq): Combine the special file-handling code 2196 for WINDOWS32 and __MSDOS__ into a single snippet. 2197 (get_next_mword) [__MSDOS__, WINDOWS32]: Allow a word to include a 2198 colon as part of a drive spec. 2199 2200 * job.c (batch_mode_shell) [__MSDOS__]: Declare. 2201 22021998-05-20 Paul D. Smith <psmith@gnu.org> 2203 2204 * Version 3.76.90 released. 2205 22061998-05-19 Paul D. Smith <psmith@gnu.org> 2207 2208 * make.texinfo (Make Errors): Added a new appendix describing 2209 common errors make might generate and how to resolve them (or at 2210 least more information on what they mean). 2211 2212 * maintMakefile (NMAKEFILES): Use the new automake 1.3 feature 2213 to create a dependency file to construct Makefile.DOS, SMakefile, 2214 and NMakefile. 2215 (.dep_segment): Generate the dependency fragment file. 2216 22171998-05-14 Paul D. Smith <psmith@gnu.org> 2218 2219 * make.man: Minor changes. 2220 22211998-05-13 Paul D. Smith <psmith@gnu.org> 2222 2223 * function.c (pattern_matches,expand_function): Change variables 2224 and types named "word" to something else, to avoid compilation 2225 problems on Cray C90 Unicos. 2226 * variable.h: Modify the function prototype. 2227 22281998-05-11 Rob Tulloh <rob_tulloh@tivoli.com> 2229 2230 * job.c (construct_command_argv_internal) [WINDOWS32]: Turn off 2231 echo when using a batch file, and make sure the command ends in a 2232 newline. 2233 22341998-05-03 Paul D. Smith <psmith@gnu.org> 2235 2236 * configure.in (make_try_customs): Add some customs flags if the 2237 user configures custom support. 2238 2239 * job.c, remote-cstms.c: Merge in changes for custom library. 2240 2241 * remote-stub.c: Add option to stub start_remote_job_p(). 2242 22431998-05-01 Paul D. Smith <psmith@gnu.org> 2244 2245 * remake.c (f_mtime): Install VPATH+ handling for archives; use 2246 the hname field instead of the name field, and rehash when 2247 appropriate. 2248 22491998-04-30 Paul D. Smith <psmith@gnu.org> 2250 2251 * rule.c (print_rule_data_base): Print out any pattern-specific 2252 variable values into the rules database. 2253 2254 * variable.c (print_variable_set): Make this variable extern, to 2255 be called by print_rule_data_base() for pattern-specific variables. 2256 2257 * make.texinfo (Pattern-specific): Document pattern-specific 2258 variables. 2259 22601998-04-29 Paul D. Smith <psmith@gnu.org> 2261 2262 * expand.c (variable_expand_for_file): Make static; its only 2263 called internally. Look up this target in the list of 2264 pattern-specific variables and insert the variable set into the 2265 queue to be searched. 2266 2267 * filedef.h (struct file): Add a new field to hold the 2268 previously-found pattern-specific variable reference. Add a new 2269 flag to remember whether we already searched for this file. 2270 2271 * rule.h (struct pattern_var): New structure for storing 2272 pattern-specific variable values. Define new function prototypes. 2273 2274 * rule.c: New variables pattern_vars and last_pattern_var for 2275 storage and handling of pattern-specific variable values. 2276 (create_pattern_var): Create a new pattern-specific variable value 2277 structure. 2278 (lookup_pattern_var): Try to match a target to one of the 2279 pattern-specific variable values. 2280 22811998-04-22 Paul D. Smith <psmith@gnu.org> 2282 2283 * make.texinfo (Target-specific): Document target-specific 2284 variables. 2285 22861998-04-21 Paul D. Smith <psmith@gnu.org> 2287 2288 * variable.c (define_variable_in_set): Made globally visible. 2289 (lookup_variable_in_set): New function: like lookup_variable but 2290 look only in a specific variable set. 2291 (target_environment): Use lookup_variable_in_set() to get the 2292 correct export rules for a target-specific variable. 2293 (create_new_variable_set): Create a new variable set, and just 2294 return it without installing it anywhere. 2295 (push_new_variable_scope): Reimplement in terms of 2296 create_new_variable_set. 2297 2298 * read.c (record_target_var): Like record_files, but instead of 2299 files create a target-specific variable value for each of the 2300 listed targets. Invoked from read_makefile() when the target line 2301 turns out to be a target-specific variable assignment. 2302 23031998-04-19 Paul D. Smith <psmith@gnu.org> 2304 2305 * read.c (read_makefile): Rewrite the entire target parsing 2306 section to implement target-specific variables. In particular, we 2307 cannot expand the entire line as soon as it's read in, since we 2308 may want to evaluate parts of it with different variable contexts 2309 active. Instead, start expanding from the beginning until we find 2310 the `:' (or `::'), then determine what kind of line this is and 2311 continue appropriately. 2312 2313 * read.c (get_next_mword): New function to parse a makefile line 2314 by "words", considering an entire variable or function as one 2315 word. Return the type read in, along with its starting position 2316 and length. 2317 (enum make_word_type): The types of words that are recognized by 2318 get_next_mword(). 2319 2320 * variable.h (struct variable): Add a flag to specify a per-target 2321 variable. 2322 2323 * expand.c: Make variable_buffer global. We need this during the 2324 new parsing of the makefile. 2325 (variable_expand_string): New function. Like variable_expand(), 2326 but start at a specific point in the buffer, not the beginning. 2327 (variable_expand): Rewrite to simply call variable_expand_string(). 2328 23291998-04-13 Paul D. Smith <psmith@gnu.org> 2330 2331 * remake.c (update_goal_chain): Allow the rebuilding makefiles 2332 step to use parallel jobs. Not sure why this was disabled: 2333 hopefully we won't find out :-/. 2334 23351998-04-11 Paul D. Smith <psmith@gnu.org> 2336 2337 * main.c (main): Set the CURDIR makefile variable. 2338 * make.texinfo (Recursion): Document it. 2339 23401998-03-17 Paul D. Smith <psmith@gnu.org> 2341 2342 * misc.c (makefile_fatal): If FILE is nil, invoke plain fatal(). 2343 * variable.c (try_variable_definition): Use new feature. 2344 23451998-03-10 Paul D. Smith <psmith@gnu.org> 2346 2347 * main.c (main): Don't pass included, rebuilt makefiles to 2348 re-exec'd makes with -o. Reopens a possible loop, but it caused 2349 too many problems. 2350 23511998-03-02 Paul D. Smith <psmith@gnu.org> 2352 2353 * variable.c (try_variable_definition): Implement ?=. 2354 * make.texinfo (Setting): Document it. 2355 23561998-02-28 Eli Zaretskii <eliz@is.elta.co.il> 2357 2358 * job.c (start_job_command): Reset execute_by_shell after an empty 2359 command, like ":", has been seen. 2360 2361Tue Oct 07 15:00:00 1997 Phil Brooks <phillip_brooks@hp.com> 2362 2363 * make.h [WINDOWS32]: make case sensitivity configurable 2364 * dir.c [WINDOWS32]: make case sensitivity configurable 2365 * README.W32: Document case sensitivity 2366 * config.ami: Share case warping code with Windows 2367 2368Mon Oct 6 18:48:45 CDT 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com> 2369 2370 * w32/subproc/sub_proc.c: Added support for MKS toolkit shell 2371 (turn on HAVE_MKS_SHELL). 2372 * read.c [WINDOWS32]: Fixed a problem with multiple target rules 2373 reported by Gilbert Catipon (gcatipon@tibco.com). If multiple 2374 path tokens in a rule did not have drive letters, make would 2375 incorrectly concatenate the 2 tokens together. 2376 * main.c/variable.c [WINDOWS32]: changed SHELL detection code to 2377 follow what MSDOS did. In addition to watching for SHELL variable 2378 updates, make's main will attempt to default the value of SHELL 2379 before and after makefiles are parsed. 2380 * job.c/job.h [WINDOWS32]: The latest changes made to enable use 2381 of the GNUWIN32 shell from make could cause make to fail due to a 2382 concurrency condition between parent and child processes. Make 2383 now creates a batch file per job instead of trying to reuse the 2384 same singleton batch file. 2385 * job.c/job.h/function.c/config.h.W32 [WINDOWS32]: Renamed macro 2386 from HAVE_CYGNUS_GNUWIN32_TOOLS to BATCH_MODE_ONLY_SHELL. Reworked 2387 logic to reduce complexity. WINDOWS32 now uses the unixy_shell 2388 variable to detect Bourne-shell compatible environments. There is 2389 also a batch_mode_shell variable that determines whether not 2390 command lines should be executed via script files. A WINDOWS32 2391 system with no sh.exe installed would have unixy_shell set to 2392 FALSE and batch_mode_shell set to TRUE. If you have a unixy shell 2393 that does not behave well when invoking things via 'sh -c xxx', 2394 you may want to turn on BATCH_MODE_ONLY_SHELL and see if things 2395 improve. 2396 * NMakefile: Added /D DEBUG to debug build flags so that unhandled 2397 exceptions could be debugged. 2398 2399Mon Oct 6 00:04:25 1997 Rob Tulloh <rob_tulloh@dev.tivoli.com> 2400 2401 * main.c [WINDOWS32]: The function define_variable() does not 2402 handle NULL. Test before calling it to set Path. 2403 * main.c [WINDOWS32]: Search Path again after makefiles have been 2404 parsed to detect sh.exe. 2405 * job.c [WINDOWS32]: Added support for Cygnus GNU WIN32 tools. 2406 To use, turn on HAVE_CYGNUS_GNUWIN32_TOOLS in config.h.W32. 2407 * config.h.W32: Added HAVE_CYGNUS_GNUWIN32_TOOLS macro. 2408 2409Sun Oct 5 22:43:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 2410 2411 * glob/glob.c (glob_in_dir) [VMS]: Globbing shouldn't be 2412 case-sensitive. 2413 * job.c (child_execute_job) [VMS]: Use a VMS .com file if the 2414 command contains a newline (e.g. from a define/enddef block). 2415 * vmsify.c (vmsify): Return relative pathnames wherever possible. 2416 * vmsify.c (vmsify): An input string like "../.." returns "[--]". 2417 2418Wed Oct 1 15:45:09 1997 Rob Tulloh <rob_tulloh@tivoli.com> 2419 2420 * NMakefile: Changed nmake to $(MAKE). 2421 * subproc.bat: Take the make command name from the command 2422 line. If no command name was given, default to nmake. 2423 * job.c [MSDOS, WINDOWS32]: Fix memory stomp: temporary file names 2424 are now always created in heap memory. 2425 * w32/subproc/sub_proc.c: New implementation of make_command_line() 2426 which is more compatible with different Bourne shell implementations. 2427 Deleted the now obsolete fix_command_line() function. 2428 * main.c [WINDOWS32]: Any arbitrary spelling of Path can be 2429 detected. Make will ensure that the special spelling `Path' is 2430 inserted into the environment when the path variable is propagated 2431 within itself and to make's children. 2432 * main.c [WINDOWS32]: Detection of sh.exe was occurring too 2433 soon. The 2nd check for the existence of sh.exe must come after 2434 the call to read_all_makefiles(). 2435 2436Fri Sep 26 01:14:18 1997 <zinser@axp602.gsi.de> 2437 2438 * makefile.com [VMS]: Fixed definition of sys. 2439 * readme.vms: Comments on what's changed lately. 2440 2441Fri Sep 26 01:14:18 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 2442 2443 * read.c (read_all_makefiles): Allow make to find files named 2444 "MAKEFILE" with no extension on VMS. 2445 * file.c (lookup_file): Lowercase filenames on VMS. 2446 24471997-09-29 Paul D. Smith <psmith@baynetworks.com> 2448 2449 * read.c (read_makefile): Reworked target detection again; the old 2450 version had an obscure quirk. 2451 2452Fri Sep 19 09:20:49 1997 Paul D. Smith <psmith@baynetworks.com> 2453 2454 * Version 3.76.1 released. 2455 2456 * Makefile.am: Add loadavg files to clean rules. 2457 2458 * configure.in (AC_OUTPUT): Remove stamp-config; no longer needed. 2459 * Makefile.ami (distclean): Ditto. 2460 * SMakefile (distclean): Ditto. 2461 2462 * main.c (main): Arg count should be int, not char! Major braino. 2463 2464Tue Sep 16 10:18:22 1997 Paul D. Smith <psmith@baynetworks.com> 2465 2466 * Version 3.76 released. 2467 2468Tue Sep 2 10:07:39 1997 Paul D. Smith <psmith@baynetworks.com> 2469 2470 * function.c (expand_function): When processing $(shell...) 2471 translate a CRLF (\r\n) sequence as well as a newline (\n) to a 2472 space. Also remove an ending \r\n sequence. 2473 * make.texinfo (Shell Function): Document it. 2474 2475Fri Aug 29 12:59:06 1997 Rob Tulloh <rob_tulloh@tivoli.com> 2476 2477 * w32/pathstuff.c (convert_Path_to_windows32): Fix problem where 2478 paths which contain single character entries like `.' are not 2479 handled correctly. 2480 2481 * README.W32: Document path handling issues on Windows systems. 2482 2483Fri Aug 29 02:01:27 1997 Paul D. Smith <psmith@baynetworks.com> 2484 2485 * Version 3.75.93. 2486 2487Thu Aug 28 19:39:06 1997 Rob Tulloh <rob_tulloh@tivoli.com> 2488 2489 * job.c (exec_command) [WINDOWS32]: If exec_command() is invoked 2490 from main() to re-exec make, the call to execvp() would 2491 incorrectly return control to parent shell before the exec'ed 2492 command could run to completion. I believe this is a feature of 2493 the way that execvp() is implemented on top of WINDOWS32 APIs. To 2494 alleviate the problem, use the supplied process launch function in 2495 the sub_proc library and suspend the parent process until the 2496 child process has run. When the child exits, exit the parent make 2497 with the exit code of the child make. 2498 2499Thu Aug 28 17:04:47 1997 Paul D. Smith <psmith@baynetworks.com> 2500 2501 * Makefile.DOS.template (distdir): Fix a line that got wrapped in 2502 email. 2503 2504 * Makefile.am (loadavg): Give the necessary cmdline options when 2505 linking loadavg. 2506 2507 * configure.in: Check for pstat_getdynamic for getloadvg on HP. 2508 2509 * job.c (start_job_command) [VMS, _AMIGA]: Don't perform empty 2510 command optimization on these systems; it doesn't make sense. 2511 2512Wed Aug 27 17:09:32 1997 Paul D. Smith <psmith@baynetworks.com> 2513 2514 * Version 3.75.92 2515 2516Tue Aug 26 11:59:15 1997 Paul D. Smith <psmith@baynetworks.com> 2517 2518 * main.c (print_version): Add '97 to copyright years. 2519 2520 * read.c (do_define): Check the length of the array before looking 2521 at a particular offset. 2522 2523 * job.c (construct_command_argv_internal): Examine the last byte 2524 of the previous arg, not the byte after that. 2525 2526Sat Aug 23 1997 Eli Zaretskii <eliz@is.elta.co.il> 2527 2528 * Makefile.DOS.template: New file (converted to Makefile.DOS in 2529 the distribution). 2530 2531 * configure.bat: Rewrite to use Makefile.DOS instead of editing 2532 Makefile.in. Add support for building from outside of the source 2533 directory. Fail if the environment block is too small. 2534 2535 * configh.dos: Use <sys/config.h>. 2536 2537 * README.DOS: Update instructions. 2538 2539Fri Aug 22 1997 Eli Zaretskii <eliz@is.elta.co.il> 2540 2541 * job.c (start_job_command) [__MSDOS__]: Don't test for "/bin/sh" 2542 literally, use value of unixy_shell instead. 2543 2544 * filedef.h (NEW_MTIME): Use 1 less than maximum possible value if 2545 time_t is unsigned. 2546 2547Sat Aug 16 00:56:15 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 2548 2549 * vmsify.c (vmsify, case 11): After translating `..' elements, set 2550 nstate to N_OPEN if there are still more elements to process. 2551 (vmsify, case 2): After translating `foo/bar' up to the slash, 2552 set nstate to N_OPEN, not N_DOT. 2553 2554Fri Aug 8 15:18:09 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 2555 2556 * dir.c (vmsstat_dir): Leave name unmodified on exit. 2557 * make.h (PATH_SEPARATOR_CHAR): Set to comma for VMS. 2558 * vpath.c: Fix comments to refer to path separator, not colon. 2559 (selective_vpath_search): Avoid Unixy slash handling for VMS. 2560 2561Thu Aug 7 22:24:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 2562 2563 * ar.c [VMS]: Don't declare ar_member_touch. 2564 Delete VMS version of ar_member_date. 2565 Enable non-VMS versions of ar_member_date and ar_member_date_1 for 2566 VMS too. 2567 * arscan.c (VMS_get_member_info): New function. 2568 (ar_scan): Provide version for VMS systems. 2569 (ar_name_equal): Simply compare name and mem on VMS systems. 2570 Don't define ar_member_pos or ar_member_touch on VMS systems. 2571 2572 * config.h-vms (pid_t, uid_t): Don't define. 2573 2574 * remake.c: Delete declaration of vms_stat. 2575 (name_mtime): Don't call vms_stat. 2576 (f_mtime) [VMS]: Funky time value manipulation no longer necessary. 2577 2578 * file.c (print_file): [VMS] Use ctime, not cvt_time. 2579 2580 * make.h [VMS]: Don't define POSIX. 2581 2582 * makefile.com (filelist): Include ar and arscan. 2583 Also include them in the link commands. 2584 Don't define NO_ARCHIVES in cc command. 2585 2586 * makefile.vms (ARCHIVES, ARCHIVES_SRC): Uncomment. 2587 (defines): Delete NO_ARCHIVES from list. 2588 2589 * remake.c (f_mtime): Only check to see if intermediate file is 2590 out of date if it also exists (i.e., mtime != (time_t) -1). 2591 2592 * vmsdir.h (u_long, u_short): Skip typedefs if using DEC C. 2593 2594Fri Jun 20 23:02:07 1997 Rob Tulloh <rob_tulloh@tivoli.com> 2595 2596 * w32/subproc/sub_proc.c: Get W32 sub_proc to handle shebang 2597 (#!/bin/sh) in script files correctly. 2598 Fixed a couple of memory leaks. 2599 Fixed search order in find_file() (w32/subproc/sub_proc.c) so that 2600 files with extensions are preferred over files without extensions. 2601 Added search for files with .cmd extension too. 2602 * w32/subproc/misc.c (arr2envblk): Fixed memory leak. 2603 2604Mon Aug 18 09:41:08 1997 Paul D. Smith <psmith@baynetworks.com> 2605 2606 * Version 3.75.91 2607 2608Fri Aug 15 13:50:54 1997 Paul D. Smith <psmith@baynetworks.com> 2609 2610 * read.c (do_define): Remember to count the newline after the endef. 2611 2612Thu Aug 14 23:14:37 1997 Paul D. Smith <psmith@baynetworks.com> 2613 2614 * many: Rewrote builds to use Automake 1.2. 2615 2616 * AUTHORS: New file. 2617 * maintMakefile: Contains maintainer-only make snippets. 2618 * GNUmakefile: This now only runs the initial auto* tools. 2619 * COPYING,texinfo.tex,mkinstalldirs,install-sh: Removed (obtained 2620 automatically by automake). 2621 * compatMakefile: Removed (not needed anymore). 2622 * README,build.sh.in: Removed (built from templates). 2623 * config.h.in,Makefile.in: Removed (built by tools). 2624 2625Wed Aug 13 02:22:08 1997 Paul D. Smith <psmith@baynetworks.com> 2626 2627 * make.texinfo: Updates for DOS/Windows information (Eli Zaretskii) 2628 * README,README.DOS: Ditto. 2629 2630 * remake.c (update_file_1,f_mtime): Fix GPATH handling. 2631 * vpath.c (gpath_search): Ditto. 2632 2633 * file.c (rename_file): New function: rehash, but also rename to 2634 the hashname. 2635 * filedef.h: Declare it. 2636 2637 * variable.c (merge_variable_set_lists): Remove free() of variable 2638 set; since various files can share variable sets we don't want to 2639 free them here. 2640 2641Tue Aug 12 10:51:54 1997 Paul D. Smith <psmith@baynetworks.com> 2642 2643 * configure.in: Require autoconf 2.12 2644 2645 * make.texinfo: Replace all "cd subdir; $(MAKE)" examples with a 2646 more stylistically correct "cd subdir && $(MAKE)". 2647 2648 * main.c: Global variable `clock_skew_detected' defined. 2649 (main): Print final warning if it's set. 2650 * make.h: Declare it. 2651 * remake.c (f_mtime): Test and set it. 2652 2653 * job.c (start_job_command): Add special optimizations for 2654 "do-nothing" rules, containing just the shell no-op ":". This is 2655 useful for timestamp files and can make a real difference if you 2656 have a lot of them (requested by Fergus Henderson <fjh@cs.mu.oz.au>). 2657 2658 * configure.in,Makefile.in: Rewrote to use the new autoconf 2659 program_transform_name macro. 2660 2661 * function.c (function_strip): Strip newlines as well as spaces 2662 and TABs. 2663 2664Fri Jun 6 23:41:04 1997 Rob Tulloh <rob_tulloh@tivoli.com> 2665 2666 * remake.c (f_mtime): Datestamps on FAT-based files are rounded to 2667 even seconds when stored, so if the date check fails on WINDOWS32 2668 systems, see if this "off-by-one" error is the problem. 2669 2670 * General: If your TZ environment variable is not set correctly 2671 then all your timestamps will be off by hours. So, set it! 2672 2673Mon Apr 7 02:06:22 1997 Paul D. Smith <psmith@baynetworks.com> 2674 2675 * Version 3.75.1 2676 2677 * compatMakefile (objs): Define & use the $(GLOB) variable so 2678 that it's removed correctly from build.sh.in when it's built. 2679 2680 * configure.in: On Solaris we can use the kstat_*() functions to 2681 get load averages without needing special permissions. Add a 2682 check for -lkstat to see if we have it. 2683 2684 * getloadavg.c (getloadavg): Use HAVE_LIBKSTAT instead of SUN5 as 2685 the test to enable kstat_open(), etc. processing. 2686 2687Fri Apr 4 20:21:18 1997 Eli Zaretskii <eliz@is.elta.co.il> 2688 2689 * <lots>: Fixes to work in the DJGPP DOS environment. 2690 2691Mon Mar 31 02:42:52 1997 Paul D. Smith <psmith@baynetworks.com> 2692 2693 * function.c (expand_function): Added new function $(wordlist). 2694 2695 * make.texinfo (Filename Functions): Document $(wordlist) function. 2696 2697 * vpath.c (build_vpath_lists): Construct the GPATH variable 2698 information in the same manner we used to construct VPATH. 2699 (gpath_search): New function to search GPATH. 2700 2701 * make.h: Declare the new function. 2702 2703 * remake.c (update_file_1): Call it, and keep VPATH if it's found. 2704 2705 * make.texinfo (Search Algorithm): Document GPATH variable. 2706 2707Sun Mar 30 20:57:16 1997 Paul D. Smith <psmith@baynetworks.com> 2708 2709 * main.c (handle_non_switch_argument): Defined the MAKECMDGOALS 2710 variable to contain the user options passed in on the cmd line. 2711 2712 * make.texinfo (Goals): Document MAKECMDGOALS variable. 2713 2714 * remake.c (f_mtime): Print a warning if we detect a clock skew 2715 error, rather than failing. 2716 2717 * main.c (main): If we rebuild any makefiles and need to re-exec, 2718 add "-o<mkfile>" options for each makefile rebuilt to avoid 2719 infinite looping. 2720 2721Fri Mar 28 15:26:05 1997 Paul D. Smith <psmith@baynetworks.com> 2722 2723 * job.c (construct_command_argv_internal): Track whether the last 2724 arg in the cmd string was empty or not (Roland). 2725 (construct_command_argv_internal): If the shell line is empty, 2726 don't do anything (Roland). 2727 2728 * glob/glob.h,glob/glob.c,glob/fnmatch.c,glob/fnmatch.h: Install 2729 the latest changes from the GLIBC version of glob (Ulrich Drepper). 2730 2731 * getloadavg.c,make-stds.texi: New version (Roland). 2732 2733 * (ALL): Changed WIN32 to W32 or WINDOWS32 (RMS). 2734 2735Mon Mar 24 15:33:34 1997 Rob Tulloh <rob_tulloh@tivoli.com> 2736 2737 * README.W32: Describe preliminary FAT support. 2738 2739 * build_w32.bat: Use a variable for the final exe name. 2740 2741 * dir.c (find_directory): W32: Find the filesystem type. 2742 (dir_contents_file_exists_p): W32: for FAT filesystems, always 2743 rehash since FAT doesn't change directory mtime on change. 2744 2745 * main.c (handle_runtime_exceptions): W32: Add an 2746 UnhandledExceptionFilter so that when make bombs due to ^C or a 2747 bug, it won't cause a GUI requestor to pop up unless debug is 2748 turned on. 2749 (main): Call it. 2750 2751Mon Mar 24 00:57:34 1997 Paul D. Smith <psmith@baynetworks.com> 2752 2753 * configure.in, config.h.in, config.ami, config.h-vms, config.h.w32: 2754 Check for memmove() function. 2755 2756 * make.h (bcopy): If memmove() available, define bcopy() to use it. 2757 Otherwise just use bcopy(). Don't use memcpy(); it's not guaranteed 2758 to handle overlapping moves. 2759 2760 * read.c (read_makefile): Fix some uninitialized memory reads 2761 (reported by Purify). 2762 2763 * job.c (construct_command_argv_internal): Use bcopy() not 2764 strcpy(); strcpy() isn't guaranteed to handle overlapping moves. 2765 2766 * Makefile.in: Change install-info option ``--infodir'' to 2767 ``--info-dir'' for use with new texinfo. 2768 2769 * function.c (expand_function): $(basename) and $(suffix) should 2770 only search for suffixes as far back as the last directory (e.g., 2771 only the final filename in the path). 2772 2773Sun Mar 23 00:13:05 1997 Paul D. Smith <psmith@baynetworks.com> 2774 2775 * make.texinfo: Add @dircategory/@direntry information. 2776 (Top): Remove previous reference to (dir) (from RMS). 2777 (Static Usage): Add "all:" rule to example. 2778 (Automatic Dependencies): fix .d file creation example. 2779 2780 * Install VPATH+ patch: 2781 2782 * filedef.h (struct file): Add in hname field to store the hashed 2783 filename, and a flag to remember if we're using the vpath filename 2784 or not. Renamed a few functions for more clarity. 2785 2786 * file.c (lookup_file,enter_file,file_hash_enter): Store filenames 2787 in the hash table based on their "hash name". We can change this 2788 while keeping the original target in "name". 2789 (rehash_file): Renamed from "rename_file" to be more accurate. 2790 Changes the hash name, but not the target name. 2791 2792 * remake.c (update_file_1): Modify -d output for more detailed 2793 VPATH info. If we don't need to rebuild, use the VPATH name. 2794 (f_mtime): Don't search for vpath if we're ignoring it. Call 2795 renamed function rehash_file. Call name_mtime instead of 2796 file_mtime, to avoid infinite recursion since the file wasn't 2797 actually renamed. 2798 2799 * implicit.c (pattern_search): if we find an implicit file in 2800 VPATH, save the original name not the VPATH name. 2801 2802 * make.texinfo (Directory Search): Add a section on the new VPATH 2803 functionality. 2804 2805Sun Dec 1 18:36:04 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 2806 2807 * dir.c (file_exists_p, file_impossible, file_impossible_p): If 2808 dirname is empty replace it by the name of the root directory. 2809 Note that this doesn't work (yet) for W32, Amiga, or VMS. 2810 2811Tue Oct 08 13:57:03 1996 Rob Tulloh <tulloh@tivoli.com> 2812 2813 * main.c (main): W32 bug fix for PATH vars. 2814 2815Tue Sep 17 1996 Paul Eggert <eggert@twinsun.com> 2816 2817 * filedef.h (NEW_MTIME): Don't assume that time_t is a signed 2818 32-bit quantity. 2819 2820 * make.h: (CHAR_BIT, INTEGER_TYPE_SIGNED, INTEGER_TYPE_MAXIMUM, 2821 INTEGER_TYPE_MINIMUM): New macros. 2822 2823Tue Aug 27 01:06:34 1996 Roland McGrath <roland@baalperazim.frob.com> 2824 2825 * Version 3.75 released. 2826 2827 * main.c (print_version): Print out bug-reporting address. 2828 2829Mon Aug 26 19:55:47 1996 Roland McGrath <roland@baalperazim.frob.com> 2830 2831 * main.c (print_data_base): Don't declare ctime; headers do it for us 2832 already. 2833 2834Sun Jul 28 15:37:09 1996 Rob Tulloh (tulloh@tivoli.com) 2835 2836 * w32/pathstuff.c: Turned convert_vpath_to_w32() into a 2837 real function. This was done so that VPATH could contain 2838 white space separated pathnames. Please note that directory 2839 paths (in VPATH/vpath context) containing white space are not 2840 supported (just as they are not under Unix). See README.W32 2841 for suggestions. 2842 2843 * w32/include/pathstuff.h: Added prototype for the new 2844 function convert_vpath_to_w32. Deleted macro for same. 2845 2846 * README.W32: Added some notes about why I chose not to try 2847 and support pathnames which contain white space and some 2848 workaround suggestions. 2849 2850Thu Jul 25 19:53:31 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2851 2852 * GNUmakefile (mkdep-nolib): Use -MM option unconditionally. 2853 2854 * Version 3.74.7. 2855 2856 * main.c (define_makeflags): Back up P to point at null terminator 2857 when killing final space and dash before setting MFLAGS. 2858 2859 From Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>: 2860 * dir.c [__MSDOS__ && DJGPP > 1]: Include <libc/dosio.h> and defin 2861 `__opendir_flags' initialized to 0. 2862 (dosify) [__MSDOS__ && DJGPP > 1]: Return name unchanged if _USE_LFN. 2863 (find_directory) [__MSDOS__ && DJGPP > 1]: If _USE_LGN, set 2864 __opendir_flags to __OPENDIR_PRESERVE_CASE. 2865 2866 * vmsfunctions.c (vms_stat): `sys$dassgn (DevChan);' added by kkaempf. 2867 2868 * GNUmakefile (w32files): Add NMakefile. 2869 2870 * NMakefile (LDFLAGS_debug): Value fixed by tulloh. 2871 2872Sat Jul 20 12:32:10 1996 Klaus K�mpf (kkaempf@progis.de) 2873 2874 * remake.c (f_mtime) [VMS]: Add missing `if' conditional for future 2875 modtime check. 2876 * config.h-vms, makefile.vms, readme.vms, vmsify.c: Update address. 2877 2878Sat Jul 20 05:29:43 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2879 2880 * configure.in: Require autoconf 2.10 or later. 2881 2882Fri Jul 19 16:57:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2883 2884 * Version 3.74.6. 2885 2886 * GNUmakefile (w32files): New variable. 2887 (distfiles): Add it. 2888 * w32: Updated by Rob Tulloh. 2889 2890 * makefile.vms (LOADLIBES): Fix typo. 2891 2892Sun Jul 14 12:59:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2893 2894 * job.c (construct_command_argv_internal): Fix up #else, #endifs. 2895 2896 * configh.dos: Define HAVE_DIRENT_H instead of DIRENT. 2897 2898 * remake.c (f_mtime): Don't compare MTIME to NOW if MTIME == -1. 2899 2900 * Version 3.74.5. 2901 2902 * main.c (main): Exit with status 2 when update_goal_chain returns 2. 2903 2904Sat Jun 22 14:56:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2905 2906 * configure.in: Don't check for _sys_siglist. 2907 * make.h [HAVE__SYS_SIGLIST]: Don't test this; just punt if there is 2908 no strsignal or sys_siglist. 2909 2910 * read.c (conditional_line): Strip ws in `ifeq (a , b)' so it is the 2911 same as `ifeq (a, b)'. 2912 2913 * job.c (reap_children): Don't call die if handling_fatal_signal. 2914 2915 * file.c (file_hash_enter): Allow renaming :: to : when latter is 2916 non-target, or : to :: when former is non-target. 2917 2918 * job.c (start_job_command): Call block_sigs. 2919 (block_sigs): New function, broken out of start_job_command. 2920 (reap_children): Block fatal signals around removing dead child from 2921 chain and adjusting job_slots_used. 2922 * job.h: Declare block_sigs. 2923 2924 * remote-stub.c (remote_setup, remote_cleanup): New (empty) functions. 2925 * main.c (main): Call remote_setup. 2926 (die): Call remote_cleanup. 2927 2928 * job.c (reap_children): Quiescent value of shell_function_pid is 2929 zero, not -1. 2930 2931 * main.c (print_version): Add 96 to copyright years. 2932 2933Sat Jun 15 20:30:01 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 2934 2935 * read.c (find_char_unquote): Avoid calling strlen on every call 2936 just to throw away the value most of the time. 2937 2938Sun Jun 2 12:24:01 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2939 2940 * main.c (decode_env_switches): Prepend '-' to ARGV[1] if it contains 2941 no '=', regardless of ARGC. 2942 (define_makeflags): Elide leading '-' from MAKEFLAGS value if first 2943 word is short option, regardless of WORDS. 2944 2945Wed May 22 17:24:51 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2946 2947 * makefile.vms: Set LOADLIBES. 2948 * makefile.com (link_using_library): Fix typo. 2949 2950Wed May 15 17:37:26 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 2951 2952 * dir.c (print_dir_data_base): Use %ld dev and ino and cast them to 2953 long. 2954 2955Wed May 15 10:14:14 CDT 1996 Rob Tulloh <tulloh@tivoli.com> 2956 2957 * dir.c: W32 does not support inode. For now, fully qualified 2958 pathname along with st_mtime will be keys for files. 2959 Fixed problem where vpath can be confused when files 2960 are added to a directory after the directory has already been 2961 read in. The code now attempts to reread the directory if it 2962 discovers that the datestamp on the directory has changed since 2963 it was cached by make. This problem only seems to occur on W32 2964 right now so it is lumped under port #ifdef WINDOWS32. 2965 2966 * function.c: W32: call subproc library (CreateProcess()) instead of 2967 fork/exec. 2968 2969 * job.c: W32: Added the code to do fork/exec/waitpid style processing 2970 on W32 systems via calls to subproc library. 2971 2972 * main.c: W32: Several things added here. First, there is code 2973 for dealing with PATH and SHELL defaults. Make tries to figure 2974 out if the user has %PATH% set in the environment and sets it to 2975 %Path% if it is not set already. Make also looks to see if sh.exe 2976 is anywhere to be found. Code path through job.c will change 2977 based on existence of a working Bourne shell. The checking for 2978 default shell is done twice: once before makefiles are read in 2979 and again after. Fall back to MSDOS style execution mode if no sh.exe 2980 is found. Also added some debug support that allows user to pause make 2981 with -D switch and attach a debugger. This is especially useful for 2982 debugging recursive calls to make where problems appear only in the 2983 sub-make. 2984 2985 * make.h: W32: A few macros and header files for W32 support. 2986 2987 * misc.c: W32: Added a function end_of_token_w32() to assist 2988 in parsing code in read.c. 2989 2990 * read.c: W32: Fixes similar to MSDOS which allow colon to 2991 appear in filenames. Use of colon in filenames would otherwise 2992 confuse make. 2993 2994 * remake.c: W32: Added include of io.h to eliminate compiler 2995 warnings. Added some code to default LIBDIR if it is not set 2996 on W32. 2997 2998 * variable.c: W32: Added support for detecting Path/PATH 2999 and converting them to semicolon separated lists for make's 3000 internal use. New function sync_Path_environment() 3001 which is called in job.c and function.c before creating a new 3002 process. Caller must set Path in environment since we don't 3003 have fork() to do this for us. 3004 3005 * vpath.c: W32: Added detection for filenames containing 3006 forward or backward slashes. 3007 3008 * NMakefile: W32: Visual C compatible makefile for use with nmake. 3009 Use this to build GNU make the first time on Windows NT or Windows 95. 3010 3011 * README.W32: W32: Contains some helpful notes. 3012 3013 * build_w32.bat: W32: If you don't like nmake, use this the first 3014 time you build GNU make on Windows NT or Windows 95. 3015 3016 * config.h.W32: W32 version of config.h 3017 3018 * subproc.bat: W32: A bat file used to build the 3019 subproc library from the top-level NMakefile. Needed because 3020 WIndows 95 (nmake) doesn't allow you to cd in a make rule. 3021 3022 * w32/include/dirent.h 3023 * w32/compat/dirent.c: W32: opendir, readdir, closedir, etc. 3024 3025 * w32/include/pathstuff.h: W32: used by files needed functions 3026 defined in pathstuff.c (prototypes). 3027 3028 * w32/include/sub_proc.h: W32: prototypes for subproc.lib functions. 3029 3030 * w32/include/w32err.h: W32: prototypes for w32err.c. 3031 3032 * w32/pathstuff.c: W32: File and Path/Path conversion functions. 3033 3034 * w32/subproc/build.bat: W32: build script for subproc library 3035 if you don't wish to use nmake. 3036 3037 * w32/subproc/NMakefile: W32: Visual C compatible makefile for use 3038 with nmake. Used to build subproc library. 3039 3040 * w32/subproc/misc.c: W32: subproc library support code 3041 * w32/subproc/proc.h: W32: subproc library support code 3042 * w32/subproc/sub_proc.c: W32: subproc library source code 3043 * w32/subproc/w32err.c: W32: subproc library support code 3044 3045Mon May 13 14:37:42 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 3046 3047 * Version 3.74.4. 3048 3049 * GNUmakefile (vmsfiles): Fix typo. 3050 3051 * GNUmakefile (amigafiles): Add amiga.h. 3052 3053Sun May 12 19:19:43 1996 Aaron Digulla <digulla@fh-konstanz.de> 3054 3055 * dir.c: New function: amigafy() to fold filenames 3056 Changes HASH() to HASHI() to fold filenames on Amiga. 3057 Stringcompares use strieq() instead of streq() 3058 The current directory on Amiga is "" instead of "." 3059 * file.c: Likewise. 3060 3061 * amiga.c: New function wildcard_expansion(). Allows to use 3062 Amiga wildcards with $(wildcard ) 3063 3064 * amiga.h: New file. Prototypes for amiga.c 3065 3066 * function.c: Use special function wildcard_expansion() for 3067 $(wildcard ) to allow Amiga wildcards 3068 The current directory on Amiga is "" instead of "." 3069 3070 * job.c: No Pipes on Amiga, too 3071 (load_too_high) Neither on Amiga 3072 ENV variable on Amiga are in a special directory and are not 3073 passed as third argument to main(). 3074 3075 * job.h: No envp on Amiga 3076 3077 * make.h: Added HASHI(). This is the same as HASH() but converts 3078 it's second parameter to lowercase on Amiga to fold filenames. 3079 3080 * main.c: (main), variable.c Changed handling of ENV-vars. Make 3081 stores now the names of the variables only and reads their contents 3082 when they are accessed to reflect that these variables are really 3083 global (ie. they CAN change WHILE make runs !) This handling is 3084 made in lookup_variable() 3085 3086 * Makefile.ami: renamed file.h to filedep.h 3087 Updated dependencies 3088 3089 * read.c: "find_semicolon" is declared as static but never defined. 3090 No difference between Makefile and makefile on Amiga; added 3091 SMakefile to *default_makefiles[]. 3092 (read_makefile) SAS/C want's two_colon and pattern_percent be set 3093 before use. 3094 The current directory on Amiga is "" instead of "." 3095 Strange #endif moved. 3096 3097 * README.Amiga: updated feature list 3098 3099 * SMakefile: Updated dependencies 3100 3101 * variable.c: Handling of ENV variable happens inside lookup_variable() 3102 3103Sat May 11 17:58:32 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 3104 3105 * variable.c (try_variable_definition): Count parens in lhs variable 3106 refs to avoid seeing =/:=/+= inside a ref. 3107 3108Thu May 9 13:54:49 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 3109 3110 * commands.c (fatal_error_signal) [SIGQUIT]: Make SIGQUIT check 3111 conditional. 3112 3113 * main.c (main): Use unsigned for fread return. 3114 3115 * read.c (parse_file_seq): Use `int' for char arg to avoid widening 3116 conflict issues. 3117 * dep.h: Fix prototype. 3118 3119 * function.c (expand_function) [_AMIGA]: Fix some typos. 3120 (patsubst_expand): Make len vars unsigned. 3121 3122 * GNUmakefile (globfiles): Add AmigaDOS support files. 3123 (distfiles): Add $(amigafiles). 3124 (amigafiles): New variable. 3125 3126Thu Nov 7 10:18:16 1995 Aaron Digulla <digulla@fh-konstanz.de> 3127 3128 * Added Amiga support in commands.c, dir.c, function.c, 3129 job.c, main.c, make.h, read.c, remake.c 3130 * commands.c: Amiga has neither SIGHUP nor SIGQUIT 3131 * dir.c: Amiga has filenames with Upper- and Lowercase, 3132 but "FileName" is the same as "filename". Added strieq() 3133 which is use to compare filenames. This is like streq() 3134 on all other systems. Also there is no such thing as 3135 "." under AmigaDOS. 3136 * function.c: On Amiga, the environment is not passed as envp, 3137 there are no pipes and Amiga can't fork. Use my own function 3138 to create a new child. 3139 * job.c: default_shell is "" (The system automatically chooses 3140 a shell for me). Have to use the same workaround as MSDOS for 3141 running batch commands. Added HAVE_SYS_PARAM_H. NOFILE isn't 3142 known on Amiga. Cloned code to run children from MSDOS. Own 3143 version of sh_chars[] and sh_cmds[]. No dup2() or dup() on Amiga. 3144 * main.c: Force stack to 20000 bytes. Read environment from ENV: 3145 device. On Amiga, exec_command() does return, so I exit() 3146 afterwards. 3147 * make.h: Added strieq() to compare filenames. 3148 * read.c: Amiga needs special extension to have passwd. Only 3149 one include-dir. "Makefile" and "makefile" are the same. 3150 Added "SMakefile". Added special code to handle device names (xxx:) 3151 and "./" in rules. 3152 * remake.c: Only one lib-dir. Amiga link-libs are named "%s.lib" 3153 instead of "lib%s.a". 3154 * main.c, rule.c, variable.c: Avoid floats at all costs. 3155 * vpath.c: Get rid of as many alloca()s as possible. 3156 3157Thu May 9 13:20:43 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> 3158 3159 * read.c (read_makefile): Grok `sinclude' as alias for `-include'. 3160 3161Wed Mar 20 09:52:27 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> 3162 3163 * GNUmakefile (vmsfiles): New variable. 3164 (distfiles): Include $(vmsfiles). 3165 3166Tue Mar 19 20:21:34 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> 3167 3168 Merged VMS port from Klaus Kaempf <kkaempf@didymus.rmi.de>. 3169 * make.h (PARAMS): New macro. 3170 * config.h-vms: New file. 3171 * makefile.com: New file. 3172 * makefile.vms: New file. 3173 * readme.vms: New file. 3174 * vmsdir.h: New file. 3175 * vmsfunctions.c: New file. 3176 * vmsify.c: New file. 3177 * file.h: Renamed to filedef.h to avoid conflict with VMS system hdr. 3178 * ar.c: Added prototypes and changes for VMS. 3179 * commands.c: Likewise. 3180 * commands.h: Likewise. 3181 * default.c: Likewise. 3182 * dep.h: Likewise. 3183 * dir.c: Likewise. 3184 * expand.c: Likewise. 3185 * file.c: Likewise. 3186 * function.c: Likewise. 3187 * implicit.c: Likewise. 3188 * job.c: Likewise. 3189 * job.h: Likewise. 3190 * main.c: Likewise. 3191 * make.h: Likewise. 3192 * misc.c: Likewise. 3193 * read.c: Likewise. 3194 * remake.c: Likewise. 3195 * remote-stub.c: Likewise. 3196 * rule.c: Likewise. 3197 * rule.h: Likewise. 3198 * variable.c: Likewise. 3199 * variable.h: Likewise. 3200 * vpath.c: Likewise. 3201 * compatMakefile (srcs): Rename file.h to filedef.h. 3202 3203Sat Aug 19 23:11:00 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> 3204 3205 * remake.c (check_dep): For a secondary file, try implicit and 3206 default rules if appropriate. 3207 3208Wed Aug 2 04:29:42 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> 3209 3210 * remake.c (check_dep): If an intermediate file exists, 3211 do consider its actual date. 3212 3213Sun Jul 30 00:49:53 1995 Richard Stallman <rms@mole.gnu.ai.mit.edu> 3214 3215 * file.h (struct file): New field `secondary'. 3216 * file.c (snap_deps): Check for .INTERMEDIATE and .SECONDARY. 3217 (remove_intermediates): Don't delete .SECONDARY files. 3218 3219Sat Mar 2 16:26:52 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> 3220 3221 * compatMakefile (srcs): Add getopt.h; prepend $(srcdir)/ to getopt*. 3222 3223Fri Mar 1 12:04:47 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> 3224 3225 * Version 3.74.3. 3226 3227 * remake.c (f_mtime): Move future modtime check before FILE is 3228 clobbered by :: loop. 3229 3230 * dir.c: Use canonical code from autoconf manual for dirent include. 3231 [_D_NAMLEN]: Redefine NAMLEN using this. 3232 (dir_contents_file_exists_p): Use NAMLEN macro. 3233 (read_dirstream) [_DIRENT_HAVE_D_NAMLEN]: Only set d_namlen #if this. 3234 3235 * compatMakefile (objs): Add missing backslash. 3236 3237Wed Feb 28 03:56:20 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu> 3238 3239 * default.c (default_terminal_rules): Remove + prefix from RCS cmds. 3240 (default_variables): Put + prefix in $(CHECKOUT,v) value instead. 3241 3242 * remake.c (f_mtime): Check for future timestamps; give error and mark 3243 file as "failed to update". 3244 3245Fri Jan 12 18:09:36 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3246 3247 * job.c: Don't declare unblock_sigs; job.h already does. 3248 3249Sat Jan 6 16:24:44 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3250 3251 * acconfig.h (HAVE_SYSCONF_OPEN_MAX): #undef removed. 3252 3253 * job.c (NGROUPS_MAX): Don't try to define this macro. 3254 3255Fri Dec 22 18:44:44 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3256 3257 * compatMakefile (GETOPT, GETOPT_SRC, GLOB): Variables removed. 3258 (objs, srcs): Include their values here instead of references. 3259 3260Thu Dec 14 06:21:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3261 3262 * Version 3.74.2. 3263 3264 * job.c (reap_children): Call unblock_sigs after start_job_command. 3265 3266Thu Dec 14 07:22:03 1995 Roland McGrath <roland@duality.gnu.ai.mit.edu> 3267 3268 * dir.c (dir_setup_glob): Don't use lstat; glob never calls it anyway. 3269 Avoid & before function names to silence bogus sunos4 compiler. 3270 3271 * configure.in: Remove check for `sysconf (_SC_OPEN_MAX)'. 3272 3273Tue Dec 12 00:48:42 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3274 3275 * Version 3.74.1. 3276 3277 * dir.c (read_dirstream): Fix braino: fill in the buffer when not 3278 reallocating it! 3279 3280Mon Dec 11 22:26:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3281 3282 * misc.c (collapse_continuations): Fix skipping of trailing \s so 3283 it can never dereference before the beginning of the array. 3284 3285 * read.c (find_semicolon): Function removed. 3286 (read_makefile): Don't use find_semicolon or remove_comments for 3287 rule lines. Use find_char_unquote directly and handle quoted comments 3288 properly. 3289 3290 * default.c: Remove all [M_XENIX] code. 3291 3292 * dir.c [HAVE_D_NAMLEN]: Define this for __GNU_LIBRARY__ > 1. 3293 (D_NAMLEN): Macro removed. 3294 (FAKE_DIR_ENTRY): New macro. 3295 (dir_contents_file_exists_p): Test HAVE_D_NAMLEN instead of using 3296 D_NAMLEN. 3297 (read_dirstream): Return a struct dirent * for new glob interface. 3298 (init_dir): Function removed. 3299 (dir_setup_glob): New function. 3300 * main.c (main): Don't call init_dir. 3301 * read.c (multi_glob): Call dir_setup_glob on our glob_t and use 3302 GLOB_ALTDIRFUNC flag. 3303 3304 * misc.c (safe_stat): Function removed. 3305 * read.c, commands.c, remake.c, vpath.c: Use plain stat instead of 3306 safe_stat. 3307 3308Sat Nov 25 20:35:18 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3309 3310 * job.c [HAVE_UNION_WAIT]: Include sys/wait.h. 3311 3312 * main.c (log_working_directory): Made global. 3313 Print entering msg only once. 3314 * make.h (log_working_directory): Declare it. 3315 * misc.c (message): Take new arg PREFIX. Print "make: " only if 3316 nonzero. Call log_working_directory. 3317 * remake.c: Pass new arg in `message' calls. 3318 * job.c (start_job_command): Pass new arg to `message'; fix 3319 inverted test in that call. 3320 3321Tue Nov 21 19:01:12 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3322 3323 * job.c (start_job_command): Use `message' to print the command, 3324 and call it with null if the command is silent. 3325 * remake.c (touch_file): Use message instead of printf. 3326 3327Tue Oct 10 14:59:30 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3328 3329 * main.c (enter_command_line_file): Barf if NAME is "". 3330 3331Sat Sep 9 06:33:20 1995 Roland McGrath <roland@whiz-bang.gnu.ai.mit.edu> 3332 3333 * commands.c (delete_target): Ignore unlink failure if it is ENOENT. 3334 3335Thu Aug 17 15:08:57 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3336 3337 * configure.in: Don't check for getdtablesize. 3338 * job.c (getdtablesize): Remove decls and macros. 3339 3340Thu Aug 10 19:10:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3341 3342 * main.c (define_makeflags): Omit command line variable 3343 definitions from MFLAGS value. 3344 3345 * arscan.c (ar_scan) [AIAMAG]: Check for zero MEMBER_OFFSET, 3346 indicating a valid, but empty, archive. 3347 3348Mon Aug 7 15:40:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3349 3350 * dir.c (file_impossible_p): Correctly reset FILENAME to name 3351 within directory before hash search. 3352 3353 * job.c (child_error): Do nothing if IGNORED under -s. 3354 3355 * job.c (exec_command): Correctly use ARGV[0] for script name when 3356 running shell directly. 3357 3358Tue Aug 1 14:39:14 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3359 3360 * job.c (child_execute_job): Close STDIN_FD and STDOUT_FD after 3361 dup'ing from them. Don't try to close all excess descriptors; 3362 getdtablesize might return a huge value. Any open descriptors in 3363 the parent should have FD_CLOEXEC set. 3364 (start_job_command): Set FD_CLOEXEC flag on BAD_STDIN descriptor. 3365 3366Tue Jun 20 03:47:15 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3367 3368 * read.c (read_all_makefiles): Properly append default makefiles 3369 to the end of the `read_makefiles' chain. 3370 3371Fri May 19 16:36:32 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3372 3373 * Version 3.74 released. 3374 3375Wed May 10 17:43:34 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3376 3377 * Version 3.73.3. 3378 3379Tue May 9 17:15:23 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3380 3381 * compatMakefile ($(infodir)/make.info): Make sure $$dir is set in 3382 install-info cmd. 3383 3384Wed May 3 15:56:06 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3385 3386 * file.c (print_file): Grok update_status of 1 for -q. 3387 3388Thu Apr 27 12:39:35 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3389 3390 * Version 3.73.2. 3391 3392Wed Apr 26 17:15:57 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3393 3394 * file.c (remove_intermediates): Fix inverted test to bail under 3395 -n for signal case. Bail under -q or -t. 3396 Skip files with update_status==-1. 3397 3398 * job.c (job_next_command): Skip empty lines. 3399 (new_job): Don't test the return of job_next_command. 3400 Just let start_waiting_job handle the case of empty commands. 3401 3402Wed Apr 19 03:25:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3403 3404 * function.c [__MSDOS__]: Include <fcntl.h>. From DJ Delorie. 3405 3406 * Version 3.73.1. 3407 3408Sat Apr 8 14:53:24 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3409 3410 * remake.c (notice_finished_file): Set FILE->update_status to zero 3411 if it's -1. 3412 3413Wed Apr 5 00:20:24 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3414 3415 * Version 3.73 released. 3416 3417Tue Mar 28 13:25:46 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3418 3419 * main.c (main): Fixed braino in assert. 3420 3421 * Version 3.72.13. 3422 3423Mon Mar 27 05:29:12 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3424 3425 * main.c: Avoid string in assert expression. Some systems are broken. 3426 3427Fri Mar 24 00:32:32 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3428 3429 * main.c (main): Handle 1 and 2 returns from update_goal_chain 3430 makefile run properly. 3431 3432 * Version 3.72.12. 3433 3434 * main.c (handle_non_switch_argument): New function, broken out of 3435 decode_switches. 3436 (decode_switches): Set optind to 0 to reinitialize getopt, not to 1. 3437 When getopt_long returns EOF, break the loop and handle remaining args 3438 with a simple second loop. 3439 3440 * remake.c (remake_file): Set update_status to 2 instead of 1 for 3441 no rule to make. Mention parent (dependent) in error message. 3442 (update_file_1): Handle FILE->update_status == 2 in -d printout. 3443 * job.c (start_job_command, reap_children): Set update_status to 2 3444 instead of 1 for failed commands. 3445 3446Tue Mar 21 16:23:38 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3447 3448 * job.c (search_path): Function removed (was already #if 0'd out). 3449 * configure.in: Remove AC_TYPE_GETGROUPS; nothing needs it any more. 3450 3451Fri Mar 17 15:57:40 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3452 3453 * configure.bat: Write @CPPFLAGS@ translation. 3454 3455Mon Mar 13 00:45:59 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3456 3457 * read.c (parse_file_seq): Rearranged `l(a b)' -> `l(a) l(b)' loop 3458 to not skip the elt immediately preceding `l(...'. 3459 3460Fri Mar 10 13:56:49 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3461 3462 * Version 3.72.11. 3463 3464 * read.c (find_char_unquote): Make second arg a string of stop 3465 chars instead of a single stop char. Stop when any char in the 3466 string is hit. All callers changed. 3467 (find_semicolon): Pass stop chars "#;" to one find_char_unquote call, 3468 instead of using two calls. If the match is not a ; but a #, 3469 return zero. 3470 * misc.c: Changed find_char_unquote callers here too. 3471 3472 * Version 3.72.10. 3473 3474 * read.c (read_makefile, parse_file_seq): Fix typo __MS_DOS__ -> 3475 __MSDOS__. 3476 3477 * GNUmakefile (globfiles): Add glob/configure.bat. 3478 (distfiles): Add configh.dos, configure.bat. 3479 3480Wed Mar 8 13:10:57 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3481 3482 Fixes for MS-DOS from DJ Delorie. 3483 * read.c (read_makefile, parse_file_seq) [__MS_DOS__]: Don't see : 3484 as separator in "C:\...". 3485 * configh.dos (STDC_HEADERS): Define only if undefined. 3486 (HAVE_SYS_PARAM_H): Don't define this. 3487 (HAVE_STRERROR): Define this. 3488 * job.c (construct_command_argv_internal) [__MSDOS__]: Fix typos. 3489 3490 * Version 3.72.9. 3491 3492 * main.c (decode_switches): Reset optind to 1 instead of 0. 3493 3494Tue Mar 7 17:31:06 1995 Roland McGrath <roland@geech.gnu.ai.mit.edu> 3495 3496 * main.c (decode_switches): If non-option arg is "-", ignore it. 3497 3498Mon Mar 6 23:57:38 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3499 3500 * Version 3.72.8. 3501 3502Wed Feb 22 21:26:36 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3503 3504 * Version 3.72.7. 3505 3506Tue Feb 21 22:10:43 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3507 3508 * main.c (main): Pass missing arg to tmpnam. 3509 3510 * configure.in: Check for strsignal. 3511 * job.c (child_error): Use strsignal. 3512 * main.c (main): Don't call signame_init #ifdef HAVE_STRSIGNAL. 3513 3514 * misc.c (strerror): Fix swapped args in sprintf. 3515 3516Mon Feb 13 11:50:08 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3517 3518 * configure.in (CFLAGS, LDFLAGS): Don't set these variables. 3519 3520Fri Feb 10 18:44:12 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3521 3522 * main.c (print_version): Add 95 to copyright years. 3523 3524 * Version 3.72.6. 3525 3526 * job.c (start_job_command): Remember to call notice_finished_file 3527 under -n when not recursing. To do this, consolidate that code 3528 under the empty command case and goto there for the -n case. 3529 3530Tue Feb 7 13:36:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3531 3532 * make.h [! STDC_HEADERS]: Don't declare qsort. Sun headers 3533 declare it int. 3534 3535Mon Feb 6 17:37:01 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3536 3537 * read.c (read_makefile): For bogus line starting with tab, ignore 3538 it if blank after removing comments. 3539 3540 * main.c: Cast results of `alloca' to `char *'. 3541 * expand.c: Likewise. 3542 3543Sun Feb 5 18:35:46 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3544 3545 * Version 3.72.5. 3546 3547 * configure.in: Check for mktemp. 3548 * main.c (main) [! HAVE_MKTEMP]: Use tmpnam instead of mktemp. 3549 3550 * configure.in (make_cv_sysconf_open_max): New check for `sysconf 3551 (_SC_OPEN_MAX)'. 3552 * acconfig.h: Added #undef HAVE_SYSCONF_OPEN_MAX. 3553 * job.c [HAVE_SYSCONF_OPEN_MAX] (getdtablesize): Define as macro 3554 using sysconf. 3555 3556Fri Jan 27 04:42:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3557 3558 * remake.c (update_file_1): When !MUST_MAKE, don't set 3559 FILE->update_status to zero before calling notice_finished_file. 3560 (notice_finished_file): Touch only when FILE->update_status is zero. 3561 (remake_file): Set FILE->update_status to zero after not calling 3562 execute_file_command and deciding to touch instead. 3563 3564Thu Jan 26 01:29:32 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3565 3566 * main.c (debug_signal_handler): New function; toggles debug_flag. 3567 (main): Handle SIGUSR1 with that. 3568 3569Mon Jan 16 15:46:56 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3570 3571 * compatMakefile (realclean): Remove Info files. 3572 3573Sun Jan 15 08:23:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3574 3575 * Version 3.72.4. 3576 3577 * job.c (start_job_command): Save and restore environ around vfork 3578 call. 3579 (search_path): Function #if 0'd out. 3580 (exec_command): Use execvp instead of search_path. 3581 3582 * expand.c (variable_expand): Rewrote computed variable name and 3583 substitution reference handling to be simpler. First expand the 3584 entire text between the parens if it contains any $s, then examine 3585 the result of that for subtitution references and do no further 3586 expansion while parsing them. 3587 3588 * job.c (construct_command_argv_internal): Handle " quoting too, 3589 when no backslash, $ or ` characters appear inside the quotes. 3590 3591 * configure.in (union wait check): If WEXITSTATUS and WTERMSIG are 3592 defined, just use int. 3593 3594Tue Jan 10 06:27:27 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3595 3596 * default.c (default_variables) [__hpux]: Remove special 3597 definition of ARFLAGS. Existence of the `f' flag is not 3598 consistent across HPUX versions; and one might be using GNU ar 3599 anyway. 3600 3601 * compatMakefile (clean): Don't remove Info files. 3602 3603 * compatMakefile (check): Remove gratuitous target declaration. 3604 3605Sat Jan 7 11:38:23 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3606 3607 * compatMakefile (ETAGS, CTAGS): Don't use -t. 3608 3609 * arscan.c (ar_name_equal) [cray]: Subtract 1 like [__hpux]. 3610 3611 * main.c (decode_switches): For --help, print usage to stdout. 3612 3613Mon Dec 5 12:42:18 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3614 3615 * Version 3.72.3. 3616 3617 * remake.c (update_file_1): Do set_command_state (FILE, 3618 cs_not_started) only if old state was deps_running. 3619 3620Mon Nov 28 14:24:03 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3621 3622 * job.c (start_waiting_job): Use set_command_state. 3623 3624 * build.template (CPPFLAGS): New variable. 3625 (prefix, exec_prefix): Set from @...@. 3626 (compilation loop): Pass $CPPFLAGS to compiler. 3627 3628 * GNUmakefile (build.sh.in): Make it executable. 3629 3630 * GNUmakefile (globfiles): Add configure.in, configure. 3631 3632 * Version 3.72.2. 3633 3634 * configure.in (AC_OUTPUT): Don't write glob/Makefile. 3635 3636 * configure.in (AC_CHECK_SYMBOL): Use AC_DEFINE_UNQUOTED. 3637 3638 * configure.in: Don't check for ranlib. 3639 3640Tue Nov 22 22:42:40 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3641 3642 * remake.c (notice_finished_file): Only mark also_make's as 3643 updated if really ran cmds. 3644 3645Tue Nov 15 06:32:46 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3646 3647 * configure.in: Put dnls before random whitespace. 3648 3649Sun Nov 13 05:02:25 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3650 3651 * compatMakefile (CPPFLAGS): New variable, set from @CPPFLAGS@. 3652 (RANLIB): Variable removed. 3653 (prefix, exec_prefix): Set these from @...@. 3654 (.c.o): Use $(CPPFLAGS). 3655 (glob/libglob.a): Don't pass down variables to sub-make. 3656 glob/Makefile should be configured properly by configure. 3657 (distclean): Remove config.log and config.cache (autoconf stuff). 3658 3659Mon Nov 7 13:58:06 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3660 3661 * acconfig.h: Add #undef HAVE_UNION_WAIT. 3662 * configure.in: Converted to Autoconf v2. 3663 * dir.c: Test HAVE_DIRENT_H, HAVE_SYS_DIR_H, HAVE_NDIR_H instead 3664 of DIRENT, SYSDIR, NDIR. 3665 * build.sh.in (prefix, exec_prefix): Set these from @...@. 3666 (CPPFLAGS): New variable, set from @CPPFLAGS@. 3667 (compiling loop): Pass $CPPFLAGS before $CFLAGS. 3668 * install.sh: File renamed to install-sh. 3669 3670 * main.c (define_makeflags): When no flags, set WORDS to zero. 3671 3672Sun Nov 6 18:34:01 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3673 3674 * Version 3.72.1. 3675 3676 * main.c (define_makeflags): Terminate properly when FLAGSTRING is 3677 empty. 3678 3679Fri Nov 4 16:02:51 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3680 3681 * Version 3.72. 3682 3683Tue Nov 1 01:18:10 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3684 3685 * Version 3.71.5. 3686 3687 * job.c (start_job_command): When ARGV is nil, only set 3688 update_state and call notice_finished_file if job_next_command 3689 returns zero. 3690 3691 * job.c (start_job_command): Call notice_finished_file for empty 3692 command line. 3693 3694Thu Oct 27 02:02:45 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3695 3696 * file.c (snap_deps): Set COMMANDS_SILENT for .SILENT, not 3697 COMMANDS_NOERROR. 3698 3699Wed Oct 26 02:14:10 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3700 3701 * Version 3.71.4. 3702 3703Tue Oct 25 22:49:24 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3704 3705 * file.c (snap_deps): Set command_flags bits in all :: entries. 3706 3707Mon Oct 24 18:47:50 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3708 3709 * make.h (posix_pedantic): Declare it. 3710 * main.c (main): Move checks .IGNORE, .SILENT, .POSIX to 3711 snap_deps. 3712 * file.c (snap_deps): Check .IGNORE, .SILENT, .POSIX here instead 3713 of in main. If .IGNORE has deps, OR COMMANDS_NOERROR into their 3714 command_flags and don't set -i. Likewise .SILENT. 3715 * job.c (start_job_command): In FLAGS initialization, OR in 3716 CHILD->file->command_flags. 3717 * file.h (struct file): New member `command_flags'. 3718 3719Sun Oct 16 01:01:51 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3720 3721 * main.c (switches): Bump flag values for --no-print-directory and 3722 --warn-undefined-variables, so neither is 1 (which indicates a 3723 nonoption argument). 3724 3725Sat Oct 15 23:39:48 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3726 3727 * main.c (main): Add missing code in .IGNORE test. 3728 3729Mon Oct 10 04:09:03 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3730 3731 * variable.c (define_automatic_variables): Define +D and +F. 3732 3733Sat Oct 1 04:07:48 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3734 3735 * main.c (main): Define hidden automatic variable with command 3736 vars, and MAKEOVERRIDES to a reference to that. 3737 (define_makeflags): If posix_pedantic, write a reference to that 3738 instead. 3739 3740Thu Sep 29 00:14:26 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3741 3742 * main.c (posix_pedantic): New variable. 3743 (main): Set posix_pedantic if .POSIX is a target. 3744 Fix .IGNORE and .SILENT checks to require is_target. 3745 3746 * commands.c (set_file_variables): Define new automatic variable 3747 $+, like $^ but before calling uniquize_deps. 3748 3749 * job.c (reap_children): Call delete_child_targets for non-signal 3750 error if .DELETE_ON_ERROR is a target. 3751 3752Tue Sep 27 01:57:14 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3753 3754 * Version 3.71.3. 3755 3756Mon Sep 26 18:16:55 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3757 3758 * job.c (reap_children): Don't change C->file->command_state when 3759 dying. Test it only after calling start_job_command for a new 3760 command line. When no more cmds, just set C->file->update_status. 3761 (start_job_command): When the last line is empty or under -n, set 3762 C->file->update_status. 3763 (start_waiting_job): Grok cs_not_started after start_job_command 3764 as success. 3765 (new_job): Set C->file->update_status when there are no cmds. 3766 (job_next_command): When out of lines, don't set 3767 CHILD->file->update_status or CHILD->file->command_state. 3768 3769 * main.c (quote_as_word): Renamed from shell_quote. Take new arg; 3770 if nonzero, also double $s. 3771 (main): Define MAKEOVERRIDES from command_variables here. 3772 (define_makeflags): Don't use command_variables here; instead write a 3773 reference $(MAKEOVERRIDES) in MAKEFLAGS. Make vars recursive. 3774 3775 * dir.c [__MSDOS__]: Fixed typo. 3776 3777 * vpath.c (selective_vpath_search): Reset EXISTS when stat fails. 3778 3779Sat Sep 10 03:01:35 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3780 3781 * remake.c: Include <assert.h> and use assert instead of printfs 3782 and abort. 3783 3784 * main.c (decode_switches): Loop until optind hits ARGC, not just 3785 until getopt_long returns EOF. Initialize C to zero before loop; 3786 in loop if C is EOF, set optarg from ARGV[optind++], else call 3787 getopt_long. 3788 (decode_env_switches): Use variable_expand instead of 3789 allocated_variable_expand. Allocate a fresh buffer to copy split 3790 words into; scan characters by hand to break words and 3791 debackslashify. 3792 (shell_quote): New function. 3793 (define_makeflags): Allocate doubled space for switch args, and command 3794 variable names and values; use shell_quote to quote those things. 3795 3796Fri Sep 9 01:37:47 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3797 3798 * Version 3.71.2. 3799 3800 * acconfig.h: Add HAVE_SYS_SIGLIST and HAVE__SYS_SIGLIST. 3801 3802 * main.c (decode_switches): The non-option return from getopt is 3803 1, not 0. 3804 (command_variables): New type and variable. 3805 (decode_switches, decode_env_switches): After making a variable 3806 definition, record the struct variable pointer in the 3807 command_variables chain. 3808 (define_makeflags): If ALL, write variable definitions for 3809 command_variables. 3810 3811 * main.c (other_args): Variable removed. 3812 (goals, lastgoal): New static variables (moved from auto in main). 3813 (main): Don't process OTHER_ARGS at all. 3814 Don't set variable MAKEOVERRIDES at all; define MAKE to just 3815 $(MAKE_COMMAND). 3816 (init_switches): Prepend a - {return in order} instead of a + 3817 {require order}. 3818 (decode_switches): Don't set OTHER_ARGS at all. 3819 Grok '\0' return from getopt_long as non-option argument; try 3820 variable definition and (if !ENV) enter goal targets here. 3821 (decode_env_switches): Use allocated_variable_expand to store value. 3822 Use find_next_token to simplify word-splitting loop. Don't 3823 prepend a dash to uninterpreted value. Instead, if split into 3824 only one word, try variable definition and failing that prepend a 3825 dash to the word and pass it to decode_switches as a single arg. 3826 3827Wed Sep 7 03:02:46 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3828 3829 * remake.c (notice_finished_file): Only recheck modtimes if 3830 FILE->command_state was cs_running on entry (meaning the commands 3831 actually just ran). 3832 (update_file_1): Whenever we set FILE->update_status, call 3833 notice_finished_file instead of just set_command_state. 3834 * job.c (start_job_command): Whenever we set 3835 CHILD->file->update_status, call notice_finished_file instead of 3836 just set_command_state. 3837 3838Tue Sep 6 19:13:54 1994 Roland McGrath <roland@geech.gnu.ai.mit.edu> 3839 3840 * default.c: Add missing ". 3841 3842 * job.c: Changed all assignments of command_state members to calls 3843 to set_command_state. 3844 * remake.c: Likewise. 3845 * file.c (set_command_state): New function. 3846 * file.h: Declare set_command_state. 3847 3848 * main.c (init_switches): Put a + first in options. 3849 3850Mon Jul 25 18:07:46 1994 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 3851 3852 Merge MSDOS/GO32 port from DJ Delorie <dj@ctron.com>. 3853 * vpath.c: Changed all uses of ':' to PATH_SEPARATOR_CHAR. 3854 * main.c (directory_before_chdir): New variable, moved out of main 3855 (was local). 3856 (main) [__MSDOS__]: Look for \ or : to delimit last component of 3857 PROGRAM. Don't frob ARGV[0] before setting MAKE_COMMAND variable. 3858 (die): Change back to `directory_before_chdir' before dying. 3859 * make.h (PATH_SEPARATOR_CHAR): New macro; differing defns for 3860 [__MSDOS__] and not. 3861 * job.c [__MSDOS__]: Include <process.h>. 3862 [__MSDOS__] (dos_pid, dos_status, dos_bname, dos_bename, 3863 dos_batch_file): New variables. 3864 (reap_children) [__MSDOS__]: Don't call wait; just examine those vars. 3865 (unblock_sigs) [__MSDOS__]: Do nothing. 3866 (start_job_command) [__MSDOS__]: Use spawnvpe instead of vfork & exec. 3867 (load_too_high) [__MSDOS__]: Always return true. 3868 (search_path) [__MSDOS__]: Check for : or / in FILE to punt. 3869 Use PATH_SEPARATOR_CHAR instead of ':'. 3870 (construct_command_argv_internal) [__MSDOS__]: Wholly different 3871 values for sh_chars and sh_cmds. Wholly new code to handle shell 3872 scripts. 3873 * function.c (expand_function: `shell') [__MSDOS__]: Wholly new 3874 implementation. 3875 * dir.c [__MSDOS__] (dosify): New function. 3876 (dir_contents_file_exists_p) [__MSDOS__]: Call it on FILENAME and 3877 process the result instead of FILENAME itself. 3878 (file_impossible_p) [__MSDOS__]: Likewise. 3879 * default.c [__MSDOS__]: Define GCC_IS_NATIVE. 3880 (default_suffix_rules) [__MSDOS__]: Use `y_tab.c' instead of `y.tab.c'. 3881 (default_variables) [GCC_IS_NATIVE]: Set CC and CXX to `gcc', YACC to 3882 `bison -y', and LEX to `flex'. 3883 * configure.bat, configh.dos: New files. 3884 * commands.c (fatal_error_signal) [__MSDOS__]: Just remove 3885 intermediates and exit. 3886 3887 * commands.c (set_file_variables): Add parens in length 3888 computation in .SUFFIXES dep loop to quiet compiler warning. From 3889 Jim Meyering. 3890 3891 * read.c (read_makefile): Free FILENAME if we allocated it. From 3892 Jim Meyering. 3893 3894Mon Jul 4 17:47:08 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3895 3896 * misc.c (safe_stat): New function, EINTR-safe wrapper around stat. 3897 * vpath.c (selective_vpath_search): Use safe_stat in place of stat. 3898 * read.c (construct_include_path): Use safe_stat in place of stat. 3899 * job.c (search_path): Use safe_stat in place of stat. 3900 * dir.c (find_directory): Use safe_stat in place of stat. 3901 * commands.c (delete_target): Use safe_stat in place of stat. 3902 * arscan.c (ar_member_touch) [EINTR]: Do EINTR looping around fstat. 3903 * remake.c (name_mtime): Use safe_stat in place of stat. 3904 (touch_file) [EINTR]: Do EINTR looping around fstat. 3905 3906Fri Jun 24 05:40:24 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3907 3908 * read.c (read_makefile): Check for a shell command first, and 3909 then strip leading tabs before further checking if it's not a 3910 shell command line. 3911 3912 * make.h [__arm]: Undefine POSIX. 3913 [!__GNU_LIBRARY__ && !POSIX && !_POSIX_VERSION]: Don't declare system 3914 functions that return int. 3915 3916 * job.c (construct_command_argv_internal): After swallowing a 3917 backslash-newline combination, if INSTRING is set goto string_char 3918 (new label) for normal INSTRING handling code. 3919 3920Sat Jun 4 01:11:20 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) 3921 3922 * configure.in: Don't check for sys_siglist and _sys_siglist with 3923 AC_HAVE_FUNCS. Instead use two AC_COMPILE_CHECKs. 3924 3925Mon May 23 18:20:38 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3926 3927 * Version 3.71.1 released. 3928 3929 * make.h [!__GNU_LIBRARY__ && !POSIX]: Also test #ifndef 3930 _POSIX_VERSION for these declarations. 3931 3932 * misc.c [GETLOADAVG_PRIVILEGED] [POSIX]: Remove bogus #ifndefs 3933 around #undefs of HAVE_SETREUID and HAVE_SETREGID. 3934 3935Sat May 21 16:26:38 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3936 3937 * Version 3.71 released. 3938 3939 * misc.c [GETLOADAVG_PRIVILEGED] [POSIX]: Don't test [HAVE_SETUID] 3940 and [HAVE_SETGID]. Every system has those, and configure doesn't 3941 check for them. 3942 3943 * make.h [_POSIX_VERSION]: Don't #define POSIX #ifdef ultrix. 3944 3945 * compatMakefile (loadavg): Depend on and use loadavg.c instead of 3946 getloadavg.c. 3947 (loadavg.c): Link or copy it from getloadavg.c. 3948 (distclean): Remove loadavg.c. 3949 3950Mon May 16 22:59:04 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3951 3952 * Version 3.70.4. 3953 3954 * misc.c [GETLOADAVG_PRIVILEGED] [! POSIX]: Undefine HAVE_SETEUID 3955 and HAVE_SETEGID. 3956 3957 * default.c (default_terminal_rules): In SCCS rules, put 3958 $(SCCS_OUTPUT_OPTION) before $<. On some systems -G is grokked 3959 only before the file name. 3960 * configure.in (SCCS_GET_MINUS_G check): Put -G flag before file name. 3961 3962Tue May 10 16:27:38 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3963 3964 * job.c (construct_command_argv_internal): Swallow 3965 backslash-newline combinations inside '' strings too. 3966 3967Thu May 5 04:15:10 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3968 3969 * read.c (do_define): Call collapse_continuations on each line 3970 before all else. 3971 3972Mon Apr 25 19:32:02 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 3973 3974 * job.c (construct_command_argv_internal): Notice newline inside 3975 '' string when RESTP is non-null. 3976 3977Fri Apr 22 17:33:30 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) 3978 3979 * Version 3.70.3. 3980 3981 * remake.c (update_goal_chain): Reset FILE to G->file after the 3982 double-colon loop so it is never null for following code. 3983 3984 * read.c (read_makefile): Fix `override define' parsing to skip 3985 whitespace after `define' properly. 3986 3987 * compatMakefile (srcdir): Define as @srcdir@; don't reference 3988 $(VPATH). 3989 (glob/Makefile): New target. 3990 3991Thu Apr 21 16:16:55 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) 3992 3993 * Version 3.70.2. 3994 3995 * misc.c (remove_comments): Use find_char_unquote. 3996 * make.h (find_char_unquote): Declare it. 3997 * read.c (find_char_unquote): New function, generalized from 3998 find_percent. 3999 (find_percent, find_semicolon, parse_file_seq): Use that. 4000 4001Wed Apr 20 18:42:39 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4002 4003 * implicit.c (pattern_search): Always allocate new storage for 4004 FILE->stem. It is not safe to store STEM's address because it 4005 might be auto storage. 4006 4007 * configure.in: Check for seteuid and setegid. 4008 * misc.c [HAVE_SETEUID]: Declare seteuid. 4009 [HAVE_SETEGID]: Declare setegid. 4010 (make_access, user_access) [HAVE_SETEUID]: Use seteuid. 4011 [HAVE_SETEGID]: Use setegid. 4012 4013 * remake.c (update_goal_chain): Set STATUS to FILE->update_status, 4014 to preserve whether it's 2 for error or 1 for -q trigger. When 4015 STATUS gets nonzero and -q is set, always stop immediately. 4016 * main.c (main, decode_switches): Die with 2 for errors. 4017 (main): Accept 2 return from update_goal_chain and die with that. 4018 * misc.c (fatal, makefile_fatal): Die with 2; 1 is reserved for -q 4019 answer. 4020 * job.c (reap_children): Die with 2 for error. 4021 (start_job_command): Set update_status to 2 for error. Set it to 4022 1 when we would run a command and question_flag is set. 4023 4024 * read.c (read_makefile): Don't mark makefiles as precious. Just 4025 like other targets, they can be left inconsistent and in need of 4026 remaking by aborted commands. 4027 4028 * read.c (read_makefile): Write no error msg for -include file. 4029 4030Tue Apr 5 05:22:19 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4031 4032 * commands.c (fatal_error_signal): Don't unblock signals. 4033 4034 * file.h (struct file): Change member `double_colon' from flag to 4035 `struct file *'. 4036 * read.c (record_files): Set double_colon pointer instead of flag. 4037 * main.c (main): When disqualifying makefiles for updating, use 4038 double_colon pointer to find all entries for a file. 4039 * file.c (enter_file): If there is already a double-colon entry 4040 for the file, set NEW->double_colon to that pointer. 4041 (file_hash_enter): Use FILE->double_colon to find all entries to 4042 set name. 4043 * remake.c (update_goal_chain): Do inner loop on double-colon entries. 4044 (update_file): Use FILE->double_colon pointer to find all entries. 4045 (f_mtime): Likewise. 4046 (notice_finished_file): Propagate mtime change to all entries. 4047 4048 * variable.c (try_variable_definition): Return after abort. 4049 4050Fri Apr 1 18:44:15 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4051 4052 * read.c (read_makefile): Remove unused variable. 4053 (parse_file_seq): When removing an elt that is just `)', properly 4054 fix up the previous elt's next pointer. 4055 4056Mon Mar 28 18:31:49 1994 Roland McGrath (roland@mole.gnu.ai.mit.edu) 4057 4058 * configure.in: Do AC_SET_MAKE. 4059 * GNUmakefile (Makefile.in): Edit MAKE assignment into @SET_MAKE@. 4060 4061Fri Mar 4 00:02:32 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4062 4063 * function.c (subst_expand): If BY_WORD or SUFFIX_ONLY is set and 4064 the search string is the empty string, find a match at the end of 4065 each word (using end_of_token in place of sindex). 4066 4067 * misc.c (end_of_token): Don't treat backslashes specially; you 4068 can no longer escape blanks with backslashes in export, unexport, 4069 and vpath. This was never documented anyway. 4070 4071Thu Mar 3 23:53:46 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4072 4073 * read.c (read_makefile): Variable name for `define' is not just 4074 first token; use whole rest of line and strip trailing blanks. 4075 4076Wed Feb 16 16:03:45 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4077 4078 * Version 3.70.1. 4079 4080 * read.c (read_makefile): Add -d msg stating args. 4081 4082 * read.c (read_makefile): Use isspace to skip over leading 4083 whitespace, and explicitly avoid skipping over tabs. Don't want 4084 to skip just spaces though; formfeeds et al should be skipped. 4085 4086 * default.c (default_variables) [__hpux]: Add f in ARFLAGS. 4087 4088 * arscan.c (ar_name_equal) [__hpux]: Subtract 2 instead of 1 from 4089 sizeof ar_name for max length to compare. 4090 4091 * misc.c [GETLOADAVG_PRIVILEGED] [POSIX]: Undefine HAVE_SETREUID 4092 #ifdef HAVE_SETUID; likewise HAVE_SETREGID and HAVE_SETGID. 4093 4094 * main.c (main): Call user_access after setting `program', in case 4095 it needs to use it in an error message. 4096 4097 * read.c (read_makefile): Ignore an empty line starting with a tab. 4098 4099Thu Feb 10 21:45:31 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4100 4101 * configure.in (AC_SYS_SIGLIST_DECLARED): Use this instead of 4102 AC_COMPILE_CHECK that is now its contents. 4103 4104Fri Feb 4 16:28:54 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4105 4106 * make.h: #undef strerror after #include <string.h>. 4107 [! ANSI_STRING]: Declare strerror. 4108 4109Thu Feb 3 02:21:22 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4110 4111 * misc.c (strerror): #undef any macro before function definition. 4112 4113Mon Jan 31 19:07:23 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4114 4115 * variable.c (try_variable_definition): Calculate BEG before loop 4116 to strip blanks by decrementing END. Don't decr END to before BEG. 4117 4118 * read.c (read_makefile): Skip over leading space characters, but 4119 not tabs, after removing continuations and comments (it used to 4120 use isspace). 4121 4122Tue Jan 25 16:45:05 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4123 4124 * variable.c (define_automatic_variables): In $(@D) et al, use 4125 patsubst to remove trailing slash. 4126 4127 * commands.c (delete_target): New function, broken out of 4128 delete_child_targets. Check for archive members and give special msg. 4129 (delete_child_targets): Use delete_target. 4130 4131Mon Jan 17 17:03:22 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4132 4133 * default.c (default_suffix_rules): Use $(TEXI2DVI_FLAGS) in 4134 texi2dvi rules. Use $(MAKEINFO_FLAGS) in makeinfo rules. 4135 4136Tue Jan 11 19:29:55 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4137 4138 * GNUmakefile (tarfiles): Omit make-doc. 4139 (make-$(version).tar): Include make.info*. 4140 4141Fri Jan 7 16:27:00 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4142 4143 * compatMakefile (configure, config.h.in): Comment out rules. 4144 4145Thu Jan 6 18:08:08 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4146 4147 * compatMakefile (binprefix, manprefix): New variables. 4148 (instname): Variable removed. 4149 (install): Use $({bin,man}prefix)make in place of $(instname). 4150 File targets likewised renamed. 4151 4152Mon Jan 3 17:50:25 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4153 4154 * Version 3.70 released. 4155 4156Thu Dec 23 14:46:54 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4157 4158 * Version 3.69.3. 4159 4160 * read.c (parse_file_seq): Inside multi-word archive ref 4161 translation loop, check NEW1==0 at end and break out of the loop. 4162 4163 * GNUmakefile (make-$(version).tar): Distribute install.sh. 4164 * install.sh: New file. 4165 4166 * configure.in (SCCS_GET_MINUS_G check): Put redirection for admin 4167 cmds outside subshell parens, to avoid "command not found" msgs 4168 from the shell. 4169 4170Wed Dec 22 17:00:43 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4171 4172 * configure.in (SCCS_GET_MINUS_G check): Put -G flag last in get cmd. 4173 Redirect output & error from get to /dev/null. 4174 Fix reversed sense of test. 4175 4176Fri Dec 17 15:31:36 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4177 4178 * configure.in (SCCS_GET_MINUS_G check): Use parens instead of 4179 braces inside if condition command; some shells lose. 4180 4181Thu Dec 16 15:10:23 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4182 4183 * Version 3.69.2. 4184 4185 * arscan.c [M_UNIX]: Move #undef M_XENIX for PORTAR stuff. 4186 (PORTAR) [M_XENIX]: Define to 0 instead of 1. 4187 4188 * main.c (define_makeflags): Only export MAKEFLAGS if !ALL. 4189 4190Wed Dec 15 17:47:48 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4191 4192 * main.c (main): Cast result of pointer arith to unsigned int 4193 before passing to define_variable for envars. Matters when 4194 sizeof(unsigned)!=sizeof(ptrdiff_t). 4195 4196Tue Dec 14 14:21:16 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4197 4198 * configure.in: Add new check for SCCS_GET_MINUS_G. 4199 * config.h.in: Add #undef SCCS_GET_MINUS_G. 4200 * default.c (default_terminal_rules): Use `$(SCCS_OUTPUT_OPTION)' in 4201 place of `-G $@' in SCCS commands. 4202 (default_variables) [SCCS_GET_MINUS_G]: Define SCCS_OUTPUT_OPTION 4203 to "-G$@". 4204 4205 * configure.in (AC_OUTPUT): Put touch stamp-config in second arg 4206 (so it goes in config.status), rather than afterward. 4207 4208 * ar.c (ar_member_date): Don't call enter_file on the archive file 4209 if it doesn't exist (by file_exists_p). 4210 4211 * compatMakefile ($(infodir)/make.info): Replace `$$d/foo.info' 4212 with `$$dir/make.info' in install-info invocation (oops). 4213 4214 * vpath.c (construct_vpath_list): Only set LASTPATH set PATH when 4215 we do not unlink and free PATH. 4216 4217 * file.c (print_file_data_base): Fix inverted calculation for 4218 average files per hash bucket. 4219 4220 * read.c (readline): When we see a NUL, give only a warning and 4221 synthesize a newline to terminate the building line (used to 4222 fatal). Move fgets call into the loop condition, and after the 4223 loop test ferror (used to test !feof in the loop). 4224 4225Fri Dec 3 16:40:31 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4226 4227 * configure.in: Check for strerror in AC_HAVE_FUNCS. 4228 4229Thu Dec 2 15:37:50 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4230 4231 Differentiate different flavors of missing makefile error msgs, 4232 removing gratuitous `fopen: ' and giving caller for included makefiles. 4233 * misc.c [! HAVE_STRERROR]: Define our own strerror here. 4234 (perror_with_name, pfatal_with_name): Use strerror instead of 4235 replicating its functionality. 4236 * read.c (read_makefile): Return int instead of void. 4237 (read_all_makefiles, read_makefile): Change callers to notice zero 4238 return and give error msg. 4239 4240Thu Nov 11 11:47:36 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4241 4242 * Version 3.69.1. 4243 4244 * default.c: Put `-G $@' before $< in SCCS cmds. 4245 4246Wed Nov 10 06:06:14 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4247 4248 * read.c (read_makefile): After trying a variable defn, notice if 4249 the line begins with a tab, and diagnose an error. 4250 4251Sun Nov 7 08:07:37 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4252 4253 * Version 3.69. 4254 4255Wed Nov 3 06:54:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4256 4257 * Version 3.68.10. 4258 4259 * implicit.c (try_implicit_rule): Look for a normal rule before an 4260 archive rule. 4261 4262Fri Oct 29 16:45:28 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4263 4264 * function.c (expand_function: `sort'): Double NWORDS when it 4265 overflows, instead of adding five. 4266 4267 * compatMakefile (clean): Remove loadavg. 4268 4269Wed Oct 27 17:58:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4270 4271 * Version 3.68.9. 4272 4273 * file.h (NEW_MTIME): Define new macro. 4274 * main.c (main): Set time of NEW_FILES to NEW_MTIME, not to 4275 current time returned from system. Removed variable NOW. 4276 * remake.c (notice_finished_file): Use NEW_MTIME in place of 4277 current time here too. 4278 4279Tue Oct 26 19:45:35 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4280 4281 * Version 3.68.8. 4282 4283 * remake.c (update_file_1): Don't clear MUST_MAKE when FILE has no 4284 cmds and !DEPS_CHANGED unless also !NOEXIST. 4285 4286Mon Oct 25 15:25:21 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4287 4288 * read.c (parse_file_seq): When converting multi-word archive 4289 refs, ignore a word beginning with a '('. 4290 4291Fri Oct 22 02:53:38 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4292 4293 * configure.in: Check for sys/timeb.h. 4294 * make.h [HAVE_SYS_TIMEB_H]: Test this before including it. 4295 4296Thu Oct 21 16:48:17 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4297 4298 * Version 3.68.7. 4299 4300 * rule.c (convert_suffix_rule): New local TARGPERCENT. Set it to 4301 TARGNAME+1 for "(%.o)", to TARGNAME for "%.?". Use it in place of 4302 TARGNAME to initialize PERCENTS[0]. 4303 4304Mon Oct 18 06:49:35 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4305 4306 * configure.in: Use AC_HAVE_HEADERS(unistd.h) instead of AC_UNISTD_H. 4307 Remove AC_USG; it is no longer used. 4308 4309 * file.c (print_file): New function, broken out of 4310 print_file_data_base. 4311 (print_file_data_base): Call it. 4312 * rule.c (print_rule): New function, broken out of 4313 print_rule_data_base. 4314 (print_rule_data_base): Call it. 4315 4316Thu Oct 14 14:54:03 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4317 4318 * default.c (install_default_suffix_rules): New function, broken 4319 out of install_default_implicit_rules. 4320 (install_default_implicit_rules): Move suffix rule code there. 4321 * make.h: Declare install_default_suffix_rules. 4322 * main.c (main): Call install_default_suffix_rules before reading 4323 makefiles. Move convert_to_pattern call before 4324 install_default_implicit_rules. 4325 4326 * job.h (struct child): Make `pid' member type `pid_t' instead of 4327 `int'. 4328 4329 * compatMakefile (RANLIB): New variable, set by configure. 4330 (glob/libglob.a): Pass RANLIB value down to submake. 4331 4332 Fixes for SCO 3.2 "devsys 4.2" from pss@tfn.com (Peter Salvitti). 4333 * make.h: Include <sys/timeb.h> before <time.h> for SCO lossage. 4334 * job.c [! getdtablesize] [! HAVE_GETDTABLESIZE]: If NOFILE is not 4335 defined but NOFILES_MAX is, define it to be that. 4336 4337Mon Oct 11 19:47:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4338 4339 * GNUmakefile (make-$(version).tar): Depend on acconfig.h, so it 4340 is distributed. 4341 4342Sun Oct 3 15:15:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4343 4344 * default.c (default_terminal_rules): Add `-G $@' to SCCS get cmds. 4345 4346Tue Sep 28 14:18:20 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4347 4348 * job.c (construct_command_argv_internal): Add ^ to SH_CHARS; it 4349 is another symbol for | in some shells. 4350 * main.c (main): Add it to CMD_DEFS quoting list as well. 4351 4352Mon Sep 20 18:05:24 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4353 4354 * job.c (construct_command_argv_internal): Remove '=' from 4355 SH_CHARS. Only punt on '=' if it is unquoted in a word before the 4356 first word without an unquoted '='. 4357 4358 * main.c (define_makeflags): Set v_export for MAKEFLAGS. 4359 4360Fri Sep 17 00:37:18 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4361 4362 * remake.c (update_file_1): Use .DEFAULT cmds for phony targets. 4363 4364 * make.h [_AIX && _POSIX_SOURCE]: Define POSIX. 4365 4366 * commands.c (delete_child_targets): Don't delete phony files. 4367 4368 * job.c (start_job_command): Set COMMANDS_RECURSE in FLAGS if we 4369 see a `+' at the beginning of the command line. 4370 4371Thu Sep 9 17:57:14 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4372 4373 * Version 3.68.6. 4374 4375Wed Sep 8 20:14:21 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4376 4377 * main.c (define_makeflags): Define MAKEFLAGS with o_file, not o_env. 4378 4379Mon Aug 30 12:31:58 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4380 4381 * expand.c (variable_expand): Fatal on an unterminated reference. 4382 4383Thu Aug 19 16:27:53 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4384 4385 * Version 3.68.5. 4386 4387 * variable.c (define_automatic_variables): Define new o_default 4388 variable `MAKE_VERSION' from version_string and remote_description. 4389 4390 * make.h (version_string, remote_description): Declare these here. 4391 * main.c: Don't declare version_string. 4392 (print_version): Don't declare remote_description. 4393 4394Wed Aug 18 15:01:24 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4395 4396 * read.c (read_makefile): Free space pointed to by CONDITIONALS 4397 before restoring the old pointer. 4398 4399Mon Aug 16 17:33:36 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4400 4401 * compatMakefile ($(objs)): Depend on config.h. 4402 4403 * GNUmakefile (build.sh.in): Depend on compatMakefile. 4404 4405 * configure.in: Touch stamp-config after AC_OUTPUT. 4406 4407Fri Aug 13 16:04:22 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4408 4409 * Version 3.68.4. 4410 4411Thu Aug 12 17:18:57 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4412 4413 * make.h: Include <config.h> instead of "config.h". 4414 4415Wed Aug 11 02:35:25 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4416 4417 * main.c (main): Make all variables interned from ENVP be v_export. 4418 * variable.c (try_variable_definition): In v_default case, don't 4419 check for an o_file variable that `getenv' finds. 4420 4421 * job.c (reap_children): New local variable ANY_LOCAL; set it 4422 while setting ANY_REMOTE. If !ANY_LOCAL, don't wait for local kids. 4423 4424 * main.c (main): Don't call decode_env_switches on MFLAGS. DOC THIS. 4425 4426 * function.c (expand_function): #if 0 out freeing of ENVP since it 4427 is environ. 4428 4429Mon Aug 9 17:37:20 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4430 4431 * Version 3.68.3. 4432 4433 * remote-stub.c (remote_status): Set errno to ECHILD before return. 4434 * job.c (reap_children): Scan the chain for remote children and 4435 never call remote_status if there are none. 4436 4437 * function.c (expand_function: `shell'): #if 0 out calling 4438 target_environment; just set ENVP to environ instead. 4439 4440 * job.c (reap_children): Check for negative return from 4441 remote_status and fatal for it. 4442 When blocking local child wait returns 0, then try a blocking call 4443 to remote_status. 4444 4445Tue Aug 3 00:19:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4446 4447 * compatMakefile (clean): Delete make.info* and make.dvi here. 4448 (distclean): Not here. 4449 4450 * dep.h (RM_*): Use #defines instead of enum to avoid lossage from 4451 compilers that don't like enum values used as ints. 4452 4453Mon Aug 2 16:46:34 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4454 4455 * compatMakefile (loadavg): Add $(LOADLIBES). 4456 4457Sun Aug 1 16:01:15 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4458 4459 * Version 3.68.2. 4460 4461 * compatMakefile (loadavg, check-loadavg): New targets. 4462 (check): Depend on check-loadavg. 4463 4464 * compatMakefile (glob/libglob.a): Depend on config.h. 4465 4466 * misc.c (log_access): Write to stderr instead of stdout. 4467 4468Fri Jul 30 00:07:02 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4469 4470 * Version 3.68.1. 4471 4472Thu Jul 29 23:26:40 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4473 4474 * configure.in (SYS_SIGLIST_DECLARED): In test program include 4475 <unistd.h> #ifdef HAVE_UNISTD_H. 4476 4477 * compatMakefile (.PHONY): Put after `all' et al. 4478 4479 * configure.in: Add AC_IRIX_SUN. 4480 4481Wed Jul 28 17:41:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4482 4483 * Version 3.68. 4484 4485Mon Jul 26 14:36:49 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4486 4487 * Version 3.67.8. 4488 4489Sun Jul 25 22:09:08 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4490 4491 * Version 3.67.7. 4492 4493 * compatMakefile ($(infodir)/make.info): Don't use $(instname). 4494 Run install-info script if present. 4495 4496Fri Jul 23 16:03:50 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4497 4498 * make.h [STAT_MACROS_BROKEN]: Test this instead of [uts]. 4499 4500 * configure.in: Add AC_STAT_MACROS_BROKEN. 4501 4502Wed Jul 14 18:48:11 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4503 4504 * Version 3.67.6. 4505 4506 * read.c (read_makefile): Recognize directive `-include', like 4507 `include' but sets RM_DONTCARE flag. 4508 4509 * variable.c (target_environment): If FILE is nil, use 4510 current_variable_set_list in place of FILE->variables. 4511 * function.c (expand_function: `shell'): Get an environment for 4512 the child from target_environment instead of using environ. 4513 4514 * dep.h: Declare read_all_makefiles here. 4515 (RM_*): Define new enum constants. 4516 * read.c (read_makefile): Second arg is FLAGS instead of TYPE. 4517 Treat it as a bit mask containing RM_*. 4518 (read_all_makefiles): For default makefiles, set D->changed to 4519 RM_DONTCARE instead of 1. 4520 * main.c: Don't declare read_all_makefiles here. 4521 (main): Check `changed' member of read_makefiles elts for RM_* 4522 flags instead of specific integer values. 4523 4524Mon Jul 12 22:42:17 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4525 4526 * make.h [sequent && i386]: #undef POSIX. From trost@cse.ogi.edu. 4527 4528Thu Jul 8 19:51:23 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4529 4530 * vpath.c (construct_vpath_list): If ELEM is zero 0, free PATTERN 4531 as well as VPATH. 4532 (build_vpath_lists): Empty `vpaths' around construct_vpath_list 4533 call for $(VPATH). Expand $(strip $(VPATH)), not just $(VPATH). 4534 4535 * rule.c (convert_suffix_rule): Use alloca instead of xmalloc for 4536 PERCENTS, whose storage is not consumed by create_pattern_rule. 4537 4538 * make.h [__mips && _SYSTYPE_SVR3]: #undef POSIX. 4539 4540Wed Jun 30 18:11:40 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4541 4542 * Version 3.67.5. 4543 4544 * rule.c (max_pattern_targets): New variable. 4545 (count_implicit_rule_limits): Compute its value. 4546 * rule.h: Declare it. 4547 * implicit.c (pattern_search): Make TRYRULES max_target_patterns 4548 times bigger. Move adding new TRYRULES elt inside the inner 4549 targets loop, so each matching target gets its own elt in MATCHES 4550 and CHECKED_LASTSLASH. 4551 4552 * file.c (remove_intermediates): If SIG!=0 say `intermediate file' 4553 instead of just `file' in error msg. 4554 4555Fri Jun 25 14:55:15 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4556 4557 * job.c (construct_command_argv): Turn off 4558 --warn-undefined-variables around expansion of SHELL and IFS. 4559 * read.c (tilde_expand): Likewise for HOME. 4560 (read_all_makefiles): Likewise for MAKEFILES. 4561 * vpath.c (build_vpath_lists): Likewise for VPATH. 4562 4563 * main.c (warn_undefined_variables_flag): New flag variable. 4564 (switches): Add --warn-undefined-variables. 4565 * make.h (warn_undefined_variables_flag): Declare it. 4566 * expand.c (warn_undefined): New function. 4567 (reference_variable): Call it if the variable is undefined. 4568 (variable_expand): In substitution ref, call warn_undefined if the 4569 variable is undefined. 4570 4571 * default.c (default_pattern_rules): Add `%.c: %.w %.ch' and 4572 `%.tex: %.w %.ch' rules. 4573 (default_suffix_rules: .w.c, .w.tex): Pass three args: $< - $@. 4574 (default_suffixes): Add `.ch'. 4575 4576Mon Jun 21 17:55:39 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4577 4578 * default.c (default_suffixes): Replace `.cweb' with `.w'. 4579 (default_suffix_rules): Rename `.cweb.c' and `.cweb.tex' to `.w.c' 4580 and `.w.tex'. 4581 4582Fri Jun 11 14:42:09 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4583 4584 * compatMakefile ($(bindir)/$(instname)): Add missing backslash. 4585 4586Thu Jun 10 18:14:08 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4587 4588 * Version 3.67.4. 4589 4590 * read.c (multi_glob): Don't free OLD and OLD->name in the 4591 FOUND!=0 fork. Use new block-local variable F instead of 4592 clobbering OLD. 4593 4594 * ar.c (glob_pattern_p): New function, snarfed from glob/glob.c. 4595 (ar_glob): Call it; return nil immediately if MEMBER_PATTERN 4596 contains no metacharacters. 4597 4598Wed Jun 9 16:25:35 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4599 4600 * ar.c (ar_glob{_match,_alphacompare}): New function. 4601 4602 * dep.h [! NO_ARCHIVES]: Declare it. 4603 * read.c (multi_glob) [! NO_ARCHIVES]: Use it on archive member elts. 4604 4605 * read.c (read_makefile): Pass flag (1) to parse_file_seq, not to 4606 multi_glob (which doesn't take a 3rd arg). 4607 * rule.c (install_pattern_rule): Likewise. 4608 * default.c (set_default_suffixes): Here too. 4609 * function.c (string_glob): Don't pass gratuitous arg to multi_glob. 4610 4611 * read.c (parse_file_seq) [! NO_ARCHIVES]: Add post-processing 4612 loop to translate archive refs "lib(a b)" into "lib(a) lib(b)". 4613 4614Mon Jun 7 19:26:51 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4615 4616 * compatMakefile (installdirs): Actually pass directory names. 4617 ($(bindir)/$(instname)): Test chgrp&&chmod exit status with `if'; 4618 if it fails, echo a warning msg, but don't make the rule fail. 4619 4620 * read.c (tilde_expand): New function, broken out of tilde_expand. 4621 (multi_glob): Call it. 4622 (construct_include_path): Expand ~ in directory names. 4623 * dep.h: Declare tilde_expand. 4624 * main.c (enter_command_line_file): Expand ~ at the start of NAME. 4625 (main): Expand ~ in -C args. 4626 * read.c (read_makefile): Expand ~ in FILENAME unless TYPE==2. 4627 4628Fri Jun 4 13:34:47 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4629 4630 * main.c (decode_env_switches): Use xmalloc instead of alloca for ARGS. 4631 4632 * main.c (main): Put result of alloca in temporary variable with 4633 simple assignment, to make SGI compiler happy. 4634 4635Thu Jun 3 20:15:46 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4636 4637 * Version 3.67.3. 4638 4639 * main.c (main): Before re-execing, remove intermediate files, and 4640 print the data base under -p. Sexier debugging message. 4641 4642 * implicit.c (pattern_search): Allocate an extra copy of the name 4643 of a winning intermediate file when putting it in FOUND_FILES. 4644 4645Wed Jun 2 16:38:08 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4646 4647 * read.c (read_makefile): Pass flag (1) to parse_file_seq, not to 4648 multi_glob (which doesn't take a 3rd arg). 4649 4650 * dir.c (dir_contents_file_exists_p): When reading dirents, ignore 4651 chars within D_NAMLEN that are NULs. 4652 4653 * main.c (decode_switches): Don't savestring ARGV[0] to put it 4654 into `other_args'. 4655 For string switch, don't savestring `optarg'. 4656 (main): Don't free elts of makefiles->list that are "-". 4657 Use alloca'd rather than savestring'd storage for elts of 4658 makefiles->list that are temporary file names. 4659 * read.c (read_all_makefiles): Don't free *MAKEFILES. 4660 * file.c (enter_file): Don't strip `./'s. 4661 * main.c (enter_command_line_file): New function. 4662 (main): Use it in place of enter_file for command-line goals from 4663 other_files, and for old_files and new_files. 4664 4665Mon May 31 18:41:40 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4666 4667 * Version 3.67.2. 4668 4669 * compatMakefile (.SUFFIXES): Add .info. 4670 ($(infodir)/$(instname).info): Find make.info* in cwd if there, 4671 else in $srcdir. Use basename to remove dir name from installed name. 4672 4673Thu May 27 17:35:02 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4674 4675 * implicit.c (pattern_search): When interning FOUND_FILES, try 4676 lookup_file first; if found, free the storage for our copy of the name. 4677 4678Wed May 26 14:31:20 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4679 4680 * Version 3.67.1. 4681 4682 * main.c (decode_switches): In usage msg, write `--switch=ARG' or 4683 `--switch[=OPTARG]' rather than `--switch ARG' or `--switch [ARG]'. 4684 4685Mon May 24 16:17:31 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4686 4687 * rule.c (convert_suffix_rule): New function. 4688 (convert_to_pattern): Use it instead of doing all the work here 4689 several times. 4690 For target suffix `.a', generate both the archive magic rule and 4691 the normal rule. 4692 4693 * compatMakefile (distclean): Remove stamp-config. 4694 4695Sat May 22 16:15:18 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4696 4697 * Version 3.67. 4698 4699 * file.c (remove_intermediates): Don't write extra space after `rm'. 4700 4701 * main.c (struct command_switch.type): Remove `usage_and_exit'. 4702 (print_usage_flag): New variable. 4703 (switches: --help): Make type `flag', to set print_usage_flag. 4704 (init_switches): Remove `usage_and_exit' case. 4705 (decode_switches): Likewise. 4706 (decode_switches): Print usage if print_usage_flag is set. 4707 When printing usage, die with status of BAD. 4708 (main): Die with 0 if print_version_flag. 4709 4710Fri May 21 16:09:28 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4711 4712 * Version 3.66. 4713 4714Wed May 19 21:30:44 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4715 4716 * compatMakefile (installdirs): New target. 4717 (install): Depend on it. 4718 4719Sun May 16 20:15:07 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4720 4721 * Version 3.65.2. 4722 4723Fri May 14 16:40:09 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4724 4725 * vpath.c (construct_vpath_list): In removal loop for DIRPATH==0, 4726 set LASTPATH to PATH, not NEXT. 4727 4728 * dir.c (read_dirstream): Break out of loop after incrementing 4729 DS->buckets such that it reaches DIRFILE_BUCKETS; avoid trying to 4730 dereference DS->contents->files[DIRFILE_BUCKETS]. 4731 4732 * read.c (read_makefile): Clear no_targets after reading a 4733 targetful rule line. 4734 4735 * main.c (main): If print_version_flag is set, exit after printing 4736 the version. 4737 (switches): Change --version docstring to say it exits. 4738 4739 * make.h [butterfly]: #undef POSIX. 4740 4741Wed May 12 15:20:21 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 4742 4743 * Version 3.65.1. 4744 4745 * arscan.c (ar_scan) [! AIAMAG]: Don't declare LONG_NAME. 4746 [AIAMAG]: Pass TRUNCATE flag arg to (*FUNCTION), always zero. 4747 4748 * function.c (handle_function): Use fatal instead of 4749 makefile_fatal when reading_filename is nil. 4750 4751 * configure.in: Add AC_GETGROUPS_T. 4752 * job.c (search_path): Use GETGROUPS_T in place of gid_t. 4753 4754Sun May 9 15:41:25 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4755 4756 * Version 3.65. 4757 4758Fri May 7 18:34:56 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4759 4760 * function.c (handle_function): Fatal for unmatched paren. 4761 4762Thu May 6 16:13:41 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4763 4764 * Version 3.64.3. 4765 4766 * commands.c (handling_fatal_signal): New variable. 4767 (fatal_error_signal): Set it. 4768 * job.c (reap_children): Avoid nonreentrant operations if that is set. 4769 * make.h: Declare handling_fatal_signal. 4770 4771 * expand.c (reference_variable): New function, snippet of code 4772 broken out of simple-reference case of variable_expand. 4773 (variable_expand): Use it for simple refs. 4774 (variable_expand): When checking for a computed variable name, 4775 notice a colon that comes before the final CLOSEPAREN. Expand 4776 only up to the colon, and then replace the pending text with a 4777 copy containing the expanded name and fall through to subst ref 4778 handling. 4779 (variable_expand): Don't bother expanding the name if a colon 4780 appears before the first $. 4781 (expand_argument): Use alloca instead of savestring. 4782 (variable_expand): For subst ref, expand both sides of = before 4783 passing to [pat]subst_expand. Use find_percent instead of lindex 4784 to check the lhs for a %. 4785 4786Wed May 5 14:45:52 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4787 4788 * Version 3.64.2. 4789 4790Mon May 3 17:00:32 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4791 4792 * arscan.c (ar_name_equal) [AIAMAG]: Abort if TRUNCATED is nonzero. 4793 4794 * read.c (read_makefile): Pass extra arg of 1 to parse_file_seq, 4795 not to multi_glob. 4796 4797Thu Apr 29 19:47:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4798 4799 * Version 3.64.1. 4800 4801 * arscan.c (ar_scan): New local flag var LONG_NAME. Set it when 4802 we read the member name in any of the fashions that allow it to be 4803 arbitrarily long. Pass its negation to FUNCTION. 4804 (describe_member): Take TRUNCATED from ar_scan and print it. 4805 (ar_name_equal): Take new arg TRUNCATED; if nonzero, compare only 4806 the first sizeof (struct ar_hdr.ar_name) chars. 4807 (ar_member_pos): Take TRUNCATED from ar_scan, pass to ar_name_equal. 4808 * ar.c (ar_member_date_1): Likewise. 4809 4810Wed Apr 28 21:18:22 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4811 4812 * job.c (reap_children): Before calling start_job_command to start 4813 the next command line, reset C->remote by calling start_remote_job_p. 4814 4815Mon Apr 26 15:56:15 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 4816 4817 * arscan.c (ar_scan): New local var NAMEMAP. 4818 In loop, rename NAME to NAMEBUF; new var NAME is a pointer; new 4819 flag IS_NAMEMAP. When extracting the member name, always put a 4820 null at its end first. If the name is "//" or "/ARFILENAMES", set 4821 IS_NAMEMAP. If we have already read in NAMEMAP, and NAME looks 4822 like " /N", get full name from NAMEMAP+N. 4823 Else if NAME looks like "#1/N", read N chars from the 4824 elt data to be the full name. At end of loop, if IS_NAMEMAP, read 4825 the elt's data into alloca'd NAMEMAP. 4826 (ar_name_equal): #if 0 truncating code. 4827 4828 * make.h: Don't declare vfork at all. It returns int anyway, 4829 unless <unistd.h> declared it; and we conflicted with some systems. 4830 4831 * main.c (define_makeflags): If FLAGSTRING[1] is '-', define 4832 MAKEFLAGS to all of FLAGSTRING, not &FLAGSTRING[1]. Don't want to 4833 define it to something like "-no-print-directory". 4834 Use %g format instead of %f for floating-valued things. 4835 4836Thu Apr 22 18:40:58 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4837 4838 * GNUmakefile (Makefile.in): Use a substitution ref on nolib-deps 4839 to change remote-%.dep to remote-stub.dep. 4840 4841Wed Apr 21 15:17:54 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4842 4843 * Version 3.64. 4844 4845Fri Apr 16 14:22:22 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4846 4847 * compatMakefile (install): Remove - prefix from chgrp+chmod. 4848 4849 * Version 3.63.8. 4850 4851Thu Apr 15 18:24:07 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4852 4853 * acconfig.h: New file; contains "#undef SCCS_GET" for autoheader. 4854 * configure.in: If /usr/sccs/get exists, define SCCS_GET to that, 4855 else to "get". 4856 * default.c (default_variables): Set GET to macro SCCS_GET. 4857 4858 * read.c (parse_file_seq): Take extra arg STRIP; strip `./' only 4859 if nonzero. I hope this is the last time this argument is added 4860 or removed. 4861 (read_makefile): Pass it 1 when parsing include file names. 4862 Pass it 1 when parsing target file names. 4863 Pass it 1 when parsing static pattern target pattern names. 4864 * rule.c (install_pattern_rule): Pass it 1 when parsing rule deps. 4865 * default.c (set_default_suffixes): Pass it 1 when parsing 4866 default_suffixes. 4867 * function.c (string_glob): Pass it 0 here. 4868 4869Wed Apr 14 11:32:05 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4870 4871 * misc.c (log_access): New function. 4872 ({init,user,make,child}_access): Call it. 4873 (child_access): Abort if !access_inited. 4874 4875 * main.c (switches: --no-print-directory): Use 1 instead of -1 for 4876 single-letter option. 4877 (init_switches, decode_switches, define_makeflags): An option with 4878 no single-letter version is no longer indicated by a value of -1; 4879 instead a value that is !isalnum. 4880 (init_switches): Don't put such switches into the string, only 4881 into the long_option table. 4882 4883 * make.h [!NSIG] [!_NSIG]: #define NSIG 32. 4884 4885 * job.c [HAVE_WAITPID]: Remove #undef HAVE_UNION_WAIT. AIX's 4886 bsdcc defined WIF* to use union wait. 4887 4888 * main.c (struct command_switch): Change member `c' to type int. 4889 (switches): Make const. 4890 (decode_switches): Use `const struct command_switch *'. 4891 (define_makeflags): Likewise. 4892 4893 * default.c (default_suffix_rules): Add `-o $@' to makeinfo rules. 4894 4895Mon Apr 12 12:30:04 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4896 4897 * Version 3.63.7. 4898 4899 * configure.in (AC_HAVE_HEADERS): Check for string.h and memory.h. 4900 Removed AC_MEMORY_H. 4901 * make.h [USG, NeXT]: Don't test these. 4902 [HAVE_STRING_H]: Test this to include string.h and define ANSI_STRING. 4903 [HAVE_MEMORY_H]: Test this instead of NEED_MEMORY_H. 4904 [! ANSI_STRING]: Put decls of bcopy et al here. 4905 [sparc]: Don't test this for alloca.h; HAVE_ALLOCA_H is sufficient. 4906 [HAVE_SIGSETMASK]: Test this rather than USG. 4907 [__GNU_LIBRARY__ || POSIX]: Don't #include <unistd.h> again. 4908 * main.c (main): Handle SIGCHLD if defined, and SIGCLD if defined. 4909 It doesn't hurt to do both if they are both defined, and testing 4910 USG is useless. 4911 * dir.c: Rationalize directory header conditionals. 4912 * arscan.c [HAVE_FCNTL_H]: Test this rather than USG || POSIX. 4913 4914 * default.c (default_suffixes): Add `.txinfo'. 4915 (default_suffix_rules): Add `.txinfo.info' and `.txinfo.dvi' rules. 4916 4917 * variable.c (try_variable_definition): Replace RECURSIVE flag 4918 with enum FLAVOR, which can be simple, recursive, or append. 4919 Recognize += as append flavor. Set new variable VALUE in a switch 4920 on FLAVOR. For append flavor, prepend the variable's old value. 4921 If the variable was previously defined recursive, set FLAVOR to 4922 recursive; if it was defined simple, expand the new value before 4923 appending it to the old value. Pass RECURSIVE flag to 4924 define_variable iff FLAVOR == recursive. 4925 4926 * variable.c (try_variable_definition): Use alloca and bcopy for 4927 NAME, instead of savestring. Might as well use stack storage 4928 since we free it immediately anyway. 4929 4930Thu Apr 8 18:04:43 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4931 4932 * job.c (start_waiting_jobs): Move decl of JOB outside of loop. 4933 4934 * main.c (define_makeflags): Rename `struct flag' member `switch' 4935 to `cs', which is not a reserved word. 4936 4937Wed Apr 7 15:30:51 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4938 4939 * job.c (new_job): Call start_waiting_jobs first thing. 4940 (start_waiting_job): Changed return type from void to int. 4941 Return 0 when putting the child on the waiting_jobs chain. 4942 (start_waiting_jobs): Don't check load and job_slots here. 4943 Always take a job off the chain and call start_waiting_job on it; 4944 give up and return when start_waiting_job returns zero. 4945 4946 * main.c (define_makeflags: struct flag): Change member `char c' to 4947 `struct command_switch *switch'. 4948 (ADD_FLAG): Set that to CS instead of CS->c. 4949 If CS->c is -1, increment FLAGSLEN for the long name. 4950 When writing out FLAGS, handle FLAGS->switch->c == -1 and write 4951 the long name instead. 4952 4953 * compatMakefile (stamp-config): New target of old config.h rule. 4954 Touch stamp-config after running config.status. 4955 (config.h): Just depend on stamp-config, and have empty commands. 4956 4957Mon Apr 5 20:14:02 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4958 4959 * job.c [HAVE_WAITPID]: #undef HAVE_UNION_WAIT. 4960 4961 * configure.in (AC_HAVE_FUNCS): Check for psignal. 4962 4963Fri Apr 2 17:15:46 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4964 4965 * main.c (long_option_aliases): Remove "new"; it is already an 4966 unambiguous prefix of "new-file". 4967 4968Sun Mar 28 16:57:17 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 4969 4970 * Version 3.63.6. 4971 4972Wed Mar 24 14:26:19 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4973 4974 * vpath.c (selective_vpath_search): When adding the 4975 name-within-directory at the end of NAME, and we don't add a 4976 slash, don't copy FILENAME in one char too far into NAME. 4977 4978 * variable.c (define_automatic_variables): Find default_shell's 4979 length with strlen, not numerology. 4980 4981Wed Mar 17 20:02:27 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 4982 4983 * main.c (define_makeflags): Add the elts of a string option in 4984 reverse order, so they come out right when reversed again. 4985 4986Fri Mar 12 15:38:45 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 4987 4988 * compatMakefile (make.info): Use `-o make.info'. 4989 4990Thu Mar 11 14:13:00 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 4991 4992 * compatMakefile (REMOTE): Set to @REMOTE@; change comments to 4993 reflect new use. 4994 (objs): Replace remote.o with remote-$(REMOTE).o. 4995 (srcs): Replace remote.c with remote-$(REMOTE).c. 4996 (remote.o): Rule removed. 4997 4998 * configure.in (REMOTE): Subst this in Makefile et al; default "stub". 4999 Use AC_WITH to grok --with-customs arg to set REMOTE=cstms. 5000 * GNUmakefile (build.sh.in): Filter out remote-% from objs list. 5001 * build.template (REMOTE): New var; set to @REMOTE@. 5002 (objs): Add remote-${REMOTE}.o. 5003 5004Wed Mar 10 15:12:24 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5005 5006 * Version 3.63.5. 5007 5008 * implicit.c (pattern_search): Fix "dependent"->"dependency" in 5009 "Rejecting impossible" -d msg. 5010 5011 * file.c (file_hash_enter): New local vars {OLD,NEW}BUCKET. Store 5012 mod'd values there; never mod {OLD,NEW}HASH. 5013 5014Mon Mar 8 13:32:48 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5015 5016 * remake.c [eta10]: Include <fcntl.h> instead of <sys/file.h>. 5017 5018 * compatMakefile (VPATH): Set this to @srcdir@. 5019 (srcdir): Set this to $(VPATH). 5020 5021 * main.c (main): New local var DIRECTORY_BEFORE_CHDIR. Save in it 5022 a copy of CURRENT_DIRECTORY after the first getcwd. Use it 5023 instead of CURRENT_DIRECTORY when chdir'ing back before re-execing. 5024 5025 * remake.c (notice_finished_file): Pass missing SEARCH arg to f_mtime. 5026 5027 * read.c (read_makefile): Remove extraneous arg to parse_file_seq. 5028 5029Mon Feb 22 14:19:38 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5030 5031 * compatMakefile ($(infodir)/$(instname).info): Use , instead of / 5032 as the sed delimiter char. 5033 5034Sun Feb 21 14:11:04 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5035 5036 * Version 3.63.4. 5037 5038 * rule.h (struct rule): Removed `subdir' member. 5039 * rule.c (new_pattern_rule): No need to clear it. 5040 (count_implicit_rule_limits): Set the `changed' flag in each dep 5041 that refers to a nonexistent directory. No longer set rule-global 5042 `subdir' flag with that information. 5043 (print_rule_data_base): Don't record info on `subdir' flags. 5044 5045 * implicit.c (pattern_search): Check the DEP->changed flag rather 5046 than the (now gone) RULE->subdir flag. Also test CHECK_LASTSLASH; 5047 if it is set, the file might exist even though the DEP->changed 5048 flag is set. 5049 5050 * rule.c (count_implicit_rule_limits): Pass "", not ".", as file 5051 name arg to dir_file_exists_p to check for existence of directory. 5052 5053 * implicit.c (pattern_search): Inside dep-finding loop, set 5054 CHECK_LASTSLASH from the value recorded in CHECKED_LASTSLASH[I], 5055 rather than computing it anew. 5056 5057 * commands.c (set_file_variables): Must alloca space for PERCENT 5058 and copy it, to avoid leaving the trailing `)' in the value. 5059 5060 * misc.c (remove_comments): Fixed backslash-checking loop 5061 condition to allow it to look at the first char on the line. 5062 P2 >= LINE, not P2 > LINE. 5063 5064 * compatMakefile ($(bindir)/$(instname)): Before moving $@.new to 5065 $@, rm $@.old and mv $@ to $@.old. 5066 5067 * variable.c (try_variable_definition): Take new args FILENAME and 5068 LINENO. Fatal if the variable name is empty. 5069 * read.c (read_makefile): Change callers. 5070 * main.c (main): Likewise. 5071 5072 * compatMakefile (group): Define to @KMEM_GROUP@, autoconf magic 5073 that configure will replace with the group owning /dev/kmem. 5074 5075Mon Feb 8 14:26:43 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5076 5077 * vpath.c (vpath_search): Take second arg MTIME_PTR, pass thru to 5078 selective_vpath_search. 5079 (selective_vpath_search): Take second arg MTIME_PTR. 5080 If the dir cache thinks a file exists, stat it to make sure, and 5081 put the modtime in *MTIME_PTR. 5082 * remake.c (library_search): Take second arg MTIME_PTR. 5083 When we find a match, record its mtime there. 5084 Pass MTIME_PTR through to vpath_search to do same. 5085 (f_mtime): Pass &MTIME as new 2nd arg to {vpath,library}_search; 5086 store it in FILE->last_mtime if set nonzero. 5087 * implicit.c (pattern_search): Pass nil 2nd arg to vpath_search. 5088 5089 * compatMakefile (remote.o): Prepend `$(srcdir)/' to `remote-*.c', 5090 so globbing looks somewhere it will find things. 5091 5092 * compatMakefile ($(infodir)/$(instname).info): Install `make.info*' 5093 not `$(srcdir)/make.info*'; no need to use basename. 5094 5095Fri Feb 5 12:52:43 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5096 5097 * Version 3.63.3. 5098 5099 * compatMakefile (install): Add missing ;\s. 5100 5101 Make -, @, and + prefixes on a pre-expanded command line affect 5102 all lines in the expansion, not just the first. 5103 * commands.h (struct commands): Replace `lines_recurse' member 5104 with `lines_flags'. 5105 (COMMANDS_{RECURSE,SILENT,NOERROR}): New macros, bits to set in 5106 that flag byte. 5107 * commands.c (chop_commands): Set `lines_flags' instead of 5108 `lines_recurse'. Record not only + but also @ and - prefixes. 5109 * remake.c (notice_finished_file): Check the COMMANDS_RECURSE bit 5110 in FILE->cmds->lines_flags, rather than FILE->cmds->lines_recurse. 5111 * job.c (start_job_command): Replaced RECURSIVE and NOPRINT local 5112 var with FLAGS; initialize it to the appropriate `lines_flags' byte. 5113 Set CHILD->noerror if the COMMANDS_NOERROR bit is set in FLAGS. 5114 Set the COMMANDS_SILENT bit in FLAGS for a @ prefix. 5115 5116 * remake.c (update_goal_chain): Set G->file to its prev after 5117 checking for G being finished, since that check needs to examine 5118 G->file. 5119 5120 * configure.in (union wait check) [HAVE_WAITPID]: Try using 5121 waitpid with a `union wait' STATUS arg. If waitpid and union wait 5122 don't work together, we should not use union wait. 5123 5124 * Version 3.63.2. 5125 5126 * remake.c (update_goal_chain): When G->file->updated, move 5127 G->file to its prev. We aren't finished until G->file is nil. 5128 5129Thu Feb 4 12:53:04 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5130 5131 * main.c (starting_directory): New global variable. 5132 (main): Set it to cwd after doing -Cs. 5133 (log_working_directory): Use it, rather than computing each time. 5134 * make.h: Declare it. 5135 5136 * compatMakefile (SHELL): Define to /bin/sh for losing Unix makes. 5137 5138 * main.c (decode_env_switches): Allocate (1 + LEN + 1) words for 5139 ARGV, rather than LEN words plus one byte. 5140 5141Wed Feb 3 18:13:52 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5142 5143 * compatMakefile ($(bindir)/$(instname)): Put - before 5144 install_setgid command line, so its failure won't be an error. 5145 (infodir): New variable. 5146 (install): Depend on $(infodir)/$(instname).info. 5147 ($(infodir)/$(instname).info): New target. 5148 5149 * read.c (read_makefile): If FILENAMES is nil when we see a line 5150 starting with a tab, don't treat it as a command. Just fall 5151 through, rather than giving an error. 5152 5153 * read.c (read_makefile): If the NO_TARGETS flag is set when we see a 5154 command line, don't clear it before continuing. We want 5155 subsequent command lines to be ignored as well. 5156 5157 * job.c (new_job): Before expanding each command line, collapse 5158 backslash-newline combinations that are inside var or fn references. 5159 5160Mon Feb 1 16:00:13 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5161 5162 * compatMakefile (exec_prefix): Default to $(prefix), not /usr/local. 5163 5164 * compatMakefile (make.info): Pass -I$(srcdir) to makeinfo. 5165 5166 * job.c [POSIX] (unblock_sigs): Made global. 5167 [!POSIX] (unblock_sigs): Move defns to job.h. 5168 * job.h [POSIX] (unblock_sigs): Declare. 5169 5170Sun Jan 31 19:11:05 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5171 5172 * read.c (read_makefile): In vpath parsing, after finding the 5173 pattern token, take entire rest of line as the search path, not 5174 just the next token. 5175 5176 * compatMakefile (remote.o): Depend on remote-*.c. 5177 5178Thu Jan 28 16:40:29 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5179 5180 * commands.c (set_file_variables): Don't define any F or D versions. 5181 * variable.c (define_automatic_variables): Define them here as 5182 recursively-expanded variables that use the dir and notdir funcs. 5183 5184 * variable.c (target_environment): In v_default case, don't export 5185 o_default or o_automatic variables. 5186 5187 * configure.in (union wait check): Remove ` and ' inside C code; 5188 they confuse the shell script. 5189 5190Mon Jan 25 13:10:42 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5191 5192 * Version 3.63.1. 5193 5194 * vpath.c (construct_vpath_list): When skipping further processing 5195 of an elt that is ".", don't also skip the code that pushes P past 5196 the next separator. 5197 5198 * compatMakefile (distclean): Don't remove make-*. 5199 5200 * configure.in (HAVE_UNION_WAIT): Try to use WEXITSTATUS if it's 5201 defined. If one cannot use WEXITSTATUS with a `union wait' 5202 argument, we don't want to believe the system has `union wait' at all. 5203 5204 * remake.c (update_file): Do nothing to print "up to date" msgs. 5205 (update_goal_chain): Do it here instead. 5206 Use the `changed' flag of each goal's `struct dep' to keep track 5207 of whether files_remade (now commands_started) changed around a 5208 call to update_file for that goal. 5209 When a goal is finished, and its file's update_status is zero (i.e., 5210 success or nothing done), test the `changed' flag and give an "up 5211 to date" msg iff it is clear. 5212 * make.h (files_remade): Renamed to commands_started. 5213 * remake.c: Changed defn. 5214 (update_goal_chain): Changed uses. 5215 * job.c (start_job_command): Increment commands_started here. 5216 (reap_children): Not here. 5217 5218 * remake.c (update_goal_chain): Don't do anything with files' 5219 `prev' members. update_file now completely handles this. 5220 5221 * variable.c (target_environment): Don't expand recursive 5222 variables if they came from the environment. 5223 5224 * main.c (define_makeflags): For flags with omitted optional args, 5225 store {"", 0} with ADD_FLAG. When constructing FLAGSTRING, a flag 5226 so stored cannot have more flags appended to the same word. 5227 5228Fri Jan 22 14:46:16 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5229 5230 * variable.c (print_variable_set): In vars/bucket calculation, 5231 don't spuriously multiply by 100. 5232 5233 * Version 3.63. 5234 5235 * job.c [!HAVE_UNION_WAIT] (WTERMSIG, WCOREDUMP, WEXITSTATUS): 5236 Don't define if already defined. 5237 5238 * remake.c (update_file): Don't keep track of the command_state before 5239 calling update_file_1. Remove local variable COMMANDS_FINISHED, 5240 and don't test it to decide to print the "is up to date" msg. 5241 Testing for files_remade having changed should always be sufficient. 5242 The old method lost when we are called in the goal chain run on a 5243 makefile, because the makefile's command_state is already 5244 `cs_finished' from the makefile chain run. 5245 5246 * misc.c [HAVE_SETRE[GU]ID]: Test these to decl setre[gu]id. 5247 5248 * configure.in: Rewrote wait checking. 5249 Use AC_HAVE_HEADERS to check for <sys/wait.h>. 5250 Use AC_HAVE_FUNCS to check for waitpid and wait3. 5251 Use a compile check to test just for `union wait'. 5252 * job.c: Rewrote conditionals accordingly. 5253 [HAVE_WAITPID]: Test this only to define WAIT_NOHANG. 5254 [HAVE_WAIT3]: Likewise. 5255 [HAVE_UNION_WAIT]: Test this to define WAIT_T and W*. 5256 5257 * configure.in: Set CFLAGS and LDFLAGS before all checks. 5258 5259 * dir.c: Add static forward decls of {open,read}_dirstream. 5260 5261Thu Jan 21 17:18:00 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5262 5263 * Version 3.62.31. 5264 5265 * job.c [NGROUPS_MAX && NGROUPS_MAX==0]: #undef NGROUPS_MAX. 5266 5267 * compatMakefile (CFLAGS, LDFLAGS): Set to @CFLAGS@/@LDFLAGS@. 5268 * build.template (CFLAGS, LDFLAGS): Same here. 5269 * configure.in: AC_SUBST(CFLAGS) and LDFLAGS. 5270 Set them to -g if not defined in the environment. 5271 5272 * remake.c (library_search): Use LIBNAME consistently, setting it 5273 only once, to be the passed name sans `-l'. 5274 Pass new var FILE to be modified by vpath_search. 5275 5276Mon Jan 18 14:53:54 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5277 5278 * Version 3.62.30. 5279 5280 * job.c (start_waiting_jobs): Return when job_slots_used is equal to 5281 job_slots. 5282 5283 * configure.in: Add AC_CONST for the sake of getopt. 5284 5285 * read.c (read_makefile): Continue after parsing `override' 5286 directive, rather than falling through to lossage. 5287 Check for EOL or blank after "override define". 5288 5289 * compatMakefile (.c.o, remote.o): Put $(CFLAGS) after other switches. 5290 5291Fri Jan 15 12:52:52 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5292 5293 * Version 3.62.29. 5294 5295 * main.c (define_makeflags): After writing everything into 5296 FLAGSTRING, only back up two chars if [-1] is a dash, meaning we 5297 just wrote " -". Always terminate the string at *P. 5298 5299 * remake.c (library_search): When constructing names in std dirs, 5300 use &(*LIB)[2] for the stem, not LIBNAME (which points at the 5301 buffer we are writing into!). 5302 5303Thu Jan 14 13:50:06 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5304 5305 * read.c (read_makefile): Set IN_IGNORED_DEFINE for "override 5306 define" when IGNORING is true. 5307 5308 * compatMakefile (distclean): Remove config.status and build.sh. 5309 5310Wed Jan 13 16:01:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5311 5312 * Version 3.62.28. 5313 5314 * misc.c (xmalloc, xrealloc): Cast result of malloc/realloc to 5315 (char *). 5316 5317 * arscan.c (ar_scan) [AIAMAG]: Cast read arg to (char *). 5318 5319 * variable.c (define_automatic_variables): Override SHELL value for 5320 origin o_env_override as well as o_env. 5321 5322 * GNUmakefile (build.sh.in): Don't replace %globobjs%. Instead, 5323 add the names of the glob objects (w/subdir) to %objs%. 5324 * build.template (globobjs): Removed. 5325 Take basename of $objs before linking. 5326 5327Tue Jan 12 12:31:06 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5328 5329 * Version 3.62.27. 5330 5331 * configure.in (AC_OUTPUT): Also edit build.sh. 5332 * build.template: New file. 5333 * GNUmakefile (build.sh.in): New rule to create it from build.template. 5334 (make-$(version).tar.Z): Depend on build.sh.in. 5335 5336 * main.c (die): Call print_data_base if -p. 5337 (main): Don't call it here. 5338 5339 * compatMakefile (defines): Add @DEFS@. configure should turn this 5340 into -DHAVE_CONFIG_H. 5341 5342Mon Jan 11 14:39:23 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5343 5344 * Version 3.62.26. 5345 5346 * misc.c (init_access): Surround with #ifdef GETLOADAVG_PRIVILEGED. 5347 ({make,user,child}_access) [! GETLOADAVG_PRIVILEGED]: Make no-op. 5348 * compatMakefile (install_setgid): New var, set by configure. 5349 (install): Install setgid $(group) only if $(install_setgid) is true. 5350 5351Fri Jan 8 15:31:55 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5352 5353 * job.c (load_too_high): If getloadavg fails with errno==0, give a 5354 message saying that load limits are not supported. 5355 5356 * vpath.c (construct_vpath_list): Rewrote path deletion code to 5357 not try to use PATH's next link after freeing PATH. 5358 5359 * main.c (define_makeflags): Rewritten; now handles string-valued 5360 option, and has no arbitrary limits. 5361 (switches): Set `toenv' flag for -I and -v. 5362 5363 * main.c (decode_env_switches): Cast return value of alloca to char *. 5364 5365 * misc.c (child_access) [HAVE_SETREUID, HAVE_SETREGID]: Use 5366 setre[gu]id in place of set[gu]id. 5367 5368Wed Jan 6 15:06:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5369 5370 * main.c (main): Define MAKEOVERRIDES, MAKE, and MAKE_COMMAND with 5371 origin o_default. 5372 5373 * make.h [POSIX]: Don't test this to use ANSI_STRING. 5374 Testing STDC_HEADERS should be sufficient. 5375 5376 * job.h: Declare start_waiting_jobs. 5377 5378 * read.c (read_makefile): Add missing parens in if stmt that find 5379 conditional directives. 5380 5381 * main.c (main): Declare init_dir. 5382 * implicit.c (pattern_search): Always use two % specs in a 5383 DEBUGP2, and always pass two non-nil args. 5384 Cast field width args to int. 5385 Add missing parens in !RULE->subdir if stmt. 5386 * function.c (expand_function, patsubst_expand): Add parens around 5387 assignments inside `while' stmts. 5388 * commands.c (print_commands): Cast field width args to int. 5389 5390 * read.c (do_define): Cast return value of alloca to (char *). 5391 5392 * main.c (init_switches): New function, broken out of decode_switches. 5393 (decode_switches): Take new arg ENV. If set, ignore non-option 5394 args; print no error msgs; ignore options with clear `env' flags. 5395 (decode_env_switches): Rewritten to chop envar value into words 5396 and pass them to decode_switches. 5397 (switches): Set `env' flag for -I and -v. 5398 5399 * dir.c (init_dir): Cast free to __glob_closedir_hook's type. 5400 5401Tue Jan 5 14:52:15 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5402 5403 * Version 3.62.25. 5404 5405 * job.c [HAVE_SYS_WAIT || !USG]: Don't #include <sys/time.h> and 5406 <sys/resource.h>. <sys/time.h> interacts badly with <time.h>, and 5407 we don't need these anyway. 5408 5409 * configure.in (AC_HAVE_FUNCS): Check for setre[gu]id. 5410 * misc.c ({user,make}_access): Test #ifndef HAVE_SETRE[GU]ID, not 5411 #ifdef POSIX || USG. SunOS 4.1 is supposedly POSIX.1 compliant, 5412 but its set[gu]id functions aren't; its setre[gu]id functions work. 5413 5414 * misc.c ({user,make,child}_access): Give name of caller in error msgs. 5415 5416 * job.c (load_too_high): Say "cannot enforce load limit" in error msg. 5417 5418 * configure.in: Call AC_PROG_CC. 5419 * compatMakefile (CC): Define to @CC@ (autoconf magic). 5420 5421 * compatMakefile: Add .NOEXPORT magic target. 5422 5423Mon Jan 4 17:00:03 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5424 5425 * main.c (print_version): Updated copyright to include 93. 5426 5427Thu Dec 31 12:26:15 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5428 5429 * make.h [_AIX]: Don't declare alloca. 5430 5431Tue Dec 29 13:45:13 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5432 5433 * Version 3.62.24. 5434 5435 * compatMakefile (objs): Add signame.o. 5436 (srcs): Add signame.[ch]. 5437 5438 * compatMakefile (srcs): Add config.h.in. 5439 (remote.o): Add -I. before -I$(srcdir). 5440 5441Mon Dec 28 15:51:26 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5442 5443 * Version 3.62.23. 5444 5445 * read.c (readline): Fatal when LEN==0, indicating a line starting 5446 with a NUL. 5447 (readline): Take new arg LINENO, for use in error msg. 5448 (read_makefile, do_define): Pass it. 5449 5450 * compatMakefile (glob/libglob.a): Pass -DHAVE_CONFIG_H in CPPFLAGS. 5451 (.c.o): Add -I. before -I$(srcdir). 5452 5453Wed Dec 23 12:12:04 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5454 5455 * read.c (read_makefile): Accept and ignore a rule with no targets. 5456 5457 * compatMakefile (ALLOCA_SRC): New variable. 5458 (srcs): Include its value. 5459 5460 * read.c (struct conditional): Renamed member `max_ignoring' to 5461 `allocated'; added new member `seen_else'. 5462 (conditional_line): Initialize seen_else flag when starting an `if...'; 5463 set it when we see an `else'; fatal if set when we see `else'. 5464 (read_makefile): Fatal "missing `endif'" if there are any pending 5465 conditionals, not just if we are still ignoring. 5466 5467Tue Dec 22 15:36:28 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5468 5469 * compatMakefile (manext): Set to 1, not l. 5470 ($(mandir)/$(instname).$(manext)): Use $(srcdir) for make.man in cmds. 5471 5472 * file.c (file_hash_enter): Don't call uniquize_deps here. 5473 * read.c (record_files): Likewise. 5474 * implicit.c (pattern_search): Likewise. 5475 * commands.c (set_file_variables): Call it only here. 5476 5477 * default.c (default_variables) [__convex__]: FC=fc. 5478 5479 * variable.c (target_environment): Expand the values of recursively 5480 expanded variables when putting them into the environment. 5481 * expand.c (recursively_expand): Made global. 5482 * make.h (recursively_expand): Declare it. 5483 5484 * remake.c (check_dep): Set FILE->command_state to cs_deps_running 5485 when a dep's command_state is cs_running or cs_deps_running. 5486 5487 * read.c (read_makefile): Changed error msg for spurious cmds to 5488 not say "first target". 5489 5490Sun Dec 20 17:56:09 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 5491 5492 * configure.in: Do AC_CONFIG_HEADER right after AC_INIT. 5493 * make.h (HAVE_CONFIG_H): #include "config.h", then #define this. 5494 * compatMakefile (config.h, configure, config.h.in): New rules. 5495 (defines): Removed @DEFS@. 5496 5497Thu Dec 17 16:11:40 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5498 5499 * compatMakefile (realclean): Just depend on distclean; no cmds. 5500 (distclean): Do what realclean did before; also remove Makefile and 5501 config.h; don't remove configure. 5502 (info, dvi): New targets; depend on make.{info,dvi}. 5503 (doc): Removed target. 5504 (MAKEINFO, TEXI2DVI): New vars. 5505 (make.info, make.dvi): Use them instead of explicit cmds. 5506 5507Wed Dec 16 16:25:24 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5508 5509 * configure.in: Added fcntl.h to AC_HAVE_HEADERS. getloadavg cares. 5510 5511Wed Dec 9 15:21:01 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5512 5513 * main.c (long_option_aliases): Add --new-file alias for -W. 5514 5515 * default.c (default_variables): Change all C++ to CXX and C++FLAGS 5516 to CXXFLAGS. 5517 5518 * read.c (do_define): Expand the variable name before using it. 5519 5520 * main.c (main): Define variable "MAKE_COMMAND" to argv[0]; 5521 define "MAKE=$(MAKE_COMMAND) $(MAKEOVERRIDES)" always. 5522 5523 * remake.c (library_search): Search for libNAME.a in cwd; look in 5524 vpath before looking in standard dirs, not after. 5525 Changed order of std dirs to: /lib, /usr/lib, ${prefix}/lib. 5526 5527Mon Nov 23 14:57:34 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5528 5529 * default.c (default_pattern_rules, default_terminal_rules): Added 5530 brackets around initializers. 5531 5532 * variable.c (try_variable_definition): Don't check for LINE[0]=='\t'. 5533 (try_variable_definition): Expand the name before defining the var. 5534 5535 * job.c (init_siglist): Removed function. 5536 Removed decl of `sys_siglist'. 5537 * make.h [! HAVE_SYS_SIGLIST]: #include "signame.h". 5538 [HAVE_SYS_SIGLIST && !SYS_SIGLIST_DECLARED]: Declare sys_siglist 5539 only under these conditions. 5540 * main.c (main): Don't declare init_siglist. 5541 (main) [! HAVE_SYS_SIGLIST]: Call signame_init instead of init_siglist. 5542 5543Wed Nov 18 14:52:51 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5544 5545 * read.c (record_files): Don't try to append to FIRSTDEPS if it's 5546 nil; instead just set it to MOREDEPS. 5547 5548Mon Nov 16 17:49:17 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5549 5550 * vpath.c (construct_vpath_list): Initialize P to DIRPATH before 5551 loop that sets MAXELEM. 5552 5553Fri Nov 13 18:23:18 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5554 5555 * Version 3.62.22. 5556 5557Thu Nov 12 15:45:31 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5558 5559 * job.c (start_job_command): Under -n, increment files_remade after 5560 processing (i.e., printing) all command lines. 5561 5562Tue Nov 10 15:33:53 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5563 5564 * read.c (record_files): Append new deps if this rule has no 5565 commands; prepend them to existing deps if this rule has no commands. 5566 5567 * dir.c (open_dirstream): Return nil if DIR->contents->files is nil. 5568 5569 * read.c (parse_file_seq): Removed last arg STRIP. Always strip `./'s. 5570 (read_makefile): Changed callers. 5571 * function.c (string_glob): Likewise. 5572 * rule.c (install_pattern_rule): Likewise. 5573 5574Mon Nov 9 17:50:16 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5575 5576 * remake.c (files_remade): Made global. 5577 (notice_finished_file): Don't increment files_remade here; this 5578 function gets called in many situations where no remaking was in 5579 fact done. 5580 * job.c (reap_children): Do it here instead, when we know that 5581 actual commands have been run for the file. 5582 * make.h (files_remade): Declare it. 5583 5584Thu Nov 5 18:26:10 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5585 5586 * vpath.c (construct_vpath_list): Allow blanks as well as colons to 5587 separate elts in the search path. 5588 5589 * read.c (read_makefile): Don't fatal on extra tokens in `vpath'. 5590 The search path can contain spaces now. 5591 5592Tue Nov 3 20:44:32 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5593 5594 * compatMakefile (check): New target; no-op. 5595 5596 * file.c (file_hash_enter): Mod OLDHASH by FILE_BUCKETS after 5597 testing for OLDHASH==0 but before using the value. 5598 (rename_file): Don't mod OLDHASH by FILE_BUCKETS before passing it 5599 to file_hash_enter. 5600 5601 * file.c (rename_file): Notice when OLDFILE->cmds came from 5602 default.c, and don't try to print ->filename in that case. 5603 5604Sun Oct 25 01:48:23 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5605 5606 * remake.c (update_file): Don't process F->also_make here. 5607 (notice_finished_file): Don't process FILE->also_make if no attempt 5608 to update FILE was actually made. 5609 Fixed to call f_mtime directly to refresh their modtimes. 5610 5611Sat Oct 24 22:08:59 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5612 5613 * read.c (find_percent): Don't increment P again after skipping 5614 an escaped %. 5615 5616 * expand.c (variable_expand): In call to patsubst_expand, don't 5617 find `%'s ourselves; let that function do it. 5618 5619 * read.c (read_makefile: record_waiting_files): Don't call 5620 record_files if FILENAMES is nil. 5621 (read_makefile): All alternatives in the parsing, except for rule 5622 lines, fall through to the end of the loop. At the end of the 5623 loop, do record_waiting_files so we notice later spurious cmds. 5624 5625Fri Oct 23 15:57:37 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5626 5627 * variable.c (define_automatic_variables): Free old value of SHELL 5628 before replacing it. 5629 5630Thu Oct 15 18:57:56 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5631 5632 * compatMakefile (.c.o): Add -I$(srcdir)/glob to flags. 5633 5634 * dir.c (open_dirstream): Cast return value to __ptr_t. 5635 5636 * default.c (default_variables: "GET") [_IBMR2]: Use USG defn. 5637 5638 * make.h (MAXPATHLEN): Moved out of #ifndef POSIX. 5639 (GET_PATH_MAX): Moved from #ifdef POSIX to #ifdef PATH_MAX #else. 5640 Define as (get_path_max ()). 5641 [! PATH_MAX] (NEED_GET_PATH_MAX): Define. 5642 [! PATH_MAX] (get_path_max): Declare fn. 5643 * misc.c [NEED_GET_PATH_MAX] (get_path_max): New function. 5644 5645Mon Oct 12 13:34:45 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5646 5647 * Version 3.62.21. 5648 5649 * job.c (sys_siglist): Only declare #ifndef SYS_SIGLIST_DECLARED. 5650 * make.h [! HAVE_SYS_SIGLIST && HAVE__SYS_SIGLIST]: #define 5651 SYS_SIGLIST_DECLARED. 5652 5653 * dir.c (file_impossible): When initializing DIR->contents, set 5654 DIR->contents->dirstream to nil. 5655 5656 * compatMakefile (GLOB): Define new variable. 5657 (objs): Use it, rather than glob/libglob.a explicitly. 5658 5659 * read.c (parse_file_seq): When stripping "./", handle cases like 5660 ".///foo" and "./////". 5661 * file.c (lookup_file, enter_file): Likewise. 5662 5663Sun Oct 11 17:00:35 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5664 5665 * dir.c (struct dirstream, {open,read}_dirstream): New 5666 data type and functions to read a directory sequentially. 5667 (init_dir): New function to hook it into glob. 5668 * main.c (main): Call init_dir. 5669 5670 * compatMakefile (objs): Added glob/libglob.a. 5671 * configure.in: Remove code to test for glob. 5672 5673Fri Oct 9 12:08:30 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5674 5675 * read.c (record_files): Generalized test for NAME pointing 5676 somewhere into F->name. 5677 5678 * variable.c (define_variable_in_set): Free old value when replacing. 5679 5680 * read.c (do_define): Free the linebuffer before returning. 5681 (record_files): When clearing .SUFFIXES deps, free their data. 5682 (multi_glob): Free OLD and its data when replacing it with results 5683 of glob run. 5684 5685 * commands.c (set_file_variables): Use alloca in place of xmalloc 5686 for temp space for $^, $?, et al. 5687 5688 * dir.c (struct directory): New member `contents' replaces `files' 5689 and `dirstream'. 5690 (struct directory_contents): New type. 5691 (directories_contents): New hash table. 5692 (dir_struct_file_exists_p): Take a struct directory_contents. 5693 (dir_file_exists_p): Pass it the `contents' member of the dir found. 5694 (dir_struct_file_exists_p): Renamed to dir_contents_file_exists_p; 5695 made static. Return 0 if DIR is nil (meaning it couldn't be stat'd). 5696 (dir_file_exists_p, find_directory): Change all callers. 5697 (file_impossible): Use DIR->contents, initializing it if nil. 5698 (print_dir_data_base): Use DIR->contents, and print out device and 5699 inode numbers with each directory. 5700 5701 * Changes for performance win from John Gilmore <gnu@cygnus.com>: 5702 * dir.c (DIRECTORY_BUCKETS): Increase to 199. 5703 (DIRFILE_BUCKETS): Decrease to 107. 5704 (find_directory): Allocate and zero a multiple of 5705 sizeof (struct dirfile *), not of sizeof (struct dirfile). 5706 (dir_struct_file_exists_p): New function, nearly all code from 5707 dir_file_exists_p. 5708 (dir_file_exists_p): Just call find_directory+dir_struct_file_exists_p. 5709 * vpath.c (selective_vpath_search): Remove redundant 5710 dir_file_exists_p call. 5711 5712 * configure.in: Comment out glob check; always use our code. 5713 5714Fri Oct 2 19:41:20 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5715 5716 * make.h [! HAVE_SYS_SIGLIST && HAVE__SYS_SIGLIST]: #define 5717 HAVE_SYS_SIGLIST; after doing #define sys_siglist _sys_siglist, we 5718 do have it. 5719 5720Wed Sep 30 19:21:01 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5721 5722 * main.c (main): Don't do -w automatically if -s. 5723 5724Tue Sep 29 21:07:55 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5725 5726 * main.c (printed_version): Move variable inside print_version. 5727 (print_version): Return immediately if printed_version is set. 5728 (die): Don't test printed_version here. 5729 (decode_switches): Under -v, do print_version before giving usage. 5730 (DESCRIPTION_COLUMN): New macro. 5731 (decode_switches): Use it when printing the usage message. 5732 Leave at least two spaces between options and their descriptions. 5733 5734Fri Sep 25 13:12:42 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5735 5736 * Version 3.62.20. 5737 5738Wed Sep 16 16:15:22 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5739 5740 * read.c (read_makefile): Save errno value from trying to open 5741 FILENAME, and restore it before erring; otherwise we get the errno 5742 value from the last elt of the search path. 5743 5744Tue Sep 15 15:12:47 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5745 5746 * main.c (long_option_aliases): Add --stop for -S. 5747 5748 * read.c (word1eq): Do strncmp before dereferencing someplace that 5749 may be out in space. 5750 5751Wed Sep 9 15:50:41 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5752 5753 * remake.c (notice_finished_file): If all the command lines were 5754 recursive, don't do the touching. 5755 5756 * job.c (start_job_command): Don't check for + here. 5757 * commands.c (chop_commands): Do it here instead. 5758 5759 * default.c (default_terminal_rules): Prepend + to cmds for RCS. 5760 5761Wed Sep 2 17:53:08 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5762 5763 * compatMakefile (objs): Include $(ALLOCA). 5764 5765 * make.h [CRAY]: Move #define signal bsdsignal to before #includes. 5766 5767Thu Aug 27 17:45:43 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 5768 5769 * read.c (default_include_directories): Add INCLUDEDIR first. 5770 * compatMakefile (includedir): Define. 5771 (defines): Add -D for INCLUDEDIR="$(includedir)". 5772 5773 * read.c (read_makefile): Grok multiple files in `include'; 5774 globbing too. 5775 5776 * remake.c (library_search): New function. 5777 (library_file_mtime): Remove function. 5778 (f_mtime): Use library_search instead of library_file_mtime. 5779 * compatMakefile (libdir): Define. 5780 (defines): Add -D for LIBDIR="$(libdir)". 5781 * make.texinfo (Libraries/Search): Document change. 5782 5783 * file.c (rename_file): Fix file_hash_enter call with missing arg. 5784 5785Wed Aug 26 17:10:46 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5786 5787 * Version 3.62.19. 5788 5789 * main.c (main): Set command_state to cs_finished for temp files 5790 made for stdin makefiles. 5791 5792 * main.c (decode_switches): Don't tell getopt to return non-option 5793 args in order. 5794 Ignore an argument of `-'. 5795 5796Thu Aug 20 13:36:04 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5797 5798 * job.c (start_job_command): If (touch_flag && !RECURSIVE), ignore 5799 the command line and go to the next. 5800 (notice_finished_file): Under -t, touch FILE. 5801 * remake.c (remake_file): Don't touch it here. 5802 5803Wed Aug 19 16:06:09 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5804 5805 * function.c (pattern_matches): Use temporary for strlen (WORD) 5806 instead of two function calls. 5807 5808 * compatMakefile (LOAD_AVG): Remove variable and comments. 5809 5810Tue Aug 18 14:58:58 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5811 5812 * make.texinfo (Running): Node renamed to `make Invocation'. 5813 5814Fri Aug 14 12:27:10 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5815 5816 * arscan.c (ar_name_equal): Don't compare [MAX-3..MAX] if 5817 NAMELEN != MEMLEN. 5818 5819Thu Aug 13 17:50:09 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5820 5821 * Version 3.62.18. 5822 5823 * main.c: Don't #include <time.h>; make.h already does. 5824 5825Mon Aug 10 17:03:01 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5826 5827 * implicit.c (pattern_search): Fixed copying of suffix when building 5828 also_make elts. 5829 5830 * function.c (expand_function: `shell'): Make sure BUFFER is 5831 null-terminated before replacing newlines. 5832 5833 * compatMakefile (mandir): Use man$(manext), not always manl. 5834 5835Sun Aug 2 01:42:50 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5836 5837 * rule.c (new_pattern_rule): Not static. 5838 * rule.h: Declare it. 5839 5840 * file.c (file_hash_enter): New function, most code from rename_file. 5841 (rename_file): Call it. 5842 * file.h (file_hash_enter): Declare it. 5843 5844 * dep.h: Doc fix. 5845 5846Thu Jul 30 15:40:48 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5847 5848 * main.c (decode_switches): Handle usage_and_exit when building 5849 long options vector. 5850 5851 * default.c (default_terminal_rules): Make RCS rules use $(CHECKOUT,v). 5852 (default_variables): Define CHECKOUT,v (hairy). 5853 5854 * make.h [!HAVE_SYS_SIGLIST && HAVE__SYS_SIGLIST]: #define 5855 sys_siglist to _sys_siglist. 5856 5857Sun Jul 26 16:56:32 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5858 5859 * NEWS: Add header and tail copyright info like Emacs NEWS. 5860 5861 * make.h [ANSI_STRING]: Don't #define index, rindex, bcmp, bzero, 5862 bcopy if already #define'd. 5863 [STDC_HEADERS] (qsort, abort, exit): Declare here. 5864 [! __GNU_LIBRARY__ && !POSIX]: Not here. 5865 5866 * make.h [_AIX]: #pragma alloca first thing. 5867 5868 * job.c (start_waiting_job): Set the command_state to cs_running 5869 when we queue a job on waiting_jobs. 5870 5871Fri Jul 24 02:16:28 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5872 5873 * variable.c (define_automatic_variables): Use "" instead of nil 5874 for empty value. 5875 5876Thu Jul 23 22:31:18 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5877 5878 * Version 3.62.17. 5879 5880 * main.c (struct command_switch.type): Add alternative usage_and_exit. 5881 (command_switches): Add -h/--help. 5882 5883Thu Jul 16 14:27:50 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5884 5885 * GNUmakefile (make-$(version).tar.Z): Include NEWS, not CHANGES. 5886 * README.template: Mention NEWS. 5887 * CHANGES: Renamed to NEWS. 5888 5889 * main.c [! STDC_HEADERS] [sun]: Don't declare exit. 5890 5891Tue Jul 14 18:48:41 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5892 5893 * main.c (main): Set -o files' command_states to cs_finished. 5894 5895 * rule.c (count_implicit_rule_limits): Decrement num_pattern_rules 5896 when tossing a rule. 5897 5898 * main.c (main): Use alloca only in simple local var assignment, 5899 for braindead SGI compiler. 5900 5901 * rule.c (print_rule_data_base): Barf if num_pattern_rules is 5902 inconsistent with the number computed when listing them. 5903 5904Mon Jul 13 17:51:53 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5905 5906 * commands.c (set_file_variables): For $? and $^ elts that are archive 5907 member refs, use member name only. 5908 5909Fri Jul 10 00:05:04 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5910 5911 * variable.h (struct variable.export): Add new alternative v_ifset. 5912 * variable.c (target_environment): Check for it. 5913 (define_automatic_variables): Set it for MAKEFILES. 5914 5915Thu Jul 9 21:24:28 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5916 5917 * compatMakefile (objs): Remove getloadavg.o; $(extras) gets it. 5918 (remote.o): Use $(srcdir)/remote.c, not $remote.c<. 5919 (distclean, mostlyclean): New targets. 5920 5921Tue Jul 7 19:12:49 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5922 5923 * Version 3.62.16. 5924 5925 * compatMakefile (config.status): Remove rule. 5926 5927 * job.c (start_waiting_job): Free C after using C->file, not before. 5928 5929Sat Jul 4 20:51:49 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5930 5931 * commands.c, job.c, main.c, make.h, remote-cstms.c: Use #ifdef 5932 HAVE_* instead of #ifndef *_MISSING. 5933 * configure.in: Use AC_HAVE_FUNCS instead of AC_MISSING_FUNCS (gone). 5934 5935Thu Jul 2 18:47:52 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5936 5937 * main.c (main): makelevel>0 or -C implies -w. 5938 5939Tue Jun 30 20:50:17 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5940 5941 * file.c, job.c, function.c: Don't #include <errno.h>. 5942 make.h: Do it here instead. 5943 * arscan.c (ar_member_touch): Don't declare errno. 5944 5945Thu Jun 25 17:06:55 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5946 5947 * GNUmakefile (make-$(version).tar.Z): Depend on INSTALL, configure.in. 5948 5949 * remake.c (update_file): If commands or deps are running after 5950 update_file_1 returns, break out of the :: rule (->prev) loop and 5951 just return. 5952 5953 * job.c (job_next_command): New function; code from start_job. 5954 (start_job_command): Renamed from start_job. Call job_next_command 5955 and recurse for empty command lines and -n. 5956 (start_waiting_job): Call start_job_command, not start_job. 5957 (new_job): Call job_next_command to prime the child structure, and 5958 then call start_waiting_job. 5959 (reap_children): Use job_next_command and start_job_command. 5960 (start_waiting_job): Call start_remote_job_p here, and store its 5961 result in C->remote. If zero, check the load average and 5962 maybe put C on waiting_jobs. 5963 (start_job_command): Test CHILD->remote rather than calling 5964 start_remote_job_p. Don't do load avg checking at all here. 5965 5966 * main.c (main): Don't handle SIGILL, SIGIOT, SIGEMT, SIGBUS, 5967 SIGSEGV, SIGFPE or SIGTRAP. 5968 5969 * compatMakefile (glob/libglob.a): Don't pass srcdir to sub-make. 5970 configure will set it in glob/Makefile. 5971 5972Wed Jun 24 19:40:34 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5973 5974 * dir.c [DIRENT] (direct): Don't define to dirent. 5975 [! DIRENT] (direct): Define to dirent. 5976 (dir_file_exists_p): Use struct dirent instead of struct direct. 5977 5978 * make.h (getcwd): No space between macro and ( for args! 5979 5980 * job.c (start_job): Don't put the job on waiting_jobs if 5981 job_slots_used==0. 5982 5983 * make.texinfo (Missing): Shortened title. 5984 5985Tue Jun 23 18:42:21 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5986 5987 * file.c (remove_intermediates): Print "rm" commands under -n. 5988 5989Mon Jun 22 16:20:02 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5990 5991 * Version 3.62.15. 5992 5993Fri Jun 19 16:20:26 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 5994 5995 * arscan.c [M_UNIX]: #undef M_XENIX. 5996 5997Wed Jun 17 17:59:28 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 5998 5999 * default.c (default_terminal_rules): Put @ prefix on RCS cmds. 6000 6001Tue Jun 16 19:24:17 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6002 6003 * compatMakefile (getloadavg.o): Removed special rule. 6004 (CFLAGS): Don't include $(defines). 6005 (.c.o): Define suffix rule. 6006 (glob/libglob.a): Pass CPPFLAGS=$(defines) to submake. 6007 (GETOPT_SRC, srcs, tagsrcs): Prefix files with $(srcdir)/. 6008 6009 * arscan.c (ar_name_equal): Moved local vars inside #if'd block. 6010 6011 * make.h (max): Removed. 6012 * expand.c (variable_buffer_output): Don't use it. 6013 6014 * compatMakefile (INSTALL): Define. 6015 (Makefile): New rule to make from Makefile.in. 6016 (srcdir): Define. 6017 (VPATH): Define. 6018 (getloadavg.o, remote.o): Use autoconf $foo< hack. 6019 6020 * commands.c (fatal_error_signal): Removed return. 6021 6022Mon Jun 15 17:42:51 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6023 6024 * Version 3.62.14. 6025 6026 * make.texinfo (Summary): New node. 6027 (Special Targets): Mention .EXPORT_ALL_VARIABLES here. 6028 6029 * variable.c (max): Moved to make.h. 6030 6031 * compatMakefile (objs, srcs): Added ar & arscan. 6032 6033 * job.c (start_waiting_job): New function, 2nd half of new_job. 6034 (new_job): Call it. 6035 (start_waiting_jobs): New function. 6036 * remake.c (update_goal_chain): Call start_waiting_jobs at the top 6037 of the main loop. 6038 * compatMakefile (objs, srcs): Removed load, added getloadavg. 6039 6040Fri Jun 12 19:33:16 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6041 6042 * job.c (load_too_high): New function. Uses getloadavg. 6043 (waiting_jobs): New variable. 6044 (start_job): Don't call wait_to_start_job. Instead, if 6045 load_too_high returns nonzero, add the child to the 6046 `waiting_jobs' chain and return without starting the job. 6047 6048Thu Jun 11 00:05:28 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6049 6050 * expand.c (variable_buffer_output): Made global again. 6051 * variable.h: And declare it. 6052 6053 * arscan.c (PORTAR): Define for all systems if PORT5AR is not defined. 6054 (AR_NAMELEN, AR_TRAILING_SLASH): Removed. 6055 (ar_scan): Don't use it. Don't #ifdef AR_TRAILING_SLASH; just look 6056 for a slash in the archive at run time. 6057 (ar_name_equal): Rewrote .o hacking to not use AR_NAMELEN, and to 6058 cope with trailing-slash and non-trailing-slash archives. 6059 6060 * main.c (main) [! SETVBUF_REVERSED]: Test this instead of USGr3 et al. 6061 [SETVBUF_REVERSED]: Always allocate a buffer ourselves. 6062 6063 * load.c (load_average) [sgi]: Use sysmp call. 6064 6065 * compatMakefile (INSTALL_DATA, INSTALL_PROGRAM): Define. 6066 ($(bindir)/$(instname), $(mandir)/make.$(manext)): Use them. 6067 6068 * make.h [HAVE_VFORK_H]: #include <vfork.h>. 6069 (vfork, VFORK_NAME): Don't define. 6070 * job.c (start_job): Use "vfork" in place of VFORK_NAME. 6071 6072 * make.h [HAVE_LIMITS_H, HAVE_SYS_PARAM_H]: If #define'd, #include 6073 the each file. Rearranged PATH_MAX hacking. 6074 * job.c: Rearranged NGROUPS_MAX hacking. 6075 6076 * remake.c (fstat, time): Don't declare. 6077 6078 * compatMakefile (defines): Value is @DEFS@. 6079 (LOADLIBES): Value is @LIBS@. 6080 (extras): Value is @LIBOBJS@. 6081 (ARCHIVES, ARCHIVES_SRC, ALLOCASRC): Removed. 6082 * arscan.c, ar.c: Surround body with #ifndef NO_ARCHIVES. 6083 6084 * misc.c [! HAVE_UNISTD_H]: Test instead of !POSIX to decl get*id. 6085 6086 * make.h [GETCWD_MISSING]: Test instead of !USG && !POSIX et al. 6087 (getcwd): Just declare if present. If not, declare as a macro 6088 using getwd, and declare getwd. 6089 [PATH_MAX] (GET_PATH_MAX): #define to PATH_MAX. 6090 * main.c (main, log_working_directory): Use getcwd instead of getwd. 6091 6092 * main.c (main) [SETLINEBUF_MISSING]: Test this instead of USG. 6093 6094 * make.h (SIGHANDLER, SIGNAL): Removed. 6095 (RETSIGTYPE): Define if not #define'd. 6096 * main.c (main): Use signal in place of SIGNAL. 6097 6098 * main.c [SYS_SIGLIST_MISSING]: Test instead of USG. 6099 6100 * job.c (search_path) [GETGROUPS_MISSING]: Test instead of USG. 6101 [HAVE_UNISTD_H]: Test instead of POSIX to not decl getgroups. 6102 6103 * main.c [! HAVE_UNISTD_H]: Test instead of !POSIX to decl chdir. 6104 [! STDC_HEADERS]: Test instead of !POSIX to decl exit & atof. 6105 6106 * job.c (child_handler), commands.c (fatal_error_signal): Return 6107 RETSIGTYPE instead of int. 6108 * main.c (main): Declare fatal_error_signal and child_handler here 6109 to return RETSIGTYPE; removed top-level decl of former. 6110 6111 * commands.c (fatal_error_signal), job.c (unblock_sigs, start_job), 6112 main.c [SIGSETMASK_MISSING]: Test this instead of USG. 6113 6114Wed Jun 10 22:06:13 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6115 6116 * job.c [HAVE_WAITPID]: Test this instead of USG. 6117 [! HAVE_UNISTD_H]: Test this instead of !POSIX to declare misc fns. 6118 (GID_T): Don't #define. 6119 (search_path): Use gid_t instead of GID_T. 6120 [GETDTABLESIZE_MISSING, SYS_SIGLIST_MISSING, DUP2_MISSING]: Test 6121 these individually instead of USG for all. 6122 * make.h (ctime): Don't declare. #include time.h instead. 6123 [HAVE_UNISTD_H]: #include <unistd.h> and #define POSIX #ifdef 6124 _POSIX_VERSION. 6125 * dir.c [__GNU_LIBRARY__] (D_NAMLEN): Define to use d_namlen member. 6126 * make.h [NEED_MEMORY_H]: Only include memory.h #ifdef this. 6127 6128 * arscan.c: Removed #ifdef mess about string.h et al. 6129 Just #include make.h instead. 6130 * make.h (fstat, atol): Declare. 6131 6132 * commands.c (fatal_error_signal): Don't use sigmask to check for 6133 propagated signals; use ||s instead. 6134 (PROPAGATED_SIGNAL_MASK): Removed. 6135 (fatal_error_signal) [POSIX]: Use sigprocmask in place of sigsetmask. 6136 6137 * variable.c (variable_buffer, variable_buffer_length, 6138 initialize_variable_output, variable_output): Moved to expand.c; 6139 made all static. 6140 (struct output_state, save_variable_output, 6141 restore_variable_output): Removed. 6142 * expand.c (initialize_variable_output): Put a NUL at the beginning 6143 of the new buffer after allocating it. 6144 (allocated_variable_expand_for_file): Don't use 6145 {save,restore}_variable_output. Do it by hand instead, keeping 6146 state on the stack instead of malloc'ing it. 6147 (allocated_variable_expand): Removed. 6148 * variable.h (allocated_variable_expand): Define here as macro. 6149 (variable_buffer_output, initialize_variable_output, 6150 save_variable_output, restore_variable_output): Removed decls. 6151 6152 * read.c (conditional_line): For an if cmd, if any elt of the 6153 conditionals stack is ignoring, just push a new level that ignores 6154 and return 1; don't evaluate the condition. 6155 6156Thu Jun 4 21:01:20 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6157 6158 * main.c (main): Put #ifdef's around frobbing SIGSYS and SIGBUS. 6159 6160 * job.c (getdtablesize): Don't declare or #define if already #define'd. 6161 6162Wed Jun 3 23:42:36 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6163 6164 * file.c (snap_deps): If `.EXPORT_ALL_VARIABLES' is a target, set 6165 export_all_variables. 6166 * make.texinfo (Variables/Recursion): Document .EXPORT_ALL_VARIABLES. 6167 6168Tue Jun 2 21:08:35 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6169 6170 * Version 3.62.13. 6171 6172 * commands.c (set_file_variables): Calculate length for ^D and ?D 6173 individually, making sure to give them at least enough space for "./". 6174 6175 * make.h [CRAY]: #define signal to bsdsignal. 6176 6177 * default.c (default_variables) [CRAY]: Define PC, SEGLDR, 6178 CF77PPFLAGS, CF77PP, CFT, CF, and FC. 6179 6180 * arscan.c (AR_HDR_SIZE): Define to sizeof (struct ar_hdr), if it 6181 wasn't defined by <ar.h>. 6182 6183Thu May 28 00:56:53 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6184 6185 * Version 3.62.12. 6186 6187Tue May 26 01:26:30 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6188 6189 * rule.c (new_pattern_rule): Initialize LASTRULE to nil, not 6190 pattern_rules. 6191 6192Mon May 25 19:02:15 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6193 6194 * main.c (decode_switches): Initialize all the long_option elt members. 6195 6196Thu May 21 16:34:24 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6197 6198 * make.texinfo (Text Functions): Correct filter-out description. 6199 6200Tue May 19 20:50:01 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6201 6202 * compatMakefile (realclean): Don't remove backup files. 6203 6204 * main.c (decode_switches): Allocate ARGC+1 elts in `other_args'. 6205 6206Sun May 17 16:38:48 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6207 6208 * Version 3.62.11. 6209 6210Thu May 14 16:42:33 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6211 6212 * job.c (reap_children): Don't die if wait returns EINTR. 6213 6214Wed May 13 18:28:25 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6215 6216 * job.c (reap_children): Always run the next command for a 6217 successful target. If we are going to die, we don't want to leave 6218 the target partially made. 6219 6220Tue May 12 00:39:19 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6221 6222 * job.c (construct_command_argv_internal): After loop, if we only 6223 have one word, check it for being a shell command. 6224 6225 * main.c (decode_switches): Allocate ARGC slots in other_args to 6226 begin with, so we never need to worry about growing it. 6227 If we get a non-option arg and POSIXLY_CORRECT is in the 6228 environment, break out of the loop. After the loop, add all remaining 6229 args to other_args list. 6230 6231 * main.c (decode_switches): For positive_int and floating switches 6232 when optarg is nil, use next arg if it looks right (start with a 6233 digit, or maybe decimal point for floating). 6234 6235 * variable.c (define_automatic_variables): Always set SHELL to 6236 default if it comes from the environment. Set its export bit. 6237 * make.texinfo (Environment): Document change. 6238 6239Mon May 11 00:32:46 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6240 6241 * Version 3.62.10. 6242 6243 * compatMakefile (tags, TAGS): Use vars for cmds. 6244 (ETAGS, CTAGS): Define. 6245 6246 * main.c (decode_switches): If a switches elt has a nil long_name, 6247 make the long option name elt be "". 6248 Fixed loop to not ignore all the options. 6249 6250 * make.texinfo (Option Summary): Added long options. 6251 6252 * main.c (switches): Changed -m's description to "-b". 6253 (decode_switches): When printing the usage message, don't print 6254 switches whose descriptions start with -. 6255 When constructing the list of names for switch -C, search the 6256 switches vector for switches whose descriptions are "-C". 6257 6258 * main.c (switches): Call -S --no-keep-going, not --dont-keep-going. 6259 Call -I --include-dir, not --include-path. 6260 (long_option_aliases): Added --new == -W, --assume-new == -W, 6261 --assume-old == -o, --max-load == -l, --dry-run == -n, --recon == -n, 6262 --makefile == -f. 6263 6264 * main.c (switches): Removed bogus "silent" elt. 6265 (long_option_aliases): Define new var. 6266 (decode_switches): Add long_option_aliases onto the end of the long 6267 options vector created for getopt_long. 6268 Look through long_option_aliases for extra names to list 6269 in usage message. 6270 6271Sat May 9 00:21:05 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6272 6273 * main.c (log_working_directory): Fixed to properly not print the 6274 leaving message when we haven't printed the entering message. 6275 6276Fri May 8 21:55:35 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6277 6278 * main.c (struct command_switch): Added elts `long_name', 6279 `description', and `argdesc'. 6280 (switches): Added initializers for new members. 6281 (decode_switches): Rewritten to use getopt_long. 6282 * compatMakefile (GETOPT, GETOPT_SRC): Define. 6283 (objs, srcs): Include them. 6284 6285 * job.c (child_died): Renamed to dead_children; made static. 6286 (child_handler): Increment dead_children instead of setting child_died. 6287 (reap_children): Decrement dead_children instead of clearing 6288 child_died. The point of all this is to avoid printing "waiting 6289 for unfinished jobs" when we don't actually need to block. 6290 This happened when multiple SIGCHLDs before reap_children was called. 6291 6292 * job.c (reap_children): If ERR is set, so we don't call start_job 6293 on the child being reaped, instead set its command_state to 6294 cs_finished. 6295 (reap_children, child_handler, new_job): I added several 6296 debugging printf's while fixing this. I left them in if (debug_flag) 6297 because they may be useful for debugging this stuff again. 6298 6299Wed May 6 22:02:37 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6300 6301 * read.c (read_makefile): v_export is not 1. 6302 6303Mon May 4 17:27:37 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6304 6305 * Version 3.62.9. 6306 6307 * variable.c (export_all_variables): New variable. 6308 (target_environment): Export variables whose `export' member is 6309 v_default if export_all_variables is set and their names are benign. 6310 * variable.h: Declare export_all_variables. 6311 * read.c (read_makefile): If export or unexport is given with no 6312 args, set or clear export_all_variables, respectively. 6313 6314 * variable.c (target_environment): Exclude MAKELEVEL in the loop, 6315 so it isn't duplicated when we add it at the end. 6316 6317Sun May 3 17:44:48 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6318 6319 * Version 3.62.8. 6320 6321 * variable.h (struct variable): Added new member `export'. 6322 * variable.c (define_variable_in_set): Initialize it to v_default. 6323 (target_environment): Don't check for .NOEXPORT. 6324 Export variables whose `export' member is v_default and that would 6325 have been exported under .NOEXPORT, and variables whose `export' 6326 member is v_export. 6327 (try_variable_definition): Return the variable defined. 6328 * variable.h (try_variable_definition): Changed decl. 6329 * read.c (read_makefile): Recognize `export' and `unexport' directives. 6330 6331Fri May 1 11:39:38 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6332 6333 * main.c (main) [POSIX]: Reversed args to sigaddset. 6334 6335Thu Apr 30 17:33:32 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6336 6337 * job.c [POSIX || !USG] (unblock_sigs): New fn. 6338 (start_job): Block signals before forking. 6339 (new_job): Unblock signals after putting the new child on the chain. 6340 * main.c (main) [POSIX]: Use sigset_t fatal_signal_set instead of 6341 int fatal_signal_mask. 6342 6343 * load.c [sgi] (LDAV_CVT): Define. 6344 6345Wed Apr 29 17:15:59 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6346 6347 * Version 3.62.7. 6348 6349 * load.c (load_average) [sgi]: Clear the high bit of the address 6350 from the symbol table before looking it up in kmem. 6351 6352 * misc.c (fatal, makefile_fatal): Put *** in fatal error messages. 6353 (remake_file): No longer needed in message here. 6354 6355 * main.c (die): Call reap_children with BLOCK==1. 6356 6357Tue Apr 28 20:44:35 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6358 6359 * rule.c (freerule): Don't set LASTRULE->next if LASTRULE is nil. 6360 6361Sun Apr 26 15:09:51 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6362 6363 * rule.c (count_implicit_rule_limits): Initialize LASTRULE to nil, 6364 not to head of chain. Extract next ptr before we might do 6365 freerule, and use that for next iteration. 6366 (freerule): Still do next ptr frobbing if LASTRULE is nil. 6367 6368Tue Apr 21 03:16:29 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6369 6370 * job.c (child_error): Removed extra %s from error msg format. 6371 6372 * Version 3.62.6. 6373 6374 * job.c (reap_children): Don't start later commands in a sequence 6375 if ERR is nonzero. 6376 6377 * job.c (new_job): Always call reap_children with BLOCK==0 first thing. 6378 6379 * job.c (reap_children): New function; work that used to be done in 6380 child_handler. 6381 (child_died): New global var. 6382 (child_handler): Now just sets child_died. 6383 (wait_for_children): Removed. 6384 (unknown_children_possible, block_signals, unblock_signals, 6385 push_signals_blocked_p, pop_signals_blocked_p): Removed. 6386 (child_execute_job): Removed call to unblock_signals. 6387 (new_job): Removed calls to push_signals_blocked_p and 6388 pop_signals_blocked_p. 6389 * job.h: Declare reap_children, not wait_for_children. 6390 * commands.c (fatal_error_signal), job.c (new_job), 6391 load.c [LDAV_BASED] (wait_to_start_job), main.c (die), 6392 remake.c (update_goal_chain), function.c (expand_function: `shell'): 6393 Changed wait_for_children calls to reap_children. 6394 Some needed to be loops to wait for all children to die. 6395 * commands.c (fatal_error_signal), main.c (main, 6396 log_working_directory), function.c (expand_function): Removed calls 6397 to push_signals_blocked_p and pop_signals_blocked_p. 6398 * job.h: Removed decls. 6399 6400 * job.h: Added copyright notice. 6401 6402Wed Apr 15 02:02:40 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6403 6404 * job.c (child_error): No *** for ignored error. 6405 6406Tue Apr 14 18:31:21 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6407 6408 * implicit.c (DEBUGP2): Use do ... while (0) instead of if ... else to 6409 avoid compiler warnings. 6410 6411 * read.c (parse_file_seq): Don't remove ./ when it is followed by a 6412 blank. 6413 6414Mon Apr 13 21:56:15 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6415 6416 * make.h (DEBUGPR): Use do ... while (0) instead of if ... else to 6417 avoid compiler warnings. 6418 6419 * remake.c (notice_finished_file): Run file_mtime on the also_make 6420 files, so vpath_search can happen. 6421 6422 * GNUmakefile (tests): Use perl test suite from csa@sw.stratus.com. 6423 (alpha-files): Include test suite tar file. 6424 6425Fri Apr 3 00:50:13 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6426 6427 * Version 3.62.5. 6428 6429Wed Apr 1 05:31:18 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6430 6431 * remake.c (update_file, update_file_1): Do check_renamed on elts 6432 of dep chains when traversing them. Something unrelated might have 6433 renamed one of the files the dep chain points to. 6434 6435 * file.c (rename_file): If FILE has been renamed, follow its 6436 `renamed' ptr, so we get to the final real FILE. Using the renamed 6437 ones loses because they are not in the hash table, so the removal 6438 code loops infinitely. 6439 6440 * read.c (read_all_makefiles): Clobber null terminator into 6441 MAKEFILES expansion, so string passed to read_makefile is properly 6442 terminated. 6443 6444Mon Mar 30 20:18:02 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6445 6446 * commands.c (set_file_variables): $* for archive member with 6447 explicit cmds is stem of member, not of whole `lib(member)'. 6448 6449Thu Mar 26 15:24:38 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6450 6451 * Version 3.62.4. 6452 6453Tue Mar 24 05:20:51 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6454 6455 * rule.c (new_pattern_rule): Rules are identical only if all their 6456 targets match (regardless of order). 6457 6458Wed Mar 11 13:49:54 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu) 6459 6460 * remake.c (remake_file): Changed error "no way to make" to "no 6461 rule to make". Fiat Hugh. 6462 6463 * make.texinfo (Last Resort): Describe %:: rules and new .DEFAULT 6464 behavior. 6465 6466 * remake.c (update_file_1): Only use .DEFAULT cmds if FILE is not a 6467 target. 6468 6469Tue Mar 10 18:13:13 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6470 6471 * remote-stub.c, remote-cstms.c (start_remote_job): Take new arg, 6472 environment to pass to child. 6473 * job.c (start_job): Pass it. 6474 6475Mon Mar 9 19:00:11 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6476 6477 * file.c (enter_file): Also strip ./s here, to get command-line 6478 target names. 6479 6480 * remote-cstms.c: Add comment telling people to leave me alone. 6481 6482 * compatMakefile (manpage install): Remove target before copying. 6483 6484Tue Mar 3 18:43:21 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6485 6486 * make.texinfo (Missing): Renamed to "Incompatibilities and ...". 6487 Added paragraph describing $? incompatibility with Unix and POSIX.2. 6488 6489Sun Mar 1 15:50:54 1992 Roland McGrath (roland@nutrimat.gnu.ai.mit.edu) 6490 6491 * function.c (expand_function: `shell'): Don't declare fork or pipe. 6492 Use vfork instead of fork. 6493 6494Tue Feb 25 22:05:32 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6495 6496 * make.texinfo (Chained Rules): Clarify .PRECIOUS to save 6497 intermediate files. 6498 6499 * load.c [sun] (LDAV_CVT): Define to divide by FSCALE. 6500 6501Sun Feb 16 02:05:16 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6502 6503 * Version 3.62.3. 6504 6505Sat Feb 15 17:12:20 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6506 6507 * compatMakefile (makeinfo): Use emacs batch-texinfo-format fn. 6508 6509Fri Feb 14 00:11:55 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6510 6511 * read.c (read_makefile): Correctly handle define & endef in ifdefs. 6512 6513 * read.c (record_files): Pass arg for %s in error msg. 6514 6515 * main.c (main) [__IBMR2, POSIX]: Use correct (a la USGr3) setvbuf 6516 call. 6517 6518Wed Feb 12 12:07:39 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6519 6520 * make.texinfo (Libraries/Search): Say it does /usr/local/lib too. 6521 6522Sun Feb 9 23:06:24 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6523 6524 * read.c (read_makefile): Check for extraneous `endef' when ignoring. 6525 6526Thu Feb 6 16:15:48 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6527 6528 * Version 3.62.2. 6529 6530Tue Feb 4 20:04:46 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6531 6532 * job.c (construct_command_argv_internal): Correctly ignore 6533 whitespace after backslash-NL. 6534 6535Fri Jan 31 18:30:05 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6536 6537 * compatMakefile: Ignore errors from chgrp and chmod when installing. 6538 6539Wed Jan 29 18:13:30 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6540 6541 * main.c (main): When setting MAKELEVEL in the env to re-exec, 6542 allocate space so as not to clobber past the end of the old string. 6543 6544 * make.h [HAVE_ALLOCA_H]: Include <alloca.h> 6545 * compatMakefile (defines): Document HAVE_ALLOCA_H. 6546 6547Mon Jan 20 13:40:05 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6548 6549 * make.h [VFORK_MISSING]: Use fork instead. 6550 * compatMakefile (defines): Document same. 6551 6552 * job.c (construct_command_argv_internal): Don't create an empty 6553 arg if backslash-NL is at beginning of word. 6554 6555Sun Jan 19 16:26:53 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6556 6557 * main.c [DGUX]: Call setvbuf as for USGr3. 6558 6559 * job.c (construct_command_argv_internal): Notice correctly that 6560 backslash-NL is the end of the arg (because it is replaced with a 6561 space). 6562 6563Thu Jan 16 18:42:38 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6564 6565 * job.c (construct_command_argv_internal): If SHELL is nil, set it 6566 to default_shell before proceeding. 6567 6568 * make.h [sgi]: No alloca.h, after all. 6569 6570Wed Jan 15 12:30:04 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6571 6572 * read.c (multi_glob): Cons up the chain of the results of glob 6573 from back to front, so it comes out in forward order. 6574 6575 * job.c (construct_command_argv_internal): Don't eat char following 6576 backslash-NL. 6577 6578Mon Jan 13 19:16:56 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6579 6580 * Version 3.62.1. 6581 6582 * default.c (default_variables) [ultrix]: GET=get, like USG. 6583 6584 * job.c (construct_command_argv_internal): Remove tabs following 6585 backslash-NL combos in the input line, so they don't show up when 6586 that line is printed. 6587 6588 * read.c (read_makefile): Don't collapse_continuations the line on 6589 input; do it on the copy we do remove_comments on. 6590 For rule lines, collapse_continuations the line after chopping 6591 ";cmds" off the end, so we don't eat conts in the cmds. 6592 Give error for ";cmds" with no rule. 6593 * job.c (construct_command_argv_internal): Eat backslash-NL combos 6594 when constructing the line to recurse on for slow, too. 6595 6596Sat Jan 11 02:20:27 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu) 6597 6598 * file.c (enter_file): Don't strip leading `./'s. 6599 * read.c (parse_file_seq): Take new arg STRIP; if nonzero, do it here. 6600 * default.c (set_default_suffixes), function.c (string_glob), 6601 read.c (read_makefile), rule.c (install_pattern_rule): Change callers. 6602 6603 * default.c (default_variables) [_IBMR2]: FC=xlf 6604 6605 * job.c (construct_command_argv_internal): Turn backslash-NL and 6606 following whitespace into a single space, rather than just eating 6607 the backslash. 6608 6609 * make.texinfo (Copying): @include gpl.texinfo, rather than 6610 duplicating its contents. 6611 6612Fri Nov 8 20:06:03 1991 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6613 6614 * job.c (construct_command_argv_internal): Make sure not to bother 6615 processing an empty line. 6616 6617 * Version 3.62.0. 6618 6619 * job.c (construct_command_argv_internal): Always recurse for slow; 6620 simple case didn't handle finding newlines. 6621 6622Tue Nov 5 18:51:10 1991 Roland McGrath (roland@wookumz.gnu.ai.mit.edu) 6623 6624 * job.c (construct_command_argv_internal): Set RESTP properly when 6625 slow; don't \ify past a newline. 6626 6627Fri Nov 1 19:34:28 1991 Roland McGrath (roland@churchy.gnu.ai.mit.edu) 6628 6629 * make.h [sgi]: #include <alloca.h>. 6630 6631 6632 6633See ChangeLog.1, available in the CVS repository at: 6634 6635 http://savannah.gnu.org/cvs/?group=make 6636 6637for earlier changes. 6638 6639 6640Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 66412001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. 6642This file is part of GNU Make. 6643 6644GNU Make is free software; you can redistribute it and/or modify it under the 6645terms of the GNU General Public License as published by the Free Software 6646Foundation; either version 3 of the License, or (at your option) any later 6647version. 6648 6649GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 6650WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 6651A PARTICULAR PURPOSE. See the GNU General Public License for more details. 6652 6653You should have received a copy of the GNU General Public License along with 6654this program. If not, see <http://www.gnu.org/licenses/>. 6655