VirtualBox

source: kBuild/trunk/src/kmk/ChangeLog.1@ 3387

Last change on this file since 3387 was 3140, checked in by bird, 6 years ago

kmk: Merged in changes from GNU make 4.2.1 (2e55f5e4abdc0e38c1d64be703b446695e70b3b6 / https://git.savannah.gnu.org/git/make.git).

File size: 182.6 KB
Line 
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' accordingly.
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_function_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 dependency 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 slightly.
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
4984
4985Copyright (C) 1988-2009 Free Software Foundation, Inc.
4986This file is part of GNU Make.
4987
4988GNU Make is free software; you can redistribute it and/or modify it under the
4989terms of the GNU General Public License as published by the Free Software
4990Foundation; either version 3 of the License, or (at your option) any later
4991version.
4992
4993GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
4994WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
4995A PARTICULAR PURPOSE. See the GNU General Public License for more details.
4996
4997You should have received a copy of the GNU General Public License along with
4998this program. If not, see <http://www.gnu.org/licenses/>.
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use