1Tue Oct 29 20:57:36 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
2
3	* Version 3.62.
4
5	* remake.c (update_file_1): Check for deps still running before
6	giving up if any dep has failed.
7
8Sat Oct 26 16:20:00 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
9
10	* make.h [uts]: #undef S_ISREG and S_ISDIR if defined.
11
12Fri Oct 25 19:50:39 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
13
14	* Version 3.60.17.
15
16Thu Oct 24 16:58:36 1991  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)
17
18	* job.c (start_job): Don't check for empty cmds before tweaking the
19	command_ptr.  Just let construct_command_argv do it.
20
21Tue Oct 22 20:21:03 1991  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)
22
23	* remake.c, arscan.c [POSIX]: <fcntl.h> instead of <sys/file.h>.
24
25	* make.h [POSIX]: Declare vfork as pid_t.
26
27Mon Oct 21 15:37:30 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
28
29	* Version 3.60.16.
30
31	* job.c (construct_command_argv, construct_command_argv_internal):
32	Take new 2nd arg RESTP.  If non-NULL, stop parsing at newline, and
33	store addr of the NL in *RESTP.
34	(start_job): Don't chop expanded cmd lines up; use above code to do it.
35	* function.c (expand_function: `shell'): Pass RESTP==NULL.
36
37Sat Oct 19 15:36:34 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
38
39	* Version 3.60.15.
40
41Fri Oct 18 15:26:55 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
42
43	* job.c (start_job): If on the same cmds->command_lines elt, look
44	at cmds->lines_recurse[CHILD->command_line - 1] instead of
45	[CHILD->command_line].
46
47	* dir.c [sgi]: <sys/dir.h>, not ndir or anything else.
48
49Thu Oct 17 16:28:55 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
50
51	* file.c (print_file_data_base): Remove unused var.
52
53	* make.h [NeXT]: No #define ANSI_STRING.
54
55Tue Oct 15 20:08:41 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
56
57	* Version 3.60.14.
58
59Fri Oct 11 16:23:52 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
60
61	* make.h: Use PATH_MAX for getwd defn.
62
63	* make.h: Move getcwd/getwd outside of #ifndef POSIX, and make it
64	#if USG||POSIX.
65
66Thu Oct 10 11:53:31 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
67
68	* Version 3.60.13.
69
70	* read.c (read_all_makefiles): When processing MAKEFILES, save the
71	malloc'd ptr to be freed, instead of freeing part-way thru it.
72
73	* remake.c (update_file_1): Don't tweak FILE->also_make.
74	(update_file): Do it here.  After calling update_file_1, set the
75	command_state, update_status, and updated members of each also_make
76	elt to FILE's values.
77
78Tue Oct  8 14:56:04 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
79
80	* Version 3.60.12.
81
82	* remake.c (notice_finished_file): Set command_state of FILE and
83	its also_make chain to cs_finished here.
84	* commands.c (execute_file_commands), job.c (child_handler),
85	remake.c (remake_file): Don't set it before calling
86	notice_finished_file.
87
88	* file.h (struct file): Changed `also_make' to struct dep *.
89	* job.c (delete_child_targets), file.c (print_file_data_base),
90	remake.c (notice_finished_file), implicit.c (pattern_search):
91	Use dep chain instead of array of file names.
92
93Mon Oct  7 17:04:33 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
94
95	* Version 3.60.11.
96
97	* arscan.c: Declare open.
98	* misc.c: Declare {get,set}{re,}[ug]id.
99	* variable.c (target_environment): Declare getenv.
100
101Sat Oct  5 15:13:03 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
102
103	* make.h [NeXT]: <string.h> instead of <strings.h>.
104
105Fri Oct  4 16:05:41 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
106
107	* default.c (default_suffixes, defualt_suffix_rules): Add .texi
108	just like .texinfo.
109
110	* Version 3.60.10.
111
112	* job.c: Move vfork decl into make.h.
113
114Fri Sep 27 18:45:30 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
115
116	* compatMakefile (glob/libglob.a): Pass CC value to submake.
117
118Thu Sep 26 00:08:15 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
119
120	* load.c (load_average): Made not static.
121
122	* load.c [ultrix && vax]: Define LDAV_TYPE and LDAV_CVT for Ultrix 4.2.
123
124Tue Sep 24 00:17:20 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
125
126	* Version 3.60.9.
127
128	* read.c (record_files): Warn about extra cmds even if the target's
129	name begins with a dot.  I think the lusers can handle this.
130
131Mon Sep 23 22:33:26 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
132
133	* make.h, arscan.c: Don't declare bcmp, bzero, or bcopy if they're
134	#define'd.
135	* make.h: Declare write and open.
136
137	* default.c (default_suffixes, default_suffix_rules,
138	default_variables): Add .C just like .cc.
139	* make.texinfo (Catalogue of Rules): Document .C.
140
141	* make.man (-w): Fix gramo.
142
143Fri Sep 20 17:18:16 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
144
145	* make.h: No text after #endif.
146
147Sun Sep 15 16:20:46 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
148
149	* Version 3.60.8.
150
151	* implicit.c (pattern_search): In the second pass, recurse on rule
152	deps that don't have a %.  Why did I make it not do this?
153
154Fri Sep 14 18:29:39 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
155
156	* read.c (record_files): For extra cmds, use the last ones given.
157	If the target's name doesn't begin with a dot (bletch!!), emit a
158	two-line warning, one line giving the old cmds' location and the
159	other the new cmds' location.
160
161	* misc.c (makefile_error, makefile_fatal): New fns.
162	* make.h: Declare them.
163	* Use them instead of error/fatal for all msgs including a file
164	name and line number.
165
166Thu Sep 13 16:35:54 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
167
168	* make.h: Declare define_default_variables.
169	Declare ar_parse_name, instead of ar_name_parse (M-t).
170
171Mon Sep 10 18:35:40 1991  Roland McGrath  (roland@wookumz.gnu.ai.mit.edu)
172
173	* Version 3.60.7.
174
175	* make.texinfo (Variables: Setting): Say whitespace is removed if
176	"immediately after =", rather than simply "after =".
177
178	* job.c: Don't declare wait #ifdef POSIX.
179
180	* make.h [__GNUC__]: #undef alloca and then #define it.
181
182	* main.c (main): When pruning makefiles which might loop from the
183	read_makefiles chain, look at all `prev' entries of double-colon rules.
184
185Fri Sep  7 00:41:53 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
186
187	* main.c (main): Only remove makefiles with cmds but no deps from
188	the list of makefiles to be rebuilt if they are :: targets.
189	: targets with cmds and no deps are not dangerous.
190
191Wed Sep  5 17:35:51 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
192
193	* compatMakefile (defines): Add comment that some compilers take
194	ENUM_BITFIELDS but produce bogus code.
195	(LOAD_AVG): Fix examples to \ "s.
196	(LOADLIBES): Add comment that SGI Irix needs -lmld for nlist.
197
198Tue Sep  4 20:26:26 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
199
200	* Version 3.60.6.
201
202Fri Aug 30 19:34:04 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
203
204	* remake.c (update_file_1): When checking the command_state of
205	deps, check through the prev chain.
206	(update_goal_chain): When a target is finished, start checking its
207	prev (if it has one) instead.
208
209Wed Aug  7 17:32:03 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
210
211	* rule.c (convert_to_pattern): Allow files with deps to define
212	suffix rules (really this time).
213
214Mon Aug  5 17:09:21 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
215
216	* misc.c (user_access, make_access): Do saved-IDs (USG) flavor
217	#ifdef POSIX.
218
219	* file.c (enter_file): Strip ./s here.
220	* read.c (parse_file_seq): Not here.
221
222Tue Jul 23 23:34:30 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
223
224	* compatMakefile: Added comment that -lPW alloca is broken on HPUX.
225
226Thu Jul 18 03:10:41 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
227
228	* Version 3.60.5.
229
230	* read.c (read_makefile): Ignore lines containing chars that are
231	all isspace, not just all isblank.
232
233	* make.texinfo (Copying): @include gpl.texinfo, rather than copying
234	the text.
235	* gpl.texinfo: New file (symlink to /gd/gnu/doc/gpl.texinfo).
236	* GNUmakefile: Put gpl.texinfo in distribution.
237
238Tue Jul 16 12:50:35 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
239
240	* make.h: #define _GNU_SOURCE before including headers.
241	Include <ctype.h> and define isblank if <ctype.h> doesn't.
242	* commands.c: Don't include <ctype.h> here.
243	* *.c: Use isblank instead of explicit ' ' || '\t'.
244
245Mon Jul 15 17:43:38 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
246
247	* function.c (expand_function: `filter'/`filter-out'): Fixed to not
248	loop infinitely.
249
250Fri Jul 12 12:18:12 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
251
252	* function.c (expand_function: `filter'/`filter-out'): Rewritten to
253	handle filter-out of multiple patterns properly.  Also no longer
254	mallocs and reallocs for temp array; uses alloca and a linked-list
255	instead.
256
257Wed Jul 10 22:34:54 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
258
259	* Version 3.60.4.
260
261	* make.texinfo: Moved some @groups that were outside @examples to
262	be inside them.
263
264	* load.c [apollo] (load_average): Define using special syscall for
265	Apollo DOMAIN/OS SR10.n.
266
267Thu Jul  4 12:32:53 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
268
269	* make.texinfo (Missing): Added Unix excessive implicit rule
270	search; mention that POSIX.2 doesn't require any of the missing
271	features.
272	(Top): Updated printed manual price to $15.
273
274Wed Jul  3 18:17:50 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
275
276	* file.c (rename_file): Carry over last_mtime when merging files.
277	* remake.c (f_mtime): Tail-recurse after renaming VPATH file, to
278	check for saved date in existing renamed-to file.
279
280	* remote-cstms.c (start_remote_job): Use PATH_VAR.
281
282	* commands.c [POSIX || __GNU_LIBRARY__]: Don't declare getpid.
283
284	* compatMakefile (glob-{clean,realclean}): Run clean/realclean in glob.
285	(clean, realclean): Require those.
286
287	* make.h: Always declare environ.
288	Don't declare old glob functions.
289
290	* GNUmakefile: Make no-lib deps for load.c and remote.c.
291
292Tue Jul  2 18:35:20 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
293
294	* Version 3.60.3.
295
296Mon Jul  1 16:58:30 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
297
298	* read.c (multi_glob): Don't pass GLOB_QUOTE flag to glob.
299
300	* make.h [POSIX]: Include <unistd.h>, and don't declare things that
301	should be there.
302
303	* main.c (main) [USG && sgi]: malloc a buffer for broken sgi stdio.
304
305Sat Jun 29 11:22:21 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
306
307	* function.c (expand_function: `shell'): Use alloca for the error
308	msg buffer, instead of assuming an arbitrary max size.
309
310Fri Jun 28 18:15:08 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
311
312	* job.c [POSIX] (search_path): Do real 1003.1 goop to get NGROUPS_MAX.
313
314Wed Jun 26 11:04:44 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
315
316	* default.c (define_default_variables): New fn.
317	(install_default_implicit_rules): Code for above fn moved there.
318	* main.c (main): Do define_default_variables before reading the
319	makefile.
320
321Tue Jun 25 17:30:46 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
322
323	* main.c (main): Quote ; in MAKEOVERRIDES.
324
325Tue Jun 18 13:56:30 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
326
327	* compatMakefile: Fixed typo in comment.
328
329Tue Jun 11 00:14:59 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
330
331	* Version 3.60.2.
332
333Mon Jun 10 14:46:37 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
334
335	* make.h: Always include <sys/types.h>.
336	[POSIX]: Include <limits.h> and #define MAXPATHLEN to be PATH_MAX.
337
338	* default.c (default_suffix_rules: .texinfo.dvi): Use $(TEXI2DVI).
339	(default_variables): Define TEXI2DVI.
340
341Thu Jun  6 16:49:19 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
342
343	* Version 3.60.1.
344
345	* make.h (SIGNAL): Cast handler arg to SIGHANDLER type.
346
347Wed Jun  5 06:00:43 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
348
349	* read.c (multi_glob): Use POSIX.2 `glob' function.
350	If a glob pattern matches nothing, leave it as is (a la sh, bash).
351	Also, if can't find USER for ~USER, leave it as is (a la bash).
352
353Mon Jun  3 16:36:00 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
354
355	* compatMakefile: Rewrote comments about -Ds to be easier to use.
356
357	* make.h, arscan.c, remake.c, main.c, dir.c, job.c: Changed tests
358	of _POSIX_SOURCE to POSIX.
359
360	* job.c: Take getdtablesize out of #ifdef __GNU_LIBRARY__.
361	Put separately #ifdef USG.
362
363	* COPYING: Replaced with version 2.
364	* Changed copyright notices to refer to GPL v2.
365
366Thu May 30 00:31:11 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
367
368	* make.h: Don't declare sigblock for POSIX.
369
370	* main.c (main, log_working_directory) [USG]: Get getcwd failure
371	mode from errno, not passed buffer like BSD getwd.
372
373	* misc.c (child_access): New fn to set access for a child process;
374	like user_access, but you can't change back.
375	* make.h: Declare it.
376	* job.c (exec_command): Use it in place of user_access.
377
378Wed May 29 23:28:48 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
379
380	* default.c (default_variables) [pyr]: PC = pascal.
381
382Tue May 28 20:24:56 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
383
384	* variable.c (print_variable): Put a newline before `endef'.
385
386Sat May 25 02:39:52 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
387
388	* Version 3.60.
389
390Wed May 22 19:41:37 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
391
392	* Version 3.59.5.
393
394Thu May 16 13:59:24 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
395
396	* main.c (main): Do USGr3 setvbuf behavior #ifdef APOLLO.
397	Don't handle SIGCHLD #ifdef USG (Apollo is USG but defines SIGCHLD).
398
399Fri May 10 14:59:33 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
400
401	* remake.c [sgi]: Don't include <sys/file.h>.
402
403Wed May  8 01:54:08 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
404
405	* make.h (SIGHANDLER): #define as (void *) #if __STDC__,
406	else (int (*)()).
407	(SIGNAL): Use it to cast return value.
408	* main.c (main): Cast SIG_IGN to SIGHANDLER when comparing.
409	* job.c (block_signals, unblock_signals): Use SIGNAL instead of signal.
410
411	* main.c: Declare mktemp to return char*, not int.
412
413	* job.c (new_job): Don't increment files_remade.
414	* remake.c (notice_finished_file): Do it here.
415
416	* read.c (do_define): Don't clobber DEFINITION[-1] on empty defns.
417	Free storage that is no longer needed.
418
419Wed Apr 24 20:49:48 1991  Roland McGrath  (roland at churchy.gnu.ai.mit.edu)
420
421	* misc.c (message): New fn to print informational msgs with
422	leading "make: " or "make[N]: ".
423	* make.h: Declare it.
424	* remake.c (update_file): Use it instead of printf.
425
426Fri Apr 19 05:52:45 1991  Roland McGrath  (roland at churchy.gnu.ai.mit.edu)
427
428	* main.c (main): When there are no targets, if there were no
429	makefiles, print a different error message, which mentions makefiles.
430
431Tue Apr 16 03:22:45 1991  Roland McGrath  (roland at geech.gnu.ai.mit.edu)
432
433	* remake.c (update_file): Print "nothing to be done" instead of "is
434	up to date" if FILE->cmds == 0.
435
436	* job.c [!WIFEXITED]: Define if not already defined.
437
438Thu Apr 11 18:00:50 1991  Roland McGrath  (roland at wookumz.gnu.ai.mit.edu)
439
440	* arscan.c (ar_name_equal): Fixed truncation comparison.
441
442Tue Apr  2 16:17:35 1991  Roland McGrath  (roland at churchy.gnu.ai.mit.edu)
443
444	* glob.c: Use common version from djm.
445	* dir.c: Snarfed #ifdef mess for <dirent.h> or whatever from glob.c.
446	(dir_file_exists_p): Ignore directory entries with d_ino==0.
447
448Mon Apr  1 20:49:45 1991  Roland McGrath  (roland at albert.gnu.ai.mit.edu)
449
450	* Version 3.59.4.
451
452Fri Mar 29 19:16:18 1991  Roland McGrath  (roland at albert.gnu.ai.mit.edu)
453
454	* job.c (free_child): Free CHILD->environment and its elts.
455
456Sat Mar 23 14:08:09 1991  Roland McGrath  (roland at albert.gnu.ai.mit.edu)
457
458	* read.c (read_makefile): Don't ignore lines containing only
459	comments if they start with a tab.  Such lines should be passed to
460	the shell for it to decide about the comments.
461
462	* job.c (free_child): Free CHILD->command_lines and its elts, not
463	CHILD->commands (which is obsolete).
464	* job.h, job.c: Remove obsolete `commands' member of `struct child'.
465
466Sun Mar 17 18:40:53 1991  Roland McGrath  (roland at albert.ai.mit.edu)
467
468	* remake.c (update_file): Print a msg for a top-level up-to-date
469	phony target (a different one than for a real file).
470
471	* read.c (conditional_line): Boundary check so we don't check the
472	value of the -1th elt of the stack (which is bogus).
473
474Sat Mar 16 16:58:47 1991  Roland McGrath  (roland at albert.ai.mit.edu)
475
476	* read.c (conditional_line): Don't evaluate an if* when we're
477	already ignoring.  Instead, just push a new level, with a value of
478	1, to keep ignoring.
479
480Tue Mar 12 00:16:52 1991  Roland McGrath  (roland at geech.ai.mit.edu)
481
482	* Version 3.59.3.
483
484Mon Mar 11 23:56:57 1991  Roland McGrath  (roland at geech.ai.mit.edu)
485
486	* job.c (construct_command_argv_internal): Quote backslashes
487	when building the shell -c line.
488
489Fri Mar  8 01:40:18 1991  Roland McGrath  (roland at geech.ai.mit.edu)
490
491	* job.c (exec_command): Call user_access rather than setgid(getgid()).
492
493	* misc.c (remove_comments): Renamed from collapse_line; took out
494	collapse_continuations call.
495	* make.h: Change decl.
496	* read.c (read_makefile): Collapse continuations on the line buffer
497	immediately after reading it.  Call remove_comments rather than
498	collapse_line (which is now defunct).
499
500Thu Feb 21 18:06:51 1991  Roland McGrath  (mcgrath at cygint.cygnus.com)
501
502	* misc.c (user_access, make_access): New fns to toggle btwn permissions
503	for user data (files and spawning children), and permissions for make
504	(for taking the load average, mostly).
505	* make.h: Declare them.
506	* job.c (start_job): Call make_access before wait_to_start_job, and
507	user_access after.
508	* main.c (main): Call user_access before doing much.
509
510Mon Feb  3 15:02:03 1991  Roland McGrath  (roland at albert.ai.mit.edu)
511
512	* Version 3.59.2.
513
514Tue Jan 29 20:30:50 1991  Roland McGrath  (roland at cygint.cygnus.com)
515
516	* read.c (read_all_makefiles): Use allocated_variable_expand to expand
517	`$(MAKEFILES)', since the results are used across calls to
518	read_makefile, which could clobber them.
519
520Wed Jan 23 00:24:10 1991  Roland McGrath  (roland at cygint.cygnus.com)
521
522	* main.c (main): Call install_default_implicit_rules after reading
523	makefiles, not before.
524	* default.c (install_default_implicit_rules): If a suffix-rule file
525	entry has cmds, don't give it any from default_suffix_rules.
526
527Fri Jan 17 17:39:49 1991  Roland McGrath  (roland at albert.ai.mit.edu)
528
529	* arscan.c: Added support for AIX archives.
530
531	* remake.c: Don't include ar.h.
532	* main.c: Removed unused atol decl.
533	* arscan.c (ar_scan): Declare arg FUNCTION to return long int.
534	* ar.c (ar_touch): Don't perror for an invalid archive.
535	* make.h: Declare lseek as long int.
536
537	* job.c [hpux]: Define getdtablesize a la USG.
538
539Sun Jan 12 21:08:34 1991  Roland McGrath  (roland at albert.ai.mit.edu)
540
541	* Version 3.59.1.
542
543Fri Jan 10 03:48:08 1991  Roland McGrath  (roland at albert.ai.mit.edu)
544
545	* job.c (search_path): Take new arg, place to put full pathname (rather
546	than mallocing it).
547	(exec_command): Pass it, using auto storage.
548
549	* main.c (print_version): Updated copyright years.
550
551Wed Jan  8 19:46:19 1991  Roland McGrath  (roland at albert.ai.mit.edu)
552
553	* job.c [_POSIX_SOURCE]: Just #include <sys/wait.h>, and define macro
554	WAIT_NOHANG in terms of waitpid.
555	[!_POSIX_SOURCE && (HAVE_SYS_WAIT || !USG)]: Don't #include <signal.h>
556	(make.h does).
557	Define macro WAIT_NOHANG in terms of wait3.
558	(child_handler): #ifdef on WAIT_NOHANG, not HAVE_SYS_WAIT || !USG.
559	Use WAIT_NOHANG macro instead of wait3.
560
561	* file.h (struct file.command_state): Remove unused elt.
562
563Wed Dec 26 18:10:26 1990  Roland McGrath  (roland at albert.ai.mit.edu)
564
565	* commands.c (set_file_variables): If FILE got its commands from
566	.DEFAULT, make $< == $@ (4.3 BSD/POSIX.2d11 compat).
567
568Mon Dec 24 17:36:27 1990  Roland McGrath  (roland at albert.ai.mit.edu)
569
570	* default.c (default_variables): Rename 2nd LINK.s defn to LINK.S.
571
572Fri Dec 14 15:05:25 1990  Roland McGrath  (roland at albert.ai.mit.edu)
573
574	* vpath.c (selective_vpath_search): Check for makefile-mentioned before
575	checking for actual existence.  The old order loses if the containing
576	directory doesn't exist (but a rule might make it).
577
578	* make.h [__GNUC__]: Don't #define alloca if already #define'd.
579
580	* rule.c (convert_to_pattern): Don't look at the target constructed for
581	the empty rule when making the null-suffix rule.  Construct it over
582	again, since the former may have been freed already.
583
584Thu Dec 13 17:21:03 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
585
586	* make.h [__GNU_LIBRARY__]: Include <unistd.h> to get random fn decls.
587
588Wed Dec 12 17:12:59 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
589
590	* make.h, arscan.c, glob.c: Only include <memory.h> #ifdef USG.
591
592	* variable.c (define_variable_in_set): Replace env_overrides check that
593	wasn't really redundant (undoing Sep 28 change).  Add comment saying
594	why this check is necessary.
595
596	* job.c, main.c [DGUX]: Needs siglist like USG.
597
598Mon Dec 11 01:19:29 1990  Roland McGrath  (roland at albert.ai.mit.edu)
599
600	* default.c [M_XENIX]: For rules that are different for Xenix, use the
601	generic Unix version #ifdef __GNUC__.
602
603	* main.c [M_XENIX]: Use USGr3-style setvbuf call.
604
605	* read.c (find_percent): Do backslash folding correctly, not leaving
606	extra crud on the end of the string.
607
608Sun Dec 10 21:48:36 1990  Roland McGrath  (roland at albert.ai.mit.edu)
609
610	* job.c: Don't declare wait3 if it's #defined.
611
612	* GNUmakefile, compatMakefile, make.texinfo: Change make-info
613	to make.info.
614
615Thu Dec  7 21:20:01 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
616
617	* make.h [STDC_HEADERS || __GNU_LIBRARY__ || _POSIX_SOURCE]: Use
618	ANSI <string.h> and names for str/mem functions.
619	Use <stdlib.h> to declare misc fns rather than explicit decls.
620	[_POSIX_SOURCE]: Don't declare kill (<signal.h> will).
621	Include <sys/types.h> before <signal.h> because some braindead
622	nonconformant 1003.1 implementation needs it.
623	* misc.c: Don't declare malloc, realloc.  Do it in make.h.
624	* arscan.c, glob.c: Use sequence for string fns from make.h verbatim.
625	* make.h (S_ISDIR, S_ISREG): Declare if necessary.
626	* commands.c (delete_child_targets), job.c (search_path), read.c
627	(construct_include_path): Use S_ISfoo(m) instead of
628	(m & S_IFMT) == S_IFfoo.
629	* dir.c, glob.c [_POSIX_SOURCE]: Use dirent.
630
631Wed Nov 29 22:53:32 1990  Roland McGrath  (roland at geech.ai.mit.edu)
632
633	* Version 3.59.
634
635Tue Nov 28 16:00:04 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
636
637	* arscan.c (ar_name_equal) [APOLLO]: Don't do `.o' hacking.  On Apollos
638	the full file name is elsewhere, and there is no length restriction (or
639	so I'm told).
640
641Thu Nov 23 17:33:11 1990  Roland McGrath  (roland at albert.ai.mit.edu)
642
643	* load.c [hp300 && BSD] (LDAV_CVT): Define for this system.
644
645Tue Nov 21 07:58:40 1990  Roland McGrath  (roland at albert.ai.mit.edu)
646
647	* read.c (record_files): Fix trivial bug with deciding to free storage
648	for a file name.
649
650Thu Nov 16 06:21:38 1990  Roland McGrath  (roland at geech.ai.mit.edu)
651
652	* compatMakefile ($(bindir)/make): Install it setgid kmem.
653
654Thu Nov  1 16:12:55 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
655
656	* GNUmakefile (make-*.tar.Z): Use `h' option to tar (dereference
657	symlinks), to grab texinfo.tex from wherever it lives.
658
659Tue Oct 30 16:15:20 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
660
661	* Version 3.58.13.
662
663Fri Oct 26 14:33:34 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
664
665	* GNUmakefile: make-*.tar.Z: Include texinfo.tex.
666
667Tue Oct 23 19:34:33 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
668
669	* main.c (define_makeflags): When there are no flags to write, make
670	sure the array has two leading nulls, since `MAKEFLAGS' is defined from
671	&flags[1].
672
673	* main.c (default_keep_going_flag): New variable (constant one).
674	(command_switches: -k, -S): Use above for default value.
675	(define_makeflags): Only write flag/flag_off switches if they are on,
676	and either there is no default value, or they are not the default.
677
678Mon Oct 22 16:14:44 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
679
680	* main.c (struct command_switch): New member `no_makefile'.
681	(command_switches: -n, -q, -t): Set no_makefile == 1.
682	(define_makeflags): Take new arg MAKEFILE: if nonzero, don't use
683	options whose `no_makefile' flags are set.
684	(main): Call define_makeflags with MAKEFILE==1 before remaking
685	makefiles, and again with MAKEFILE==0 before remaking goals.
686
687Tue Oct  2 17:16:45 1990  Roland McGrath  (roland at geech.ai.mit.edu)
688
689	* Version 3.58.12.
690
691Mon Oct  1 15:43:23 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
692
693	* arscan.c [HPUX]: Use PORTAR==1 format.
694
695Sat Sep 29 16:38:05 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
696
697	* make.h, remake.c, arscan.c: Don't declare `open'.
698
699Fri Sep 28 04:46:23 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
700
701	* variable.c (define_variable_in_set): Remove redundant -e check.
702
703Wed Sep 26 00:28:59 1990  Roland McGrath  (roland at geech.ai.mit.edu)
704
705	* job.c (start_job): Set RECURSIVE from the right elt of
706	CHILD->file->cmds->lines_recurse.
707
708	* commands.c (chop_commands): Don't botch the line count for allocating
709	CMDS->lines_recurse.
710
711	* Version 3.58.11.
712
713	* job.c (start_job): Don't always increment CHILD->command_line!  Only
714	do it when CHILD->command_ptr has run out!  (Dumb bug.  Sigh.)
715
716Thu Sep 20 02:18:51 1990  Roland McGrath  (roland at geech.ai.mit.edu)
717
718	* GNUmakefile [ARCH]: Give explicit rule for remote.{c,dep} to use
719	variable `REMOTE' for more flags.
720	($(prog)): Link in $(LOADLIBES).
721
722Wed Sep 19 02:30:36 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
723
724	* commands.h (struct commands): New member `ncommand_lines', the number
725	of elts in `command_lines' et al.
726	* commands.c (chop_commands): Set `ncommand_lines' elt of CMDS, and
727	don't put a nil pointer at the end of `command_lines'.
728	* job.h (struct child): New member `command_lines' to hold
729	variable-expanded command lines.
730	* job.c (new_job): Store expanded command lines in `command_lines'
731	member of new child.  Don't clobber FILE->cmds.
732	(start_job): Use CHILD->command_lines in place of
733	CHILD->file->cmds->command_lines.
734
735	* variable.h, variable.c, job.c, expand.c: Undo yesterday's change,
736	which is no longer necessary since we have cleverly avoided the issue.
737
738	* job.c (start_job): Don't variable-expand each command line.
739	(new_job): Do them all here, storing the expansions in the array.
740
741Tue Sep 18 01:23:13 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
742
743	* variable.h (struct variable): Remove `expanding' member.
744	* variable.c (define_variable_in_set): Don't initialize it.
745	* expand.c (struct variable_expanding): New type, a linked list
746	containing `struct variable' pointers.
747	(variables_expanding): New variable, the chain of variables currently
748	being expanded.
749	(recursively_expand): Don't test and set `expanding' member.
750	Instead, run through the `variables_expanding' chain looking for a link
751	referring to V to find self-reference.  Add a new link to the chain,
752	describing V, before recursive expansion, and pop it off afterward.
753	* job.c (child_handler): Save `variables_expanding' and clear it before
754	calling start_job, and restore it afterward.  This avoids major lossage
755	when the SIGCHLD comes in the middle of variable expansion.
756
757Mon Sep 17 14:46:26 1990  Roland McGrath  (roland at geech.ai.mit.edu)
758
759	* job.c, commands.c: Don't define sigmask.
760	* make.h: Put it here instead.
761
762	* variable.c (target_environment): If `.NOEXPORT' was specified as a
763	target, only export command-line and environment variables, and
764	file-origin variables that were in the original environment.
765
766	* make.man: Add missing ?roff control for `-I' option description.
767
768Thu Sep 13 14:10:02 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
769
770	* load.c [UMAX]: Move #include <sys/sysdefs.h> to [not UMAX_43].
771
772Wed Sep 12 15:10:15 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
773
774	* expand.c (recursively_expand): Don't use `reading_filename' and
775	`reading_lineno_ptr' if they're nil.
776
777Thu Aug 30 17:32:50 1990  Roland McGrath  (roland at geech)
778
779	* Version 3.58.10.
780
781Tue Aug 28 04:06:29 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
782
783	* job.c [USG] (unknown_children_possible): New variable, set nonzero
784	when it's possible for children not in the `children' chain to die.
785	(block_signals) [USG]: Set it.
786	(unblock_signals) [USG]: Clear it.
787	(child_handler) [USG]: Don't complain about unknown children if
788	`unknown_children_possible' is set.
789
790	* read.c (do_define): Make sure there's enough space for the newline,
791	so we don't write off the end of allocated space.
792
793	* arscan.c (ar_name_equal): Fixed to work when MEM is AR_NAMELEN-1 but
794	NAME is not the same length.
795
796Sat Aug 25 16:17:14 1990  Roland McGrath  (roland at geech)
797
798	* job.c (construct_command_argv_internal): Use a static char array for
799	a constant, since old C has no auto aggregate initializers.
800
801Thu Aug 23 16:11:03 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
802
803	* job.c (search_path): If PATH is nil or "" use a default path.
804
805Wed Aug 22 01:05:32 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
806
807	* Version 3.58.9.
808
809	* job.c (exec_command): Don't take PATH and SHELL args.  Get them from
810	ENVP.
811	(child_execute_job): Don't take FILE arg, and don't pass path and shell
812	to exec_command.
813	(start_job): Don't pass FILE arg to child_execute_job.
814	* function.c (expand_function: `shell'): Ditto.
815	* main.c (main): Don't pass path and shell to exec_command.
816
817Fri Aug 17 23:17:27 1990  Roland McGrath  (roland at geech)
818
819	* job.c (construct_command_argv_internal): New fn broken out of
820	construct_command_argv.  Takes strings SHELL and IFS instead of doing
821	variable expansion for them.  Recurse to make an argv for SHELL,
822	passing SHELL==0.  When SHELL==0, don't recurse for shell argv; make a
823	simple one using /bin/sh.
824	(construct_command_argv): Do the variable expansions and call above.
825
826Thu Aug 16 19:03:14 1990  Roland McGrath  (roland at geech)
827
828	* read.c (multi_glob): For ~USER/FILE, if USER isn't found, don't
829	change the file name at all.
830
831Tue Aug  7 18:33:28 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
832
833	* function.c (expand_function: `suffix'/`notdir'): Don't kill the last
834	space if we never wrote one.
835
836	* function.c (expand_function: `suffix'): Retain the dot, like the
837	documentation says.
838
839Mon Aug  6 14:35:06 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
840
841	* Version 3.58.8.
842
843	* main.c (decode_switches): For positive_int and floating cases, move
844	SW past the arg (and don't set it to ""), so another switch can follow.
845
846Fri Aug  3 00:43:15 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
847
848	* job.c (child_execute_job): Use unblock_signals instead of
849	push_signals_blocked_p (0).
850
851	* main.c (fatal_signal_mask): New variable, mask of signals caught with
852	fatal_error_signal.
853	(main): Set it.
854	* job.c ({block,unblock}_children): Renamed to {block,unblock}_signals.
855	Block/unblock both child signal and signals in fatal_signal_mask.
856	(children_blocked_p_{stack,max,depth}, {push,pop}_children_blocked_p):
857	Renamed from children to signals.  Use {block,unblock}_signals instead
858	of {block,unblock}_children.
859	* commands.c (fatal_error_signal), job.c (wait_for_children, new_job,
860	child_execute_job, main, log_working_directory), function.c
861	(expand_function: `shell'), job.h: Rename {push,pop}_children_blocked_p
862	to {push,pop}_signals_blocked_p.
863	* job.c (child_handler): Call {block,unblock}_signals instead of just
864	{block,unblock}_remote_children.  We need to block the fatal signals.
865
866Thu Aug  2 22:41:06 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
867
868	* main.c, function.c: Fixed typos in comments.
869
870	* file.c (print_file_data_base): Fix computation of avg files/bucket.
871
872Tue Jul 31 22:11:14 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
873
874	* Version 3.58.7.
875
876Wed Jul 25 16:32:38 1990  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
877
878	* arscan.c (ar_name_equal): Fixed to really do it right.
879	(ar_member_pos): Fixed order of args.
880	* ar.c (ar_member_date_1): Ditto.
881
882Fri Jul 20 15:30:26 1990  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
883
884	* arscan.c (ar_name_equal): Rewritten.  Accounts for a possible
885	trailing slash in MEM.
886
887	* remake.c (f_mtime): Keep track of whether ARNAME is used and free it
888	if not.  Also free MEMNAME.
889	* ar.c (ar_member_date, ar_touch): Ditto.
890
891	* arscan.c (arscan) [HPUX or hpux]: Treat same as USGr3 PORTAR==1.
892
893	* make.h: If NSIG is not defined, but _NSIG is, #define NSIG _NSIG.
894
895	* compatMakefile: Don't use $* in explicit rules.
896
897	* default.c (default_variables: "PREPROCESS.S"): Include $(CPPFLAGS).
898
899	* remake.c (f_mtime): If FILE is an ar ref, get the member modtime.
900
901	* function.c (string_glob): Terminate the string properly when it's
902	empty.
903
904Wed Jul 18 11:26:56 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
905
906	* Version 3.58.6.
907
908	* commands.c (set_file_variables): Fixed computation for ^F/?F elt len.
909
910Sat Jul 14 13:41:24 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
911
912	* job.c (construct_command_argv): Always use
913	allocated_variable_expand_for_file instead of variable_expand_for_file
914	because we might be called from inside a variable expansion (for the
915	`shell' function).
916
917	* function.c (expand_function: `shell'): Free the arglist's storage
918	correctly.  construct_command_argv only allocates ARGV and ARGV[0].
919
920	* job.c (children_blocked_p_idx): Renamed to children_blocked_p_depth.
921	(push_children_blocked_p, pop_children_blocked_p): Use ..._depth
922	instead of ..._idx, and do it right!
923
924Wed Jul 11 15:35:43 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
925
926	* make.h (SIGNAL): New macro to replace `signal' calls.  Does arg and
927	ret value casts to (void *) #ifdef __STDC__ to avoid conflicts btwn
928	ANSI and BSD `signal' and handler types.
929	* main.c (main), job.c (child_handler): Use it.
930
931Fri Jul  6 00:00:38 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
932
933	* ar.c (ar_member_date, ar_touch): Pass 2nd arg to f_mtime.
934
935	* read.c (read_makefile): Search the include path for MAKEFILES
936	variable makefiles (TYPE == 1), like it says in the manual.
937
938	* file.h (struct file), main.c (struct command_switch): Remove trailing
939	commas from enums.
940
941	* commands.c (execute_file_commands): Remove unused variables.
942	* commands.h: Declare chop_commands.
943	* make.h: Declare uniquize_deps.
944	* main.c (main): Remove unused variable.
945	(decode_switches): Remove unused label.
946	* remake.c: Include "ar.h" for ar_parse_name decl.
947	* implicit.c (try_implicit_rule): Remove unused variable.
948	* function.c (expand_function: `shell'): Declare fork, pipe.
949	* ar.c: Declare ar_name_equal.
950
951	* GNUmakefile: If using gcc, add warning flags to CFLAGS.
952
953	* remake.c: Remove decl of ar_member_date, since it's done in make.h.
954
955	* remake.c (f_mtime): For ar refs, allow the archive to be found via
956	VPATH search if we're searching, and change the ar ref accordingly.
957
958	* ar.c (ar_parse_name): New global fn to parse archive-member
959	references into the archive and member names.
960	(ar_member_date, ar_touch): Use it.
961	* make.h: Declare it.
962
963	* remake.c (f_mtime): After doing rename_file, do check_renamed instead
964	of assuming rename_file will always set FILE->renamed (which it won't).
965
966	* vpath.c (selective_vpath_search): Only accept prospective files that
967	don't actually exist yet are mentioned in a makefile if the file we are
968	searching for isn't a target.
969
970Wed Jul  4 04:11:55 1990  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
971
972	* remake.c (update_goal_chain): Do check_renamed after calling
973	file_mtime.
974	(check_dep): Ditto after update_file.
975
976	* file.c (rename_file): Prettied up long message for merging cmds.
977
978	* remake.c (update_file_1): Get each dep file's modtime, and allow for
979	it being renamed, before checking for a circular dep, since a renaming
980	may have introduced one.
981
982Tue Jul  3 18:15:01 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
983
984	* ar.c (ar_touch): Don't free ARNAME since enter_file holds onto the
985	storage.
986
987	* function.c (string_glob): Don't leave a trailing space.
988
989	* read.c (do_define): Allow leading whitespace before `endef'.
990
991Mon Jul  2 14:10:16 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
992
993	* implicit.c (pattern_search): No longer take NAME arg.  Instead take
994	ARCHIVE flag.  If ARCHIVE is nonzero, FILE->name is of the form
995	"LIB(MEMBER)"; rule for "(MEMBER)" is searched for, and LASTSLASH is
996	set to nil.  Since NAME was only non-nil when it was the archive member
997	name passed by try_implicit_rule, this change easily allows turning off
998	LASTSLASH checking for archive members without excessive kludgery.
999	(try_implicit_rule): Pass ARCHIVE flag instead of file name.
1000
1001	* Version 3.58.5.
1002
1003	* commands./c (set_file_variables): Don't kill last char of $(^D) elts.
1004
1005Sat Jun 30 00:53:38 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1006
1007	* ar.c (ar_member_date): Don't free ARNAME since enter_file holds onto
1008	the storage.
1009
1010	* arscan.c (ar_scan) [sun386 && PORTAR == 1]: Treat like USGr3.
1011
1012Wed Jun 27 14:38:49 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1013
1014	* main.c (main): Put a newline on the debugging message when deciding
1015	not to remake a makefile to avoid a possible loop.
1016	Only decide not to remake makefiles that have commands (as well as
1017	being targets and having no deps).
1018
1019Fri Jun 22 12:35:37 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1020
1021	* default.c (default_variables): Define `LINK.s' and `LINK.S'.
1022	(default_suffix_rules): Define .S.o rule.
1023
1024	* job.c (construct_command_argv): If we decide to go the slow route,
1025	free all storage for the chopped args.
1026	(start_job): Free the argument list's storage correctly.
1027	construct_command_argv only allocates ARGV and ARGV[0].
1028
1029Tue Jun 19 18:27:43 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1030
1031	* Version 3.58.4.
1032
1033Fri Jun 15 21:12:10 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1034
1035	* glob.c: New version from ai-lab which doesn't do [^abc].
1036
1037Thu Jun  7 00:30:46 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1038
1039	* dir.c: Copied dirent vs direct et al mess from glob.c.
1040
1041	* glob.c: Replaced with updated version from djm.
1042	* glob.c: Check macro DIRENT instead of _POSIX_SOURCE for <dirent.h>.
1043	__GNU_LIBRARY__ implies DIRENT and STDC_HEADERS.
1044
1045Thu May 31 22:19:49 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1046
1047	* vpath.c (vpath_search): Don't stop the loop if a pattern matches but
1048	the search fails.  All matching patterns have their paths searched
1049	(like it says in the manual).
1050
1051	* make.texinfo (Rules: Directory Search: Selective Search): Say that
1052	multiple `vpath' directives with the same pattern DO accumulate, not
1053	supersede earlier ones.
1054
1055	* vpath.c (print_vpath_data_base): Increment the count of vpaths on
1056	each loop iteration, rather than letting it stay zero.
1057
1058	* Version 3.58.3.
1059
1060	* job.c (block_children, unblock_children): Made static.
1061	(push_children_blocked_p, pop_children_blocked_p): New functions to
1062	push and pop whether children are blocked or not.
1063	* job.h: Declare push_children_blocked_p, pop_children_blocked_p and
1064	not block_children, unblock_children.
1065	* commands.c (fatal_error_signal), job.c (wait_for_children, new_job,
1066	child_execute_job), main.c (main, log_working_directory): Use sequences
1067	of push_children_blocked_p (1) and pop_children_blocked_p () instead of
1068	explicitly blocking and unblocking children.
1069	* function.c (expand_function: `shell'): Don't unblock children.  The
1070	push-pop sequence in wait_for_children makes it unnecessary.
1071
1072Tue May 29 21:30:00 1990  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
1073
1074	* read.c (do_define): Don't include the last newline in the definition.
1075
1076	* function.c (expand_function: `shell'): Call construct_command_argv
1077	before forking and don't fork if it returns nil.  Free the argument
1078	list's storage before finishing.
1079
1080	* job.c (start_job): Free the storage for the child's argument list
1081	in the parent side of the fork after the child has been spawned.
1082
1083	* job.c (start_job): If construct_command_argv returns nil, go to the
1084	next command line.
1085
1086	* job.c (construct_command_argv): Use the shell if the command contains
1087	an unterminated quote.
1088
1089Wed May 23 19:54:10 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1090
1091	* Version 3.58.2.
1092
1093	* read.c (read_makefile): Parse "override define" correctly.
1094
1095Thu May 17 15:25:58 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1096
1097	* arscan.c [USG]: Don't declare memcpy and memcmp.  <memory.h> should
1098	do this anyway (and lack of declarations is harmless).
1099
1100	* remote-customs.c: Renamed to remote-cstms.c for System V.
1101	* remote.c [CUSTOMS]: Changed accordingly.
1102
1103Sun May 13 14:38:39 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1104
1105	* GNUmakefile: Use same cmds for doc tar.Z as for dist tar.Z (so the
1106	contents go in make-N.NN).
1107
1108Thu Apr 26 19:33:25 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1109
1110	* Version 3.58.1.
1111
1112Wed Apr 25 20:27:52 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1113
1114	* job.c (init_siglist): Don't do SIGUSR1 and SIGUSR2 if they are the
1115	same as SIGIO and SIGURG (true on Cray).
1116
1117Tue Apr 24 20:26:41 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1118
1119	* arscan.c (ar_scan): Do behavior for PORTAR == 1 and USGr3 also
1120	#ifdef APOLLO.
1121
1122Wed Apr 11 10:00:39 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1123
1124	* job.c (exec_command): Set the effective GID to the real GID.  Somehow
1125	this code got lost.
1126
1127	* implicit.c (pattern_search): Use the right index variable when
1128	seeing if we need to expand FILE->also_make.
1129
1130Sun Mar  4 09:18:58 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1131
1132	* Version 3.58.0.
1133
1134	* remake.c (remake_file): Treat non-targets without commands under -t
1135	the same as anything else without commands.
1136
1137Sat Feb 24 17:46:04 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1138
1139	* default.c (default_variables: PREPROCESS.S): Removed $< from defn.
1140
1141	* main.c (main): Ignore arguments that are the empty string, rather
1142	than feeding them to enter_file and barfing therein.
1143
1144Wed Feb 14 16:28:37 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1145
1146	* main.c (main): Call construct_include_path after doing chdirs.
1147
1148Thu Feb  8 13:43:44 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1149
1150	* Version 3.58.
1151
1152Sat Feb  3 22:06:55 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1153
1154	* Version 3.57.7.
1155
1156	* make.texinfo (Implicit: Catalogue of Rules): For RCS, noted that
1157	working files are never overwritten by the default rule.
1158
1159Thu Feb  1 17:27:54 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1160
1161	* rule.c (count_implicit_rule_limits): Redid loop control to not run
1162	twice on freed rules.
1163
1164	* GNUmakefile: Made `.dep' files be architecture-specific too.
1165
1166	* main.c (main, log_working_directory) [USG]: Block children around
1167	calls to `getwd' (actually `getcwd' on USG), because that function
1168	sometimes spawns a child running /bin/pwd on USG.
1169
1170Tue Jan 30 14:02:50 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1171
1172	* function.c (subst_expand): Pay attention to SUFFIX_ONLY, putz.
1173
1174Wed Jan 24 21:03:29 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1175
1176	* make.man: Fixed repeated word.
1177
1178	* make.texinfo (Missing): Reworded a buggy sentence.
1179
1180Mon Jan 22 12:39:22 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1181
1182	* main.c (print_version): Added 1990 to copyright notice.
1183
1184	* Version 3.57.6.
1185
1186Sat Jan 20 11:52:01 1990  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1187
1188	* file.c (rename_file): Don't free the storage for the old name, since
1189	it might not have been malloc'd.
1190
1191	* job.c (construct_command_argv): Call
1192	allocated_variable_expand_for_file instead of variable_expand_for_file
1193	to expand `$(SHELL)'.
1194
1195	* make.texinfo (Bugs): Change address from roland@wheaties.ai.mit.edu
1196	to roland@prep.ai.mit.edu.
1197
1198Tue Jan 16 19:22:33 1990  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
1199
1200	* Version 3.57.5.
1201
1202Sun Jan 14 16:48:01 1990  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
1203
1204	* job.c (start_job): Only call wait_to_start_job for the first command
1205	line in each sequence.
1206
1207Thu Jan  4 14:27:20 1990  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
1208
1209	* load.c [LDAV_BASED] (wait_to_start_job): Loop while job_slots_used >
1210	0, not > 1.
1211
1212	* job.c (search_path): Don't return a pointer to local storage.
1213	Allocate data space for the pathname instead.
1214
1215	* function.c (expand_function: `shell'): Don't write garbage if the
1216	child wrote no output.
1217
1218Wed Jan  3 15:28:30 1990  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1219
1220	* Version 3.57.4.
1221
1222	* file.h (struct file): New member `renamed', a `struct file *' that is
1223	the place this file has been renamed to (or nil).
1224	(check_renamed): Macro to check for a file having been renamed.
1225	Dereferences the renaming and sets the given variable.
1226	* file.c (rename_file): Completely rewritten.  Renames in place if
1227	possible, or moves FILE to a different hash bucket if there is no
1228	existing file with the new name.  If there is an existing file with the
1229	new name, FILE is merged into it and FILE->renamed is set to point to
1230	it.
1231	* variable.c (merge_variable_sets): New fn to merge two variable sets.
1232	(merge_variable_set_lists): New fn to merge two variable set lists.
1233	* variable.h: Declare merge_variable_set_lists.
1234	* remake.c (update_file_1, check_dep): Run `check_renamed' after
1235	calling file_mtime, check_dep.
1236	(update_file): Same after update_file_1.
1237	(update_goal_chain, update_file_1, check_dep): Same after update_file.
1238
1239	* read.c (uniquize_deps): New fn, broken out of record_files, to remove
1240	duplicate deps from a chain.
1241	(record_files): Use it.
1242	* implicit.c (pattern_search): Use uniquize_deps.
1243
1244	* file.h (file_mtime_1): New macro, like file_mtime, but take second
1245	arg, passed to f_mtime.
1246	(file_mtime): Implement as file_mtime_1 (file, 1).
1247	(file_mtime_no_search): New macro: file_mtime (file, 0).
1248	* remake.c (f_mtime): Take new arg SEARCH.  Only do VPATH and `-lNAME'
1249	searching if it is nonzero.
1250	* main.c (main): Use file_mtime_no_search for makefiles.
1251	* remake.c (update_goal_chain): Use file_mtime_no_search if MAKEFILES.
1252
1253	* main.c (printed_version): New variable, init'd to zero.
1254	(print_version): Set it to nonzero before returning.
1255	(die): If -v and !printed_version, call print_version before clean up
1256	and death.
1257
1258	* main.c (log_working_directory): Keep track of whether or not the
1259	"Entering" message has been printed, and return without printing the
1260	"Leaving" message if not.
1261
1262	* main.c (decode_switches): Don't complain about missing args before
1263	checking for a noarg_value elt in the command_switch structure.
1264
1265Tue Jan  2 15:41:08 1990  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
1266
1267	* make.texinfo (Commands: Recursion: Options/Recursion): Document
1268	special case of -j.
1269
1270	* make.texinfo, main.c, job.c: Changed copyright notices to include
1271	1990.
1272
1273	* make.texinfo (Top): Fixed introductory paragraph, which said that
1274	`make' itself (instead of the manual) has various chapters.
1275	(Variables: Advanced: Substitution Refs): When pxref'ing about
1276	`patsubst', use node `Text Functions', not `Functions'.
1277	Add an xref about `patsubst' after description of $(var:a%b=c%d).
1278	(Functions: Syntax of Functions): Explain why mixing delimiters in
1279	function/var refs is unwise.  Clarify fn arg evaluation order.
1280	(Options): Reworded sentence about `-e'.
1281	(Implicit: Implicit Variables): Don't say `RM' is unused.
1282	Say the dflt values for the flag vars is empty unless otherwise noted,
1283	since some have defaults.
1284	(Implicit: Pattern Rules: Pattern Examples): Clarified use of $< and $@
1285	in first example.
1286	(Implicit: Last Resort): Don't say the .DEFAULT example creates files
1287	"silently".  It's automatic, but not silent.
1288	(Implicit: Search Algorithm): Fixed confusing ungrammatical sentence
1289	for item 5.1.
1290	(Archives: Archive Update): Added missing `next' pointer.
1291	(Archives: Archive Symbols): Note that GNU `ar' deals with this
1292	automatically.
1293
1294	* job.c (search_path): New fn, to search for an executable file in a
1295	search path (broken out of exec_command).
1296	(exec_command): Take fourth arg, the shell program to use (if
1297	necessary).  Use search_path for the program, and the shell program.
1298	Pass args "file args ..." to shell program (with no -c), where FILE is
1299	the full pathname of the program (script) to be run.
1300	(child_execute_job): Pass shell program to exec_command.
1301	* main.c (main): Ditto.
1302
1303	* main.c (main): Don't write a message if exec_command returns, because
1304	it will never return.
1305
1306Fri Dec 22 16:19:58 1989  Roland McGrath  (mcgrath at hecuba.Berkeley.EDU)
1307
1308	* default.c (default_variables: "LINK.cc"): Use $(C++FLAGS) instead of
1309	$(CFLAGS).
1310
1311Wed Dec 20 09:58:48 1989  Roland McGrath  (mcgrath at hecuba.Berkeley.EDU)
1312
1313	* job.c (new_job): If start_job set the child's `command_state' to
1314	`cs_finished', call notice_finished_file.
1315
1316Sun Dec 17 19:45:41 1989  Roland McGrath  (mcgrath at hecuba.Berkeley.EDU)
1317
1318	* Version 3.57.3.
1319
1320Wed Dec 13 17:57:12 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1321
1322	* rule.c (convert_to_pattern): Accept files with dependencies as
1323	suffix rules.
1324
1325Thu Nov 30 15:47:13 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
1326
1327	* Version 3.57.2.
1328
1329	* function.c (expand_function: `shell'): Don't clobber BUFFER and then
1330	try to free it.
1331
1332	* remake.c (update_file_1): Took code to force remake of nonexistent
1333	deps out of #if 0, and changed the test to nonexistent non-intermediate
1334	deps.  In version 4, I think removing this test completely will
1335	implement the new feature that if a: b and b: c and c is newer than a,
1336	b need not be remade.
1337
1338Sun Nov 26 16:12:41 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1339
1340	* compatMakefile (load.o, remote.o): Use $*.c instead of explicit file
1341	names so that using VPATH works.
1342
1343Tue Nov 21 14:57:18 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1344
1345	* Version 3.57.1.
1346
1347Fri Nov 10 03:28:40 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1348
1349	* remake.c (check_dep): Set *MUST_MAKE_PTR if FILE does not exist after
1350	being updated.  (The exact opposite test was here before; why???)
1351	(update_file_1): Set a dep's `changed' member after updating it if it
1352	is phony and has commands (because they will then always be executed).
1353
1354Thu Nov  9 13:47:12 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1355
1356	* load.c [UMAX]: #ifdef UMAX_43 include different headers for the
1357	`inq_stats' call.
1358	* compatMakefile (LOAD_AVG): Document UMAX_43.
1359
1360	* Version 3.57.0.
1361
1362	* commands.c (chop_commands): New function to chop commands into lines.
1363	* job.c (new_job): Break that code out, and call chop_commands.
1364	* remake.c (remake_file): Call chop_commands before looking at
1365	FILE->cmds->any_recurse.
1366
1367	* make.texinfo (Running: Goals): Don't say that the default target
1368	won't be taken from an included makefile.
1369
1370	* remake.c (update_file_1): #if 0 out setting MUST_MAKE if a dep
1371	doesn't exist.
1372
1373Fri Nov  3 15:53:03 1989  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
1374
1375	* Version 3.57.
1376
1377	* variable.c (try_variable_definition): Don't calculate useless value.
1378
1379	* main.c (define_makeflags): Fixed -j propagation.
1380
1381	* commands.c (execute_file_commands): Removed unused variable.
1382
1383Sun Oct 29 11:11:15 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1384
1385	* commands.c (execute_file_commands): If the commands are empty, call
1386	notice_finished_file before returning.
1387
1388Sat Oct 28 23:06:32 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1389
1390	* remake.c (update_file_1): Don't always update a target that has no
1391	deps.  Only do this for double-colon targets.
1392
1393Wed Oct 25 16:36:16 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1394
1395	* main.c (main) [hpux]: hpux == HPUX.
1396	* compatMakefile (defines): Document that HPUX should be defined.
1397
1398Tue Oct 24 19:19:48 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1399
1400	* Version 3.56.8.
1401
1402	* job.c (exec_command): Fixed what mode bits are checked.
1403
1404	* remake.c (update_file_1): "No cmds and no deps actually changed"
1405	loses if ! FILE->is_target.
1406
1407	* make.texinfo (Variables: Setting): Don't say that spaces after a
1408	variable definition are ignored (since they aren't).
1409
1410Mon Oct 23 14:34:23 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1411
1412	* Version 3.56.7.
1413
1414	* remake.c (update_file_1): If, after being updated, any dependency
1415	does not exist, remake the target.
1416
1417	* remake.c (update_file_1): Always update if FILE has commands but no
1418	deps.
1419
1420	* commands.c (execute_file_commands): If we return early because there
1421	are no commands, set FILE->updated.
1422
1423Thu Oct 19 18:47:37 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1424
1425	* arscan.c (ar_scan) [M_XENIX]: Don't run atoi or atol on the
1426	`struct ar_hdr' members that are int or long int on Xenix.
1427
1428Sat Oct 14 10:43:03 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1429
1430	* arscan.c (ar_scan): Cosmetic clean ups.
1431	(ar_name_equal): New function to compare names, handling truncated
1432	member names and special `.o' truncation.
1433	(ar_member_pos): Use ar_name_equal.
1434	* ar.c (ar_member_date_1): Use ar_name_equal.
1435
1436	* Version 3.56.6.
1437
1438	* file.h (struct file): Made `update_status' a `short int', and moved
1439	it before `command_state' so the bitfields can be packed better.
1440
1441	* remake.c (files_remade): Made global.
1442	(notice_finished_file): Don't increment files_remade.
1443	* job.c (new_job): Do.
1444
1445	* job.c (start_job): Don't return a value.  Always set
1446	CHILD->file->command_state to either cs_running or cs_finished.
1447	(new_job, child_handler): Don't expect start_job to return a value.
1448	Instead, look at the file's command_state.
1449
1450	* commands.c (chop_commands): Merged into job.c (new_job).
1451	* commands.h: Don't declare chop_commands.
1452
1453	* job.c (start_job): Made static.
1454	(new_job): New function to create a `struct child' and call start_job.
1455	(free_child): New function to free a `struct child'.
1456	(child_handler, new_job): Call it.
1457	* job.h: Don't declare start_job.  Do declare new_job.
1458	* commands.c (execute_file_commands): Call new_job.
1459
1460	* commands.c (execute_file_commands): Don't set FILE->update_status if
1461	start_job fails.
1462
1463	* function.c (expand_function): Don't use `reading_filename' and
1464	`reading_lineno_ptr' if they're nil.
1465
1466Fri Oct 13 18:16:00 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1467
1468	* read.c (find_semicolon): New function to look for an unquoted ; not
1469	preceded by an unquoted # in a string.
1470	(read_makefile): Call it before expanding the line.  If it finds a ;,
1471	cut the line short there before expanding it.  If not, call it again
1472	after expanding.
1473
1474	* commands.c (execute_file_commands): Don't check FILE->command_state.
1475	We won't get called unless it's cs_not_started.
1476
1477	* read.c (read_makefile): Call collapse_line on the variable-expanded
1478	rule line after checking for ; and #.
1479
1480	* job.c (start_job): When there are no more commands, always return 0.
1481	* commands.c (execute_file_commands): Don't put the new child in the
1482	`children' chain unless FILE->command_state is cs_running.
1483
1484	* read.c (read_makefile): Rewrote ;-handling to only do it once (why
1485	did I do it twice??) and to check for a # before the ;.
1486
1487	* job.c (start_job): Set CHILD->file->update_status to 0 when we run
1488	out of commands.  Set it to 1 before returning failure.
1489	(child_handler): Don't set C->file->update_status to 0 when start_job
1490	returns success and commands are not running.
1491
1492	* read.c (read_makefile): If there is a # before the ; for commands,
1493	forget the ; and commands.
1494
1495Thu Oct 12 15:48:16 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1496
1497	* job.c (child_execute_job): Pass -c to the shell.
1498
1499Wed Oct 11 18:41:10 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1500
1501	* Version 3.56.5.
1502
1503	* main.c (define_makeflags): Cleaned up to keep better track of dashes
1504	written, etc.
1505
1506	* function.c (expand_function: `shell'): When converting newlines to
1507	spaces in output, search with `index' calls rather than a simple loop.
1508
1509	* main.c (main): Make sure stdout is line-buffered.
1510
1511	* main.c (decode_switches): Always check for missing switch arg.
1512
1513Mon Oct  9 17:17:23 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1514
1515	* Version 3.56.4.
1516
1517Sat Oct  7 00:32:25 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1518
1519	* commands.c (set_file_variables): #ifdef NO_ARCHIVES, still set $@ and
1520	$%.
1521
1522	* commands.c (set_file_variables): Include a trailing slash in the
1523	directory variables (@D, etc.).
1524
1525	* job.c (child_handler): Call notice_finished_file after changing a
1526	child's state to `cs_finished'.
1527	* remake.c (update_file_1): Don't call notice_finished_file if
1528	FILE->command_state == cs_finished.
1529
1530Wed Oct  4 16:09:33 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1531
1532	* Version 3.56.3.
1533
1534Tue Oct  3 21:09:51 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1535
1536	* read.c (read_all_makefiles): When setting elements of MAKEFILES from
1537	the contents of read_makefiles, make sure we're using the right
1538	element.
1539
1540	* dir.c, glob.c [USGr3 || DIRENT]: Don't define d_ino as d_fileno.
1541
1542	* Version 3.56.2.
1543
1544	* remake.c (update_file_1): Return zero after calling remake_file if
1545	FILE->command_state != cs_finished.  Test update_status thoroughly.
1546
1547	* commands.c (execute_file_commands): Don't call notice_finished_file.
1548
1549	* remake.c (remake_file): Return immediately after calling
1550	execute_file_commands.
1551
1552Sat Sep 30 14:57:05 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1553
1554	* Version 3.56.1 (alpha).
1555
1556	* file.h (struct file): Made `update_status' not be a bitfield, since
1557	some broken compilers don't handle it right.
1558
1559	* function.c (expand_function: `join'): Don't clobber the pointers and
1560	then try to free them.
1561
1562	* job.c (exec_command): Fixed & vs = precedence problem.
1563
1564Thu Sep 28 17:29:56 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1565
1566	* remake.c (update_file_1): Fixed typo in debugging output.
1567
1568	* remake.c (library_file_mtime): Search for /usr/local/lib/libLIB.a
1569	after /usr/lib/libLIB.a.
1570
1571Tue Sep 26 16:07:58 1989  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
1572
1573	* read.c (conditional_line): For `ifeq (a, b)', swallow space after the
1574	comma.
1575
1576Sun Sep 24 13:25:32 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1577
1578	* function.c (patsubst_function): If BY_WORD and the match is not a
1579	full word, update the text pointer correctly.
1580
1581	* function.c (expand_function: `word'): Don't lose track of the second
1582	arg's expansion and free something else instead.
1583
1584Fri Sep 22 16:15:29 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1585
1586	* Version 3.56.
1587
1588Thu Sep 21 14:28:42 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1589
1590	* main.c (main): Make an array of the mtimes of the makefiles before
1591	updating them, and compare their file_mtimes against this later.  Don't
1592	re-exec if a makefile was successfully updated but didn't change.  If a
1593	makefile failed to be remade and no longer exists, die.  If a makefile
1594	failed to be remade, but changed anyway, re-exec.  If a makefile failed
1595	to be remade, but is unchanged, continue on.
1596
1597Wed Sep 20 18:02:07 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1598
1599	* Version 3.55.6.
1600
1601	* implicit.c (pattern_search): Maintain an array CHECK_LASTSLASH of the
1602	CHECK_LASTSLASH flag values used to match each member of TRYRULES.
1603	When making FILE->stem, if CHECKED_LASTSLASH[FOUNDRULE], prepend the
1604	part of FILENAME before LASTSLASH.
1605
1606Tue Sep 19 17:44:08 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1607
1608	* dir.c (dir_file_exists_p): Check for FILENAME being nil before
1609	checking for it being "".
1610
1611	* main.c (define_makeflags): Fixed test for whether a flag/flag_off
1612	option was non-default.  Also changed to generate a string that Unix
1613	Make will grok (except for FP/int values and new flags).
1614
1615	* job.c (child_execute_job): Don't use the shell's -c option.
1616	Also fixed an off-by-one bug in the ARGV -> shell arg list copying.
1617
1618Mon Sep 18 15:17:31 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1619
1620	* Version 3.55.5.
1621
1622	* read.c (parse_file_seq): Check the beginning of the file name for a
1623	`./', not the two chars after the end of the name (Q rather than P).
1624
1625	* job.c (child_execute_job): Include all of ARGV in the arg list for
1626	the shell.
1627
1628	* main.c (define_makeflags): Don't include floating and positive_int
1629	options in !PF.
1630
1631	* job.c (exec_command): Set the effective gid to the real gid before
1632	execing.
1633
1634	* job.c (child_execute_job): Don't clobber the arg list when execing
1635	the shell.
1636
1637Sun Sep 17 15:27:19 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1638
1639	* main.c (define_makeflags): Moved all the checking inside the switch.
1640
1641	* load.c [LDAV_BASED] (load_average): When we can't get the load
1642	average, return zero instead of running off the end.
1643
1644	* file.c: Include variables.h.
1645	* job.c: Declare dup2 and {block,unblock}_remote_children.
1646	* file.h: Declare f_mtime.
1647	* job.c: Don't declare construct_command_argv, since job.h does.
1648	* function.c, main.c, load.c, remake.c: Include job.h.
1649	* load.c [LDAV_BASED] (load_average): Declare nlist.
1650	* variable.h: Declare print_file_variables.
1651	* job.c [!USG]: Don't declare sigsetmask.
1652	[!USG]: Declare getdtablesize.
1653	Don't declare load_average.  Do declare wait_to_start_job.
1654	Declare vfork, gete[gu]id, execve.
1655	* commands.c: Declare remote_kill, getpid.
1656	* make.h: Declare kill, exit, sigblock, pipe, close, ctime, open,
1657	lseek, read.
1658	* make.h [not USG]: Declare sigsetmask.
1659	* job.h: Declare wait_for_children and {block,unblock}_children.
1660
1661	* dir.c (dir_file_exists_p): If FILENAME is nil, read in the whole
1662	directory.
1663	(find_directory): When we want to read in the whole directory, call
1664	dir_file_exists_p with nil instead of "".
1665
1666	* file.h (struct file), job.h (struct child),
1667	  variable.h (struct variable): Use bitfields for flags.
1668	* make.h (ENUM_BITFIELD): If GCC or #ifdef ENUM_BITFIELDS, define as
1669	:BITS, else empty.
1670	* compatMakefile (defines): Document ENUM_BITFIELDS.
1671
1672Sat Sep 16 12:38:58 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1673
1674	* Version 3.55.4 (alpha).
1675
1676	* GNUmakefile (dist): Depend on default and doc.
1677
1678	* load.c [LDAV_BASED]: Include <nlist.h> rather than <a.out.h>; #ifdef
1679	NLIST_NAME_UNION, use n_un.n_name instead of n_name.
1680	* compatMakefile (LOAD_AVG): Document NLIST_NAME_UNION.
1681
1682	* job.c [USG-ish]: Don't redefine WIF{SIGNALED,EXITED} if they're
1683	already defined.
1684
1685Fri Sep 15 13:59:42 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1686
1687	* glob.c, dir.c [USGr3 or DIRENT]: If neither d_ino, nor d_fileno is
1688	defined, define d_ino as d_fileno.
1689
1690Thu Sep 14 18:29:38 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1691
1692	* job.c: Don't declare exec_command static.
1693
1694	* make.texinfo (Name Index): Changed title to include directives.
1695
1696	* Version 3.55.3 (alpha).
1697
1698	* make.texinfo (Running: Options): Document -e.
1699
1700	* main.c (main): Always give imported environment variables origin
1701	`o_env'.
1702	* variable.c (define_variable_in_set): Under -e, if ORIGIN, or an
1703	existing variable's origin, is `o_env', make it `o_env_override'.
1704
1705	* load.c: Use the symbol KERNEL_FILE_NAME instead of KERNEL_FILE.
1706	* compatMakefile: Changed the comment for `LOAD_AVG' accordinly.
1707
1708Thu Sep  7 16:46:26 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1709
1710	* Version 3.55.2 (alpha).
1711
1712	* variable.c (print_variable_set), rule.c (print_rule_data_base),
1713	file.c (print_file_data_base): If NO_FLOAT is defined, don't use
1714	floating-point for printing statistics.
1715	* compatMakefile (defines): Document NO_FLOAT.
1716
1717	* make.h (HASH): New macro to add the hashing value of one char to a
1718	variable.c.
1719	* file.c (lookup_file, enter_file, rename_file): Use it.
1720	* dir.c (find_directory, dir_file_exists_p, file_impossible_p): Ditto.
1721	* variable.c (define_variable_in_set, lookup_variable): Same here.
1722
1723	* variable.c, file.c, dir.c: Don't define *_BUCKETS if they are already
1724	defined.
1725
1726	* compatMakefile (defines): Added comment about defining NO_ARCHIVES.
1727	(ARCHIVES, ARCHIVES_SRC): New variables for {ar,arscan}.[oc].
1728	(objs, srcs): Use $(ARCHIVES) and $(ARCHIVES_SRC).
1729	* commands.c (set_file_variables), dir.c (file_exists_p),
1730	remake.c (touch_file, name_mtime), implicit.c (try_implicit_rule,
1731	pattern_search), make.h: If NO_ARCHIVES is #defined, don't do any
1732	archive stuff.
1733
1734	* commands.c (set_file_variables): Don't kill the last char of
1735	directory names in $([@*<%?^]D).
1736
1737Wed Sep  6 15:23:11 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
1738
1739	* default.c (default_terminal_rules {%:: %,v}, {%:: RCS/%,v}): Don't
1740	run co if the target exists.
1741
1742	* glob.c (glob_match): [!xyz], rather than [^xyz], means none of [xyz].
1743
1744	* glob.c: Misc minor cosmetic changes.
1745
1746Tue Sep  5 14:49:56 1989  Roland McGrath  (mcgrath at saffron.Berkeley.EDU)
1747
1748	* load.c [LDAV_BASED] (load_average): Check for == -1, rather than < 0
1749	to see if lseek fails.  On some systems, `avenrun' is at an offset >
1750	(2**31)-1, and lseek succeeds, returning a negative value.
1751
1752Mon Sep  4 11:07:58 1989  Roland McGrath  (mcgrath at saffron.Berkeley.EDU)
1753
1754	* rule.c (new_pattern_rule): Return `int' instead of `void': nonzero if
1755	the passed rule was used, zero if not.
1756	(install_pattern_rule): Pay attention to the return from
1757	new_pattern_rule, and don't set the rule's `terminal' flag or give it
1758	commands unless it's used.
1759	(create_pattern_rule): Same idea.
1760
1761	* dir.c (find_directory): Removed unused variable.
1762
1763	* commands.c (execute_file_commands): Removed unused variable.
1764
1765	* read.c (record_files): Don't use NAME after freeing it.
1766
1767Sat Sep  2 00:33:19 1989  Roland McGrath  (mcgrath at saffron.Berkeley.EDU)
1768
1769	* Version 3.55.1 (alpha).
1770
1771	* function.c (string_glob): Don't add spaces after file names that
1772	aren't added.  (Also means don't add spaces without checking the size
1773	of the buffer.)
1774
1775	* remake.c (update_goal_chain): Don't remove makefiles with cmds and no
1776	deps from the chain.
1777	* main.c (main): Do it here, before calling update_goal_chain.
1778
1779	* remake.c (update_goal_chain): When updating fails, change STATUS even
1780	if MAKEFILES is set.  Also stop remaking when updating fails if not
1781	under -k and MAKEFILES is not set.
1782
1783	* remake.c (remake_file, update_file_1, notice_finished_file),
1784	commands.c (execute_file_commands), make.h, commands.h: The functions
1785	remake_file, notice_finished_file, and execute_file_commands no longer
1786	return values, and their callers no longer expect values returned.
1787
1788	* remake.c (notice_finished_file): Don't set FILE's modtime to now if
1789	it is a non-target with no commands.
1790
1791Fri Sep  1 00:04:39 1989  Roland McGrath  (mcgrath at saffron.Berkeley.EDU)
1792
1793	* read.c (read_all_makefiles): After freeing each element on MAKEFILES,
1794	replace it with the name stored in read_makefiles by read_makefile.
1795
1796	* remake.c (update_file_1): Don't decide not to remake if FILE has no
1797	cmds and no deps actually changed if FILE doesn't have any deps.
1798
1799	* file.c (remove_intermediate): Remove precious files that also have
1800	the `dontcare' flag set.
1801
1802	* remake.c (update_file_1): Don't always remake if FILE has cmds but no
1803	deps; only if FILE is double-colon.  (I don't know why this should be
1804	done for double-colon targets, but that's what Unix make does.)
1805
1806	* load.c [LDAV_BASED] (load_average): Write error messages if the
1807	various system calls fail.  Keep track of if we've failed before.
1808	The first time we fail, write a message saying -l won't be enforced.
1809	The first time we succeed after having failed, write a message saying
1810	-l will be enforced again.
1811
1812	* remake.c [USG]: Don't #include <sys/file.h>
1813
1814	* load.c [generic Unix LDAV_BASED]: #include <fcntl.h> #ifdef USG,
1815	else <sys/file.h> instead.
1816
1817	* job.c [USG && !USGr3 && !HAVE_DUP2]: Remove redundant
1818	#include <errno.h> and declaration of `errno'.
1819	[...] (dup2): Fixed so it won't always lose.
1820
1821	* default.c (default_suffix_rules: .texinfo.dvi): Copy, rather than
1822	move, the aux and index files, so the TeX run can use them.
1823
1824	* compatMakefile: Remove redundant comment.
1825
1826	* load.c [generic Unix LDAV_BASED]: Include <a.out.h> instead of
1827	<nlist.h>, since the `struct nlist' declaration in <nlist.h> varies
1828	more than the one in <a.out.h>.
1829	(load_average): Use the `n_un.n_name' field of the `struct nlist',
1830	since the <a.out.h> declaration uses the union.
1831
1832	* main.c (main): For the temporary files made for stdin makefiles, set
1833	the `intermediate' and `dontcare' flags.
1834	* file.c (remove_intermediates): Don't print any messages for files
1835	whose `dontcare' flag is set.  (The only files that will be
1836	intermediate and `dontcare' will be the temporary files made for stdin
1837	makefiles.)
1838
1839	* job.c (exec_command): Made global.
1840	* job.h: Declare it.
1841	* main.c (main): Use exec_command when re-execing.
1842
1843	* make.h: Declare environ.
1844	* make.c: Don't.
1845
1846	* job.c (child_execute_job): New function to perform everything done in
1847	the child side of a fork (for a job or `shell' function).
1848	(start_job): Call it.
1849	* job.h: Declare construct_command_argv and child_execute_job.
1850	* function.c (expand_function: `shell'): Use child_execute_job.
1851
1852Thu Aug 31 18:42:51 1989  Roland McGrath  (mcgrath at saffron.Berkeley.EDU)
1853
1854	* function.c (expand_function: `shell'): Remove a trailing newline
1855	instead of turning it into a space.
1856
1857	* main.c (main): Do init_siglist #ifdef HAVE_SIGLIST.
1858
1859	* job.c [WTERMSIG || (USG && !HAVE_SYS_WAIT)]: Test each W* macro
1860	separately and define all those that aren't defined.
1861
1862Sat Aug 26 15:13:21 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
1863
1864	* ar.c (ar_name): Return zero for `(foo)'.
1865
1866	* Version 3.55.
1867
1868	* make.texinfo (Rules: Multiple Targets): Make this node's `next'
1869	pointer point to `Static Pattern'.
1870	* make.texinfo (Makefiles: MAKEFILES Variable): Make this node's `prev'
1871	pointer point to `Makefile Names'.
1872
1873	* make.1: Renamed to make.man.
1874	* compatMakefile: Define `mandir' and `manext'.
1875	(install): Depend on $(mandir)/make.$(manext).
1876	($(mandir)/make.$(manext)): Depend on make.man and copy it to $@.
1877	($(bindir)/make): Use `make' rather than $<; so Unix make can grok it.
1878
1879Thu Aug 24 03:35:48 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
1880
1881	* variable.c (target_environment): Allow variables that start with
1882	underscores.
1883
1884Wed Aug 23 22:50:32 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
1885
1886	* variable.c (target_environment): Reject variables that don't start
1887	with letters.
1888
1889Tue Aug 22 04:14:29 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
1890
1891	* GNUmakefile (make-$(version).tar.Z): Put make.1 (the Unix manual
1892	page) in the tar file.
1893
1894	* variable.c (target_environment): Don't write variables with origin
1895	o_default (i.e., ones from default.c).
1896	* make.texinfo (Commands: Recursion: Variables/Recursion): Document
1897	that default variables are not put in the environment.
1898
1899	* remake.c (update_file_1): Remake all targets with commands but no
1900	deps.
1901
1902Sat Aug 19 06:03:16 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
1903
1904	* remake.c (update_file_1): In the final loop, set the deps'
1905	`changed' members if they are newer than FILE.
1906
1907	* remake.c (update_goal_chain): Under -d, print a message if we decide
1908	not to remake a makefile so as to avoid a possible infinite loop.
1909
1910Fri Aug 18 20:30:14 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
1911
1912	* remake.c (remake_file): Cleaned up.
1913
1914	* commands.c (execute_file_commands): If the commands are empty, set
1915	FILE->update_status to zero before returning.
1916
1917	* remake.c (notice_finished_file): Set `last_mtime' fields to zero
1918	instead of calling name_mtime; file_mtime will do that later if anybody
1919	cares.
1920
1921Thu Aug 17 10:01:11 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
1922
1923	* make.texinfo (Rules: Wildcards: Wildcard Examples): Give this node a
1924	`prev' pointer.
1925
1926	* Version 3.54.9 (alpha).
1927
1928	* make.texinfo: Fixed some @nodes.
1929
1930	* remake.c (check_dep): Don't set *MUST_MAKE_PTR if FILE doesn't exist
1931	after running update_file.
1932
1933	* remake.c (notice_finished_file): If FILE has no commands, pretend its
1934	modtime is now.
1935
1936	* remake.c (update_file_1): In the loops that call update_file on the
1937	deps, compare modtimes before and after (unless deps are still being
1938	made) and set the deps' `changed' members.  Do not set the `changed'
1939	members in the loop that prints the newer/older debugging messages.
1940	* remake.c (update_file_1): If no deps changed and FILE has no
1941	commands, decide it doesn't need remaking.
1942
1943	* remake.c (update_file_1): Print a debugging message if we take
1944	commands from default_file.
1945
1946	* make.texinfo (Rules: Directory Search: Selective Search): Removed
1947	note about warning for `vpath' with a constant pathname, since it isn't
1948	warned about anymore.
1949
1950	* remake.c (update_goal_chain): If MAKEFILES, remove makefiles which
1951	are targets and have no deps.
1952	* make.texinfo (Makefiles: Remaking Makefiles): Document that makefiles
1953	will not be remade if they are targets but have no dependencies.
1954
1955Tue Aug 15 00:00:08 1989  Roland McGrath  (roland at apple-gunkies.ai.mit.edu)
1956
1957	* remake.c (notice_finished_file): Increment files_remade for non-phony
1958	files if they didn't exist before (even if they still don't).
1959
1960	* job.c: Include <errno.h> and declare errno.
1961
1962	* job.c (exec_command): If the execve fails with ENOEXEC (Exec format
1963	error), return instead of exiting the child process.
1964
1965	* job.c (start_job): In the child side, if exec_command fails, try
1966	using the shell.
1967
1968	* job.c (start_job): In the child side, call unblock_children instead
1969	of sigsetmask.
1970
1971	* remake.c (notice_finished_file): Under -n or -q, always increment
1972	files_remade for non-phony files.
1973
1974	* rule.c (intall_pattern_rule): Use find_percent.
1975
1976	* vpath.c (vpath_search): Pass the `percent' members to
1977	pattern_matches.
1978
1979Mon Aug 14 23:30:24 1989  Roland McGrath  (roland at apple-gunkies.ai.mit.edu)
1980
1981	* vpath.c (struct vpath): New member `percent', to hold a pointer into
1982	the pattern where the % is.
1983	(construct_vpath_list): Call find_percent on the pattern and set the
1984	new `percent' member.
1985	* read.c (read_makefile): Don't run find_percent on `vpath' directive
1986	patterns.
1987
1988	* function.c (pattern_matches): Take new arg PERCENT, a pointer into
1989	PATTERN where the % is.  If PERCENT is nil, copy PATTERN into local
1990	space and run find_percent on it.
1991	(expand_function: `filter', `filter-out'): Pass new arg to
1992	pattern_matches.
1993	* read.c (record_files): Pass PATTERN_PERCENT to pattern_matches for
1994	static pattern rules.  Save the percent pointer into implicit rule
1995	targets, and pass them to create_pattern_rule.
1996	* rule.c (convert_to_pattern): Pass new arg to create_pattern_rule.
1997	(create_pattern_rule): Take new arg TARGET_PERCENTS, nil or an array of
1998	pointers into the corresponding elements of TARGETS, where the %s are.
1999
2000Sun Aug 13 00:29:19 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2001
2002	* Version 3.54.8.
2003
2004	* README.templatate, README-doc.template: New files, turned into README
2005	and README-doc to go into the two distribution tar files.
2006	* GNUmakefile: Added a rule to edit the version number in
2007	README.template and README-doc.template, producing README and
2008	README-doc.
2009
2010	* remake.c (update_goal_chain): If -n or -q is in effect for a
2011	makefile, and it got updated, don't change STATUS, so we can still
2012	return -1 (meaning nothing was done).  This avoids an infinite loop on
2013	"make -n Makefile".
2014
2015Sat Aug 12 23:14:24 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2016
2017	* remake.c (notice_finished_file): Treat -q the same as -n.
2018
2019	* remake.c (update_goal_chain): Fixed handling of return from
2020	update_file.  If -n or -q is in effect, ignore it.
2021
2022	* job.c (start_job): Don't test for -t.  We should never get called in
2023	that case.
2024
2025Fri Aug 11 04:09:14 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2026
2027	* function.c (expand_function): Removed unused variables.
2028	(handle_function): Removed unused variable.
2029
2030	* main.c (main): Removed unused variable.
2031
2032Wed Aug  9 09:37:10 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2033
2034	* Version 3.54.7.
2035
2036	* remake.c (notice_finished_file): If FILE's modtime actually changed,
2037	increment files_remade.
2038	(remake_file): Don't increment files_remade.
2039
2040	* remake.c (update_file): Don't print "up to date" messages for
2041	phony files.
2042
2043	* job.c (child_handler): Don't set C->file->update_status to 1 if
2044	start_job returns nonzero under -n or -t.
2045
2046	* expand.c (variable_expand): Count parens in $(foo:a=b) refs.
2047
2048	* main.c: Removed old declaration of `glob_tilde' (which hasn't existed
2049	for a few months).
2050
2051Tue Aug  8 23:53:43 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2052
2053	* job.c (exec_command): Fixed to not ignore the last path component and
2054	to do the right thing with an empty path.
2055
2056Fri Aug  4 15:58:19 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2057
2058	* remake.c (library_file_mtime): Look for libLIB.a, not /libLIB.a.
2059	Do VPATH search on libLIB.a, not /usr/lib/libLIB.a
2060
2061Thu Aug  3 20:42:00 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2062
2063	* job.c [HAVE_SYS_WAIT or not USG]: If WIFSIGNALED is not defined by
2064	<sys/wait.h>, define it as (WTERMSIG != 0).
2065
2066Tue Aug  1 19:25:34 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2067
2068	* remake.c (remake_file): If FILE has no commands and is a target,
2069	don't set its time to now.  The time gets reset by notice_finished_file
2070	anyway, and it isn't needed since check_dep checks for nonexistence.
2071
2072	* Version 3.54.6.
2073
2074	* read.c (read_makefile): Don't read off the end of the string after an
2075	`include'.
2076
2077	* job.c (exec_command): New function to search the path for a file and
2078	execute it.
2079	(start_job): Use exec_command rather than execvp.
2080
2081	* read.c (read_makefile): Expand `include' directive args before
2082	parsing them.  Allow trailing whitespace after filename.
2083
2084	* variable.c (target_environment): Put makelevel + 1, rather than
2085	makelevel, in the `MAKELEVEL' envariable.
2086
2087Sat Jul 29 10:27:04 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2088
2089	* remake.c (notice_finished_file): Don't get the new modtime of phony
2090	files.
2091
2092	* remake.c (remake_file): Run commands instead of touching under -t if
2093	FILE->cmds->any_recurse is set.
2094
2095	* commands.h (struct commands): Add new member `any_recurse', to be set
2096	nonzero if any `lines_recurse' element is nonzero.
2097	* commands.c (chop_commands): Set the `any_recurse' member.
2098
2099	* commands.c (execute_file_commands): Split chopping of commands into
2100	lines into new function chop_commands.
2101	* commands.h: Declare chop_commands.
2102
2103	* read.c (read_makefile): Test for a line beginning with a tab after
2104	checking for conditional lines, but before all other checks.
2105
2106Fri Jul 28 18:10:29 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2107
2108	* read.c (read_makefile): Match directives against collapsed line
2109	and use that for their args.
2110
2111	* read.c (read_makefile): Warn about extra text after `include'.
2112
2113Tue Jul 25 14:34:25 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2114
2115	* make.texinfo (Rules: Directory Search: Selective Search): Fixed
2116	example to use correct `vpath' syntax.
2117
2118Mon Jul 24 12:10:58 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2119
2120	* Version 3.54.5.
2121
2122	* job.c (start_job): In the child side, unblock SIGCHLD.
2123
2124Fri Jul 21 18:25:59 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2125
2126	* make.h: Don't include <sys/types.h> #ifdef sun.
2127
2128Mon Jul 17 14:29:10 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2129
2130	* implicit.c (pattern_search): If ar_name (FILENAME), don't check for
2131	directory names.
2132
2133	* job.c (wait_for_children): Changed "waiting for children" message to
2134	"waiting for unfinished jobs".
2135
2136Fri Jul 14 13:17:13 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2137
2138	* load.c (load_average): Use an unsigned offset into kmem.
2139
2140Thu Jul 13 18:44:49 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2141
2142	* variable.c (pop_variable_scope): Don't free the head of the chain of
2143	variables in each bucket twice.
2144
2145Tue Jul 11 06:45:24 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2146
2147	* GNUmakefile: Include COPYING in the doc tar file.
2148
2149	* variable.c, read.c, misc.c, job.c, function.c: Replace some identical
2150	"for" loops with next_token or end_of_token calls.
2151
2152Mon Jul 10 16:55:08 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2153
2154	* Version 3.54.4.
2155
2156	* compatMakefile: Documented new conditionals.
2157
2158	* job.c: Don't define sys_siglist if HAVE_SIGLIST is defined.
2159	Don't define dup2 if HAVE_DUP2 is defined.
2160
2161	* job.c (child_handler): Interpret the return from start_job correctly.
2162
2163	* remake.c (update_file_1): Don't write "target not remade because of
2164	errors" message under -n or -q.
2165
2166	* read.c: Declare getpwnam.
2167
2168	* glob.c: Use <dirent.h> if DIRENT is defined.
2169	[USG]: Don't declare memcpy, since <memory.h> does.
2170
2171Fri Jul  7 20:53:13 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2172
2173	* misc.c (collapse_line): Copy the line over in the right place.
2174
2175Fri Jul  7 18:33:24 1989  Roland McGrath    (fsf at void.ai.mit.edu)
2176
2177	* remake.c: Conditionalize inclusion of <sys/file.h> on not
2178	USG, since HP-UX defines a `struct file' there.
2179
2180Fri Jul  7 12:11:30 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2181
2182	* job.c: If WTERMSIG is defined by <sys/wait.h>, define WAIT_T as int,
2183	and don't define other macros; this covers HP-UX.
2184	If WTERMSIG is not defined, use int or union wait based on USG and
2185	HAVE_SYS_WAIT; this covers BSD and SysV.
2186
2187	* Version 3.54.3 (alpha).
2188
2189	* job.c [USG and not USGr3]: Include <errno.h> and declare errno.
2190
2191	* job.c (unblock_children [USG]): Declare child_handler.
2192
2193	* job.c: Renamed WRETCODE to WEXITSTATUS.
2194	[HAVE_SYS_WAIT or not USG]: Undefine WTERMSIG, WCOREDUMP, and
2195	WEXITSTATUS before defining them.  The HP-UX <sys/wait.h> defines them.
2196
2197	* main.c (main): If there are no goals, fatal AFTER printing the data
2198	base under -p.
2199
2200Thu Jul  6 22:43:33 1989  Roland McGrath  (roland at apple-gunkies.ai.mit.edu)
2201
2202	* glob.c [USG]: #define rindex as strrchr.
2203
2204	* job.c [USG]: Include <sys/param.h> and #define getdtablesize() as
2205	NOFILE.
2206
2207Wed Jul  5 09:36:00 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2208
2209	* Version 3.54.2 (alpha).
2210
2211	* expand.c (variable_expand): When expanding recursive variable
2212	references (${${a}}), use the correct delimiters in the constructed
2213	variable reference.
2214
2215Mon Jul  3 18:29:26 1989  Roland McGrath  (roland at apple-gunkies.ai.mit.edu)
2216
2217	* compatMakefile: Clear out and redefine the .SUFFIXES list because
2218	silly Sun 4 make defines .cps.h.
2219
2220	* compatMakefile: Fix comment about -DNO_MINUS_C_MINUS_O.
2221
2222	* remake.c: Include <sys/file.h> for O_* on 4.2.
2223
2224	* commands.c: Define sigmask if it's not defined.
2225
2226Fri Jun 30 07:33:08 1989  Roland McGrath  (roland at apple-gunkies.ai.mit.edu)
2227
2228	* remake.c (remake_file): Don't always increment files_remade.
2229
2230	* variable.c (push_new_variable_scope): Zero the new variable hash
2231	table.
2232
2233Thu Jun 29 17:14:32 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2234
2235	* expand.c (variable_expand): When terminating the variable expansion
2236	buffer, use variable_buffer_output instead of a simply zero store,
2237	because the buffer may need to be enlarged.
2238
2239Wed Jun 28 16:53:47 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2240
2241	* Version 3.54.
2242
2243	* default.c (default_suffixes): Added `.ln'.
2244	(default_suffix_rules): Changed lint rules to use -C.
2245
2246Thu Jun 22 20:49:35 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2247
2248	* job.c (start_job): Set `environ' to CHILD->environment before execing
2249	in the child process!
2250
2251Tue Jun 20 17:23:13 1989  Roland McGrath  (roland at spiff.ai.mit.edu)
2252
2253	* compatMakefile: Put job.h and rule.h in `srcs'.
2254
2255	* Version 3.53.
2256
2257Mon Jun 19 16:25:18 1989  Roland McGrath  (roland at spiff.ai.mit.edu)
2258
2259	* job.c (start_job): If there are no more commands, return nonzero
2260	under -n or -t.
2261
2262	* compatMakefile (make): Pass `-f' to mv.
2263
2264	* GNUmakefile: If `ARCH' or `machine' is defined, make $(ARCH)/*.o and
2265	$(ARCH)/make instead of *.o and make.
2266
2267	* function.c (string_glob): Don't try to use freed storage!
2268
2269	* read.c (readline): If there is only one byte of space in the buffer,
2270	enlarge the buffer before reading more.
2271
2272	* arscan.c [M_XENIX]: Miscellaneous minor changes for Xenix.
2273
2274Sun Jun 18 13:07:45 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2275
2276	* GNUmakefile (depend): Split commands into two lines so they won't be
2277	so long when variable-expanded.
2278
2279	* compatMakefile: Documented MINUS_C_MINUS_O meaning.  The line
2280	describing it got removed when the USG/wait stuff was documented.
2281
2282Sat Jun 17 22:56:54 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
2283
2284	* Version 3.52.
2285
2286Mon Jun 12 17:45:11 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2287
2288	* remake.c (check_dep): Drop circular dependencies instead of fataling.
2289	(update_file_1 already does this.)
2290
2291	* default.c (default_suffix_rules): For .s -> .o, put the -o flag to
2292	the assembler before the source file name.
2293
2294Sun Jun 11 12:00:52 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
2295
2296	* Version 3.51.
2297
2298	* make.texinfo (Features): Noted 1003.2 requirement of `+' meaning.
2299
2300	* file.c (remove_intermediates): If !SIG, write a single "rm" command
2301	line, listing all files.
2302
2303	* read.c (read_makefile): Don't free the storage for the passed
2304	filename, since it might not be malloc'd.  When doing an included
2305	makefile, free the name's storage.
2306	(read_all_makefiles): Use variable_expand to find the value of
2307	`MAKEFILES'.  Free the storage for the names of -f makefiles.
2308	(read_makefile): Allocate storage for the makefile name in the
2309	`struct file' in read_makefiles.
2310
2311	* make.texinfo (Running: Instead of Execution): Document the effect of
2312	+ and $(MAKE)/${MAKE}.
2313
2314	* make.texinfo (Functions: Foreach Function): Document that if the
2315	iteration variable was undefined before the `foreach' call, it will be
2316	undefined after the call.
2317
2318	* commands.c: Split into commands.c, job.h, and job.c.
2319
2320	* rule.c (try_implicit_rule, pattern_search): Moved to new file
2321	implicit.c.
2322
2323	* rule.c: Split into rule.h, rule.c, and default.c.
2324	* default.c (install_default_pattern_rules): Renamed to
2325	install_default_implicit_rules.
2326	* make.h, main.c (main): Renamed uses.
2327
2328	* make.c: Renamed to misc.c.
2329
2330	* make.c (main, log_working_directory, decode_switches,
2331	decode_env_switches, define_makeflags, die, print_version,
2332	print_data_base): Moved to new file main.c.
2333
2334	* commands.c (execute_file_commands): Don't collapse backslash-newlines
2335	here.  When chopping the commands up into lines, don't chop at
2336	backslash-newlines.
2337	(start_job): Collapse backslash-newlines after printing the line.
2338
2339	* commands.c (start_job): Don't collapse backslash-newlines here.
2340	(execute_file_commands): Collapse backslash-newlines before chopping
2341	the commands up into lines.
2342
2343	* commands.c (set_file_variables): Initialize the length counters for
2344	$^ and $? to zero!
2345
2346	* commands.c (start_job): Use vfork instead of fork.  Someone else says
2347	the child and parent DO have separate file descriptors.
2348
2349	* variable.c: Split internals into variable.c, function expansion into
2350	function.c, and variable expansion into expand.c.
2351	* function.c (handle_function): New function to check for a function
2352	invocation and expand it.
2353	* expand.c (variable_expand): Use handle_function.
2354	* variable.c (push_new_variable_scope): New function to push a new
2355	empty variable set onto the current setlist.
2356	(pop_variable_scope): New function to pop the topmost set from the
2357	current setlist and free its storage.
2358	* function.c (expand_function: `foreach'): Push a new variable scope
2359	for the iteration variable and pop the scope when finished.
2360	* variable.h: Declare new functions.
2361	* variable.c (initialize_variable_output): New function to return a
2362	pointer to the beginning of the output buffer.
2363	(save_variable_output): New function to save the variable output state.
2364	(restore_variable_output): New function to restore it.
2365	* expand.c (variable_expand): Use initialize_variable_output.
2366	(allocated_variable_expand): Use {save,restore}_variable_output.
2367	* variable.c (current_setlist): Renamed to current_variable_set_list
2368	and made global.
2369
2370Sat Jun 10 00:11:25 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2371
2372	* remake.c (library_file_mtime): Check for libNAME.a in the current
2373	directory before doing VPATH search.
2374
2375	* variable.c (print_variable_set): Don't write "# Variables", and write
2376	fewer blank lines.
2377	(print_variable_data_base): Precede the variables with "# Variables".
2378
2379	* make.c (main): Print the data base under -p after doing everything
2380	else, just before exitting.  This way it gets info determined in
2381	updating the goal targets.
2382
2383	* variable.c (print_variable_data_base): Split into print_variable,
2384	which prints one variable, and print_variable_set, which prints a set.
2385	Replaced with a call to print_variable_set for the global set.
2386	(print_file_variables): New function to print a given file's local
2387	variables.
2388
2389	* file.c (print_file_data_base): Call print_file_variables to print
2390	each file's local variables.
2391
2392	* commands.c (set_file_variables): Actually define the values for
2393	the $^ and $? variables!!!
2394
2395	* make.texinfo (Implicit: Pattern Rules: Automatic): Document new D and
2396	F versions of $^ and $?.
2397
2398	* commands.c (start_job): In the child fork, use getdtablesize and a
2399	loop to close all file descriptors other than 0, 1, and 2.  We need to
2400	do this since not only the bad stdin pipe, but also some directories,
2401	may be open.
2402
2403	* commands.c (start_job): Use fork instead of vfork, because a vfork
2404	parent and child share file descriptors, and our child needs to diddle
2405	with stdin.
2406
2407	* variable.c (initialize_file_variables): When created a new variable
2408	set, zero out the hash table.
2409
2410	* variable.c (target_environment): Don't use variables whose names are
2411	not made up of alphanumerics and underscores.
2412
2413	* remake.c (update_file_1): Set the `parent' member of each dependency
2414	to FILE before updating it.
2415
2416	* file.h (struct file): Add `parent' member.
2417
2418	* variable.c (initialize_file_variables): Don't take second arg PARENT.
2419	Use FILE->parent instead.  If FILE->parent->variables is nil, recurse
2420	to initialize it.
2421
2422	* variable.h: Declare {allocated_}variable_expand_for_file.
2423
2424	* variable.c (allocated_variable_expand): Now
2425	allocated_variable_expand_for_file, calling variable_expand_for_file,
2426	and taking second arg FILE.
2427	(allocated_variable_expand): New function, a wrapper around
2428	allocated_variable_expand_for_file, passing a nil second arg.
2429
2430Fri Jun  9 12:11:45 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2431
2432	* commands.c (start_job): On the child side of the fork, always close
2433	the bad stdin file descriptor.
2434
2435	* commands.c (struct child): New member `environment', to hold the
2436	environment for the child.
2437	(execute_file_commands): Set the new childs `environment' member to nil
2438	before calling start_job.
2439	(start_job): Set up CHILD->environment before running the commands if
2440	it is nil.
2441
2442	* make.c (main): Don't call new_environ.  `shell' functions will now be
2443	run with the environment make was called with.
2444
2445	* commands.c (child_handler): Don't check C->command_ptr before calling
2446	start_job since we now have to check C->file->cmds->command_lines and
2447	it's easier to let start_job handle all that.
2448
2449	* commands.c (struct child): New member `command_line', to hold an
2450	index into file->cmds->command_lines.
2451	(execute_file_commands): Set the new child's `command_line' to 0 and
2452	its `commands' and `commands_ptr' to nil.
2453	(start_job): When CHILD->command_ptr runs out, increment
2454	CHILD->command_line and run the corresponding line from
2455	CHILD->file->cmds->command_lines.  Run it even under -t, -q, or -n if
2456	the CHILD->file->cmds->lines_recurse element for that line is set.
2457
2458	* commands.c (execute_file_commands): Chop CMDS up into lines, setting
2459	its `command_lines' and `lines_recurse' members, if it wasn't already
2460	chopped.
2461
2462	* commands.h (struct commands): New members `command_lines' and
2463	`lines_recurse'.  The first is an array of chopped-up lines; the second
2464	is an array of flags, each nonzero if the corresponding line is
2465	recursive.
2466
2467	* variable.c (variable_expand_for_file): If FILE is nil, just do a
2468	vanilla variable_expand.
2469	(expand_function: `shell'): Pass second arg (as nil) to
2470	construct_command_argv.
2471
2472	* commands.c (construct_command_argv): Use variable_expand_for_file on
2473	`$(SHELL)' and `$(IFS)' instead of lookup_variable to check those
2474	variables.  This handles file-local and recursive values correctly.
2475	To support this, take an additional argument FILE.
2476
2477	* variable.c (initialize_file_variables): New function to initialize
2478	FILE's variable set list from PARENT's setlist.  PARENT is the
2479	immediate dependent that caused FILE to be remade, or nil if FILE is a
2480	goal.  (When user-level per-file variables are implemented, PARENT
2481	should be passed as nil when defining per-file variables.)
2482
2483	* variable.c (variable_expand_for_file): New function to expand a line
2484	using the variable set of a given file, and reporting error messages
2485	for the file and line number of that file's commands.
2486
2487	* variable.h: Don't declare lookup_variable_for_file.
2488
2489	* variable.c (lookup_variable_*): Turned back into lookup_variable.  It
2490	now uses current_setlist.
2491	(global_setlist): New static `struct variable_set_list', a setlist
2492	containing global_variable_set.
2493	(current_setlist): New static `struct variable_set_list *', a pointer
2494	to the current variable set list.
2495	(define_variable): Define in the current top-level set, not the global
2496	set.
2497
2498	* commands.c (set_file_variables): New function to set up the automatic
2499	variables for a file in its own variable set.
2500	(execute_file_commands): Use set_file_variables.
2501
2502	* variable.c (new_environ): Replaced with target_environment, taking an
2503	argument FILE, and returning an environment for FILE's commands.
2504
2505	* variable.c, variable.h: Remove all global special variable pointers.
2506
2507	* variable.c (define_variable_for_file): New function like
2508	define_variable, but takes additional arg FILE, and defines the
2509	variable in the variable set at the top of FILE's chain.
2510	(lookup_variable_for_file): New function like lookup_variable, but
2511	takes additional arg FILE, and looks the variable up in all of FILE's
2512	variable sets.
2513
2514	* file.h (struct file): New member `variables', a `struct
2515	variable_set_list' containing the list of variable sets used in the
2516	expansion of the file's commands.
2517
2518	* variable.c (variables): Replaced with static `struct variable_set'
2519	global_variable_set.
2520	(define_variable): Now define_variable_in_set, taking additional
2521	argument SET, the `struct variable_set' to define it in.
2522	(define_variable): Use define_variable_in_set with global_variable_set.
2523	(lookup_variable): Now lookup_variable_in_set, taking additional
2524	argument SET, the `struct variable_set' to look it up in.
2525	(lookup_variable): Use lookup_variable_in_set with global_variable_set.
2526	(lookup_variable_in_setlist): New function to look up a variable in a
2527	`struct variable_set_list' using lookup_variable_in_set.
2528
2529	* variable.h (struct variable_set): New structure, containing a hash
2530	table and the number of hash buckets.
2531	(struct variable_set_list): New structure, containing a link for a
2532	linked-list, and a `struct variable_set'.
2533
2534	* commands.c (start_job): Under -n, return what the recursive start_job
2535	call returns, since it might actually start a child.
2536
2537	* make.texinfo (Rules: Wildcards): Document ~ and ~USER expansion.
2538
2539	* commands.c (execute_file_commands): If start_job returns
2540	failure, but -t is set, set FILE->update_status to success.
2541	(start_job): If -t is set, and the commands are not recursive, return
2542	failure (is is done for -q).
2543
2544	* remake.c (touch_file): New function to touch FILE.
2545	(remake_file): Use touch_file.  When touching a file, still do
2546	execute_file_commands.
2547
2548	* remake.c (remake_file): Don't check question_flag (-q), since we
2549	can't know here if the commands are recursive.
2550
2551	* commands.c (start_job): Don't use the `recursive' member of
2552	CHILD->file->cmds.  Instead, check for leading +s and $(MAKE) or
2553	${MAKE} in the command line here.
2554
2555	* commands.h (struct commands): Remove `recursive' member.
2556
2557	* rule.c (install_default_pattern_rules): Remove use of `recursive'
2558	member.
2559
2560	* read.c (record_files): Don't check commands from $(MAKE) and set
2561	their `recursive' member.
2562
2563	* commands.c (fatal_error_signal): Treat SIGQUIT like SIGINT, SIGHUP,
2564	and SIGTERM, but don't send it to ourselves because it will cause a
2565	core dump.
2566
2567Thu Jun  8 20:30:04 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2568
2569	* Version 3.50.
2570
2571	* variable.c (variable_expand): Use allocated_variable_expand instead
2572	of expand_argument in a few places.
2573
2574	* variable.c (allocated_variable_expand): Do static variable shuffling
2575	here instead of using expand_argument.
2576	(expand_argument): Use allocated_variable_expand.
2577
2578	* variable.c (recursively_expand): New function to recursively expand
2579	its argument (a `struct variable'), returning the malloc'd value.
2580	(variable_expand): Use recursively_expand.
2581
2582Sun May 28 12:49:27 1989  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
2583
2584	* make.c (main): Fixed buggy fix in deciding to increase space for
2585	command-line variable definitions.  (First it never did it, then it
2586	always did it; now it does it when necessary.)
2587
2588Sat May 27 14:01:54 1989  Roland McGrath  (mcgrath at hecuba.Berkeley.EDU)
2589
2590	* make.c (main): Fixed bug in deciding to increase space for
2591	command-line variable definitions.
2592
2593Fri May 26 15:48:01 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2594
2595	* read.c (multi_glob): Use allocated_expand_variable for checking
2596	`HOME' variable for ~ expansion, since this may be called from inside a
2597	`wildcard' function expansion.
2598
2599	* variable.h: Declare allocated_expand_variable.
2600
2601	* variable.c (allocated_expand_variable): New function to do variable
2602	expansion in an allocated buffer, rather than the static one.
2603
2604	* make.c (main): Don't set glob_tilde (it no longer exists).
2605
2606	* variable.c (string_glob): Use multi_glob and parse_file_seq.
2607
2608	* read.c (multi_glob): Do ~ expansion here.
2609
2610	* glob.c (glob_tilde, glob_filename): Removed ~ expansion.
2611
2612	* variable.c (define_variable, lookup_variable): Use a smarter hashing
2613	algorithm (the same one used for files and directories).
2614	(VARIABLE_BUCKETS): Increased to 523.
2615
2616	* file.c (enter_file, lookup_file, rename_file): Use a smarter hashing
2617	algorithm, spreading the bits about somewhat.
2618
2619	* make.c (log_working_directory): Under `-p', precede the directory
2620	message with a `#'.
2621
2622	* make.c (print_version): Under `-p', precede each line with a `#'.
2623	(print_data_base): Precede the header line with a `#' and include the
2624	date and time on it.
2625
2626	* vpath.c (print_vpath_data_base): Precede non-directive
2627	lines with `#'s.
2628
2629	* commands.c (print_commands): Precede the non-command line with a `#'.
2630
2631	* rule.c (print_rule_data_base), file.c (print_file_data_base): Precede
2632	non-rule lines with `#'s.
2633
2634	* dir.c (print_dir_data_base): Precede all lines with `#'s.
2635
2636	* variable.c (print_variable_data_base): Changed format so that it can
2637	be makefile input.  Lines that are not variable definitions are
2638	preceded with `#'.  Nonrecursive variable definitions are made with all
2639	dollar signs doubled to reproduce the initial value.  Recursive
2640	variable definitions containing newlines are done with `define'
2641	directives.  Nonrecursive variable definitions containing newlines, and
2642	variable names containing :, =, or newlines, will come out garbled.
2643
2644Wed May 24 00:20:04 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2645
2646	* Version 3.49.
2647
2648Tue May 23 19:18:00 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2649
2650	* variable.c (expand_function: `filter'/`filter-out'): Use
2651	find_percent instead of pattern_p.
2652
2653	* variable.c (expand_function: `patsubst'): Pass new args (both nil)
2654	to patsubst_expand.
2655	(variable_expand): For $(var:pat%=rep%) references, pass new args to
2656	patsubst_expand so as to avoid find_percent and thus disallow
2657	quoting the %s.
2658
2659	* read.c (record_files): Pass new args to patsubst_expand.
2660
2661	* variable.c (patsubst_expand): Take two new args: PATTERN_PERCENT
2662	and REPLACE_PERCENT.  Each of these, if non-nil, means that PATTERN
2663	(or REPLACE) has already been run through find_percent, and
2664	PATTERN_PERCENT (or REPLACE_PERCENT) is the result.
2665
2666	* make.h: Declare find_percent instead of pattern_p.
2667
2668	* read.c (pattern_p): Changed to find_percent, returning a pointer
2669	to the %, or nil if there is none.
2670	(record_files): Take another arg, PATTERN_PERCENT, a pointer to the
2671	% in PATTERN.
2672	(read_makefile): Pass PATTERN_PERCENT to record_files.
2673
2674	* make.texinfo (Rules: Static Pattern: Static Usage,
2675	Rules: Directory Search: Selective Search,
2676	Functions: Text Functions): Documented that `%' can be quoted.
2677
2678	* variable.c (expand_function: `filter'/`filter-out'): Use pattern_p
2679	to allow quoted %s in patterns.
2680
2681	* variable.c (patsubst_expand): Use pattern_p on PATTERN and REPLACE
2682	to allow quoted %s.  Quoting backslashes are removed from REPLACE
2683	even if PATTERN contains no unquoted %.
2684
2685	* read.c (pattern_p): Made global.
2686	* make.h: Declare pattern_p.
2687
2688	* read.c (pattern_p): New function to search for an unquoted % in a
2689	string.  Backslashes quote %s and backslashes.  Quoting backslashes
2690	are removed from the string by compacting it into itself.  Returns
2691	nonzero if an unquoted % was found, zero if not.
2692	(record_files): Use pattern_p to check for implicit rules.
2693	(read_makefile): Use pattern_p to check for static pattern rules.
2694	Also use it to allow quoted %s in `vpath' patterns; warn about
2695	`vpath' patterns with no %s.
2696
2697Mon May 22 16:31:52 1989  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
2698
2699	* glob.c (glob_filename): Replace a `1' with the `l' that should
2700	have been there.  This incidentally stops it from dumping core.
2701
2702	* glob.c (glob_filename): If the path is just a directory, with no
2703	file name pattern, return the directory alone.
2704
2705	* glob.c (glob_tilde): New global variable (int), defaults to zero.
2706	(glob_filename): If glob_tilde is nonzero, expand ~ or ~USER.
2707
2708	* variable.c (string_glob): Keep a static allocated buffer for file
2709	names taken from the list, instead of allocating and freeing one
2710	every time.
2711
2712Fri May 19 18:06:26 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2713
2714	* make.c (decode_switches): Get floating numbers from the right string.
2715
2716Sun May 14 13:48:04 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
2717
2718	* commands.c (delete_child_targets): When deleting `also_make'
2719	files, include the target's name in the message:
2720		make: *** [foo] Deleting file `bar'
2721
2722Sat May 13 17:34:26 1989  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
2723
2724	* make.c (max_load_average, default_load_average): Default to -1.
2725
2726	* load.c (wait_to_start_job): Return if max_load_average is < 0.0,
2727	not equal.
2728
2729Fri May 12 16:08:05 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
2730
2731	* variable.c (variable_buffer_output): Don't try to do pointer
2732	arithmetic between objects not in the same array.
2733
2734Wed May 10 15:55:29 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2735
2736	* rule.c [M_XENIX] (default_suffix_rules, default_variables): Minor
2737	changes to allow for strange compiler syntax.
2738
2739	* rule.c (default_variables): Don't include "> $@" in
2740	$(PREPROCESS.S), since it's already in the .S.s rule.
2741
2742	* file.c (enter_file): Make a new double-colon file the `prev'
2743	member of the bottom `prev' file (the one whose `prev' is nil).
2744
2745	* read.c (do_define): Append newlines after copying the lines into
2746	the value buffer, so we end up with a trailing newline.
2747
2748	* make.c (print_version): If the global variable
2749	`remote_description' is not nil or "", append "-%s" (its value) to
2750	the version number.
2751	* remote-*.c: Define remote_description appropriately.
2752
2753Sun May  7 15:15:53 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2754
2755	* commands.c (error_status): Converted to new function child_error,
2756	taking new arguments TARGET_NAME and IGNORED, and writing an error
2757	message: "*** [target] Error 1" (or signal #, etc.), appending
2758	" (ignored)" if IGNORED is nonzero.
2759	(child_handler): Use child_error instead of error_status.
2760
2761	* compatMakefile (all): Don't depend on `doc'.
2762
2763	* compatMakefile (clean): Don't remove make-info*.
2764	(realclean): New rule, depends on `clean', removes tags, TAGS,
2765	and all Info and TeX files.
2766
2767Thu May  4 17:00:46 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2768
2769	* variable.c (print_variable_data_base), file.c
2770	(print_file_data_base), rule.c (print_rule_data_base),
2771	Use floating-point for averages and percentages.
2772
2773	* make.c (print_data_base): Print messages before and after the data
2774	base information.
2775
2776	* commands.c (print_commands): Changed output format to separate
2777	lines in commands and prefix them with tabs.
2778
2779	* dir.c (print_dir_data_base): Changed output format slightly.
2780
2781	* vpath.c (struct vpath, construct_vpath_list,
2782	selective_vpath_search): Remove the `exists' member and its uses.
2783
2784	* vpath.c (print_vpath_data_base): New function to print all
2785	selective and general VPATH search paths (for -p).
2786
2787	* make.c (print_data_base): Call print_vpath_data_base.
2788
2789	* file.c (print_file_data_base): Changed format to look more like a
2790	makefile rule.  Now reports all information in the `struct file'.
2791
2792	* rule.c (print_rule_data_base): Changed format of display from:
2793	  %: (terminal)
2794	   depends on: RCS/%,v
2795	to:
2796	  %: RCS/%,v
2797	    is terminal.
2798	    references nonexistent subdirectory.
2799	Also include number and percent that refer to nonexistent
2800	subdirectories.
2801
2802Thu Apr 27 15:45:40 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2803
2804	* make.c (main): Figure out the level of recursion before writing
2805	the `Entering directory' message.
2806	* variable.c (define_automatic_variables): Don't figure out the
2807	level of recursion from `MAKELEVEL'.  It's now done in main.
2808
2809	* Version 3.48.
2810
2811Wed Apr 26 16:39:17 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2812
2813	* commands.c (child_handler): Set `update_status' to zero when there
2814	are no more commands.
2815
2816	* make.c (log_working_directory): If MAKELEVEL > 0, indicate the
2817	recurson in the message (make[1]: ...).
2818
2819	* commands.c (child_handler): Change status to `cs_finished' when
2820	commands fail.
2821
2822	* commands.c (start_job): Return 0 (success) if there were no more
2823	commands for the child.
2824	(child_handler): Change the status to `cs_finished' when start_job
2825	fails to start the commands.
2826
2827	* make.c (main): Don't handle SIGEMT if it's not defined.
2828	Do handle SIGDANGER if it is defined.
2829
2830	* commands.c (child_handler): Reorganized inner loop so that it
2831	doesn't try to inspect the child before finding it.
2832
2833Tue Apr 25 16:28:24 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2834
2835	* make.c (end_of_token): Fixed bug wherein backslashes caused
2836	immediate return.
2837
2838	* Version 3.47.
2839
2840	* make.texinfo (Implicit: Pattern Rules: Automatic): Document
2841	setting of `$*' for explicit rules.  Add note clarifying that
2842	automatic variables, though referred to in the documentation as
2843	`$<', etc. are no different than `$(<)', etc.
2844
2845Fri Apr 21 18:00:12 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2846
2847	* file.c (enter_file): Don't strip leading `./'s.
2848
2849	* read.c (parse_file_seq): Strip leading `./'s.
2850
2851Thu Apr 13 17:26:41 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2852
2853	* make.texinfo (Commands: Parallel, Running: Options): Document that
2854	-l with no argument removes a previous load limit.
2855
2856	* make.c (struct command_switch): New member `default_value'.
2857	(default_job_slots): Default value (of 1) for -j.
2858	(default_load_average): Default value (of 0, unlimited) for -l.
2859	(command_switches): Use default values for -j and -l.
2860	Also, -l without an arg now means no load limit.
2861	(define_makeflags): Don't write positive_int or floating options
2862	whose values are their defaults.
2863
2864	* make.c (main): Under -w, write a `Leaving directory' message
2865	before re-execing.
2866
2867Tue Apr 11 16:46:29 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2868
2869	* Version 3.46.
2870
2871	* Makefile: Provide an easy place for system-specific definitions
2872	(-DUSG, etc.) and extra object files (for whatever).
2873
2874	* make.texinfo: Miscellaneous fixes from RMS.
2875
2876Mon Apr 10 19:31:34 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2877
2878	* rule.c (pattern_search): Put rules with `subdir' flags set in
2879	TRYRULES, since these might be valid with VPATHs.  In the TRYRULES
2880	loop, don't do lookup_file or file_exists_p calls for dependencies
2881	of rules with `subdir' flags set, but still do vpath_search calls
2882	and intermediate-file searches.
2883
2884Thu Apr  6 16:33:00 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2885
2886	* make.texinfo (Implicit: Pattern Rules: Automatic): Document the
2887	new definition of $* for explicit rules.
2888
2889	* commands.c (execute_file_commands): If FILE->stem is nil, figure
2890	out if FILE->name ends in a suffix in the .SUFFIXES list; if so,
2891	store the name sans suffix in FILE->stem (and $*).
2892
2893Wed Apr  5 15:24:48 1989  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
2894
2895	* file.c (remove_intermediates): Don't use `file_exists_p' to check
2896	for the existence of intermediate files, because the hashed
2897	directories will probably be out of date.
2898
2899	* commands.c (child_handler): Free the good stdin before running the
2900	next command line.
2901
2902	* commands.c [USG] (init_siglist): Don't case SIGEMT if it's not
2903	defined.  Do case SIGDANGER (for IBM RT) if it is defined.
2904
2905	* commands.c: Changed `SYS_WAIT' to `HAVE_SYS_WAIT'.
2906	(child_handler): Use `wait3' if HAVE_SYS_WAIT is #defined.
2907
2908	* file.c (enter_file): If any `./'s are stripped off, allocate a new
2909	copy of the shortened name.
2910
2911	* rule.c (pattern_search): Allocate the right length strings for
2912	`also_make' members.
2913
2914Sat Apr  1 13:28:38 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2915
2916	* Version 3.45.
2917
2918	* GNUmakefile: Make a separate tarfile of the DVI and info files.
2919
2920	* make.c (define_makeflags): If a switch that takes an argument has
2921	its default value, put the switch in MAKEFLAGS with no arguments.
2922
2923	* make.c (command_switches): Pass `-l' in MAKEFLAGS.
2924
2925Wed Mar 29 17:50:05 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2926
2927	* GNUmakefile: Don't include the DVI and info files in the dist.
2928
2929	* commands.c (child_handler): Don't call
2930	check_changed_{directories,vpaths}.
2931
2932	* make.h: Don't declare check_changed_{directories,vpaths}.
2933
2934	* vpath.c (check_changed_vpaths): Removed this function.
2935
2936	* dir.c (struct directory): Remove `modtime' member.
2937	(find_directory): Don't set `modtime' member.
2938	(check_changed_directories): Removed this function.
2939
2940	* remake.c (update_file_1): Set FILE->command_state to cs_finished
2941	if it didn't need to be remade.
2942
2943	* remake.c (update_file): Only write the "up to date" message if the
2944	target went from `not_started' state to `finished' state without
2945	incrementing the count of files remade.
2946
2947	* commands.c [USG] (init_siglist): If both SIGCHLD and SIGCLD are
2948	defined, don't put them both in the `switch'.
2949
2950Tue Mar 28 15:37:02 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2951
2952	* file.c (rename_file): Change FILE's name!!!
2953
2954	* rule.c (create_pattern_rule): Set the `terminal' member of the new
2955	rule after calling new_pattern_rule, which zeros it.
2956
2957	* rule.c (default_variables): Use $(C++) in $(COMPILE.cc)!
2958
2959Sun Mar 26 15:52:30 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2960
2961	* Makefile: Added a `clean' target.
2962
2963Fri Mar 24 15:08:46 1989  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
2964
2965	* Version 3.44.
2966
2967	* file.c (rename_file): If a `struct file' for the renamed-to name
2968	exists, and it is a target or has deps or commands, barf.
2969	If not just remove the old one for put in the new one.
2970
2971	* remake.c (update_file_1, check_dep): Changed it back so that equal
2972	modtimes to NOT make dependencies be considered newer.  RCS checks
2973	out files with equal modtimes as the RCS files, so this screws it.
2974
2975	* make.h, glob.c: If __GNUC__ is defined, use __builtin_alloca.
2976
2977	* Makefile: Use variables `ALLOCA' and `ALLOCASRC' so systems
2978	without a good standard alloca can get it from the Emacs
2979	distribution (or somewhere).
2980
2981	* dir.c: Don't include <sys/stat.h>, since make.h does.
2982
2983	* make.c: Removed debugging version of getwd.
2984
2985Thu Mar 23 16:16:27 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2986
2987	* Version 3.43.
2988
2989	* remake.c (update_file_1): If a dependency loop is found, don't
2990	fatal.  Emit an error message and remove the dependency.
2991
2992	* remake.c (library_file_mtime): Fixed to use the right names.
2993	(update_file_1, check_dep): Consider a dependency "newer" than its
2994	dependent if they have the same modification time.
2995
2996Wed Mar 22 19:31:35 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
2997
2998	* file.c (remove_intermediates): Don't try to remove nonexistent files.
2999
3000Mon Mar 20 10:21:22 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3001
3002	* Version 3.42.
3003
3004	* rule.c (default_variables): Set F77 to $(FC) and F77FLAGS to
3005	$(FFLAGS) so explicit rules expecting these (which are in System V)
3006	will work.  However, there is no way to make setting these affect
3007	the implicit rules, unless we trash FC and FFLAGS (which BSD uses).
3008	[USG]: Set GET to `get' rather than `/usr/sccs/get'.
3009
3010Sun Mar 19 20:00:27 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3011
3012	* vpath.c (construct_vpath_list): Don't replace VPATH[ELEM] with
3013	dir_name (V), because the latter may get freed.
3014
3015Sat Mar 18 15:01:39 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3016
3017	* Version 3.41.
3018
3019	* make.texinfo: Cleaned-up edition 0.1 Beta from RMS and Bob Chassell.
3020
3021	* file.c (rename_file): If a file with the new name already existed,
3022	use the same storage space, after freeing the old file's name, deps,
3023	and `also_make' member, preserving the link in the chain.
3024	Also write an error message telling the user to report the incident;
3025	I don't think this should be able to happen, but I'm not sure.
3026
3027	* file.c (rename_file): Don't add the hash values of the old and new
3028	names together!  Reset HASHVAL before computing the second value.
3029
3030	* dir.c (check_changed_directories): Zero the new file hash table
3031	after allocating it.
3032
3033	* dir.c (dir_file_exists_p): If FILENAME is "", return 1 if the
3034	directory exists.
3035
3036	* vpath.c (check_changed_vpaths): New function to run through the
3037	search paths of all VPATHs, making the `exists' members correspond
3038	to reality.
3039
3040	* commands.c (child_handler): Call check_changed_vpaths.
3041
3042	* make.h: Declare check_changed_vpaths.
3043
3044	* vpath.c (struct vpath): New element `exists', an array of char
3045	flags; exists[N] is nonzero if searchpath[N] exists.
3046	(construct_vpath_list): Set the `exists' member.
3047	(selective_vpath_search): Don't search directories whose `exists'
3048	elements are zero.
3049
3050	* read.c (read_makefile): Set the `dontcare' flag of makefiles
3051	from the MAKEFILES variable if they were not mentioned anywhere but
3052	in the MAKEFILES variable.
3053
3054	* read.c (read_makefile): Don't write an error message if fopen
3055	fails for a makefile from the MAKEFILES variable.
3056
3057	* dir.c (struct directory): Add `modtime' member to record the
3058	modification time of the directory when it was opened.
3059	(check_changed_directories): New function to check all known
3060	directories; if their modtimes have changed since they were opened,
3061	their file tables are cleared and they are reset to be read in.
3062
3063	* commands.c (child_handler): Call check_changed_directories before
3064	returning.
3065	make.h: Declare check_changed_directories.
3066
3067Tue Mar 14 20:07:13 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3068
3069	* Version 3.40.
3070
3071	* make.c (print_version): Made the copyright say 1988, 1989.
3072
3073	* read.c (read_all_makefiles): Don't set *MAKEFILES to the name of
3074	the end of the read_makefiles chain, since the latter may be from an
3075	included makefile.  (Why did I do this before?)
3076
3077	* make.c (main): Set argv[0] to "" if it was nil.  Don't put the
3078	command-line variable definitions into argv[0], only into the MAKE
3079	variable!
3080
3081Sun Mar  5 20:44:08 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3082
3083	* ar.c (ar_member_date, ar_touch): Remove the trailing ) from the
3084	member name.
3085
3086Fri Mar  3 18:15:15 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3087
3088	* commands.c (construct_command_argv): Initialize NEW_ARGV to 0.  At
3089	`slow' label, if NEW_ARGV is not 0, free it; then allocate 4 strings.
3090
3091Tue Feb 28 14:29:39 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3092
3093	* Version 3.39.
3094
3095	* COPYING, make.texinfo: New GNU General Public License, version 1.
3096
3097	* *.c, *.h, Makefile: New copyright notices for the new GNU General
3098	Public License, version 1.
3099
3100	* commands.c [USG]: Define WRETCODE correctly (again).
3101
3102	* variable.c (expand_function: `shell'): Don't capture the standard
3103	error output of the shell command.
3104
3105	* ar.c (ar_touch, ar_member_date): Allocate MEMNAME with the right
3106	length.
3107
3108	* load.c [not UMAX] (load_average): Don't clobber the first nlist
3109	member when trying to set the second!
3110
3111Thu Feb 23 13:13:53 1989  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3112
3113	* commands.c (child_handler): Really ignore errors under -i and for
3114	- lines, don't just print a different message.
3115
3116	* make.c (decode_switches): Fixed handling of arguments (or lack
3117	thereof) to switches.
3118
3119Wed Feb 22 16:25:39 1989  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3120
3121	* commands.c (construct_command_argv): Don't clobber LINE when
3122	checking the IFS variable.
3123
3124Sun Feb 19 11:17:07 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3125
3126	* load.c [UMAX, not NO_LDAV] (load_average): Return 0.0 rather than
3127	randomness when calls fail.
3128
3129	* Version 3.38.
3130
3131	* commands.c (fatal_error_signal): If handling a user kill signal
3132	(TERM, INT, HUP), wait for the children without printing the
3133	"Waiting for children" message, since they will die quickly.
3134
3135	* Version 3.37.
3136
3137	* remote-stub.c (remote_status): Take another arg, BLOCK.  If this
3138	is nonzero block waiting for remote children.  If not, return 0 if
3139	we would have to block.
3140
3141	* commands.c (child_handler) [not USG]: If called as a signal
3142	handler, use wait3 and don't block.
3143	[USG]: If called as a signal handler, return after handling one child.
3144
3145Sat Feb 18 13:37:04 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3146
3147	* file.c (snap_deps): Process all double-colon entries of each file,
3148	not just the first one.
3149
3150	* Version 3.36.
3151
3152	* remote-stub.c: remote.c renamed.
3153	remote.c: Just include remote-stub.c
3154
3155	* commands.c (child_handler): If we were called as a signal handler,
3156	return after handling one child.
3157
3158	* commands.c [not USG]: Include <signal.h> and define `sigmask' if
3159	<signal.h> doesn't.
3160	(block_children, unblock_children): Use sigmask rather than
3161	bitshifting explicitly (and incorrectly).
3162
3163	* remote.c (remote_kill): New function to send a signal to a
3164	remote child.
3165
3166	* commands.c (fatal_error_signal): If we get a SIGTERM, send one to
3167	each living child.  If we get a SIGTERM, SIGINT, or SIGHUP, delete
3168	all pending targets before waiting for children.
3169	(struct child): Add new member `deleted'.
3170	(start_job): Initialize `deleted' member to 0.
3171	(delete_child_targets): New function to delete a given child's
3172	targets, unless the `deleted' flag in the `struct child' says they
3173	have already been deleted.  Sets this flag before returning.
3174
3175Thu Feb 16 18:32:07 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3176
3177	* commands.c [USG]: Define `WRETCODE' correctly (X & 0xff00).
3178
3179Tue Feb 14 16:05:00 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3180
3181	* commands.c (construct_command_argv): Don't make the 0th element of
3182	the argument list be "sh" when executing /bin/sh, because start_job
3183	uses the 0th element as the program name.
3184
3185Sun Feb 12 17:42:05 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3186
3187	* Version 3.35.
3188
3189	* read.c (readline): Put a null in the beginning of the buffer
3190	before starting the reading loop.
3191
3192	* read.c (read_makefile): Made main reading loop while
3193	!feof (infile), and removed EOF check after calling readline.
3194
3195Sun Feb  5 19:52:38 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3196
3197	* remote.c (block_remote_children, unblock_remote_children): New
3198	(stub) functions to block and restore asynchronous notification of
3199	remote child death.
3200
3201	* commands.c (block_children): Call block_remote_children.
3202	(unblock_children): Call unblock_remote_children.
3203	(child_handler): If called as a signal handler, block remote
3204	children on entry and unblock them before returning.
3205
3206	* commands.c (child_handler): For unknown children, if they are
3207	remote, give their remote ID; if local, give their PID and make's.
3208
3209	* commands.c (execute_file_command): Don't put a new child in the
3210	chain unless start_job succeeds.  Block children before calling
3211	start_job, and unblock them after putting the child in the chain and
3212	incrementing `job_slots_used' (if start_job succeeded).
3213
3214	* commands.c (block_children, unblock_children): Make these globally
3215	visible (not `static').
3216	commands.h: Declare block_children and unblock_children.
3217
3218	* variable.c (expand_function: `shell'): Use
3219	`shell_function_completed'.  Block children before forking and
3220	unblock after `shell_function_pid' is set properly and
3221	`shell_functon_completed' is reset to 0.
3222
3223	* commands.c (child_handler): When the child of the `shell' function
3224	completes, set `shell_function_completed' to 1 if it actually ran,
3225	or -1 if it didn't (due to fork or exec failure).
3226
3227	* commands.c (block_children, unblock_children): New functions to
3228	block and unblock the child termination signal.
3229	(wait_for_children): Use block_children and unblock_children.
3230	(execute_file_commands): Block children around the critical section
3231	wherein a new child is put on the chain.
3232
3233	* make.c (main): Change the environment to contain the correct
3234	MAKELEVEL before re-execing.
3235
3236Sat Feb  4 18:28:48 1989  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3237
3238	* Version 3.34.
3239
3240Fri Feb  3 16:36:49 1989  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
3241
3242	* rule.c (default_variables): Fixed $(LINK.c).
3243
3244Wed Feb  1 18:05:07 1989  Roland McGrath  (mcgrath at pepper.Berkeley.EDU)
3245
3246	* Version 3.33.
3247
3248	* version.c: Removed copyright notice, since this is a one-line file.
3249
3250	* commands.c (error_status): Made it return BUF, rather than running
3251	off the end (this apparently worked on Sun 3s for some reason).
3252
3253	* ar.c, commands.c, dep.h, load.c, make.c, make.h, read.c, remake.c,
3254	rule.c, variable.c, Makefile: Changed copyrght notices to cover 1989.
3255
3256Mon Jan 30 15:51:28 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3257
3258	* Version 3.32.
3259
3260Fri Jan 27 20:09:24 1989  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3261
3262	* remake.c (remake_file): Don't touch phony targets.
3263
3264	* rule.c (convert_to_pattern): Fixed an incorrect length passed to
3265	savestring.
3266
3267	* variable.c (expand_function: `shell'): Close the read side of the
3268	pipe on the parent side of the fork.
3269
3270	* commands.c (start_job): On the child of the fork, close the
3271	BAD_STDIN fd if we're not using it.
3272
3273	* read.c (record_files): A file beginning with a dot can be a
3274	default target if it also contains a slash (as in `../foo').
3275
3276	* commands.c (wait_for_children): For BSD, block SIGCHLD rather than
3277	ignoring it to avoid a race condition when child_handler is returning.
3278
3279	* commands.c (child_handler): Do blocking waits.
3280	(error_status): Return a string describing exit status.  (Split out
3281	of child_handler).
3282
3283	* read.c (multi_glob): Change VECTOR to VEC for Alliant.
3284
3285Thu Jan  5 00:06:51 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3286
3287	* Version 3.31.
3288
3289	* make.texinfo (Features): Noted $(foo:PAT=SUB) from SunOS 4.0.
3290
3291	* make.texinfo (Options/Recursion): -d and -p go in the environment.
3292
3293	* load.c: Include "commands.h".
3294
3295Wed Jan  4 17:49:25 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3296
3297	* make.c (switches): -d and -p can come from the environment and are
3298	put into it.
3299
3300	* read.c (record_files): Fixed the checking for duplicate deps so it
3301	doesn't clobber the first one.
3302
3303	* make.texinfo: Documented default implicit rule changes.
3304
3305	* rule.c: Revamped default suffix rules.  They now use Sun's style
3306	of using variables `COMPILE.c', `LINK.c', etc. for each suffix, and
3307	use `TARGET_ARCH' and `TARGET_MACH' variable where appropriate.
3308	Also support Modula-2 compilation (suffixes .sym, .def, and .mod).
3309	Ratfor Yacc support is gone, since nobody has yacc -r.
3310	All EFL support is gone, since nobody uses EFL.
3311
3312	* ar.c, arscan.c: Don't assume `long int' and `int' are the same.
3313
3314	* commands.c [USG]: Fixed wait status bit encoding.
3315	[USG and not USGr3] (dup2): Define this for SysVr2.
3316
3317	* make.h, dep.h, make.c [iAPX286]: Make allowances for this
3318	brain-damaged compiler.
3319
3320	* make.texinfo (Variables: Flavors): Fixed a typo.
3321
3322Tue Jan  3 18:09:31 1989  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3323
3324	* ar.c (ar_member_date, ar_touch): Truncate member names to 15 chars.
3325
3326	* Version 3.30.
3327
3328	* commands.c [SYS_WAIT]: If this is defined, use BSD <sys/wait.h>
3329	and wait3 even if USG.
3330
3331	* read.c (record_files): Defining .DEFAULT with no deps or commands
3332	clears its commands.
3333
3334	* rule.c (default_suffixes): Added `.sh'.
3335	(default_suffix_rules): Added single-suffix .sh rule, copies source
3336	to target and makes target executable.
3337	make.texinfo (Catalogue of Rules): Documented .sh rule and its use
3338	in conjunction with SCCS.
3339
3340	* rule.c (set_default_suffixes): Define variable `SUFFIXES' to the
3341	default list ("" under -r).
3342	make.texinfo (Suffix Rules): Document `SUFFIXES' variable.
3343
3344	* rule.c (default_variables), make.texinfo (Implicit Variables):
3345	Variable AR defaults to `ar', ARFLAGS to `rv', and RM to `rm -f'.
3346
3347	* rule.c (install_default_pattern_rules): Default variables are made
3348	recursive.
3349	(default_variables): Added "CPP", defined to "$(CC) -E".
3350	(default_suffixes): Added `.S', before `.s'.
3351	(default_suffix_rules): New rule for .S to .s, runs CPP.
3352	All rules that use CPP now include "$(CPPFLAGS)".
3353	make.texinfo (Catalogue of Implicit Rules, Implicit Variables):
3354	Documented above changes.
3355
3356	* commands.c [USG] (sys_siglist): Don't define.
3357	[USG] (init_siglist): New function to initialize sys_siglist.
3358
3359	* make.texinfo (Variables: Reference): Documented `$(foo:PAT=SUB)'
3360	references.
3361
3362	* variable.c (variable_expand): A reference `$(foo:PAT=SUB)' is
3363	equivalent to `$(patsubst PAT,SUB,$(foo))'.
3364
3365	* variable.c (variable_expand): Free the storage for the expansion
3366	of a recursive variable when it is nod longer needed.
3367
3368	* variable.c (variable_expand): When checking for `$($(foo))', use
3369	lindex so as not to search for the second `$' outside the parens.
3370
3371	* make.c (struct stringlist, main, decode_switches): Changed `index'
3372	member to `idx'.
3373
3374Sat Dec 24 16:02:32 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3375
3376	* commands.c (wait_for_children [USG]): Handle SIGCLD with SIG_DFL,
3377	rather than SIG_IGN.  Ignoring SIGCLD reportedly makes wait return -1.
3378
3379	* arscan.c [USGr3]: Define PORTAR to 1 (as with sun386).
3380	(ar_scan [USGr3]): Remove trailing slashes from member names.
3381
3382Thu Dec 22 17:54:05 1988  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3383
3384	* make.texinfo (Makefiles: Overriding Makefiles): New node
3385	documenting use of .DEFAULT to have one makefile defer unmakeable
3386	targets to another.
3387
3388	* make.texinfo (Implicit: Using Implicit, Implicit: Last Resort):
3389	Mention empty commands and xref node `Empty Commands'.
3390
3391Wed Dec 21 20:12:40 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3392
3393	* Version 3.29.
3394
3395	* make.c (struct command_switch, command_switches, et al): New
3396	member `noarg_value', if not nil, ptr to value to use if no arg is
3397	given to a switch that would otherwise require one.  The -j option
3398	can now be given w/o an arg, to mean infinite jobs.
3399	* commands.c: If job_slots is zero, infinite jobs.
3400
3401	* read.c (read_all_makefiles, read_makefile): Make makefiles precious.
3402
3403	* make.c (decode_switches): For a positive_int or floating option,
3404	if we moved to the next argument word, but found no argument for the
3405	option, move back to the correct word.
3406
3407	* make.c (decode_switches): If we got any unknown options, die after
3408	processing all arguments.
3409
3410	* GNUmakefile: Moved `include depend' to the end, so the default
3411	goal will be set before then.
3412
3413	* load.c (wait_to_start_job [Unix, UMAX]): Merged into one version
3414	under #ifdef LDAV_BASED.  Only loop while we have jobs running.
3415	Sleep for increasing amounts (increase one second per iteration)
3416	before checking the load average (after the first check).
3417	Get the load average from function load_average.
3418	(wait_to_start_job [not LDAV_BASED]): Always return.
3419	(load_average [UMAX]): Fetch load average for Encore UMAX.
3420	(load_average [not NO_LDAV]): Fetch load average from /dev/kmem.
3421	[not NO_LDAV]: Define LDAV_BASED.
3422
3423Tue Dec 20 18:54:50 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3424
3425	* Version 3.28.
3426
3427	* commands.c (wait_for_children): Take second arg, ERROR.  If
3428	nonzero, and there are children, print a message on stderr.
3429	(execute_file_commands, fatal_error_signal): Pass second arg.
3430	* make.c (die), remake.c (update_goal_chain), variable.c
3431	(expand_function: `shell'): Ditto.
3432
3433Sat Dec 17 01:05:38 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3434
3435	* commands.c (start_job): Call wait_to_start_job before forking.
3436
3437	* load.c (load_average): Converted to wait_to_start_job.
3438
3439	* remote.c: New file for remote execution functions.
3440	(start_remote_job_p): Return nonzero if the next job should be run
3441	remotely.
3442	(start_remote_job): Start a remote job and return an ID for it.
3443	(remote_status): Get status of dead remote children.
3444
3445Fri Dec 16 16:51:07 1988  Roland McGrath  (mcgrath at hecuba.Berkeley.EDU)
3446
3447	* commands.c (start_job): If start_remote_job_p () returns nonzero,
3448	call start_remote_job to start the job rather than fork and exec.
3449	(child_handler):
3450
3451	* commands.c (execute_file_commands): Moved load average checking to
3452	start_job.
3453
3454	* commands.c (child_handler: USG): Record the pid wait returns.
3455
3456	* load.c (UMAX): Added some #include's needed for UMAX.
3457
3458	* read.c (multi_glob), variable.c (string_glob): Ignore a (char **)
3459	-1 return from glob_filename.
3460
3461	* variable.c (variable_expand): Make sure we don't increment past
3462	the end of the string we were passed.
3463
3464	* variable.c (variable_expand): Terminate the expansion.
3465
3466	* file.c (rename_file): If there is already a file under the new
3467	name, set its contents equal to FILE's (ick).
3468
3469	* variable.c (define_automatic_variables): Pass all the args to
3470	define_variable when defining MAKELEVEL!
3471
3472	* commands.c (execute_file_commands): If max_load_average > 0, and
3473	we have children running, don't start up another child until the
3474	load average goes below max_load_average.
3475
3476	* make.c: New variable `max_load_average'.
3477	(struct command_switch, decode_switches, decode_env_switches):
3478	Handle floating-point (double) args.
3479	(command_switches): Added `-l' switch to set `max_load_average'.
3480
3481	* load.c (load_average): New file and function to return a double
3482	that is the current load average (1.00 scale).
3483	* GNUmakefile, oldMakefile: Pass flags in $(LOAD_AVG) for load.c.
3484
3485Thu Dec 15 15:22:08 1988  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3486
3487	* Makefile: Renamed to oldMakefile.
3488	* GNUmakefile: Make Makefile from oldMakefile and depend.
3489
3490	* read.c (read_all_makefiles): When putting the default makefiles in
3491	the read_makefiles chain so they will be remade, put them in the
3492	right order.
3493
3494	* remake.c (update_goal_chain): If MAKEFILES is nonzero, always make
3495	in serial, and return as soon as one goal whose `changed' member is
3496	nonzero  is successfully remade.
3497
3498	* commands.c: Don't include <sys/fcntl.h>.
3499
3500	* commands.c (construct_command_argv): Added ` to sh_chars.
3501
3502	* make.h: Don't declare construct_makeflags.
3503
3504	* make.c (main): Set up MAKEFLAGS and MFLAGS and make an environment
3505	both before and after reading the makefiles, so the makefiles can
3506	use them and possible change them, and later children will get the
3507	right information.
3508	(construct_makeflags): Replaced with define_makeflags (static void),
3509	which defines the two variables.
3510	* variable.c (define_automatic_variables): Don't define MAKEFLAGS
3511	and MFLAGS.
3512
3513Mon Dec 12 14:40:31 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
3514
3515	* Version 3.27.
3516
3517	* commands.c (child_handler): Reset the handler to ourselves when
3518	called for USG, since it has no safe signals.
3519
3520	* commands.c: For USG, use an int rather than a `union wait' for
3521	wait calls, and dissect it with bitmasks.
3522	(child_handler): No wait3 system call in USG.  Since we can't
3523	protect from hanging, always return immediately if we have no
3524	children we know about and we're not running a `shell' function.
3525	(There is still the danger of hanging waiting for a child that died
3526	without our being notified.)
3527
3528	* remake.c: Include <fcntl.h> instead of <sys/file.h>.  What we need
3529	is really in <fcntl.h>, and while BSD <sys/file.h> includes
3530	<fcntl.h>, USG doesn't.
3531
3532	* make.c (main): Figure out the program name before doing anything
3533	which might need it (in a call to error or fatal).
3534
3535	* dir.c, glob.c: Use `struct dirent' and <dirent.h> for USGr3.
3536
3537	* arscan.c (ar_scan): Added missing & before buf (which is an int)
3538	if SARMAG is not defined (SysV).
3539
3540Fri Dec  9 18:44:13 1988  Roland McGrath  (mcgrath at pepper.Berkeley.EDU)
3541
3542	* Version 3.26.
3543
3544	* dir.c (find_directory, dir_file_exists_p): Keep track of how many
3545	directories we have open and don't let it be more than
3546	MAX_OPEN_DIRECTORIES (currently 10).
3547
3548	* variable.c (expand_function: `foreach'): Use expand_argument
3549	rather than variable_expand so each repetition doesn't clobber the
3550	last!!!
3551
3552Mon Dec  5 15:58:46 1988  Roland McGrath  (mcgrath at hecuba.Berkeley.EDU)
3553
3554	* Version 3.25.
3555
3556	* Makefile: Define `install' target.
3557
3558	* GNUmakefile: Don't include GNUmakefile or depend in the
3559	distribution file.
3560
3561Wed Nov 30 15:53:42 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
3562
3563	* commands.c (execute_file_commands): Don't clobber a null into
3564	random storage if there were no $^ and/or $? words.
3565
3566	* remake.c (check_dep): Set *MUST_MAKE_PTR nonzero if a dependency
3567	doesn't exist.
3568
3569	* ar.c (ar_member_date, ar_touch): Make sure the modtime of the
3570	archive file itself is known before we fetch or change the modtime
3571	of one of its members.
3572
3573	* read.c (read_makefile): Expand variable and function references
3574	before parsing rules so variable can contain special characters
3575	(colons and semicolons).
3576
3577Sat Nov 26 11:36:31 1988  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3578
3579	* variable.c (expand_function: `filter', `filter-out'): Fixed so
3580	that filter-out works right.
3581
3582	* variable.c (expand_function: `filter', `filter-out'): Made these
3583	functions use each word of their first argument as a pattern.
3584
3585Fri Nov 25 10:51:47 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3586
3587	* Version 3.24.
3588
3589	* read.c (record_files): If a target is listed more than once in a
3590	single rule (that defines commands), give a warning message rather
3591	than the counter-intuitive message saying commands were already
3592	defined (in the same place).
3593
3594	* make.c (fatal, error): Made them both take 6 args since there is
3595	at least one error message that need that many.  Too bad vfprintf is
3596	not universal!
3597
3598	* Version 3.23.
3599
3600	* read.c (read_makefile): Moved the construction of the `struct
3601	commands' into record_files.  Call record_files before recursing for an
3602	included makefile so the higher-up will determine the default goal.
3603	(record_files): Take arguments COMMANDS, COMMANDS_IDX and
3604	COMMANDS_STARTED and construct a `struct commands.
3605
3606Thu Nov 24 14:36:33 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3607
3608	* Version 3.22.
3609
3610	* make.c (main): Made it a fatal error if we can't move back to the
3611	directory we started in before re-execing.
3612
3613	* make.c (main): Get the current directory before doing anything
3614	else, so we know it even if we don't need it for the value of
3615	`MAKE', since we might want it when re-execing.
3616
3617Wed Nov 23 13:34:44 1988  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3618
3619	* Version 3.21.
3620
3621	* read.c (record_files): Eliminate duplicate deps in a chain.
3622
3623	* variable.c (expand_function: `sort'): Pass the right number to
3624	qsort, not one less.
3625
3626	* remake.c (remake_file): Always call notice_finished_file if
3627	FILE->command_state == cs_finished.
3628
3629	* commands.c (execute_file_commands): Call notice_finished_file to
3630	set FILE's status correctly when start_job fails (because it's out
3631	of commands or running under -n).
3632
3633Fri Nov 18 15:31:12 1988  Roland McGrath  (mcgrath at saffron.Berkeley.EDU)
3634
3635	* Version 3.20.
3636
3637	* remake.c (update_file_1): Set the `update_status' of FILE to
3638	nonzero and set FILE's `updated' bit if we have decided to give up
3639	on remaking FILE because of errors in the dependencies.
3640
3641	* rule.c (pattern_search): Debugging messages use `dependency' (vs.
3642	`dependent') properly.
3643
3644	* make.texinfo (Conditionals: Conditional Syntax): Function index
3645	entries for `ifndef' and `ifneq'.
3646
3647	* variable.c (define_automatic_variables): Define `MAKELEVEL' to the
3648	decimal number of the makelevel, since it may be malformed or blank.
3649
3650	* remake.c (remake_file): Call notice_finished_file after touching.
3651
3652Sat Nov 12 19:29:34 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3653
3654	* Version 3.19.
3655
3656	* GNUmakefile (dist): Pass the `-f' flag to compress.
3657
3658	* vpath.c (build_vpath_lists): Check for VPATHS being nil after
3659	constructing the general VPATH list from the `VPATH' variable.
3660
3661Fri Nov 11 08:02:26 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3662
3663	* make.c (fatal, error): Made error messages for recursive runs be
3664	shorter.
3665
3666Thu Nov 10 16:51:36 1988  Roland McGrath  (mcgrath at basil.Berkeley.EDU)
3667
3668	* Version 3.18.
3669
3670	* read.c (read_makefile): Made it eat leading spaces and formfeeds
3671	(but not tabs), like it's documented to.
3672
3673	* read.c (read_makefile): Let included makefiles determine the
3674	default goal, as is done by System V Make.
3675
3676Tue Nov  1 19:03:08 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3677
3678	* variable.c (new_environ): Don't increment VCNT when a variable is
3679	rejected.
3680
3681Fri Oct 28 16:54:15 1988  Roland McGrath  (mcgrath at basil.Berkeley.EDU)
3682
3683	* Version 3.17.
3684
3685	* rule.c (convert_to_pattern): Don't use the same storage for a name
3686	in two rules since new_pattern_rule may free this storage when a
3687	rule is discarded.
3688
3689	* rule.c (new_pattern_rule): Undid useless change I made Oct 25.
3690
3691Thu Oct 27 19:17:53 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3692
3693	* Version 3.16.
3694
3695	* GNUmakefile, Makefile: Fixed a typo in a comment.
3696	* Makefile: Removed malloc.o from object file list.
3697
3698	* variable.c: Removed old debugging #define's for xmalloc and
3699	xrealloc so non-ANSI cpp's won't barf.
3700
3701	* make.c (main): Made local array for temp file name static so
3702	compilers that don't do auto aggregate initialization won't barf.
3703
3704	* read.c: Removed static declaration of copy_dep_chain since it is
3705	no longer static.
3706
3707Tue Oct 25 16:59:30 1988  Roland McGrath  (mcgrath at pepper.Berkeley.EDU)
3708
3709	* rule.c (new_pattern_rule): If we threw out the new rule because it
3710	matched an old one and OVERRIDE was zero, don't put the freed
3711	pointer in the chain!
3712
3713Wed Oct 19 15:07:43 1988  Roland McGrath  (mcgrath at pepper.Berkeley.EDU)
3714
3715	* Version 3.15.
3716
3717	* variable.c (expand_function: `sort'): Don't do the sorting and
3718	writing out if there were no words in the first place.
3719
3720	* remake.c (remake_file): Only fail with a "no way to make" message
3721	for a dependency (non-target) file.  If we don't know how to remake
3722	a target file, pretend it was successfully remade and is very new.
3723
3724	* remake.c (remake_file): Don't increment `files_remade' for a
3725	non-target file we don't know how to remake.
3726
3727	* read.c (record_files): Don't die with "both : and :: entries" for
3728	a file whose `is_target' flag is not set.
3729
3730Tue Oct 18 17:24:11 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3731
3732	* variable.c (expand_function: `patsubst', `subst'): Free the right
3733	things!
3734
3735	* variable.c (expand_function: `subst'): Don't clobber the
3736	pointer to the end of the second arg and then try to use it!!!
3737
3738Mon Oct 17 16:44:45 1988  Roland McGrath  (mcgrath at catnip.Berkeley.EDU)
3739
3740	* variable.c (expand_function: `patsubst'): Don't clobber the
3741	pointer to the end of the second arg and then try to use it!!!
3742
3743	* variable.c (expand_function: `word' function): Made it parse its
3744	second argument correctly.
3745
3746	* ar.c (ar_touch): Return 1 rather than -1 for on errors.
3747
3748Sat Oct 15 15:12:16 1988  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
3749
3750	* Version 3.14.
3751
3752	* GNUmakefile: Removed explicit rule for make.dvi since the built-in
3753	implicit rule now works.
3754
3755	* rule.c (default_suffix_rules): Fixed .texinfo.dvi rule yet again
3756	so that it really works, now that parens are counted.
3757
3758	* remake.c (update_file_1): Set FILE's `updated' flag after calling
3759	remake_file if it failed or finished immediately.
3760
3761	* remake.c (update_file): Use the `updated' flag rather than the
3762	command state to decide if a file was fully considered, and
3763	therefore might give an "up to date" message.
3764
3765	* variable.c (expand_function): Made all functions that take more
3766	than one argument count parens of the appropriate flavor in their
3767	args and ignore commands nested in parens.
3768
3769Fri Oct 14 18:35:00 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3770
3771	* read.c (read_all_makefiles): Pass second arg to read_makefile for
3772	default makefiles.
3773
3774Thu Oct 13 16:40:08 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3775
3776	* Version 3.13.
3777
3778	* GNUmakefile: Added an explicit rule for make.dvi since the
3779	built-in .texinfo.dvi implicit rule is screwed up.
3780
3781	* rule.c (default_suffix_rules): Added a comment that the
3782	.texinfo.dvi rule does not work because of an ahem, feature of Make
3783	that at some point will be fixed--er, enhanced to alleviate this
3784	difficulty.
3785
3786	* rule.c (default_suffix_rules): Fixed Texinfo -> DVI rule (again).
3787
3788	* make.texinfo (Commands: Execution): Documented new competing for
3789	standard input among children.
3790
3791	* commands.c (struct child): Added `good_stdin' flag to tell if this
3792	child has the stdin that doesn't point into nirvana.
3793	(good_stdin_used): New variable to tell if any child has the good
3794	standard input.
3795	(child_handler): Reset `good_stdin_used' if a dead child's
3796	`good_stdin' flag is set.
3797	(start_job): Give the new child the good standard input if
3798	`good_stdin_used' is no set, and set the child's `good_stdin' flag
3799	appropriately.
3800
3801	* rule.c (default_suffix_rules): Changed Texinfo -> DVI rule to work
3802	better (I hope).
3803
3804	* read.c (read_all_makefiles): Stop reading default makefiles after
3805	one is found.
3806
3807	* read.c (read_makefile): Reset `reading_filename' and
3808	`reading_lineno_ptr' after recursing for an included makefile.
3809
3810	* GNUmakefile: New GNU Make-specific makefile that does everything
3811	Makefile does plus distribution stuff, and doesn't contain any hacks
3812	to try to work with Unix make.
3813
3814	* Makefile: Removed distribution stuff.
3815
3816	* make.c (main): Use mktemp to construct the names of temporary
3817	files used for standard input makefiles.
3818
3819	* make.c (main): Don't turn standard input into a broken pipe.
3820
3821	* commands.c (start_job): Keep two extra file descriptors around: a
3822	good standard input, and a bad one that reads from a broken pipe.
3823	On the child side of the fork, if there are other children, give
3824	this one the broken pipe so they won't compete; if this is the only
3825	one, give it the good standard input.
3826
3827	* make.h: Declare notice_finished_file.
3828
3829	* commands.c (execute_file_commands): Use noticed_finished_file
3830	after waiting for the child when there is only one job slot.
3831
3832	* remake.c (notice_finished_file): New function to re-check mtime's
3833	and such things to be done when commands finish.
3834	(update_file_1): Use notice_finished_file.
3835
3836	* commands.c (child_handler, execute_file_commands): Use new
3837	variable `job_slots_used' to record the number of jobs currently
3838	running, rather than diddling with `job_slots'.
3839	(execute_file_commands): Increment `job_slots_used' before calling
3840	start_job and decrement it on failure to avoid race condition.
3841	If there is only one job slot, wait for the child to finish and
3842	return its status so commands are run in linear order, as if there
3843	were no parallelism.
3844
3845Wed Oct 12 15:59:03 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3846
3847	* remake.c (remake_file): Don't print a "No way to make" message for
3848	targets whose `dontcare' flags are set.
3849
3850	* read.c (read_all_makefiles): Set the `dontcare' flag of the
3851	`struct file' each default makefile added to the chain.
3852
3853	* file.h (struct file): Add `dontcare' member.
3854
3855	* read.c (read_all_makefiles): When no default makefiles are found,
3856	put the names of all those tried in the `read_makefiles' chain so
3857	they will be updated if possible, giving their `struct dep's'
3858	`changed' members the value of 0 so we won't care if they cannot be
3859	found or remade.
3860
3861	* make.texinfo (Makefiles: Remaking Makefiles): Documented that
3862	default makefiles will be remade if not found.
3863
3864	* read.c (read_all_makefiles): If no default makefiles can be found,
3865	go through the list of default names, trying to make one, stopping
3866	if one is made.
3867
3868	* remake.c (remake_file): Set STATUS to 0 after successfully touching.
3869
3870	* dir.c (file_impossible, file_impossible_p): Don't clobber FILENAME
3871	to "" and then try to to a strcmp on it!!!
3872
3873Mon Oct 10 16:09:18 1988  Roland McGrath  (mcgrath at cinnamon.Berkeley.EDU)
3874
3875	* make.c (main): Don't do `dir_load (".")'.
3876
3877	* rule.c (count_implicit_rule_limits), vpath.c
3878	(construct_vpath_list): Test the existence of a given directory by
3879	`dir_file_exists_p (DIR, ".")' and assume that if this returns zero,
3880	it means the directory really does not exist.
3881
3882	* dir.c (struct dirdata): Replaced with `struct directory' for
3883	directories, each containing a chain of `struct dirfiles', one for
3884	each file (real or impossible).
3885	(dir_load): Removed.
3886	(find_directory): New function to find the `struct directory' for a
3887	named directory and return it (possibly creating a new one).
3888	(dir_file_exists_p): Read the directory on the fly if its stream is
3889	still valid (and ever was) if the file we're looking for is not
3890	already in the hash tables.
3891	(file_impossible, file_impossible_p, dir_name, print_dir_data_base):
3892	Use the new directory/file scheme.
3893
3894	* make.texinfo: Miscellaneous editorial changes and clarifiactions.
3895
3896	* commands.c (struct child): Remove `environ' member.
3897	(child_handler, start_job, execute_file_commands): Remove use of
3898	`environ' member and new_environ.
3899
3900	* make.c (main): Call new_environ after reading makefiles.
3901
3902	* variable.h: Declare `new_environ' to return void.
3903
3904	* variable.c (new_environ): Put the environment in `environ' and
3905	return void.
3906
3907Fri Oct  7 15:48:39 1988  Roland McGrath  (mcgrath at pepper.Berkeley.EDU)
3908
3909	* Version 3.12.
3910
3911	* Makefile: Don't make the uncompressed tar file.
3912
3913	* variable.c (expand_function: `shell' function): Made it not expect
3914	read to null-terminate the buffer.
3915
3916	* Makefile: Made it use a temporary symlink to . rather than a
3917	temporary directory to make the distribution tar file.
3918
3919Thu Oct  6 17:52:35 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3920
3921	* Version 3.11.
3922
3923	* make.texinfo: Fixed a line that got garbaged somehow.
3924
3925Mon Oct  3 16:14:39 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
3926
3927	* make.c (main): Try to move back to the directory we started in
3928	before re-exec ourself.
3929
3930	* remake.c (update_file_1): A double-colon target with no deps
3931	always needs to be remade.
3932
3933	* remake.c (remake_file): Changed "No way to make" message to say
3934	`target' rather than `file'.
3935
3936Sun Oct  2 12:50:47 1988  Roland McGrath  (mcgrath at catnip.Berkeley.EDU)
3937
3938	* remake.c (update_file_1): Set FILE->update_status to the return
3939	value of remake_file.
3940
3941	* rule.c (convert_to_pattern): Fixed swapped lengths passed to
3942	xmalloc for source/target suffixes.
3943
3944	* make.texinfo: Documented that MAKEFLAGS and MFLAGS are read in
3945	from makefiles.  Updated the `Features' section a bit.
3946
3947	* make.c (main): Read switches from MAKEFLAGS and MFLAGS variables
3948	after reading in makefiles.
3949
3950	* make.c (main): Put a line "/tmp/foo:;" rather than ".PHONY:
3951	/tmp/foo" in front of temp files made for stdin makefiles.
3952
3953	* remake.c (update_file): Test the state of the right `struct file'
3954	for double-colon files.
3955
3956	* make.c (main): Put a ".PHONY: /tmp/foo" line in front of temp
3957	files made for stdin makefiles so they won't be remade when we
3958	re-exec.  Kludge-o-matic!!
3959
3960	* remake.c (update_goal_chain): Judge files as being finished based
3961	on their `updated' flag, not their state.
3962
3963	* read.c (read_makefile): Don't check for FILENAME being "-".
3964	(read_all_makefiles): Set each element of MAKEFILES to the name put
3965	in READ_MAKEFILES by read_makefile, since read_makefile may free the
3966	storage for the name it is passed, and someone might want to look at
3967	the elements of MAKEFILES again.
3968
3969	* make.c (main): For each `-f' flag with arg `-' (standard input),
3970	read standard input into a temp file and pass the temp file's name
3971	to read_all_makefiles, after making sure it will not be remade.
3972
3973	* make.c (construct_makeflags): Always put out `-j1'.
3974
3975Sat Oct  1 00:19:59 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
3976
3977	* commands.c (execute_file_commands): If commands are nothing but
3978	whitespace, set the state to `cs_finished' before returning 0.
3979
3980	* make.c (decode_switches): Allocate space for args in stringlists
3981	so they can be freed later.
3982
3983	* make.h: Declare `makelevel'.
3984
3985	* variable.c (makelevel): Moved to make.c (and made global).
3986
3987	* make.c (fatal, error): Print the makelevel if it's > 0.
3988	(perror_with_name): Use error rather than calling fprintf directly.
3989	(pfatal_with_name): Use fatal rather than fprintf and die.
3990
3991	* variable.c (new_environ): Don't put default variables (origin
3992	`o_default') into the environment; they just take up space.
3993
3994	* read.c (read_makefile): Don't add FILENAME to the chain of read
3995	makefiles if it's "-" (standard input).
3996
3997	* remake.c (update_goal_chain): Set STATUS correctly when nothing
3998	happens (as well as in all other situations).
3999
4000	* make.c (construct_makeflags): Put a `-' before each switch and
4001	spaces between them.
4002
4003	* Version 3.10.
4004
4005	* commands.c (wait_for_children): Don't check if `children' is nil.
4006	This is the case when waiting for the child of a `shell' function.
4007
4008	* dir.c (dir_load): Don't add a hash-table entry for directory
4009	DIRNAME and filename "" if DIRNAME doesn't exist.
4010
4011	* commands.c (execute_file_commands): Return 0 after start_job
4012	returns 1 (failure) under the -n flag.
4013
4014	* remake.c (remake_file): Set the state to `cs_finished' when not
4015	calling execute_file_commands.
4016
4017	* remake.c (update_goal_chain): Second arg is now MAKEFILES, nonzero
4018	meaning to disable -t, -q, and -n for each target unless the target
4019	was also given on the command-line.
4020
4021	* read.c (read_makefile): Enter the `struct file's for the makefiles
4022	added to the `read_makefiles' `struct dep' chain.
4023
4024	* remake.c (update_goal_chain): Made it not enter the files for the
4025	goals in the chain.  It will already have been done.
4026
4027	* rule.c (convert_to_pattern): Null-terminate the names of targets
4028	and deps of the pattern rules properly.
4029
4030Fri Sep 30 18:56:20 1988  Roland McGrath  (mcgrath at nutmeg.Berkeley.EDU)
4031
4032	* make.c (main): Call install_default_pattern_rules.
4033
4034	* make.h: Declare copy_dep_chain.
4035
4036	* read.c (copy_dep_chain): Moved to make.c (and made global).
4037
4038	* make.c (main): Call update_goal_chain to update goals.
4039	Update read makefiles and re-exec self if they change.
4040
4041	* remake.c (update_file): Make this function static.
4042	(update_goal_chain): New function to update a `struct dep' chain of
4043	goals, waiting until they are all finished before returning.
4044
4045	* make.h: Don't declare update_file.  Declare update_goal_chain.
4046
4047	* make.c (main): Call snap_deps, etc. that were in read_all_makefiles.
4048
4049	* read.c (find_makefile): Removed this function.
4050	(read_all_makefiles): Don't update makefiles, don't diddle with
4051	pattern rules, don't call snap_deps, etc.  Return a `struct dep'
4052	chain of all makefiles read.
4053	(read_makefile): Now takes two args: FILENAME and TYPE, which is 0
4054	for a normal makefile, 1 for MAKEFILES variable or 2 for an included
4055	makefile.  Add a `struct dep' containing the name of the makefile
4056	(as it was found in the search path for type 2s), and TYPE in the
4057	`changed' member to the global `read_makefiles' chain.
4058
4059	* make.h, rule.c (displace_pattern_rules,
4060	add_displaced_pattern_rules): Removed these functions.
4061
4062	* read.c (read_makefile): Variable-expand the name of an `include'd
4063	makefile before calling find_makefile on it.
4064
4065	* file.c (snap_deps): If the `struct file' for a `struct dep'
4066	already exists, free the `struct dep's `name' member before setting
4067	it to nil (since this info is in the `struct file').
4068
4069	* read.c (copy_dep_chain): Made it copy each name rather than
4070	leaving multiple `struct dep's with the same pointers.
4071
4072Thu Sep 29 19:08:13 1988  Roland McGrath  (mcgrath at catnip.Berkeley.EDU)
4073
4074	* make.c (decode_switches): Fixed second decode_env_switches call to
4075	use correct length of "MFLAGS" (6, not 5).
4076
4077	* read.c (read_makefile): Don't stop reading when readline returns
4078	zero lines read.  Only stop when the stream reaches EOF.  This makes
4079	it recognize the last line of a makefile without a newline.
4080
4081	* remake.c (remake_file): If we don't know how to make FILE, set its
4082	command state to `cs_finished'.
4083
4084	* remake.c (update_file): Don't write the "up to date" message if
4085	update_file_1 returned a nonzero status.
4086
4087Wed Sep 28 16:30:07 1988  Roland McGrath  (mcgrath at catnip.Berkeley.EDU)
4088
4089	* commands.c (child_handler): Set the `update_status' member
4090	properly for ignored errors.
4091
4092	* rule.c (convert_to_pattern): Made it not care about if the target
4093	suffix comes before the source suffix in the .SUFFIXES list.
4094
4095	* make.texinfo: Misc editorial changes.
4096
4097	* commands.c (wait_for_children): Return immediately if `children'
4098	is nil (there are no children).
4099
4100Tue Sep 27 15:33:14 1988  Roland McGrath  (mcgrath at pepper.Berkeley.EDU)
4101
4102	* Version 3.09.
4103
4104	* commands.c (struct child): New member `command_ptr' to hold the
4105	current position in the commands.  The `commands' member is never
4106	changed.
4107	(start_job, child_handler, execute_file_commands): Use new method
4108	for `commands' and `command_ptr' members.
4109
4110	* make.c (decode_env_switches): Skip past an invalid letter (instead
4111	of looping forever).
4112
4113	* commands.c (struct child): Add `environ' member to hold the
4114	environment for this child.
4115	(execute_file_commands): Get a new environment from new_environ and
4116	put in the the new `struct child's `environ' member.
4117	(child_handler): When freeing a child, free its `commands' member, the
4118	elements of its `environ' array and its `environ' member itself.
4119	(start_job): Set `environ' to the child's `environ' member before
4120	exec'ing the command.
4121
4122	* variable.h, variable.c (new_environ): Made it return the new
4123	environment, not putting it in `environ'.
4124
4125	* remake.c (update_file): Don't give a "is up to date" message
4126	unless no files were remade and the state went from `cs_not_started'
4127	to `cs_finished', so repeat calls to finish jobs won't get the message.
4128
4129Mon Sep 26 16:26:08 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
4130
4131	* Version 3.08.
4132
4133	* make.texinfo (Commands: Execution): Documented that children will
4134	be waited for rather than killed.
4135
4136	* commands.c (fatal_error_signal): Wait for children.
4137	(kill_children): Removed this function.
4138
4139	* make.c (main, die): Wait for children to die, don't kill them.
4140
4141	* variable.c (expand_function): Use wait_for_children.
4142
4143	* make.c (main): Use wait_for_children rather than child_handler.
4144
4145	* commands.c (wait_for_children): New function to block waiting for
4146	children, insuring that child_handler is not called recursively.
4147	(execute_file_commands, kill_children): Use wait_for_children.
4148
4149	* commands.c (child_handler): Start up additional commands in a
4150	sequence after an ignored error.
4151
4152	* remake.c (update_file): Don't print "`foo' is up to date" messages
4153	when update_file_1 returns while commands are executing.
4154
4155	* remake.c (update_file_1): Pass the file name to name_mtime, not
4156	the bloody `struct file', dammit!!
4157
4158	* commands.c (child_handler): Print out the "*** ..." error message
4159	when not under -i.  (I somehow forgot this.)
4160
4161	* remake.c (update_file_1): Use name_mtime rather than file_mtime to
4162	re-get the mtime of a file whose commands have finished.
4163
4164	* make.c (command_switches, decode_switches, decode_env_switches):
4165	Make all switches that take string args allow them right after the
4166	switch letter.
4167
4168	* commands.c (child_handler): Check for a child being the `shell'
4169	function's command returning and set the global variable for
4170	expand_function to check.
4171
4172	* variable.c (expand_function): For the `shell' function, instead of
4173	waiting for the child shell ourselves, let child_handler do it and
4174	loop around waiting for something to happen.
4175
4176	* make.c (print_version): Made the copyright year static, not dynamic.
4177
4178	* make.h, make.c: Remove construct_argv function.
4179
4180	* make.c (main): Say "no goal target" instead of "no target".
4181
4182	* make.texinfo (Commands: Parallel): Don't send SIGKILL.
4183
4184	* commands.c (kill_children): Don't send SIGKILL to children that
4185	aren't killed by the first signal.
4186
4187	* make.c (main), commands.c (kill_children): Decide between SIGCHLD
4188	and SIGCLD based on whether or not SIGCHLD is defined, not on USG.
4189
4190	* Makefile: Link make with $(LOADLIBES).
4191
4192	* read.c (construct_include_path): Fixed another bad xrealloc call.
4193
4194	* make.c (decode_switches): Fixed an xrealloc call with no first arg.
4195
4196Sat Sep 24 01:16:21 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
4197
4198	* Version 3.07.
4199
4200	* remake.c (update_file_1): If deps are running, set state to
4201	`cs_deps_running' and return 0.  If deps are done, run commands.
4202
4203	* commands.c (child_handler): Made it delete non-precious targets
4204	killed by fatal signals.
4205
4206	* make.texinfo: Documented parallelism.
4207
4208Fri Sep 23 16:52:27 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
4209
4210	* remake.c (update_file_1): Don't return if FILE's state is
4211	`cs_deps_running'.  In that case, we need to run through and check
4212	the states of all our dependencies.
4213
4214	* commands.c (execute_file_commands): Decrement `job_slots' after
4215	starting a new job to run file commands.
4216
4217	* commands.c (start_job): Made it set the state to `cs_running'.
4218
4219	* make.c (main): Fixed usage of `g', `lastgoal', and `goals' in the
4220	goal-making loop.
4221
4222	* commands.c (child_handler): When commands finish, set the
4223	corresponding file's `update_status' and `updated' flags as
4224	appropriate, and reset the modtimes of the file and any `also_make'
4225	files it has.
4226
4227	* remake.c (remake_file): Don't re-set `last_mtime' and set `updated'.
4228
4229	* commands.c (fatal_error_signal): Don't swallow all the children
4230	with a loop around `wait ((union wait *) 0)'!!!
4231
4232	* make.c (struct command_switch): Added `positive_int' type.
4233	(switches): Added -j (job_slots).
4234	(construct_makeflags, decode_switches, decode_env_switches):
4235	Handle`positive_int'-type switches.
4236
4237	* glob.c (glob_vector): Rename local variable `vector' to `VeCtOr'.
4238	This is said to avoid a conflict with some system's global `vector'
4239	variable.
4240
4241	* variable.c (expand_function): Made the `shell' function use
4242	construct_command_argv and do its own child control and piping.
4243
4244	* make.c (main): Turn standard input into a broken pipe after
4245	reading in all makefiles (the last time it will be needed).
4246
4247	* commands.c (struct child): Remove `pipe_fd' member.  We don't use
4248	pipes any more.
4249	(start_job): Return 0 for success, 1 or failure (rather than void).
4250	Don't use pipes.  Don't turn the child's stdin into a broken pipe.
4251	(child_handler): Print "*** Error" messages when necessary.
4252	Die on failed commands when -k was not given.
4253	(execute_file_commands): Check the return of start_job and remove
4254	the child from the chain and return failure if it is nonzero.
4255
4256	* make.c (die): New function to clean up and exit.
4257	(fatal, pfatal_with_name): Use die.
4258
4259Thu Sep 22 14:27:11 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
4260
4261	* commands.c (struct child): Added `commands', `pipe_fd', and
4262	`noerror' members to keep track of info about a command thread.
4263	(start_job): New function to start a job and update the argument
4264	`struct child' to reflect its status.
4265	(execute_file_commands): Merged run_file_commands back in.
4266	Made it use new start_job function.
4267
4268	* rule.c (freerule): Don't free the `struct commands' of the
4269	discarded rule.  It may be used in more than one place.
4270
4271	* commands.c (execute_command_line): Made it not try to delete the
4272	possibly partly-made file.  The child_handler function will do this.
4273	(fatal_error_signal): Ditto + call kill_children.
4274
4275	* make.h: Declare job_slots.
4276
4277	* make.c (main): Collect goals in a dep chain and run through this
4278	chain waiting for a child, eliminating finished goals, updating all
4279	remaining goals, and quitting if they fail and not -k.
4280
4281	* commands.c (child_handler): If called with SIG < 0, - SIG is the
4282	max number of children to bury.
4283
4284	* commands.c (child_handler): If called with SIG as zero,
4285	block waiting for running children.
4286	(kill_children): Call child_handler with zero rather than SIGCHLD.
4287
4288	* remake.c (update_file_1): Use the `command_state' member of FILE
4289	and its dependencies to determine what commands are running, what to
4290	do, etc.  If commands or dep commands are running when we are
4291	called, return success (0).  If commands finished since the last
4292	time we were called, return their status.
4293
4294	* commands.h: Declare kill_children.
4295
4296	* commands.c: Define `struct child' to keep track of child
4297	processes, with the chain in `children'.
4298	(child_handler): New function to catch child-termination signals
4299	(SIGCHLD, or SIGCLD for USG), store the returned status in the
4300	appropriate structure, take the now-obsolete `struct child' out of
4301	the chain, and free its storage.
4302	(execute_file_commands): Put all of the stuff invloving running the
4303	commands into new function run_file_commands.  Execute_file_commands
4304	now does process management for the commands, while
4305	run_file_commands (which is run in a subprocess) runs the commands.
4306	(kill_children): New function to kill all running children by
4307	sending them signal SIG.  If there are any children still living
4308	after they are all sent SIG, they are all sent SIGKILL.
4309
4310	* make.c (main): Catch SIGCHLD (SIGCLD for USG) with child_handler.
4311
4312	* commands.h: Declare child_handler function.
4313
4314	* commands.c (execute_file_commands): Check the `command_state'
4315	member of FILE and return 0 if it is `cs_running' or
4316	`cs_deps_running' and return the stored status if it is `cs_finished'.
4317
4318	* file.h (struct file): Added `command_state' member.
4319
4320	* commands.c (execute_command_line): Add `$' to the list of
4321	characters special to the shell.
4322
4323Wed Sep 21 15:57:41 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
4324
4325	* read.c (read_all_makefiles): Call convert_to_pattern before
4326	recomputing the limits after adding the displaced rules.
4327
4328	* make.c (main): Move calls to snap_deps, convert_to_pattern, and
4329	build_vpath_lists to read_all_makefiles.
4330
4331	* read.c (read_all_makefiles): Install the default pattern rules
4332	before checking to remake the makefiles, displace these rules before
4333	reading in the makefiles, and then add the displaced rules to the
4334	chain after reading in all the makefiles.
4335
4336	* make.c (main): Don't call install_default_pattern_rules or
4337	count_implicit_rule_limits.
4338
4339	* make.h: Declare displace_pattern_rules and
4340	add_displaced_pattern_rules.
4341
4342	* rule.c (displace_pattern_rules, add_displaced_pattern_rules): New
4343	functions to stow the chain and add the stowed chain on the end of
4344	the current chain.
4345
4346	* make.texinfo (Implicit: Search Algorithm): Fixed PREV reference.
4347
4348	* make.c (main): Call construct_include_path right after decoding
4349	the switches.
4350
4351	* read.c (find_makefile): Use rename_file.
4352
4353	* file.h: Declare rename_file.
4354
4355	* file.c (rename_file): New function to rename a `struct file' and
4356	put it in the correct hash bucket.
4357
4358	* read.c (find_makefile): New function to find and update a makefile.
4359	 (read_all_makefilese): Use find_makefile.
4360	 (read_makefile): Don't do updating.  Removed UPDATEIT arg.
4361
4362	* remake.c (update_file_1): Took out setting the `updated' member to
4363	-1 rather than 1 sometimes.
4364
4365	* make.c (main): Made it print version info before doing anything else.
4366
4367	* remake.c (library_file_mtime, f_mtime): Removed use of last two
4368	arguments to vpath_search.
4369
4370	* rule.c (pattern_search): Removed use of last two arguments
4371	to vpath_search.
4372
4373	* vpath.c (vpath_search, selective_vpath_search): Removed unused
4374	DIRPREFIX and DPLEN args.
4375
4376	* read.c (read_makefile): Also turn off -n when updating makefiles.
4377
4378Tue Sep 20 17:01:10 1988  Roland McGrath  (mcgrath at pepper.Berkeley.EDU)
4379
4380	* Makefile: Put tags files in the tarfile.
4381
4382	* read.c (read_makefile): Get the modtime of the makefile via a stat
4383	call so that a later file_mtime call won't do VPATH search for it.
4384
4385	* read.c (read_makefile): Don't turn off -t and -q if the makefile
4386	was a command-line target.
4387
4388	* make.c (main): Enter command-line targets as files and set their
4389	`cmd_target' members.
4390
4391	* file.h (struct file): Added `cmd_target' member.
4392
4393	* read.c (read_makefile): Temporarily turn off -t and -q while
4394	updating makefiles.
4395
4396	* make.c (main): Don't use arg 0 from other_args (which is now
4397	argv[0]; i.e., the program's name).
4398
4399	* read.c (read_makefile): Only return nonzero if commands were
4400	actually run to remake the makefile.
4401
4402	* remake.c (update_file_1): Set FILE->updated to -1 if no commands
4403	were actually run (because no update was done or -t was given).
4404
4405	* make.c (decode_switches): Fixed bug wherein xrealloc was passed
4406	bad args if it tried to expand other_args->list.
4407
4408	* read.c (read_all_makefiles): Made it not look at the `MAKE'
4409	variable, just use argv[0].
4410
4411Sun Sep 18 17:34:11 1988  Roland McGrath  (mcgrath at paris.Berkeley.EDU)
4412
4413	* read.c (rerun_make): New function to re-exec make.
4414
4415	* make.c (construct_makeflags, construct_argv): New functions to
4416	construct the `MAKEFLAGS' variable and to construct an arg list from
4417	parsed info.
4418
4419	* read.c (read_makefile): New arg UPDATEIT, if nonzero, says to
4420	update the makefile as a target before reading it in.  When reading
4421	included makefiles, pass this as zero.  Now returns nonzero if the
4422	makefile was updated, zero if not.
4423	(read_all_makefiles): Pass a nonzero UPDATEIT arg to read_makefile
4424	for all default and -f makefiles and all makefiles from the
4425	`MAKEFILES' variable.  If any of the makefiles has changed, re-exec
4426	self to re-read them.
4427
4428	* remake.c (update_file): Print a "File `foo' up to date'" message
4429	under -p.
4430
4431	* commands.c (execute_file_commands): Allocate one byte for each of
4432	$^ and $< rather than zero if they are to be empty.
4433
4434Fri Sep 16 13:59:59 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4435
4436	* Version 3.06.
4437
4438	* make.c (command_switches): Fixed entry for `-o' switch.
4439
4440	* make.texinfo: Renamed -c switch to -C.
4441
4442	* make.c: Renamed -c switch to -C.
4443
4444	* Miscellaneous de-linting.
4445
4446	* read.c (record_files): Made it not free the storage for the name
4447	if it started with `./' and was therefore not quite the same as in
4448	the `struct file'.
4449
4450	* read.c (record_files): If commands were specified twice, the error
4451	message specifies in what files and at what line numbers.
4452
4453	* make.c (main): If any of the signals we usually fatal on were
4454	ignored by the parent (probably a shell), ignore them.
4455
4456	* make.c (main): Print version info for -v, -p, or -d.
4457	(print_data_base): Don't print version info.  It will be done in main.
4458
4459	* variable.c: Increased number of hash buckets to 257.
4460
4461	* file.c: Increased number of hash buckets to 1007.
4462
4463	* rule.c (count_implicit_rule_limits): Moved comptation of
4464	`maxsuffix' to convert_to_pattern, since that function uses
4465	`maxsuffix', and must be called before count_implicit_rule_limits.
4466
4467	* rule.c (pattern_search): If an existent (non-intermediate)
4468	dependendency was found via a terminal rule, set its
4469	`tried_implicit' flag, so it will never have implicit rule search done.
4470
4471	* glob.c: Bug fix to avoid alloca(0).
4472
4473	* arscan.c: USG and Sun386i fixes.
4474
4475Thu Sep 15 19:40:26 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
4476
4477	* make.texinfo: Fixed some typos and spelling errors.
4478
4479Wed Sep  7 14:20:39 1988  Roland McGrath  (mcgrath at helen.Berkeley.EDU)
4480
4481	* make.c (decode_switches): Fixed bug wherein a bad option would
4482	give a useless error message and loop forever.
4483
4484Tue Sep  6 14:36:02 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4485
4486	* make.texinfo: Documented `shell' function.
4487
4488	* variable.c (expand_function): New function `shell', does
4489	backquote-style command expansion of its arg.
4490
4491	* commands.c (execute_command_line): Second arg OUTBUF, if not nil,
4492	gets filled in with a malloc'd buffer containing the piped stdout of
4493	the command.
4494	(execute_file_commands): Use above (pass nil).
4495
4496Mon Sep  5 17:03:49 1988  Roland McGrath  (mcgrath at hecuba.Berkeley.EDU)
4497
4498	* Makefile: Added copyright notice.
4499	Added a comment about defining `NO_MINUS_C_MINUS_O' if necessary.
4500
4501	* Version 3.05.
4502
4503	* rule.c (default_suffix_rules): Don't pass `-o' switches with `-c'
4504	switches if `NO_MINUS_C_MINUS_O' is #define'd.
4505
4506	* make.texinfo: Documented `GNUmakefile'.
4507
4508	* read.c (read_all_makefiles): Made it try default makefile
4509	`GNUmakefile' before others.
4510
4511	* make.texinfo: Added new-style Texinfo header thingies.
4512
4513Sat Sep  3 18:09:39 1988  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
4514
4515	* Version 3.04.
4516
4517	* make.texinfo (Chained Rules): Added a @cindex about using
4518	.PRECIOUS to preserve intermediate files.
4519
4520	* remake.c (update_file_1): Made it not just return before executing
4521	commands under -p.
4522
4523	* rule.c (default_pattern_rules, default_variables): Made it use
4524	`$(AR)' for `ar r' (to put files in archives).
4525
4526	* vpath.c (build_vpath_lists): Made it recursively expand the
4527	`VPATH' variable (by using variable_expand instead of lookup_variable).
4528
4529	* read.c (conditional_line): Made it not swallow whitespace after
4530	the comma in an `ifeq' using the `(a,b)' syntax.
4531
4532	* rule.c (count_implicit_rule_limits): Made it not crash if a
4533	pattern rule dep begins with `/'.
4534
4535Sun Aug 28 15:51:12 1988  Roland McGrath  (mcgrath at homer.Berkeley.EDU)
4536
4537	* make.texinfo: Clarified that the arg to the `origin' function is a
4538	variable *name*, not a reference.
4539
4540	* make.texinfo: Clarified that both -Idir and -I dir are allowed.
4541
4542Sat Aug 27 13:49:28 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4543
4544	* remake.c (remake_file): Made touching phonies work right.
4545
4546Wed Aug 24 20:40:48 1988  Roland McGrath  (mcgrath at nutmeg.Berkeley.EDU)
4547
4548	* make.texinfo: Removed reference to `RANLIB' variable.
4549
4550	* Version 3.03.
4551
4552	* variables.c (expand_function): Added `origin' function.
4553	* make.texinfo: Documented same.
4554
4555	* read.c (record_files): Made double-colon entries work.
4556
4557Sat Aug 20 21:09:39 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4558
4559	* make.c (collapse_continuations): Bug fix from RMS.
4560
4561	* rule.c (install_default_pattern_rules): Made it set the
4562	`in_use' flag of the created rules to zero, rather than letting
4563	it be random garbage.
4564
4565	* rule.c (pattern_search): Fixed putting `also make' targets into
4566	file strucutres.
4567
4568	* read.c (record_files): Fixed bug which made double-colon entries
4569	make it read off into space.
4570
4571	* make.c (decode_switches): Made it understand `ignored' switches
4572	rather than dumping core.
4573
4574Sun Aug 14 16:49:00 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4575
4576	* read.c (read_makefile): Made `include' filenames be
4577	variable-expanded.
4578
4579	* read.c (read_makefile): Fixed an error message.
4580
4581	* read.c (read_makefile): Made it accept ^L's as whitespace.
4582	* make.c (next_token, end_of_token): Ditto.
4583
4584	* vpath.c (vpath_search): Fixed it so that the general VPATH (from
4585	the variable) is always checked, even if a selective VPATH (from a
4586	directive) matched the filename.
4587
4588Sat Aug 13 14:20:46 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4589
4590	* make.c (decode_switches, main): Made the command switches be
4591	processed from a table of switches, variables, and types.  No
4592	functions are passed argc and argv any more.  They are passed arrays
4593	of strings they need to process.
4594	* read.c (read_all_makefiles): Made it take an array rather than
4595	argc and argv.
4596	(construct_include_path): Ditto.
4597
4598	* make.c (collapse_continuations): Made it work right (I hope).
4599
4600	* make.texinfo: Minor editorial changes.
4601
4602	* read.c (read_makefile): Minor speed improvement by freeing and
4603	then mallocing something rather than reallocing it to avoid the
4604	unnecessary bcopy.
4605
4606Thu Aug 11 00:10:43 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4607
4608	* make.texinfo: Fixed some unquoted @'s.
4609
4610	* make.texinfo: Documented multiple-target pattern rules.
4611	Miscellaneous minor editorial changes and corrections.
4612
4613	* make.texinfo (Implicit: Catalogue of Rules): Removed the list of
4614	variables.  That's what the next section is for.
4615	(Implicit: Implicit Variables): Made it agree with reality.
4616
4617Wed Aug 10 00:55:39 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4618
4619	* variable.c (print_variable_data_base): Fixed bug which made -p
4620	dump core.  (This was a really idiotic bug.)
4621
4622	* rule.c (pattern_search): Fixed a bug which made it make the
4623	`also_make' member of the file in question nil if the first of
4624	the successful rule's targets was the matching one.
4625	Made it use only as much storage as necessary in the `also_make'
4626	member.
4627	(create_pattern): Made it use only as much storage as necessary in
4628	the `lens' and `suffixes' members of the created rule.
4629
4630	* remake.c (library_file_mtime): Made it `static'.
4631
4632	* file.c: Added a declaration for `errno', which is declared in some
4633	<errno.h>'s, but not all.
4634
4635	* file.h (struct file): Added `also_make' member for multiple-target
4636	implicit rules.
4637	* rule.c (pattern_search): Made it put the names of files updated by
4638	the given file's commands in its `also_make' member.
4639	* remake.c (update_file_1): Made it mark the files in a file's
4640	`also_make' member as updated when the file is updated.
4641
4642	* variable.c (try_variable_definition): Fixed a bug which made it
4643	define a variable with the name of the whole definition when there
4644	was no space before the = or :=.
4645
4646	* make.texinfo (Features): Made the changes which were made in RCS
4647	revision 2.7 but somehow lost since then.  Added -W.
4648
4649Tue Aug  9 10:04:50 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4650
4651	* variable.h: Added `o_default' to `enum variable_origin'.
4652	* variable.c (print_variable_data_base): Made it print the origins of
4653	the variables.
4654	* rule.c (install_default_pattern_rules): Made it define the default
4655	variables with origin `o_default'.
4656
4657	* make.texinfo: Documented -W.
4658
4659	* make.c (decode_switches, main): Added the -W flag to give files a
4660	time-stamp of now, for a `what if' effect when used with -n.
4661
4662	* commands.c (print_commands): Made it say `(built-in)' for commands
4663	that are built into the default ruleset.
4664
4665	* read.c (record_file): Made .SUFFIXES get its deps frontwards (again).
4666	* rule.c (set_default_suffixes, convert_to_pattern): Made it read
4667	.SUFFIXES's deps frontwards, so the converted rules will not be in
4668	reverse order.
4669
4670	* rule.c (new_pattern_rule): Fixed a bug wherein it would keep
4671	searching after it had removed a matching rule and ended up diddling
4672	with freed storage.
4673
4674	* rule.c (freerule): Made it take the given rule off the chain.
4675	(new_pattern_rule, count_implicit_rule_limits): Use freerule to
4676	remove rules from the chain.
4677
4678	* vpath.c (construct_vpath_list): Made it return after cleaning out
4679	all previous searchpaths when given a nil DIRPATH arg, so it won't
4680	go into the construction code and dump core dereferencing a nil
4681	pointer.
4682
4683	* variable.c (patsubst_expand): Fixed a bug which made it not match
4684	correctly and sometimes dump core.
4685
4686Mon Aug  8 16:35:48 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4687
4688	* rule.c (default_suffix_rules): Made the .texinfo.dvi rule remove
4689	the files used in the comparison to determine whether or not a
4690	second TeX run is necessary.
4691
4692	* make.texinfo: Fixed some overfull TeX hboxes.
4693
4694	* make.texinfo (Implicit: Catalogue of Rules): Fixed a Texinfo error.
4695
4696	* rule.c (create_pattern_rule): Fixed bug wherein index was not
4697	being passed its second arg.
4698
4699	* read.c (getline): Merged back into readline.
4700
4701	* rule.c (default_suffixes, default_suffix_rules,
4702	default_variables): Added .texinfo.info rule.
4703	* make.texinfo (Implicit: Catalogue of Rules): Documented
4704	.texinfo.dvi and .texinfo.info rules.
4705
4706	* make.texinfo (Top): Changed `last updated' date to be correct (for
4707	the last time it was updated, not today).  Changed `for version
4708	3.00' since it's not going to be called that.
4709
4710Sat Aug  6 19:51:10 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4711
4712	* commands.c (print_commands): Added this function to print the
4713	contents of a `struct commands' for -p.
4714	* rule.c (print_rule_data_base): Use above.
4715	* file.c (print_file_data_base): Ditto.
4716
4717	* rule.c (count_implicit_rule_limits, new_pattern_rule,
4718	install_pattern_rule, print_rule_data_base): Made it understand the
4719	changed `struct rule' and act accordingly.
4720	(freerule): Added this function to free all the storage used by a rule.
4721
4722	* rule.c (pattern_search): Made it grok multiple targets of pattern
4723	rules.  The matching is done properly, but at present, only the
4724	matching pattern's target is used to give deps and commands.
4725
4726Fri Aug  5 18:00:29 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4727
4728	* rule.c (struct rule): Changed name, namelen, and patsuffix members
4729	to targets, lens, and suffixes, which are arrays, for multiple targets.
4730	(create_pattern_rule): Now takes first arg TARGETS, a nil-terminated
4731	array of targets, rather than a single target and patsuffix pointer.
4732
4733	* read.c (record_files): If it finds an implicit pattern rule, it
4734	collects all the targets into an array and passes the whole thing to
4735	create_pattern_rule.  If there are non-pattern targets, it is a
4736	fatal error.
4737
4738Tue Aug  2 15:06:38 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4739
4740	* make.c (readline): Split backslash-newline checking from reading
4741	and buffer-expanding.
4742	(getline): Created to do the reading and buffer-expanding formerly
4743	done in readline.
4744
4745	* rule.c (pattern_search): Made it reject nonterminal match-anything
4746	rules when a specific rule has matched, rather than rejecting
4747	terminal match-anything rules in this case.
4748
4749	* rule.c (convert_to_pattern): Fixed a bug caused when the change to
4750	make it only recognize two-suffix rules whose target suffixes
4751	precede their dependency suffixes which made it work in the opposite
4752	direction (even worse than it started out).
4753
4754	* rule.c (pattern_search): Made it reject nonterminal match-anything
4755	rules as intermediate targets when searching for both real and
4756	intermediate dependencies, rather than only when searching for
4757	intermediate ones.
4758
4759Sun Jul 31 00:33:56 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4760
4761	* rule.c (convert_to_pattern): Made it only recognize two-suffix
4762	rules whose target suffix comes before the dependency suffix in the
4763	.SUFFIXES list.
4764
4765	* variable.c (define_automatic_variables): Made all automatic
4766	variables be defined with origin `o_automatic'.
4767
4768	* variable.h: Added `o_automatic' to `enum variable_origin'
4769
4770	* file.c (remove_intermediates): Made it not print an error message
4771	if the error was that the file does not exist.
4772
4773	* rule.c: Removed `recursive' member from `struct rule'.
4774
4775	* remake.c (library_file_mtime): Made it not use the directory hash
4776	functions, as reading in and hashing /usr/lib and /lib is slow and
4777	most likely unnecessary.
4778
4779	* remake.c (remake_file): Changed message from ``No specification
4780	for making'' to ``No way to make'' so it will be short enough that
4781	most filenames will fit on a line.
4782	Made it look at the `recursive' member of the `struct commands',
4783	rather than of the `struct file' (which no longer has one).
4784
4785	* commands.c (execute_file_commands): Made it look at the
4786	`recursive' member of the `struct commands', rather than of the
4787	`struct file' (which no longer has one).
4788
4789	* file.h: Removed `recursive' member from `struct file'.
4790
4791	* commands.h: Added `recursive' member to `struct commands'.
4792
4793	* dep.h: Removed unused `quotedparen' member from `struct nameseq'
4794	and `struct dep'.
4795
4796	* read.c (dequote): Removed this function.
4797	(multi_glob): Removed reference to `quotedparen' member of
4798	a `struct nameseq' and calls to dequote.
4799
4800	* read.c (record_files): Made it set the stem for $* for all static
4801	pattern rules, not just those with commands given at that time.
4802	Removed check for recursive commands.
4803	Made it check for pairs of .SUFFIXES dependencies to reject as
4804	default goals as well as single ones (that don't start with dots).
4805	(read_makefile): Added checks for recursive commands to set
4806	the `recursive' flag in the `struct commands'.
4807
4808Sat Jul 30 15:47:23 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4809
4810	* make.c (find_next_token): Made the LENGTHPTR arg optionally nil.
4811
4812	* make.c: Removed `files_made' variable which is defined static in
4813	remake.c and used only there.
4814	(main): Cleaned up somewhat.
4815	(decode_switches): Cleaned up a bit.  Made an unknown option be a
4816	non-fatal error.
4817	(decode_env_switches): Made LEN arg unsigned.  Cleaned up.
4818	(print_version): Made it say ``see the source'' rather than ``see
4819	the source file'', since there is more than one.
4820
4821	* file.h: Made `num_intermediates' declared unsigned.
4822
4823	* file.c: Made `num_intermediates' variable unsigned.
4824	(remove_intermediates): Removed unused FORMAT arg.
4825	(enter_file): Made it handle double-colon files properly, adding the
4826	new entry as the old entry's prev pointer.
4827
4828	* dir.c: Re-indented the `struct dir' definition to be right.
4829	(dir_load): Cleaned up slighty.
4830	(file_exists_p): Removed comment saying we could use `access', since
4831	that is a bad idea (except for setuid programs).  Cleaned up slightly.
4832
4833	* commands.c: Changed some comments slightly.
4834	(execute_file_commands): Cleaned up a bit.  Changed some comments,
4835	added others.  Moved freeing of storage for $^ and $? to the same
4836	place as for the other automatic variables.
4837	(execute_command_line): Made `#' trigger a shell.
4838	Added some comments.  Cleaned up a bit.  Put all the special chars
4839	that trigger shells into an array easily changeable at the top.
4840
4841	* ar.c: Added comments explaining each function.
4842	(ar_scan_1): Merged into ar_member_date.
4843	(ar_member_date): Changed call to ar_scan_1 to the body of that
4844	function.
4845	(ar_member_date_1): Simplified to a ?: expression rather than an
4846	if-else statement.
4847	(ar_member_touch): Changed error handling around a bit.
4848	None of these errors are fatal now.
4849
4850	* variable.c (subst_expand): Added a new arg BY_WORD, to do substs
4851	only on full words.
4852	(patsubst_expand): Fixed bug which made calls whose patterns
4853	contained no `%' to not work correctly, by using above.
4854	(variable_expand): Pass extra arg to `subst_expand'.
4855
4856	* variable.c (expand_function): Fixed bug which made `foreach' calls
4857	with one-word lists run off into never-never land.
4858
4859Fri Jul 29 20:12:36 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4860
4861	* variable.c (expand_function): Made a very minor speed improvement
4862	by avoiding an unnecessary strlen call.
4863
4864Wed Jul 27 16:01:47 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4865
4866	* rule.c (default_suffixes): Rearranged the list somewhat; added
4867	`.el' and `.elc' to speed things up (especially when building
4868	Emacs), for the same reason `.h' is there.
4869
4870	* read.c (record_files): Changed `lineno' from `long' to
4871	`unsigned int'.
4872
4873Sun Jul 24 02:15:30 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4874
4875	* variable.c (expand_function): Eliminated use of `wstok'
4876	because it is non-reentrant and unreliable.
4877	Fixed a minor bug which would cause something not to be freed.
4878	* make.c (wstok): Removed `wstok' because it is no longer used.
4879
4880	* variable.c (expand_function): Made `foreach' function put
4881	spaces between output texts like it's supposed to.
4882
4883Sat Jul 23 17:32:55 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4884
4885	* rule.c (default_suffixes, default_suffix_rules): Added rule
4886	to make %.dvi from %.texinfo.
4887
4888	* dir.c (print_dir_data_base): Made it say a bit more.
4889
4890Fri Jul 22 23:13:16 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4891
4892	* make.c (print_data_base): Split this function up into one
4893	for each thing.
4894	* variable.c (print_variable_data_base): One of the above.
4895	* rule.c (print_rule_data_base): Ditto.
4896	* file.c (print_file_data_base): Ditto.
4897	* dir.c (print_dir_data_base): Ditto.
4898
4899	* rule.c (install_pattern_rule): Fixed a bug which caused the
4900	terminal and recursive flags to always be zero for rules
4901	entered by this function.
4902
4903	* make.texinfo (Rules: Double-colon): Added a paragraph
4904	explaining the purpose of double-colon rules.
4905
4906	* make.texinfo (Implicit: Catalogue of Rules): Updated to
4907	reflect new C++, TeX, Web, and Texinfo rules.  Other slight
4908	editorial changes.
4909
4910	* commands.c (execute_file_commands): Fixed a bug wherein
4911	random memory could get written for files with no deps.
4912
4913Wed Jul 20 19:30:31 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4914
4915	* read.c (readline): Fix bug wherein it would not recognize a
4916	backslash-newline if the buffer filled up and was enlarged
4917	right before reading the newline.
4918
4919Tue Jul 19 19:55:02 1988  Roland McGrath  (mcgrath at chilli.Berkeley.EDU)
4920
4921	* read.c: Added default suffix rules for .cc (using $(C++),
4922	which defaults to `g++', and $(C++FLAGS)), .tex, .dvi, .web
4923	and .cweb (using $(TEX), $(WEAVE), $(TANGLE), $(CWEAVE) and
4924	$(CTANGLE)).
4925
4926Sat Jul 16 21:24:28 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4927
4928	* Made error formats use %u rather than %ld for line numbers,
4929	which are now unsigned int's rather than long's.
4930
4931	* read.c (conditional_line): Fixed some bugs caused by use of
4932	unsigned int rather than int in one place.
4933
4934	* read.c (conditional_line): Put the info about active
4935	conditionals in a struct.
4936	(read_makefile): Make a new struct of info about conditionals
4937	for included makefiles and restore the old one after the
4938	included makefile has been read.
4939
4940	* read.c (read_makefile): Don't try to read a makefile with
4941	name "" after giving an error message because an `include'
4942	directive gave no filename.
4943
4944	* read.c (read_makefile): Give an error message for
4945	non-whitespace text after the filename in an `include' directive.
4946
4947	* make.c (error): Take five args, like `fatal'.  It managed to
4948	lose with only two.  Is there a better way to do this without vfprintf?
4949
4950	* read.c (read_makefile): Commands consisting of only
4951	whitespace are not the same as no commands.  I thought I'd
4952	fixed this bug months ago; it seems to have come back.
4953
4954	* make.c (collapse_continuations): All whitespace around a
4955	backslash-newline combination is turned into a single space.
4956
4957	* Added COPYING file and copyright notices to all files.
4958
4959	* make.texinfo (Running: Goals): Fix a typo.
4960
4961	* read.c (do_define): Take an arg for the origin of the
4962	variable being defined.
4963	(read_makefile): Grok `override define'.
4964
4965	* make.texinfo (Variables: Override Directive, Defining):
4966	Document the `override define' combination directive.
4967
4968	* ar.c (ar_member_date): Make a 0 return from `ar_scan' return
4969	(time_t) -1 (nonexistent file), rather than (time_t) 0, which,
4970	when put in the `struct file', makes `file_mtime' try to get
4971	the mtime over and over again.
4972
4973	* variable.c (pattern_matches): Fix a bug that made patterns
4974	not beginning with `%' never match.
4975
4976Fri Jul 15 21:01:44 1988  Roland McGrath  (mcgrath at tully.Berkeley.EDU)
4977
4978	* Took Make out of RCS.
4979
4980	* Split the monolithic `make.c' into several smaller files.
4981
4982
4983
4984Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
49851998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009 Free
4986Software Foundation, Inc.
4987This file is part of GNU Make.
4988
4989GNU Make is free software; you can redistribute it and/or modify it under the
4990terms of the GNU General Public License as published by the Free Software
4991Foundation; either version 3 of the License, or (at your option) any later
4992version.
4993
4994GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
4995WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
4996A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
4997
4998You should have received a copy of the GNU General Public License along with
4999this program.  If not, see <http://www.gnu.org/licenses/>.
5000