Ignore:
Timestamp:
Mar 12, 2018, 8:32:29 PM (7 years ago)
Author:
bird
Message:

Imported make 4.2.1 (2e55f5e4abdc0e38c1d64be703b446695e70b3b6) from https://git.savannah.gnu.org/git/make.git.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • vendor/gnumake/current/ChangeLog.3

    r3137 r3138  
     12013-10-09  Paul Smith  <psmith@gnu.org>
     2
     3        Version 4.0 released.
     4
     5        * configure.ac: Updated for the release.
     6        * NEWS: Updated for the release.
     7
     8        * maintMakefile (tag-release): New target to add a Git tag.
     9        * read.c (eval): Typo fix.
     10        * ChangeLog.1: Typo fixes.
     11        * w32/subproc/sub_proc.c (process_cleanup): Typo fix.
     12
     132013-10-07  Eli Zaretskii  <eliz@gnu.org>
     14
     15        * w32/compat/posixfcn.c (tmpfile): Move declaration of h before
     16        the first executable statement.  Reported by Gisle Vanem
     17        <gvanem@yahoo.no>.
     18
     192013-10-05  Paul Smith  <psmith@gnu.org>
     20
     21        * makeint.h (MAP_USERFUNC): A new map type for function names.
     22        * main.c (initialize_stopchar_map): Set up the function name map.
     23
     24        * gnumake.h (gmk_func_ptr): Define a type for function pointers.
     25        (gmk_add_function): Convert the last argument to FLAGS.
     26        (GMK_FUNC_*): Define flags for the function.  Change the default
     27        behavior to "expand" since that's the most common one.
     28
     29        * function.c (function_table_entry): Use new function pointer type.
     30        (lookup_function): Accept any valid function name character based
     31        on the MAP_USERFUNC values.
     32        (define_new_function): Use the new calling signature.  Verify that
     33        registered functions have valid names.
     34
     35        * guile.c (guile_gmake_setup): Use new calling signatures.
     36        * loadapi.c (gmk_add_function): Ditto.
     37        * variable.h (define_new_function): Ditto.
     38
     39        * doc/make.texi (Loaded Object API): Make the registered function
     40        API documentation more clear.
     41
     422013-10-03  Eli Zaretskii  <eliz@gnu.org>
     43
     44        * function.c (abspath): Reset root_len to one for Cygwin only when
     45        HAVE_DOS_PATHS is defined.  Suggested by Christopher Faylor.
     46
     472013-10-02  Eli Zaretskii  <eliz@gnu.org>
     48
     49        * w32/compat/posixfcn.c (tmpfile): New function, a replacement for
     50        the Windows libc version.
     51
     52        Fix $abspath on Cygwin when HAVE_DOS_PATHS is in effect.
     53        * function.c (IS_ABSOLUTE) [__CYGWIN__]: Special definition for
     54        Cygwin.
     55        (abspath) [__CYGWIN__]: Reset root_len to 1 if the absolute file
     56        name has the Posix /foo/bar form.
     57        [HAVE_DOS_PATHS]: Use root_len instead of hard-coded 2.
     58
     592013-10-01  Paul Smith  <psmith@gnu.org>
     60
     61        * configure.ac: Update version to 3.99.93.
     62        * NEWS: Ditto.
     63
     642013-09-30  Paul Smith  <psmith@gnu.org>
     65
     66        * guile.c: Portability fixes for Guile 1.8.
     67
     682013-09-29  Paul Smith  <psmith@gnu.org>
     69
     70        * output.c (output_dump): Always write Enter/Leave messages to stdio.
     71        (log_working_directory): This now always writes to stdio, so we
     72        don't need the struct output parameter anymore.
     73        (output_start): Show the working directory when output_sync is not
     74        set or is recursive.
     75        * main.c (main): Ensure the special "already shown Enter message"
     76        token is removed from MAKE_RESTARTS before the user can see it.
     77        * function.c (func_shell_base): If the output_context stderr
     78        exists but is invalid, write to the real stderr.
     79        Fixes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
     80
     81        * output.c: Guard unistd.h inclusion, add io.h.
     82        * gnumake.h: Move GMK_EXPORT before the declarations.
     83        * make_msvc_net2003.vcproj: Add missing files.
     84        Changes for MSVC suggested by Gerte Hoogewerf <g.hoogewerf@gmail.com>
     85
     86        * function.c (func_shell_base) [EMX]: Fix EMX support for output-sync.
     87        * job.c (child_execute_job) [EMX]: Ditto.
     88        * job.h (child_execute_job) [EMX]: Ditto.
     89        * w32/compat/posixfcn.c: Invert the test for NO_OUTPUT_SYNC.
     90
     91        * guile.c (GSUBR_TYPE): Pre-2.0 Guile doesn't provide a typedef
     92        for gsubr pointers.  Create one.
     93        (guile_define_module): Use it.
     94        (internal_guile_eval): Force UTF-8 encoding for Guile strings.
     95
     96        * main.c (main): Clear GNUMAKEFLAGS after parsing, to avoid
     97        proliferation of options.
     98        * NEWS: Document it.
     99        * doc/make.texi (Options/Recursion): Ditto.
     100
     1012013-09-23  Eli Zaretskii  <eliz@gnu.org>
     102
     103        * w32/compat/posixfcn.c: Fix the forgotten OUTPUT_SYNC conditional.
     104
     105        * job.h: Ditto, but in a comment.
     106
     1072013-09-22  Paul Smith  <psmith@gnu.org>
     108
     109        * configure.ac: Update version to 3.99.92.
     110        * NEWS: Ditto.
     111
     112        * implicit.c (pattern_search): After second expansion be sure to
     113        handle order-only markers inside the expansion properly.
     114        Fixes Savannah bug #31155.
     115
     116        * guile.c (guile_define_module): Technically a void* cannot
     117        contain a pointer-to-function and some compilers warn about this.
     118        Cast the function pointers.
     119        * load.c (load_object): Ditto.
     120
     121        * read.c (eval): If load_file() returns -1, don't add this to the
     122        "to be rebuilt" list.
     123        * doc/make.texi (load Directive): Document it.
     124
     125        * guile.c (guile_gmake_setup): Don't initialize Guile so early.
     126        (func_guile): Lazily initialize Guile the first time the $(guile ..)
     127        function is invoked.  Guile can steal file descriptors which
     128        confuses our jobserver FD checking, so we don't want to initialize
     129        it before we have to.
     130
     131        VMS port updates by Hartmut Becker <becker.ismaning@freenet.de>
     132
     133        * makefile.com: Add output to the filelist.
     134        * output.c (va_copy): Add an implementation of this macro for VMS.
     135        * commands.c: Ensure filedef.h is #included before dep.h.
     136        * dir.c: Ditto.
     137        * file.c: Ditto.
     138        * guile.c: Ditto.
     139        * main.c: Ditto.
     140        * misc.c: Ditto.
     141        * read.c: Ditto.
     142        * rule.c: Ditto.
     143        * variable.c: Ditto.
     144        * readme.vms: Renamed to README.VMS and updates for this release.
     145        * Makefile.am: Ditto.
     146        * NEWS: Ditto.
     147        * README.template: Ditto.
     148        * Makefile.DOS.template: Ditto.
     149
     1502013-09-21  Paul Smith  <psmith@gnu.org>
     151
     152        * maintMakefile (check-alt-config): Create a target to test
     153        alternative configurations.  Each one will build make with a
     154        different configuration then run the test suite.
     155
     156        Invert the output-sync #define to NO_OUTPUT_SYNC
     157
     158        * configure.ac: Don't set OUTPUT_SYNC.
     159        * makeint.h: Ditto.
     160        * main.c: Use NO_OUTPUT_SYNC instead of OUTPUT_SYNC.
     161        * output.c: Ditto.
     162        * output.h: Ditto.
     163        * job.h: Ditto.
     164        * job.c: Ditto.
     165        * config.ami.template: Set NO_OUTPUT_SYNC.
     166        * config.h-vms.template: Ditto.
     167        * config.h.W32.template: Ditto.
     168        * configh.dos.template: Ditto.
     169
     170        Output generated while reading makefiles should be synced.
     171
     172        * main.c (make_sync): Define a context for syncing while reading
     173        makefiles and other top-level operations.
     174        (main): If we request syncing, enable it while we are parsing
     175        options, reading makefiles, etc. to capture that output.  Just
     176        before we start to run rules, dump the output if any.
     177        (die): Dump any output we've been syncing before we die
     178        * output.h (OUTPUT_SET): Disable output_context if not syncout.
     179
     180        Stderr generated from shell functions in recipes should be synced.
     181
     182        * job.h (FD_STDIN, FD_STDOUT, FD_STDERR): Create new macros to
     183        avoid magic numbers.
     184        (child_execute_job): Take a FD for stderr.
     185        * job.c (child_execute_job): Handle STDERR FD's in addition to
     186        stdin and stdout.
     187        (start_job_command): Call child_execute_job() with the new STDERR
     188        parameter.  Instead of performing the dup() here, send it to
     189        child_execute_job() where it's already being done.
     190        * function.c (func_shell_base): Pass the OUTPUT_CONTEXT stderr to
     191        child_execute_job() if it's set, otherwise FD_STDERR.
     192        * main.c (main): Pass FD_STDERR to child_execute_job().
     193
     1942013-09-19  Paul Smith  <psmith@gnu.org>
     195
     196        * main.c (main): Set MAKE_RESTARTS to negative before re-exec if
     197        we've already generated an "Entering" message.  If we are started
     198        and notice that MAKE_RESTARTS is negative, assume we already wrote
     199        "Entering" and don't write it again.
     200
     2012013-09-18  Paul Smith  <psmith@gnu.org>
     202
     203        * main.c (main): Set starting_directory before we write any
     204        errors.  Fixes Savannah bug #40043.
     205
     2062013-09-16  Eli Zaretskii  <eliz@gnu.org>
     207
     208        * output.c [WINDOWS32]: Include windows.h and sub_proc.h, to avoid
     209        compiler warnings for CLOSE_ON_EXEC.
     210
     2112013-09-16  Paul Smith  <psmith@gnu.org>
     212
     213        * configure.ac: Update version to 3.99.91.
     214        * NEWS: Ditto.
     215
     2162013-09-15  Paul Smith  <psmith@gnu.org>
     217
     218        * doc/make.texi (Error Messages): Add a bit more info to the
     219        section on static pattern errors, since they're common.
     220        Fixes Savannah bug #31326.
     221
     222        * read.c (eval_makefile): If the file open fails with an
     223        unrecoverable error, stop now rather than trying to make it.
     224        Fixes Savannah bug #27374.
     225
     226        * main.c (main): Perform the validation of the jobserver FDs
     227        early, before we read makefiles, to ensure that something hasn't
     228        opened and used those FDs for some other reason.
     229        Fixes Savannah bug #39934.
     230
     231        * main.c (main): Don't set MAKEFLAGS in the environment when we
     232        restart.  We have the original command line flags so keep the
     233        original MAKEFLAGS settings as well.
     234        Fixes Savannah bug #39203.
     235
     2362013-09-14  Paul Smith  <psmith@gnu.org>
     237
     238        * main.c (decode_debug_flags): Add support for the "n" flag to
     239        disable all debugging.
     240        * make.1: Document the "n" (none) flag.
     241        * doc/make.texi (Options Summary): Ditto.
     242        * NEWS: Ditto.
     243        Fixes Savannah bug #35248.
     244
     245        * misc.c (close_stdout): Move to output.c.
     246        * main.c (main): Move atexit call to output_init().
     247        * makeint.h: Remove close_stdout() declaration.
     248        * output.c (output_init): Add close_stdout at exit only if it's open.
     249        Fixes Savannah bug #33134.  Suggested by David Boyce <dsb@boyski.com>.
     250
     2512013-09-14  Paul Smith  <psmith@gnu.org>
     252
     253        * misc.c (set_append_mode, open_tmpfd, open_tmpfile): Move to output.c.
     254        * misc.h: Ditto.
     255        * output.h: Ditto.
     256        * main.c (main): Move stdio init into output.c:output_init().
     257        Change open_tmpfile() to output_tmpfile().
     258        * output.c: Rename open_*() to output_*().  set_append_mode() and
     259        open_tmpfd() are static.
     260        (_outputs, log_working_directory): Accept a struct output and
     261        print to that rather than the global context.
     262        (output_dump): In recurse mode print enter/leave once for the
     263        whole makefile.
     264        (output_init): Initialize this processes stdio as well as child's.
     265
     266        * vmsjobs.c: Reformat to be closer to convention.
     267
     2682013-09-12  Paul Smith  <psmith@gnu.org>
     269
     270        Rework output to handle synchronization and directory logging more
     271        reliably.
     272
     273        * output.c: New file.  Implement lazy synchronization and
     274        directory logging so that we manage them "just in time", and the
     275        destination of the output is set via a global state variable.
     276        * output.h: New file.
     277        * function.c (func_shell_base): Ensure the output is set up before
     278        running a shell command, in case it writes to stderr.
     279        (func_error): Use outputs() to generate output.
     280        * job.h (struct child): Add struct output to track the child's output.
     281        * job.c: Use struct output in the child structure to track output.
     282        (child_out, sync_init, assign_child_tempfiles, pump_from_tmp)
     283        (acquire_semaphore, release_semaphore, sync_output): Move most of
     284        the output_sync handling to output.c.
     285        (child_error): Set output, then use simple message() and error()
     286        not _s versions.
     287        * main.c (log_working_directory): Moved to output.c
     288        (trace_option, decode_trace_flags) Remove.  Remove support for
     289        different trace modes; we don't use it anymore.
     290        (die) Invoke output_close() before we exit.
     291        * misc.c (message_s, error_s): Removed; no longer needed.
     292        (message, error, fatal, perror_with_name, pfatal_with_name): Moved
     293        to output.c.
     294        * makeint.h: Remove message_s(), error_s(), and
     295        log_working_directory().  Remove the TRACE_* macros.
     296        * doc/make.texi: Enhance documentation for output sync, and remove
     297        MODE assignment for --trace.
     298        * make.1: Remove MODE assignment for --trace.
     299        * Makefile.am: Add new files.
     300        * NMakefile.template: Ditto.
     301        * SMakefile.template: Ditto.
     302        * build_w32.bat: Ditto.
     303        * dosbuild.bat: Ditto.
     304        * make.lnk: Ditto.
     305        * make_nsvc_net2003.vcproj: Ditto.
     306        * makefile.vms: Ditto.
     307        * po/POTFILES.in: Ditto.
     308
     3092013-08-22  Petr Machata  <pmachata@redhat.com>
     310
     311        * function.c (func_shell_base): Get rid of any avoidable limit on
     312        stack size for processes spawned via $(shell).
     313
     3142013-07-22  Paul Smith  <psmith@gnu.org>
     315
     316        * implicit.c (pattern_search): Use PARSE_SIMPLE_SEQ() even for
     317        non-second expansion prerequisites, to handle globbing in patterns.
     318        Fixes Savannah bug #39310.
     319
     320        * dep.h (PARSE_SIMPLE_SEQ): Macro for simple file sequence parsing.
     321        * default.c (set_default_suffixes): Use it.
     322        * file.c (split_prereqs): Ditto.
     323        * main.c (main): Ditto.
     324        * read.c (eval): Ditto.
     325        * rule.c (install_pattern_rule): Ditto.
     326        * file.c (split_prereqs): Use PARSEFS_NONE instead of 0.
     327
     3282013-07-21  Paul Smith  <psmith@gnu.org>
     329
     330        Cleanups detected by cppcheck.  Fixes Savannah bug #39158.
     331        * arscan.c (ar_scan): Reduce the scope of local variables.
     332        * dir.c (vms_hash): Ditto.
     333        (find_directory): Ditto.
     334        (file_impossible_p): Ditto.
     335        * expand.c (variable_expand_string): Ditto.
     336        * function.c (func_sort): Ditto.
     337        (func_and): Ditto.
     338        * job.c (reap_children): Ditto.
     339        (exec_command): Ditto.
     340        * main.c (main): Ditto.
     341        * misc.c (collapse_continuations): Ditto.
     342        * read.c (eval): Ditto.
     343        (parse_file_seq): Ditto.
     344        * vpath.c (gpath_search): Ditto.
     345        (selective_vpath_search): Ditto.
     346        * job.c (is_bourne_compatible_shell): Simplify for non-Windows systems.
     347        * remake.c (f_mtime): Remove duplicate test.
     348        * signame.c (strsignal): Fix bogus conditional.
     349
     350        * job.c (assign_child_tempfiles): Assign OUTFD to -1 for safety.
     351        (start_job_command): Don't test output_sync and sync_cmd: redundant.
     352        Changes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
     353
     3542013-07-14  Paul Smith  <psmith@gnu.org>
     355
     356        * filedef.h (update_status): Convert UPDATE_STATUS from a char to
     357        an enumeration.  Some systems declare "char" to be "unsigned"
     358        which broke the code (which expected to be able to use -1 as a
     359        flag).  Using magic values was unpleasant, so rather than just
     360        force "signed char" I reworked it to use an enum.
     361
     362        * dep.h (update_goal_chain): Return an update_status value not int.
     363        * remake.c (touch_file): Ditto.
     364        (update_goal_chain): Track the update_status enum.
     365
     366        * file.c (enter_file): Use new enumeration values with update_status.
     367        (remove_intermediates): Ditto.
     368        (print_file): Ditto.
     369        * commands.c (execute_file_commands): Ditto.
     370        * job.c (reap_children): Ditto.
     371        (start_job_command): Ditto.
     372        (start_waiting_job): Ditto.
     373        * main.c (main): Ditto.
     374        * remake.c (update_file): Ditto.
     375        (complain): Ditto.
     376        (update_file_1): Ditto.
     377        (notice_finished_file): Ditto.
     378        (remake_file): Ditto.
     379        * vmsjobs.c (vmsHandleChildTerm): Ditto.
     380
     3812013-07-09  Paul Smith  <psmith@gnu.org>
     382
     383        * implicit.c (pattern_search): Keep a local copy of the number of
     384        deps in deplist: the global max might change due to recursion.
     385        Fixes a bug reported by Martin d'Anjou <martin.danjou14@gmail.com>.
     386
     3872013-06-28  Paul Smith  <psmith@gnu.org>
     388
     389        * misc.c (set_append_mode): Set the O_APPEND flag on a file descriptor.
     390        (open_tmpfd): Set append mode on the temporary file descriptor.
     391        * main.c (main): Set append mode on stdout and stderr.
     392        * makeint.h (set_append_mode): Declare it.
     393
     3942013-06-22  Eli Zaretskii  <eliz@gnu.org>
     395
     396        * build_w32.bat (LinkGCC): Prevent a comment from being displayed
     397        at build time.
     398
     399        * job.c (construct_command_argv_internal) [WINDOWS32]: Use
     400        case-insensitive comparison with internal commands of non-Unix
     401        shells.
     402
     403        * main.c (find_and_set_default_shell): Don't use file_exists_p or
     404        dir_file_exists_p, as those call readdir, which can fail if PATH
     405        includes directories with non-ASCII characters, and that would
     406        cause Make to fail at startup with confusing diagnostics.  See
     407        https://sourceforge.net/mailarchive/message.php?msg_id=30846737
     408        for the details.
     409
     4102013-06-22  Paul Smith  <psmith@gnu.org>
     411
     412        Improve performance by using a character map to determine where we
     413        want to stop searching strings, rather than discrete comparisons.
     414
     415        * read.c (find_char_unquote): Pass a stop map instead of various
     416        flags and use that to check when to stop parsing the string.
     417        (eval): Use the new find_char_unquote() calling signature.
     418        (remove_comments): Ditto.
     419        (unescape_char): Ditto.
     420        (find_percent_cached): Ditto.
     421        (parse_file_seq): Use a stop-map flag.
     422        * main.c (stopchar_map): Character map definition.
     423        (initialize_stopchar_map): Initialize the map definition.
     424        (main): Invoke the map initialization function.
     425        * misc.c (end_of_token_w32): Remove unused function.
     426        * dir.c (dosify): Use STOP_SET to check for stop chars.
     427        * main.c (main): Ditto.
     428        * misc.c (end_of_token): Ditto.
     429        * function.c (subst_expand): Ditto.
     430        (func_notdir_suffix): Ditto.
     431        (func_basename_dir): Ditto.
     432        (abspath): Ditto.
     433        * job.c (is_bourne_compatible_shell): Ditto.
     434        * variable.c (parse_variable_definition): Ditto.
     435        * read.c (eval): Ditto.
     436        (conditional_line): Ditto.
     437        (find_percent_cached): Ditto.
     438        * dep.h (PARSE_FILE_SEQ): Update function declaration.
     439        * default.c (set_default_suffixes): Update PARSE_FILE_SEQ() call.
     440        * file.c (split_prereqs): Ditto.
     441        * function.c (string_glob): Ditto.
     442        * implicit.c (pattern_search): Ditto.
     443        * rule.c (install_pattern_rule): Ditto.
     444        * main.c (main): Ditto.
     445
     4462013-06-21  Paul Smith  <psmith@gnu.org>
     447
     448        * main.c (verify_flag): Global variable to determine whether to
     449        verify the database or not.
     450        (decode_debug_flags): If debug mode, enable verify_flag.
     451        (main): If MAKE_MAINTAINER_MODE, enable verify_flag, otherwise not.
     452        (die): Only verify the database if verify_flag is set.
     453        * file.c (enter_file): Don't check caching unless verify_flag.
     454        * makeint.h: Export verify_flag.
     455
     4562013-05-27  Paul Smith  <psmith@gnu.org>
     457
     458        * variable.c (define_automatic_variables): Create a new variable
     459        MAKE_HOST.
     460
     4612013-05-27  Hartmut Becker  <becker.ismaning@freenet.de>
     462
     463        * function.c (func_shell_base) [VMS]: Support VMS.
     464        * makefile.com [VMS]: Ditto.
     465        * makefile.vms [VMS]: Ditto.
     466        * makeint.h [VMS]: Ditto.
     467        * vmsjobs.c [VMS]: Ditto.
     468        * job.h: Define RECORD_SYNC_MUTEX() when OUTPUT_SYNC is not set.
     469        * load.c (unload_file): Fix signature if MAKE_LOAD is not set.
     470
     4712013-05-26  Paul Smith  <psmith@gnu.org>
     472
     473        * remake.c (f_mtime): Ensure that archive file names are in the
     474        string cache.  Fixes Savannah bug #38442.
     475
     476        * read.c (readline): To be safe, move the entire buffer if we
     477        detect a CR.  Fixes Savannah bug #38945.
     478
     479        * job.c (new_job): Compare OUT to the beginning of the OUT
     480        var/function, not IN.  Fixes Savannah bug #39035.
     481
     4822013-05-22  Paul Smith  <psmith@gnu.org>
     483
     484        * main.c (switches[]): Order switches so simple flags all come first.
     485        (define_makeflags): Rework to make option passing more
     486        reliable and the code less tricksy.  Ensure simple flags are kept
     487        in the initial batch of flags.  Do not allow any flags with
     488        options in that batch.  If there are only non-simple flags MAKEFLAGS
     489        begins with ' '.
     490        (print_data_base): Print the version.  Fixes part of Savannah #35336.
     491
     492        * read.c (eval_buffer): Initialize lineno.
     493
     4942013-05-18  Alexey Pavlov  <alexpux@gmail.com>  (tiny change)
     495
     496        * w32/Makefile.am (libw32_a_SOURCES): Add compat/posixfcn.c.
     497
     498        * configure.ac (OUTPUT_SYNC): Define for mingw32 target.
     499
     500        * job.c (construct_command_argv_internal) <sh_cmds_dos>
     501        [WINDOWS32]: Add "move".  Fixes Savannah bug #30714.
     502
     503        * guile.c: Move inclusion of makeint.h before gnumake.h.  This
     504        order must be observed when building Make, because gnumake.h must
     505        be included with GMK_BUILDING_MAKE defined, which makeint.h
     506        already does.  Otherwise, the linker will look for, and fail to
     507        find, gmk_* functions in some external dynamic library.
     508
     5092013-05-17  Benno Schulenberg  <bensberg@justemail.net>
     510
     511        * main.c (decode_output_sync_flags): Fix output message.
     512        * read.c (EXTRANEOUS): Ditto.
     513        (record_files): Ditto.
     514        * remake.c (update_file_1): Ditto.
     515
     5162013-05-17  Eli Zaretskii  <eliz@gnu.org>
     517
     518        * main.c (prepare_mutex_handle_string): Define conditioned on
     519        OUTPUT_SYNC.
     520
     521        * build_w32.bat: Copy config.h.W32 to config.h regardless of
     522        whether or not we are building from SCM.
     523
     5242013-05-17  Paul Smith  <psmith@gnu.org>
     525
     526        * configure.ac: Update version to 3.99.90.
     527        * NEWS: Ditto.
     528
     529        * Source (*.[ch]): Remove TABs, use GNU coding styles.
     530
     531        * ALL: Update copyright.
     532
     533        * hash.c (CALLOC): Use xcalloc() to handle out of memory errors.
     534
     535        * makeint.h: Prototype new unload_file() function.
     536        * load.c (unload_file): Create a function to unload a file.
     537        (struct load_list): Type to remember loaded objects.
     538        (loaded_syms): Global variable of remembered loaded objects so we
     539        can unload them later.  We don't have to remove from the list
     540        because the only time we unload is if we're about to re-exec.
     541        (load_object): Remove unneeded extra DLP argument.
     542        (load_file): Remove unneeded extra DLP argument.
     543        * filedef.h (struct file): Remove the DLP pointer and add the
     544        LOADED bit flag.  Saves 32/64 bytes per file, as this pointer is
     545        almost never needed.
     546        * read.c (eval): Set the new LOADED bit flag on the file.
     547        * file.c (rehash_file): Merge the loaded bitfield.
     548        * commands.c (execute_file_commands): Call unload_file() instead
     549        of dlclose() directly.
     550
     5512013-05-14  Paul Smith  <psmith@gnu.org>
     552
     553        * doc/make.texi (Loaded Object API): Document the requirement for
     554        the plugin_is_GPL_compatible symbol.
     555        * load.c (load_object): Check for plugin_is_GPL_compatible symbol.
     556
     5572013-05-13  Paul Smith  <psmith@gnu.org>
     558
     559        * filedef.h (struct file): Add a builtin flag.
     560        * file.c (enter_file): Unset the builtin flag.
     561        (rehash_file): Ditto.
     562        (print_file): Don't print builtin files if we've omitted them.
     563        * default.c (undefine_default_variables): New function: go through
     564        the default variables and undefine them.
     565        (set_default_suffixes): Mark these suffix rules as builtin.
     566        * makeint.h: Prototype.
     567        * main.c (main): Handle addition of -r and -R to MAKEFLAGS in the
     568        makefile.  Fixes Savannah bug #20501.
     569
     570        * main.c (define_makeflags): Assign o_env_override level to
     571        MAKEFLAGS to ensure it's set even in the presence of -e.
     572        Fixes Savannah bug #2216.
     573
     574        * makeint.h (TRACE_NONE, TRACE_RULE, TRACE_DIRECTORY): Define
     575        constants for the trace mode.
     576        * main.c: Add new --trace mode parsing.
     577        (decode_trace_flags): New function.
     578        (decode_switches): Call it.
     579        (define_makeflags): Fix a bug with long-name options.
     580        * misc.c (fatal): Remove special output-sync handling.
     581        * make.1: Document new --trace mode flags.
     582        * doc/make.texi (Options Summary): Ditto.
     583
     5842013-05-11  Eli Zaretskii  <eliz@gnu.org>
     585
     586        * job.c (child_out): Output the newline following the message
     587        before fllush-ing the stream.  Avoids displaying the following
     588        failure message, which goes to stderr, on the same line.
     589
     5902013-05-06  Eli Zaretskii  <eliz@gnu.org>
     591
     592        * gnumake.h (GMK_EXPORT) [_WIN32]: Move the dllexport declaration
     593        here from makeint.h.
     594
     595        * makeint.h (GMK_BUILDING_MAKE) [WINDOWS32]: Define before
     596        including gnumake.h.
     597
     598        * doc/make.texi (Loaded Object Example): Add a note about building
     599        shared objects on MS-Windows.
     600
     6012013-05-05  Paul Smith  <psmith@gnu.org>
     602
     603        * makeint.h (OUTPUT_SYNC_LINE, OUTPUT_SYNC_RECURSE): Rename
     604        output-sync options "job" to "line" and "make" to "recurse".
     605        * main.c (decode_output_sync_flags): Ditto.
     606        * job.c (reap_children): Ditto.
     607        (start_job_command): Ditto.
     608        * make.1: Ditto.
     609        * doc/make.texi (Parallel Output): Ditto.
     610
     611        * job.c (child_out): Write newlines explicitly, and don't do
     612        anything if the message is empty.
     613        (sync_output): Put working dir messages around stdout AND stderr.
     614        (start_job_command): Move the tmp file assignment earlier.  After
     615        we do it, write the command line to the temp file to get the order
     616        correct.
     617
     618        * misc.c (message): Remove special handling for output_sync.
     619        (error): Ditto.
     620
     6212013-05-04  Paul Smith  <psmith@gnu.org>
     622
     623        * loadapi.c (gmk_alloc): New function.
     624        * gnumake.h: Add gmk_alloc().  Clean GMK_EXPORT a bit to avoid MAIN.
     625        * makeint.h (GMK_EXPORT): New handling, vs. MAIN.
     626        * doc/make.texi (Loaded Object API): Add information on the memory
     627        handling functions.
     628        (Loaded Object Example): Create an example.
     629
     630        * job.c (pump_from_tmp): (Rename) Write to stdout/stderr using
     631        FILE* rather than fd.  It's not a good idea to mix and match.
     632
     6332013-05-04  Eli Zaretskii  <eliz@gnu.org>
     634
     635        * makeint.h (ftruncate) [_MSC_VER]: Redirect to _chsize.
     636        (_S_ISDIR): If not defined (MinGW64), define to S_ISDIR.
     637
     6382013-05-04  Paul Smith  <psmith@gnu.org>
     639
     640        * job.c (child_out): Handle EINTR and incomplete write scenarios.
     641        (sync_init): New function: separate the initialization code.
     642        (assign_child_tempfiles): Remove truncation from this function,
     643        (sync_output): and add it here after output is generated.
     644        (reap_children): Always call sync_output() in case output_sync was
     645        reset after the child started, due to error.
     646        (start_job_command): Create new sync_cmd variable.  Use new method
     647        for initializing the handle.
     648        If we're not syncing the output be sure any output we've saved is
     649        dumped immediately before starting the child.
     650
     6512013-05-04  Eli Zaretskii  <eliz@gnu.org>
     652
     653        * job.c (start_job_command): Make the condition for creating a
     654        temporary output file be identical to the Posix code branch.
     655        Suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
     656
     6572013-05-03  Eli Zaretskii  <eliz@gnu.org>
     658
     659        * w32/subproc/sub_proc.c: Include makeint.h.  Remove a private
     660        incompatible prototype of xmalloc.
     661        (batch_file_with_spaces): New function, detects Windows batch
     662        files whose names include whitespace characters.
     663        (process_begin): If exec_name is a batch file with whitespace
     664        characters in its name, pass NULL as the first argument to
     665        CreateProcess.  This avoids weird failures due to buggy quoting by
     666        CreateProcess.  For the details, see the discussion starting at
     667        http://lists.gnu.org/archive/html/make-w32/2013-04/msg00008.html.
     668
     669        * load.c (load_object, load_file): Accept an additional argument
     670        DLP and return in it a pointer that can be used to unload the
     671        dynamic object.
     672
     673        * read.c (eval): Call load_file with an additional argument, and
     674        record the pointer returned there in the 'struct file' object of
     675        dynamic objects in that object's 'struct file'.
     676
     677        * commands.c (execute_file_commands): Unload dynamic objects
     678        before remaking them, to avoid failure to remake if the OS doesn't
     679        allow overwriting objects that are in use.
     680
     681        * filedef.h (struct file): New member dlopen_ptr.
     682
     683        * gnumake.h (GMK_EXPORT): Define to dllexport/dllimport
     684        decorations for Windows and to nothing on other platforms.
     685        (gmk_eval, gmk_expand, gmk_add_function): Add GMK_EXPORT qualifier
     686        to prototypes.
     687
     688        * makeint.h (MAIN): Define before including gnumake.h, to give
     689        correct dllexport decorations to exported functions.
     690        (load_file): Adjust prototype.
     691
     692        * loadapi.c: Don't include gnumake.h, since makeint.h already
     693        includes it, and takes care of defining MAIN before doing so.
     694
     695        * build_w32.bat (LinkGCC): Produce an import library for functions
     696        exported by Make for loadable dynamic objects.
     697
     698        * w32/compat/posixfcn.c (dlclose): New function.
     699
     700        * w32/include/dlfcn.h (dlclose): Add prototype.
     701
     7022013-05-01  Eli Zaretskii  <eliz@gnu.org>
     703
     704        * job.c (start_job_command) [WINDOWS32]: Make the same fix for
     705        MS-Windows as the previous commit did for Posix platforms.
     706        (construct_command_argv_internal): Don't treat a backslash as an
     707        escape character before whitespace, if the shell is not a Posix
     708        shell.   For the description of the problem, see
     709        http://lists.gnu.org/archive/html/make-w32/2013-04/msg00014.html.
     710
     7112013-05-01  Paul Smith  <psmith@gnu.org>
     712
     713        * job.c (start_job_command): Don't redirect output for recursive
     714        make jobs, unless we're in makefile synchronization mode.
     715
     7162013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
     717
     718        build: enable the 'silent-rules' automake options
     719
     720        * configure.ac (AM_INIT_AUTOMAKE): Here.  The future major Automake
     721        version 2.0 (ETA about one, one and half year from now) will enable
     722        it by default, so better prepare ourselves.
     723
     7242013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
     725
     726        build: require Autoconf >= 2.62 and Automake >= 1.11.1
     727
     728        Older versions of those tools should be considered fully obsolete.
     729        Also, GNU make already requires Gettext >= 0.18.1, which has been
     730        released six months after Automake 1.11.1 and two years after
     731        Autoconf 2.62; so the new requirement shouldn't be problematic
     732        for people already bootstrapping GNU make from the Git repository.
     733
     734        * configure.ac (AC_PREREQ): Require Autoconf 2.62 or later.
     735        (AM_INIT_AUTOMAKE): Require Automake 1.11.1 or later (1.11 had
     736        some serious bugs, and should not be used).
     737
     7382013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
     739
     740        build: get rid of 'HAVE_ANSI_COMPILER' C preprocessor conditional
     741
     742        GNU make already assume C89 or later throughout the codebase, and
     743        that preprocessor conditional was no longer used anyway.
     744
     745        * configure.ac: Remove AC_DEFINE of HAVE_ANSI_COMPILER.
     746        * config.ami.template: Remove #define of HAVE_ANSI_COMPILER.
     747        * config.h-vms.template: Likewise.
     748        * config.h.W32.template: Likewise.
     749        * configh.dos.template: Likewise.
     750
     7512013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
     752
     753        cosmetics: fix few innocuous typos
     754
     755        Most of these were found using Lucas De Marchi's 'codespell' tool.
     756
     757        * ChangeLog: Fix minor typos.
     758        * ChangeLog.2: Likewise.
     759        * README.Amiga: Likewise.
     760        * TODO.private: Likewise.
     761        * function.c: Likewise.
     762        * glob/glob.h: Likewise.
     763        * job.c: Likewise.
     764        * main.c: Likewise.
     765        * readme.vms: Likewise.
     766        * remake.c: Likewise.
     767        * tests/ChangeLog: Likewise.
     768        * tests/NEWS: Likewise.
     769        * tests/README: Likewise.
     770        * tests/scripts/variables/private: Likewise.
     771        * vmsdir.h: Likewise.
     772        * signame.c: Likewise.  While at it, improve line wrapping in the
     773        touched comment.
     774
     7752013-04-29  Eli Zaretskii  <eliz@gnu.org>
     776
     777        * w32/include/dlfcn.h: New file.
     778
     779        * w32/compat/posixfcn.c: Include dlfcn.h.
     780        (dlopen, dlerror, dlsym) [MAKE_LOAD]: New functions, in support of
     781        dynamic loading.
     782
     783        * config.h.W32.template (MAKE_LOAD): Define.
     784
     785        * load.c (load_object) [HAVE_DOS_PATHS]: Support backslashes and
     786        drive letters in file names of dynamic objects.
     787
     788        * job.c (construct_command_argv_internal) [WINDOWS32]: Return
     789        right after generating new_argv for one_shell case.  This fixes
     790        the Windows build for both Unixy shell and stock Windows shells.
     791
     7922013-04-28  Eli Zaretskii  <eliz@gnu.org>
     793
     794        * dir.c (local_stat) [WINDOWS32]: Use the wrapper on MS-Windows.
     795        If the argument ends in "dir/.", make sure the parent dir exists
     796        and is indeed a directory.  Fixes Savannah bug #37065.
     797
     7982013-04-28  Paul Smith  <psmith@gnu.org>
     799
     800        * makeint.h (message_s, error_s): Functions that print to strings
     801        rather than directly to files.
     802        * misc.c (message_s, error_s): Create them.
     803        * job.c (child_error): Print error messages to the output sync
     804        logs, if one exists, rather then directly to the terminal.
     805        (reap_children): Move the per-line sync after child_error().
     806
     807        * configure.ac: Remove support for pre-ANSI variadic function calls.
     808        * makeint.h: Ditto.
     809        * misc.c: Ditto.
     810        * config.ami.template: Ditto.
     811        * config.h-vms.template: Ditto.
     812        * config.h.W32.template: Ditto.
     813        * configh.dos.template: Ditto.
     814
     815        Implement a "per-job" output synchronization option.
     816
     817        * main.c (decode_output_sync_flags): Recognize the new option.
     818        * makeint.h (OUTPUT_SYNC_JOB): Add new values for "job"
     819        * job.c (assign_child_tempfiles): In per-job mode, truncate the
     820        temp file for re-use by the next job.
     821        (sync_output): Don't close the temp files as we may still use them.
     822        (free_child): Close the temp files here as we definitely don't
     823        need them.
     824        (new_job): In per-job output mode, sync_output() after each job.
     825        * job.h (struct child): Avoid ifdefs.
     826        * make.1: Add new options to the man page.
     827        * doc/make.texi (Parallel Output): Break documentation on input
     828        and output into separate sections for readability.  Document the
     829        new "job" and "none" modes.
     830
     8312013-04-27  Paul Smith  <psmith@gnu.org>
     832
     833        * job.c (construct_command_argv_internal): Fix oneshell support
     834        for non-POSIX-sh shells.
     835
     836        * load.c (load_object): Extract all POSIX-isms into a separate
     837        function for portability.
     838        (load_file): Check the .LOADED variable first and don't invoke
     839        load_object() if it's already been loaded.
     840
     8412013-04-27  Eli Zaretskii  <eliz@gnu.org>
     842
     843        * read.c (record_files): Pay attention to .ONESHELL in MS-Windows.
     844
     845        * job.c (construct_command_argv_internal): Support .ONESHELL on
     846        MS-Windows, when the shell is not a Unixy shell.
     847
     8482013-04-27  Eli Zaretskii  <eliz@gnu.org>
     849
     850        * job.c: Fix compilation error on GNU/Linux due to "label at end
     851        of compound statement".
     852
     8532013-04-27  Frank Heckenbach <f.heckenbach@fh-soft.de>  (tiny change)
     854
     855        * job.c (sync_output): Don't discard the output if
     856        acquire_semaphore fails; instead, dump the output unsynchronized.
     857
     8582013-04-27  Eli Zaretskii  <eliz@gnu.org>
     859
     860        Support --output-sync on MS-Windows.
     861        * w32/compat/posixfcn.c: New file, with emulations of Posix
     862        functions and Posix functionality for MS-Windows.
     863
     864        * w32/subproc/sub_proc.c: Include io.h.
     865        (process_noinherit): New function, forces a file descriptor to not
     866        be inherited by child processes.
     867        (process_easy): Accept two additional arguments, and use them to
     868        set up the standard output and standard error handles of the child
     869        process.
     870
     871        * w32/include/sub_proc.h (process_easy): Adjust prototype.
     872        (process_noinherit): Add prototype.
     873
     874        * read.c [WINDOWS32]: Include windows.h and sub_proc.h.
     875
     876        * makeint.h (LOCALEDIR) [WINDOWS32}: Define to NULL if not
     877        defined.  This is needed because the MS-Windows build doesn't have
     878        a canonical place for LOCALEDIR.
     879        (WIN32_LEAN_AND_MEAN) [WINDOWS32]: Define, to avoid getting from
     880        windows.h header too much stuff that could conflict with the code.
     881
     882        * main.c <sync_mutex>: New static variable.
     883        <switches>: Add support for "--sync-mutex" switch.
     884        (decode_output_sync_flags): Decode the --sync-mutex= switch.
     885        (prepare_mutex_handle_string) [WINDOWS32]: New function.
     886        (main): Add "output-sync" to .FEATURES.
     887
     888        * job.h (CLOSE_ON_EXEC) [WINDOWS32]: Define to call
     889        process_noinherit.
     890        (F_GETFD, F_SETLKW, F_WRLCK, F_UNLCK, struct flock) [WINDOWS32]:
     891        New macros.
     892        (RECORD_SYNC_MUTEX): New macro, a no-op for Posix platforms.
     893        (sync_handle_t): New typedef.
     894
     895        * job.c <sync_handle>: Change type to sync_handle_t.
     896        (FD_NOT_EMPTY): Seek to the file's end.  Suggested by Frank
     897        Heckenbach <f.heckenbach@fh-soft.de>.
     898        (pump_from_tmp_fd) [WINDOWS32]: Switch to_fd to binary mode for
     899        the duration of this function, and then change back before
     900        returning.
     901        (start_job_command) [WINDOWS32]: Support output_sync mode on
     902        MS-Windows.  Use a system-wide mutex instead of locking
     903        stdout/stderr.  Call process_easy with two additional arguments:
     904        child->outfd and child->errfd.
     905        (exec_command) [WINDOWS32]: Pass two additional arguments, both
     906        -1, to process_easy, to adjust for the changed function signature.
     907
     908        * function.c (windows32_openpipe) [WINDOWS32]: This function now
     909        returns an int, which is -1 if it fails and zero otherwise.  It
     910        also calls 'error' instead of 'fatal', to avoid exiting
     911        prematurely.
     912        (func_shell_base) [WINDOWS32]: Call perror_with_name if
     913        windows32_openpipe fails, now that it always returns.  This avoids
     914        a compiler warning that error_prefix is not used in the MS-Windows
     915        build.
     916
     917        * config.h.W32.template (OUTPUT_SYNC): Define.
     918
     919        * build_w32.bat: Add w32/compat/posixfcn.c to compilation and
     920        linking commands.
     921
     9222013-04-20  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
     923
     924        * README.git: Our autoconf input file is 'configure.ac', not
     925        'configure.in'.  Adjust accordingly.
     926        * build_w32.bat: Likewise.
     927        * config.h-vms.template: Likewise.
     928        * Makefile.DOS.template: Likewise.
     929
     9302013-04-16  Paul Smith  <psmith@gnu.org>
     931
     932        * misc.c (open_tmpfd): Add a new function that returns a temporary
     933        file by file descriptor.
     934        (open_tmpfile): Move here from main.c.
     935        * job.c (assign_child_tempfiles): Use the new open_tmpfd().
     936
     9372013-04-15  Paul Smith  <psmith@gnu.org>
     938
     939        * makeint.h (OUTPUT_SYNC_TARGET, OUTPUT_SYNC_MAKE): Rename.
     940        * job.c (start_job_command): Use new constants.
     941        * main.c: New -O argument format.
     942
     943        * doc/make.texi (Options Summary): Document the argument to -O.
     944        * make.1: Ditto.
     945
     946        * main.c (define_makeflags): Don't add space between a single-char
     947        option and its argument.
     948
     9492013-04-06  Paul Smith  <psmith@gnu.org>
     950
     951        * doc/make.texi (Implicit Variables): Clarify LDFLAGS vs. LDLIBS.
     952        Fixes Savannah bug #37970.
     953
     954        * remake.c (check_dep): Reconsider files waiting on prerequisites,
     955        as they may have finished.  Fixes Savannah bug #37703.
     956
     9572013-02-28  Paul Smith  <psmith@gnu.org>
     958
     959        * function.c (func_realpath): On Solaris (at least) realpath() can
     960        fail due to EINTR, so loop it.  Fixes Savannah bug #38420.
     961
     9622013-02-25  Paul Smith  <psmith@gnu.org>
     963
     964        Add a proposed supported API for GNU make loaded objects.
     965
     966        * doc/make.texi (Loaded Object API): Document it.
     967        * Makefile.am (make_SOURCES): Add new loadapi.c.
     968        * dep.h: Remove eval_buffer(); moved to loadapi.c:gmk_eval().
     969        * read.c (eval_buffer): Change eval_buffer() signature.
     970        * main.c (main): Change eval_buffer() signature.
     971        * variable.h (define_new_function): Change func_ptr signature.
     972        * load.c (SYMBOL_EXTENSION): Change the extension.
     973        * loadapi.c: Implement the new API.
     974        * gnumake.h (gmk_eval): New function prototype.
     975        (gmk_expand) Ditto.
     976        (gmk_add_function) Ditto.
     977        * gmk-default.scm (gmk-eval): Remove: now implemented in guile.c.
     978        * guile.c (guile_expand_wrapper): Use gmk_expand()
     979        (guile_eval_wrapper): Implement eval here to avoid double-expansion.
     980        (guile_define_module): Define gmk-eval.
     981        (func_guile): Use new func_ptr calling model.
     982        (guile_gmake_setup): Use gmk_add_function() to declare $(guile ...)
     983        * function.c (function_table_entry): Provide alternative func_ptr.
     984        (func_eval): New signature for eval_buffer();
     985        (function_table_init): New initialization for function_table_entry.
     986        (expand_builtin_function): Support alternative invocation signature.
     987        (define_new_function): Ditto.
     988
     9892013-01-20  Paul Smith  <psmith@gnu.org>
     990
     991        * gnumake.h: New file to contain externally-visible content.
     992        * makeint.h: Include gnumake.h.  Move gmk_floc type to gnumake.h.
     993        * Makefile.am (include_HEADERS): Install the gnumake.h header.
     994
     995        * makeint.h: Change struct floc to gmk_floc typedef.
     996        * Many: Use the new typedef.
     997
     998        * make.h: Rename to makeint.h.
     999        * Many: Use the new name makeint.h.
     1000
     10012013-01-19  Paul Smith  <psmith@gnu.org>
     1002
     1003        * doc/make.texi (load Directive): Update to discuss location of
     1004        loaded object file.
     1005        (Remaking Loaded Objects): Document remaking of loaded objects.
     1006
     1007        * main.c (main): Rename READ_MAKEFILES to READ_FILES.
     1008        * read.c: Change READ_MAKEFILES to READ_FILES since it now
     1009        contains loaded object files as well.
     1010        (read_all_makefiles): Ditto.
     1011        (eval_makefile): Ditto.
     1012        (eval): Add any loaded file to the READ_FILES list, so that it
     1013        will be considered for re-build.
     1014
     1015        * load.c (load_file): Return the simple filename (no symbol) in
     1016        the LDNAME argument (now a const char **).
     1017        This filename should no longer have "./" prepended: modify the
     1018        function to always check the current directory if the name has no
     1019        "/", before using the normal methods.
     1020        * make.h: Change the load_file() prototype.
     1021
     1022        * README.git: Add a bit more documentation on Git workflow & rules.
     1023
     10242013-01-13  Paul Smith  <psmith@gnu.org>
     1025
     1026        * main.c (main): Restore all make flags after re-exec is complete.
     1027        Fixes Savannah bug #38051.
     1028
     10292013-01-12  Paul Smith  <psmith@gnu.org>
     1030
     1031        Convert CVS archive to Git.
     1032
     1033        * configure.in: Rename to configure.ac.
     1034        * README.cvs: Rename to README.git and rework for Git.
     1035        * maintMakefile: Use git clean for cleanup.
     1036        * ChangeLog: Use new Git repository URL.
     1037        * ChangeLog.2: Ditto.
     1038        * Makefile.am: Change documentation for Git
     1039        * Makefile.DOS.template: Ditto.
     1040        * README.template: Ditto.
     1041        * build_w32.bat: Ditto.
     1042        * prepare_w32.bat: Ditto.
     1043        * .cvsignore: Rename to .gitignore, and change to Git format.
     1044
     10452012-12-08  Eli Zaretskii  <eliz@gnu.org>
     1046
     1047        * job.c (create_batch_file): Fix last change: always increment the
     1048        counter of batch files before trying to use it.
     1049
     10502012-12-07  Eli Zaretskii  <eliz@gnu.org>
     1051
     1052        * job.c (construct_command_argv_internal): Remove " from
     1053        sh_chars_dos[].  Ignore an escaped backslash inside a string
     1054        quoted with "..".  This lifts the 4KB or 8KB command-line length
     1055        limitation imposed by the Windows shells when a command uses quoted
     1056        strings, because we now don't call the shell in that case.
     1057
     1058        * job.c (create_batch_file): Declare the counter of batch files
     1059        static, to avoid having 2 jobs using the same file name and
     1060        stepping on each other's toes.  When all 64K names are used up,
     1061        make one more loop looking for slots that became vacant.  This
     1062        avoids leaving behind temporary batch files in the temporary
     1063        directory, which happens frequently on a fast machine when using
     1064        parallel builds.
     1065        (reap_children): Add debug message for when removal of a temporary
     1066        batch file fails.
     1067
     10682012-10-29  Paul Smith  <psmith@gnu.org>
     1069
     1070        New feature: "load" directive for dynamically-loaded objects.
     1071
     1072        * NEWS: Document new "load" directive.
     1073        * doc/make.texi (Extending make): New chapter on extensions to make.
     1074        * configure.in: Check for dlopen/dlsym/dlerror and -ldl.
     1075        * Makefile.am (make_SOURCES): Add new file load.c.
     1076        * make.h: Prototype for load_file().
     1077        * main.c (main): Add "load" to .FEATURES if it's available.
     1078        * read.c (eval): Parse "load" and "-load" directives.
     1079
     10802012-09-29  Paul Smith  <psmith@gnu.org>
     1081
     1082        * configure.in: Require a new version of gettext (1.18.1).
     1083        Fixes Savannah bug #37307.
     1084
     10852012-09-09  Paul Smith  <psmith@gnu.org>
     1086
     1087        * configure.in (bsd_signal): Define _GNU_SOURCE, a la make.h.
     1088        Fixes Savannah bug #32247.
     1089
     1090        * remake.c (update_file_1): Force intermediate files to be
     1091        considered, not pruned, if their non-intermediate parent needs to
     1092        be remade.  Fixes Savannah bug #30653.
     1093
     1094        * job.c (construct_command_argv_internal): Keep the command line
     1095        on the heap for very long lines.  Fixes Savannah bug #36451.
     1096
     1097        * function.c (func_realpath): BSD realpath(3) doesn't fail if the
     1098        file does not exist: use stat.  Fixes Savannah bug #35919.
     1099
     1100        * file.c (expand_deps): Duplicate the current variable buffer, not
     1101        the old pointer.  Fixes Savannah bug #36925.
     1102
     1103        * read.c (eval): If we detect an initial UTF-8 BOM, skip it.
     1104        Fixes Savannah bug #36529.
     1105        (record_target_var): Remove unused variable "fname".
     1106        (eval): Use the correct pointer when adding to the variable buffer.
     1107        Fixes Savannah bug #36106.
     1108
     11092012-09-09  Eli Zaretskii  <eliz@gnu.org>
     1110
     1111        * read.c (unescape_char): Fix a thinko in the last change.
     1112
     11132012-09-09  Paul Smith  <psmith@gnu.org>
     1114
     1115        * default.c (default_variables): Use a correct default LIBPPATERNS
     1116        for MacOS.  Fixes Savannah bug #37197.
     1117
     1118        * read.c (record_files): Reset the default macro values if .POSIX
     1119        is set.  Fixes Savannah bug #37069.
     1120        (parse_file_seq): Break out of an infinite loop if we're not
     1121        making progress when parsing archive references.
     1122
     11232012-09-01  Eli Zaretskii  <eliz@gnu.org>
     1124
     1125        * README.W32.template: Update for job-server and Guile support.
     1126
     1127        * read.c (unescape_char): Advance 'p' after copying the unescaped
     1128        characters.  Otherwise the backslashes are incorrectly erased from
     1129        the original string.
     1130
     11312012-03-05  Paul Smith  <psmith@gnu.org>
     1132
     1133        Update copyright notices to use year ranges, as allowed by
     1134        clarifications in the GNU Maintainer's Manual.
     1135
     11362012-03-04  Paul Smith  <psmith@gnu.org>
     1137
     1138        * read.c (unescape_char): New function to remove escapes from a char.
     1139        (record_files): Call it on the dependency string to unescape ":".
     1140        Fixes Savannah bug #12126 and bug #16545.
     1141
     1142        * make.h (CSTRLEN): Determine the length of a constant string.
     1143        * main.c: Use the new macro.
     1144        * read.c: Ditto.
     1145        * variable.h: Ditto.
     1146        * function.c: Simplify checks for function alternatives.
     1147
     1148        * expand.c (variable_append): If the current set is local and the
     1149        next one is not a parent, then treat the next set as
     1150        local as well.  Fixes Savannah bug #35468.
     1151
     11522012-03-03  Paul Smith  <psmith@gnu.org>
     1153
     1154        * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for AIX 5.2+
     1155        nanosecond timestamps.  Fixes Savannah bug #32485.
     1156
     1157        Convert uses of `foo' for quoting to 'foo' to reflect changes in
     1158        the GNU Coding Standards.  Fixes Savannah bug #34530.
     1159
     1160        * job.c (construct_command_argv_internal): In oneshell we need to
     1161        break the SHELLFLAGS up for argv.  Fixes Savannah bug #35397.
     1162
     1163        * function.c (func_filter_filterout): Recompute the length of each
     1164        filter word in case it was compressed due to escape chars.  Don't
     1165        reset the string as it's freed.  Fixes Savannah bug #35410.
     1166
     1167        * misc.c (collapse_continuations): Only use POSIX-style
     1168        backslash/newline handling if the .POSIX target is set.
     1169        Addresses Savannah bug #16670 without backward-incompatibility.
     1170        * NEWS: Document behavior change.
     1171        * doc/make.texi (Splitting Lines): New section describing how to
     1172        use backslash/newline to split long lines.
     1173
     11742012-02-26  Paul Smith  <psmith@gnu.org>
     1175
     1176        * implicit.c (pattern_search): Check the stem length to avoid
     1177        stack overflows in stem_str.  Fixes Savannah bug #35525.
     1178
     11792012-02-03  Eli Zaretskii  <eliz@gnu.org>
     1180
     1181        * w32/subproc/sub_proc.c (proc_stdin_thread, proc_stdout_thread)
     1182        (proc_stderr_thread, process_pipe_io): Ifdef away unused
     1183        functions.
     1184
     1185        * w32/subproc/w32err.c (map_windows32_error_to_string) [_MSC_VER]:
     1186        Don't use TLS storage for szMessageBuffer.  Ifdef away special
     1187        code for handling Winsock error codes.  Make the function return a
     1188        `const char *'.  Suggested by Ozkan Sezer.  Fixes Savannah bug #34832.
     1189
     11902012-01-29  Paul Smith  <psmith@gnu.org>
     1191
     1192        * gmk-default.scm (to-string-maybe): Variables map to empty strings.
     1193        In Guile 2.0, (define ...) results in a variable object so make
     1194        sure that maps to an empty string in make.
     1195
     1196        * variable.c (parse_variable_definition): New POSIX assignment ::=
     1197        Take a struct variable to return more information after parsing.
     1198        (assign_variable_definition): New parse_variable_definition() call.
     1199        * variable.h: New declaration of parse_variable_definition().
     1200        * read.c (do_define): New parse_variable_definition() call.
     1201        (parse_var_assignment): Ditto.
     1202        (get_next_mword): Parse ::= as a variable assignment.
     1203        * doc/make.texi (Flavors): Describe the new ::= syntax.
     1204        * NEWS: Mention the ::= operator.
     1205
     1206        * variable.h (struct variable): Rearrange elts to reduce struct size.
     1207
     1208        * function.c (func_file): Create a new function, $(file ...)
     1209        * doc/make.texi (File Function): Document the $(file ..) function.
     1210        * NEWS: Announce it.
     1211
     1212        * gmk-default.scm (to-string-maybe): Use a more portable way to
     1213        test for unprintable characters.
     1214        * configure.in [GUILE]: Guile 1.6 doesn't have pkg-config
     1215        * build_w32.bat: Ditto.
     1216
     12172012-01-28  Eli Zaretskii  <eliz@gnu.org>
     1218
     1219        * config.h.W32.template: Update from config.h.in.
     1220
     1221        Support a Windows build with Guile.
     1222
     1223        * README.W32.template: Update with instructions for building with
     1224        Guile.
     1225
     1226        * build_w32.bat: Support building with Guile.
     1227
     1228        * make.h [HAVE_STDINT_H]: Include stdint.h.
     1229
     1230        * main.c (main, clean_jobserver): Move declarations of variables
     1231        not used in the WINDOWS32 build to the #else branch, to avoid
     1232        compiler warnings.
     1233
     1234        Fix failures on MS-Windows when Make's standard handles are invalid.
     1235        This can happen when Make is invoked from a GUI application.
     1236
     1237        * w32/subproc/sub_proc.c (process_init_fd): Don't dereference
     1238        pproc if it is a NULL pointer.
     1239        (process_begin, process_cleanup): Don't try to close pipe handles
     1240        whose value is INVALID_HANDLE_VALUE.
     1241        (process_easy): Initialize hIn, hOut, and hErr to
     1242        INVALID_HANDLE_VALUE.  If DuplicateHandle fails with
     1243        ERROR_INVALID_HANDLE, duplicate a handle for the null device
     1244        instead of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE or
     1245        STD_ERROR_HANDLE.  Don't try to close pipe handles whose value is
     1246        INVALID_HANDLE_VALUE.
     1247
     1248        * function.c (windows32_openpipe): Initialize hIn and hErr to
     1249        INVALID_HANDLE_VALUE.  If DuplicateHandle fails with
     1250        ERROR_INVALID_HANDLE, duplicate a handle for the null device
     1251        instead of STD_INPUT_HANDLE or STD_ERROR_HANDLE.  Fix indentation.
     1252        Don't try to close handles whose value is INVALID_HANDLE_VALUE.
     1253
     12542012-01-25  Eli Zaretskii  <eliz@gnu.org>
     1255
     1256        * function.c (define_new_function): Fix format strings in calls to
     1257        `fatal'.
     1258
     12592012-01-17  Paul Smith  <psmith@gnu.org>
     1260
     1261        * guile.c (func_guile): Handle NULL returns from Guile.
     1262
     12632012-01-16  Paul Smith  <psmith@gnu.org>
     1264
     1265        * make.h (PATH_SEPARATOR_CHAR): Allow resetting for crosscompiling
     1266        for Windows.  Patch by Chris Sutcliffe <ir0nh34d@gmail.com>
     1267        Fixes Savannah bug #34818.
     1268
     12692012-01-15  Paul Smith  <psmith@gnu.org>
     1270
     1271        * variable.h: Prototype an interface for defining new make functions.
     1272        * function.c (define_new_function): Define it.
     1273        (func_guile): Remove the "guile" function.
     1274        (function_table_init): Ditto.
     1275        * guile.c (func_guile): Add the "guile" function here.
     1276        (setup_guile): Call define_new_function() to define it.
     1277        (guile_eval_string): Obsolete.
     1278
     1279        * all: Update copyright notices.
     1280
     12812012-01-12  Paul Smith  <psmith@gnu.org>
     1282
     1283        Support GNU Guile as an embedded extension language for GNU make.
     1284
     1285        * NEWS: Note the new Guile capability.
     1286        * Makefile.am (EXTRA_DIST, make_SOURCES): Add new guile source files.
     1287        (AM_CFLAGS): Add Guile compiler flags.
     1288        (guile): Add a rule for converting default SCM into a C header.
     1289        * configure.in: Add support for --with-guile.
     1290        Also, convert the entire file to properly escaped autoconf m4, and
     1291        utilize newer features such as AS_IF() and AS_CASE().
     1292        * doc/make.texi (Guile Function): Document the GNU guile integration.
     1293        * make.h (guile_eval_string, guile_boot): Prototypes for Guile.
     1294        * main.c (main): Run guile_boot() to handle main().
     1295        (real_main): All the previous content of main() is here.
     1296        (real_main): Add "guile" to the .FEATURES variable.
     1297        * function.c (func_guile): Call Guile.
     1298        * guile.c: New file implementing GNU make integration with GNU Guile.
     1299        * gmk-default.scm: The integration of GNU make with Guile uses
     1300        Guile itself for much of the parsing and conversion of return
     1301        types, etc.  This implementation is embedded into GNU make.
     1302        * config.h-vms.template: Disable Guile support.
     1303        * config.h.W32.template: Ditto.
     1304        * configh.dos.template: Ditto.
     1305        * config.ami.template: Ditto.
     1306        * makefile.vms: Add new Guile files.
     1307        * Makefile.DOS.template: Ditto.
     1308        * Makefile.ami: Ditto.
     1309        * NMakefile.template: Ditto.
     1310        * SMakefile.template: Ditto.
     1311        * build_w32.bat: Ditto.
     1312        * dosbuild.bat: Ditto.
     1313        * make_msvc_net2001.vcproj: Ditto.
     1314
     13152011-11-15  Paul Smith  <psmith@gnu.org>
     1316
     1317        * main.c (main): Use %ld when printing DWORD values.
     1318        * job.c (new_job): Ditto.
     1319        * w32/include/sub_proc.h: Use const.
     1320        * w32/subproc/sub_proc.c (open_jobserver_semaphore): Use const.
     1321        Fixes Savannah bug #34830.  Changes suggested by Ozkan Sezer.
     1322
     1323        * configure.in (MAKE_JOBSERVER): Enable jobserver on W32 systems.
     1324        * config.h.W32.template (MAKE_JOBSERVER): Ditto.
     1325
     13262011-11-14  Paul Smith  <psmith@gnu.org>
     1327
     1328        * read.c (eval): parse_file_seq() might shorten the string due to
     1329        backslash removal.  Start parsing again at the colon.
     1330        Fixes Savannah bug #33399.
     1331
     13322011-11-13  Paul Smith  <psmith@gnu.org>
     1333
     1334        * file.c (file_timestamp_cons): Match up data types to avoid warnings.
     1335        * filedef.h: Ditto.
     1336        * misc.c (concat): Ditto.
     1337        * read.c (eval): Assign value to avoid warnings.
     1338        * function.c (func_shell_base): Use fork() instead of vfork() to
     1339        avoid warnings.
     1340        * make.h (INTEGER_TYPE_SIGNED): Use <=0 to avoid warnings.
     1341        Fixes Savannah bug #34608.
     1342
     1343        * job.c (construct_command_argv): Remove _p.
     1344        (construct_command_argv_internal): Remove _ptr.
     1345        Fixes Savannah bug #32567.
     1346
     1347        * main.c (clean_jobserver): Don't write the free token to the pipe.
     1348        Change suggested by Tim Newsome <tnewsome@aristanetworks.com>
     1349
     1350        * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for Darwin.
     1351        * filedef.h (FILE_TIMESTAMP_STAT_MODTIME): Ditto.
     1352        Patch provided by Troy Runkel <Troy.Runkel@mathworks.com>
     1353
     13542011-10-11  Troy Runkel  <Troy.Runkel@mathworks.com>
     1355
     1356        * config.h.W32: Enable job server support for Windows.
     1357        * main.c [WINDOWS32]: Include sub_proc.h
     1358        (main): Create a named semaphore to implement the job server.
     1359        (clean_jobserver): Free the job server semaphore when make is finished.
     1360        * job.c [WINDOWS32]: Define WAIT_NOHANG
     1361        (reap_children): Support non-blocking wait for child processes.
     1362        (free_child): Release job server semaphore when child process finished.
     1363        (job_noop): Don't define function on Windows.
     1364        (set_child_handler_action_flags): Don't define function on Windows.
     1365        (new_job): Wait for job server semaphore or child process termination.
     1366        (exec_command): Pass new parameters to process_wait_for_any.
     1367        * w32/include/sub_proc.h [WINDOWS32]: New/updated EXTERN_DECL entries.
     1368        * w32/subproc/sub_proc.c [WINDOWS32]: Added job server implementation.
     1369        (open_jobserver_semaphore): Open existing job server semaphore by name.
     1370        (create_jobserver_semaphore): Create new job server named semaphore.
     1371        (free_jobserver_semaphore): Close existing job server semaphore.
     1372        (acquire_jobserver_semaphore): Decrement job server semaphore count.
     1373        (release_jobserver_semaphore): Increment job server semaphore count.
     1374        (has_jobserver_semaphore): Returns whether job server semaphore exists.
     1375        (get_jobserver_semaphore_name): Returns name of job server semaphore.
     1376        (wait_for_semaphore_or_child_process): Wait for either the job server
     1377        semaphore to become signalled or a child process to terminate.
     1378        (process_wait_for_any_private): Support for non-blocking wait for child.
     1379        (process_wait_for_any): Added support for non-blocking wait for child.
     1380        (process_file_io): Pass new parameters to process_wait_for_any_private.
     1381
     13822011-09-18  Paul Smith  <psmith@gnu.org>
     1383
     1384        * main.c (main): If we're re-exec'ing and we're the master make,
     1385        then restore the job_slots value so it goes back into MAKEFLAGS
     1386        properly.  See Savannah bug #33873.
     1387
     1388        * remake.c (library_search): STD_DIRS is computed when other
     1389        static vars like buflen etc. are computed, so it must be static
     1390        as well.  See Savannah bug #32511.
     1391
     13922011-09-16  Paul Smith  <psmith@gnu.org>
     1393
     1394        * maintMakefile (do-po-update): Apparently we have to avoid
     1395        certificate checks on the http://translationproject.org site now.
     1396
     13972011-09-12  Paul Smith  <psmith@gnu.org>
     1398
     1399        * read.c (eval): Ensure exported variables are defined in the
     1400        global scope.  Fixes Savannah bug #32498.
     1401
     14022011-09-11  Paul Smith  <psmith@gnu.org>
     1403
     1404        * Makefile.am (dist-hook): Remove w32/Makefile and .deps/ from the
     1405        dist file.  Fixes Savannah bug #31489.
     1406
     1407        * doc/make.texi (Complex Makefile): Add a hint about using
     1408        #!/usr/bin/make (for Savannah support request #106459)
     1409
     14102011-09-02  Paul Smith  <psmith@gnu.org>
     1411
     1412        * remake.c (touch_file): If we have both -n and -t, -n takes
     1413        precedence.  Patch from Michael Witten <mfwitten@gmail.com>
     1414
     14152011-08-29  Paul Smith  <psmith@gnu.org>
     1416
     1417        * expand.c (variable_expand_string): Always allocate a new buffer
     1418        for a string we're expanding.  The string we're working on can get
     1419        freed while we work on it (for example if it's the value of a
     1420        variable which modifies itself using an eval operation).
     1421        See Savannah patch #7534 for the original report by Lubomir Rintel.
     1422
     14232011-06-12  Paul Smith  <psmith@gnu.org>
     1424
     1425        * read.c (parse_file_seq): Move the check for empty members out of
     1426        the loop so we can go to the next member properly.
     1427        Another fix for Savannah bug #30612.
     1428
     1429        * config.h-vms.template: Newer versions of VMS have strncasecmp()
     1430        Patch provided by: Hartmut Becker <becker.ismaning@freenet.de>
     1431
     14322011-05-07  Paul Smith  <psmith@gnu.org>
     1433
     1434        * expand.c (variable_append): Add a LOCAL argument to track
     1435        whether this is the first invocation or not.  If it's not and
     1436        private_var is set, then skip this variable and try the next one.
     1437        Fixes Savannah bug #32872.
     1438
     1439        * read.c (parse_file_seq): Ensure existence checks use glob().
     1440
     14412011-05-07  Eli Zaretskii  <eliz@gnu.org>
     1442
     1443        * job.c (construct_command_argv_internal): Don't assume shellflags
     1444        is always non-NULL.  Escape-protect characters special to the
     1445        shell when copying the value of SHELL into new_line.  Fixes
     1446        Savannah bug #23922.
     1447
     14482011-05-02  Paul Smith  <psmith@gnu.org>
     1449
     1450        * doc/make.texi (Special Variables): Add documentation for the new
     1451        words in .FEATURES.  Fixes Savannah bug #32058.
     1452        (Flavor Function): Rewrite the section on the flavor function.
     1453        Fixes Savannah bug #31582.
     1454
     1455        * function.c (func_sort): Use the same algorithm to count the
     1456        number of words we will get after the split, as we use to split.
     1457        Based on a patch from Matthias Hopf.  Fixes Savannah bug #33125.
     1458
     1459        * make.h: Make global variable stack_limit extern.
     1460        Fixes Savannah bug #32753.
     1461
     14622011-05-01  Paul Smith  <psmith@gnu.org>
     1463
     1464        * read.c (parse_file_seq): Don't try to invoke glob() unless there
     1465        are potential wildcard characters in the filename.  Performance
     1466        enhancement suggested by Michael Meeks <michael.meeks@novell.com>
     1467
     14682011-04-29 Boris Kolpackov  <boris@codesynthesis.com>
     1469
     1470        * read.c (eval_makefile): Delay caching of the file name until after
     1471        all the expansions and searches.
     1472
     14732011-04-17  David A. Wheeler  <dwheeler@dwheeler.com>
     1474
     1475        * doc/make.texi (Reading Makefiles): Document "!=".
     1476        (Setting): Ditto.
     1477        (Features): Ditto.
     1478        * variable.h (enum variable_flavor): New type "f_shell".
     1479        * variable.c (shell_result): Send a string to the shell and store
     1480        the output.
     1481        (do_variable_definition): Handle f_shell variables: expand the
     1482        value, then send it to the shell and store the result.
     1483        (parse_variable_definition): Parse "!=" shell assignments.
     1484        * read.c (get_next_mword): Treat "!=" as a varassign word.
     1485        * function.c (fold_newlines): If trim_newlines is set remove all
     1486        trailing newlines; otherwise remove only the last newline.
     1487        (func_shell_base): Move the guts of the shell function here.
     1488        (func_shell): Call func_shell_base().
     1489
     14902011-02-21  Paul Smith  <psmith@gnu.org>
     1491
     1492        * strcache.c (various): Increase performance based on comments
     1493        from Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.  Stop looking for
     1494        a buffer when we find the first one that fits, not the best fit.
     1495        If there is not enough free space in a buffer move it to a
     1496        separate list so we don't have to walk it again.
     1497        * make.h (NDEBUG): Turn off asserts unless maintainer mode is set.
     1498        (strcache_add_len, strcache_setbufsize): Use unsigned length/size.
     1499        * maintMakefile (AM_CPPFLAGS): Enable MAKE_MAINTAINER_MODE.
     1500
     1501        * remake.c (complain): Move translation lookups closer to use.
     1502
     15032011-02-13  Paul Smith  <psmith@gnu.org>
     1504
     1505        * doc/make.texi: Clean up references to "static" variables and
     1506        semicolon errors.  Patch from Michael Witten <mfwitten@gmail.com>.
     1507
     15082010-12-27  Paul Smith  <psmith@gnu.org>
     1509
     1510        * make.1: Update the header/footer info in the man page.
     1511
     15122010-11-28  Paul Smith  <psmith@gnu.org>
     1513
     1514        * read.c (record_target_var): Don't reset v if it's the same as
     1515        the global version.  Fixes Savannah bug #31743.
     1516
     15172010-11-06  Paul Smith  <psmith@gnu.org>
     1518
     1519        * variable.c (print_auto_variable): Print auto variables; ignore others.
     1520        (print_noauto_variable): Print non-auto variables; ignore others.
     1521        (print_variable_set): Allow the caller to select which type to print.
     1522        (print_target_variables): Show all the non-auto variables for a target.
     1523
     1524        * default.c (install_default_suffix_rules): Initialize recipe_prefix.
     1525        * rule.c (install_pattern_rule): Ditto.
     1526        * read.c (record_files): Pass in the current recipe prefix.  Remember
     1527        it in the struct command for these targets.
     1528        (eval): Remember the value of RECIPEPREFIX when we start parsing.
     1529        Do not remove recipe prefixes from the recipe here: we'll do it later.
     1530        * job.c (start_job_command): Remove recipe prefix characters early,
     1531        before we print the output or chop it up.
     1532        * file.c (print_file): If recipe_prefix is not standard, reset it
     1533        in -p output.  Assign target variables in -p output as well.
     1534
     1535        * commands.c (chop_commands): Max command lines is USHRT_MAX.
     1536        Set any_recurse as a bitfield.
     1537        * make.h (USHRT_MAX): Define if not set.
     1538
     15392010-10-27  Paul Smith  <psmith@gnu.org>
     1540
     1541        * commands.h (struct commands): Rearrange to make better use of
     1542        memory.  Add new recipe_prefix value.
     1543
     15442010-10-26  Paul Smith  <psmith@gnu.org>
     1545
     1546        * doc/make.texi (Setting): Document the treatment of
     1547        backslash-newline in variable values.
     1548        * misc.c (collapse_continuations): Do not collapse multiple
     1549        backslash-newlines into a single space.  Fixes Savannah bug #16670.
     1550
     15512010-08-29  Paul Smith  <psmith@gnu.org>
     1552
     1553        * doc/make.texi (Implicit Variables): Document LDLIBS and LOADLIBES.
     1554        Fixes Savannah bug #30807.
     1555        (Instead of Execution): Mention that included makefiles are still
     1556        rebuilt even with -n.  Fixes Savannah bug #30762.
     1557
     1558        * configure.in: Bump to 3.82.90.
     1559
     1560        * make.h: Add trace_flag variable.
     1561        * main.c (switches): Add --trace option.
     1562        (trace_flag): Declare variable.
     1563        * job.c (start_job_command): Show recipe if trace_flag is set.
     1564        (new_job): Show trace messages if trace_flag is set.
     1565        * doc/make.texi (Options Summary): Document the new --trace option.
     1566        * make.1: Add --trace documentation.
     1567        * NEWS: Mention --trace.
     1568
     1569        * job.c (child_error): Show recipe filename/linenumber on error.
     1570        Also show "(ignored)" when appropriate even for signals/coredumps.
     1571        * NEWS: Mention file/linenumber change.
     1572
     1573        * main.c (main): Print version info when DB_BASIC is set.
     1574
     1575        * job.c (construct_command_argv_internal): If shellflags is not
     1576        set, choose an appropriate default value.  Fixes Savannah bug #30748.
     1577
     15782010-08-27  Eli Zaretskii  <eliz@gnu.org>
     1579
     1580        * variable.c (define_automatic_variables) [__MSDOS__ || WINDOWS32]:
     1581        Remove trailing backslashes in $(@D), $(<D), etc., for consistency
     1582        with forward slashes.  Fixes Savannah bug #30795.
     1583
     15842010-08-13  Paul Smith  <psmith@gnu.org>
     1585
     1586        * NEWS: Accidentally forgot to back out the sorted wildcard
     1587        enhancement in 3.82, so update NEWS.
     1588        Also add NEWS about the error check for explicit and pattern
     1589        targets in the same rule, added to 3.82.
     1590
     1591        * main.c (main): Add "oneshell" to $(.FEATURES) (forgot to add
     1592        this in 3.82!)
     1593
     1594        * read.c (parse_file_seq): Fix various errors parsing archives
     1595        with multiple objects in the parenthesis, as well as wildcards.
     1596        Fixes Savannah bug #30612.
     1597
     15982010-08-10  Paul Smith  <psmith@gnu.org>
     1599
     1600        * main.c (main): Expand MAKEFLAGS before adding it to the
     1601        environment when re-exec'ing.  Fixes Savannah bug #30723.
     1602
     16032010-08-07  Eli Zaretskii  <eliz@gnu.org>
     1604
     1605        * w32/subproc/build.bat: Make all 3 cl.exe compile command lines
     1606        use the same /I switches.  Fixes Savannah bug #30662.
     1607
     1608        * function.c (func_shell) [WINDOWS32]: Reset just_print_flag
     1609        around the call to construct_command_argv, so that a temporary
     1610        batch file _is_ created when needed for $(shell).
     1611        Fixes Savannah bug #16362.
     1612
     16132010-08-07 Juan Manuel Guerrero  <juan.guerrero@gmx.de>
     1614
     1615        * configh.dos.template (HAVE_STRNCASECMP): Define.
     1616
    116172010-07-28  Paul Smith  <psmith@gnu.org>
    21618
     
    39965612
    39975613
    3998 See ChangeLog.2, available in the CVS repository at:
    3999 
    4000         http://savannah.gnu.org/cvs/?group=make
     5614See ChangeLog.2, available in the Git repository at:
     5615
     5616        http://git.savannah.gnu.org/cgit/make.git/tree/
    40015617
    40025618for earlier changes.
    40035619
    40045620
    4005 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free
    4006 Software Foundation, Inc.
     5621Copyright (C) 2000-2013 Free Software Foundation, Inc.
    40075622This file is part of GNU Make.
    40085623
Note: See TracChangeset for help on using the changeset viewer.