VirtualBox

source: kBuild/vendor/gnumake/2003-11-23/ChangeLog.2@ 3138

Last change on this file since 3138 was 54, checked in by (none), 21 years ago

This commit was manufactured by cvs2svn to create branch 'GNU'.

  • Property svn:eol-style set to native
File size: 244.1 KB
Line 
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
6633
6634See ChangeLog.1 for earlier changes.
Note: See TracBrowser for help on using the repository browser.

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