source: trunk/third/gmake/ChangeLog @ 15972

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