Imported Upstream version 4.1 upstream/4.1
authorJinWang An <jinwang.an@samsung.com>
Tue, 28 Dec 2021 06:15:18 +0000 (15:15 +0900)
committerJinWang An <jinwang.an@samsung.com>
Tue, 28 Dec 2021 06:15:18 +0000 (15:15 +0900)
198 files changed:
AUTHORS
ChangeLog [deleted file]
Makefile.DOS
Makefile.am
Makefile.ami
Makefile.in
NEWS
NMakefile
README
README.Amiga
README.DOS
README.OS2
README.VMS
README.W32
README.customs
SMakefile
acinclude.m4
aclocal.m4
amiga.c
amiga.h
ar.c
arscan.c
build.sh.in
build_w32.bat
commands.c
commands.h
config.ami
config.h-vms
config.h.W32
config.h.in
config/ChangeLog [deleted file]
config/Makefile.am
config/Makefile.in
config/ar-lib [new file with mode: 0755]
config/compile
config/config.guess
config/config.sub
config/depcomp
config/dospaths.m4
config/install-sh
config/mdate-sh
config/missing
config/texinfo.tex
configh.dos
configure
configure.ac
configure.bat
debug.h
default.c
dep.h
dir.c
doc/Makefile.am
doc/Makefile.in
doc/fdl.texi
doc/make.info
doc/make.info-1
doc/make.info-2
doc/make.texi
doc/stamp-vti
doc/version.texi
dosbuild.bat
expand.c
file.c
filedef.h
function.c
getloadavg.c
getopt.c
getopt.h
getopt1.c
gettext.h
glob/ChangeLog
glob/Makefile.in
glob/glob.c
gmk-default.scm
gnumake.h
guile.c
hash.c
implicit.c
job.c
job.h
load.c
loadapi.c
main.c
make.1
make_msvc_net2003.vcproj
makefile.com
makefile.vms
makeint.h
misc.c
output.c
output.h
po/ChangeLog [deleted file]
po/Makevars
po/POTFILES.in
po/be.gmo
po/be.po
po/cs.gmo
po/cs.po
po/da.gmo
po/da.po
po/de.gmo
po/de.po
po/es.gmo
po/es.po
po/fi.gmo
po/fi.po
po/fr.gmo
po/fr.po
po/ga.gmo
po/ga.po
po/gl.gmo
po/gl.po
po/he.gmo
po/he.po
po/hr.gmo
po/hr.po
po/id.gmo
po/id.po
po/it.gmo
po/it.po
po/ja.gmo
po/ja.po
po/ko.gmo
po/ko.po
po/lt.gmo
po/lt.po
po/make.pot
po/nl.gmo
po/nl.po
po/pl.gmo
po/pl.po
po/pt_BR.gmo
po/pt_BR.po
po/ru.gmo
po/ru.po
po/sv.gmo
po/sv.po
po/tr.gmo
po/tr.po
po/uk.gmo
po/uk.po
po/vi.gmo
po/vi.po
po/zh_CN.gmo
po/zh_CN.po
read.c
remake.c
remote-cstms.c
remote-stub.c
rule.c
rule.h
signame.c
strcache.c
subproc.bat
tests/ChangeLog [deleted file]
tests/ChangeLog.1 [new file with mode: 0644]
tests/NEWS
tests/README
tests/config-flags.pm [new file with mode: 0644]
tests/config-flags.pm.in [new file with mode: 0644]
tests/config_flags_pm.com [new file with mode: 0755]
tests/mkshadow
tests/run_make_tests.com [new file with mode: 0755]
tests/run_make_tests.pl
tests/scripts/features/archives
tests/scripts/features/load
tests/scripts/features/loadapi
tests/scripts/features/output-sync
tests/scripts/functions/file
tests/scripts/misc/utf8 [new file with mode: 0644]
tests/scripts/options/dash-q
tests/scripts/variables/GNUMAKEFLAGS
tests/scripts/variables/special
tests/test_driver.pl
variable.c
variable.h
version.c
vmsdir.h
vmsfunctions.c
vmsify.c
vmsjobs.c
vpath.c
w32/Makefile.am
w32/Makefile.in
w32/compat/dirent.c
w32/compat/posixfcn.c
w32/include/dirent.h
w32/include/dlfcn.h
w32/include/pathstuff.h
w32/include/sub_proc.h
w32/include/w32err.h
w32/pathstuff.c
w32/subproc/NMakefile
w32/subproc/build.bat
w32/subproc/misc.c
w32/subproc/proc.h
w32/subproc/sub_proc.c
w32/subproc/w32err.c

diff --git a/AUTHORS b/AUTHORS
index 14ae479ccb401b69bcffb9d710585d03a9f460c7..653988194c66536823c3217bb0ef7ed120046027 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -72,7 +72,7 @@ With suggestions/comments/bug reports from a cast of ... well ...
 hundreds, anyway :)
 
 -------------------------------------------------------------------------------
-Copyright (C) 1997-2013 Free Software Foundation, Inc.
+Copyright (C) 1997-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index 5fcf273..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,5633 +0,0 @@
-2013-10-09  Paul Smith  <psmith@gnu.org>
-
-       Version 4.0 released.
-
-       * configure.ac: Updated for the release.
-       * NEWS: Updated for the release.
-
-       * maintMakefile (tag-release): New target to add a Git tag.
-       * read.c (eval): Typo fix.
-       * ChangeLog.1: Typo fixes.
-       * w32/subproc/sub_proc.c (process_cleanup): Typo fix.
-
-2013-10-07  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/compat/posixfcn.c (tmpfile): Move declaration of h before
-       the first executable statement.  Reported by Gisle Vanem
-       <gvanem@yahoo.no>.
-
-2013-10-05  Paul Smith  <psmith@gnu.org>
-
-       * makeint.h (MAP_USERFUNC): A new map type for function names.
-       * main.c (initialize_stopchar_map): Set up the function name map.
-
-       * gnumake.h (gmk_func_ptr): Define a type for function pointers.
-       (gmk_add_function): Convert the last argument to FLAGS.
-       (GMK_FUNC_*): Define flags for the function.  Change the default
-       behavior to "expand" since that's the most common one.
-
-       * function.c (function_table_entry): Use new function pointer type.
-       (lookup_function): Accept any valid function name character based
-       on the MAP_USERFUNC values.
-       (define_new_function): Use the new calling signature.  Verify that
-       registered functions have valid names.
-
-       * guile.c (guile_gmake_setup): Use new calling signatures.
-       * loadapi.c (gmk_add_function): Ditto.
-       * variable.h (define_new_function): Ditto.
-
-       * doc/make.texi (Loaded Object API): Make the registered function
-       API documentation more clear.
-
-2013-10-03  Eli Zaretskii  <eliz@gnu.org>
-
-       * function.c (abspath): Reset root_len to one for Cygwin only when
-       HAVE_DOS_PATHS is defined.  Suggested by Christopher Faylor.
-
-2013-10-02  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/compat/posixfcn.c (tmpfile): New function, a replacement for
-       the Windows libc version.
-
-       Fix $abspath on Cygwin when HAVE_DOS_PATHS is in effect.
-       * function.c (IS_ABSOLUTE) [__CYGWIN__]: Special definition for
-       Cygwin.
-       (abspath) [__CYGWIN__]: Reset root_len to 1 if the absolute file
-       name has the Posix /foo/bar form.
-       [HAVE_DOS_PATHS]: Use root_len instead of hard-coded 2.
-
-2013-10-01  Paul Smith  <psmith@gnu.org>
-
-       * configure.ac: Update version to 3.99.93.
-       * NEWS: Ditto.
-
-2013-09-30  Paul Smith  <psmith@gnu.org>
-
-       * guile.c: Portability fixes for Guile 1.8.
-
-2013-09-29  Paul Smith  <psmith@gnu.org>
-
-       * output.c (output_dump): Always write Enter/Leave messages to stdio.
-       (log_working_directory): This now always writes to stdio, so we
-       don't need the struct output parameter anymore.
-       (output_start): Show the working directory when output_sync is not
-       set or is recursive.
-       * main.c (main): Ensure the special "already shown Enter message"
-       token is removed from MAKE_RESTARTS before the user can see it.
-       * function.c (func_shell_base): If the output_context stderr
-       exists but is invalid, write to the real stderr.
-       Fixes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
-
-       * output.c: Guard unistd.h inclusion, add io.h.
-       * gnumake.h: Move GMK_EXPORT before the declarations.
-       * make_msvc_net2003.vcproj: Add missing files.
-       Changes for MSVC suggested by Gerte Hoogewerf <g.hoogewerf@gmail.com>
-
-       * function.c (func_shell_base) [EMX]: Fix EMX support for output-sync.
-       * job.c (child_execute_job) [EMX]: Ditto.
-       * job.h (child_execute_job) [EMX]: Ditto.
-       * w32/compat/posixfcn.c: Invert the test for NO_OUTPUT_SYNC.
-
-       * guile.c (GSUBR_TYPE): Pre-2.0 Guile doesn't provide a typedef
-       for gsubr pointers.  Create one.
-       (guile_define_module): Use it.
-       (internal_guile_eval): Force UTF-8 encoding for Guile strings.
-
-       * main.c (main): Clear GNUMAKEFLAGS after parsing, to avoid
-       proliferation of options.
-       * NEWS: Document it.
-       * doc/make.texi (Options/Recursion): Ditto.
-
-2013-09-23  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/compat/posixfcn.c: Fix the forgotten OUTPUT_SYNC conditional.
-
-       * job.h: Ditto, but in a comment.
-
-2013-09-22  Paul Smith  <psmith@gnu.org>
-
-       * configure.ac: Update version to 3.99.92.
-       * NEWS: Ditto.
-
-       * implicit.c (pattern_search): After second expansion be sure to
-       handle order-only markers inside the expansion properly.
-       Fixes Savannah bug #31155.
-
-       * guile.c (guile_define_module): Technically a void* cannot
-       contain a pointer-to-function and some compilers warn about this.
-       Cast the function pointers.
-       * load.c (load_object): Ditto.
-
-       * read.c (eval): If load_file() returns -1, don't add this to the
-       "to be rebuilt" list.
-       * doc/make.texi (load Directive): Document it.
-
-       * guile.c (guile_gmake_setup): Don't initialize Guile so early.
-       (func_guile): Lazily initialize Guile the first time the $(guile ..)
-       function is invoked.  Guile can steal file descriptors which
-       confuses our jobserver FD checking, so we don't want to initialize
-       it before we have to.
-
-       VMS port updates by Hartmut Becker <becker.ismaning@freenet.de>
-
-       * makefile.com: Add output to the filelist.
-       * output.c (va_copy): Add an implementation of this macro for VMS.
-       * commands.c: Ensure filedef.h is #included before dep.h.
-       * dir.c: Ditto.
-       * file.c: Ditto.
-       * guile.c: Ditto.
-       * main.c: Ditto.
-       * misc.c: Ditto.
-       * read.c: Ditto.
-       * rule.c: Ditto.
-       * variable.c: Ditto.
-       * readme.vms: Renamed to README.VMS and updates for this release.
-       * Makefile.am: Ditto.
-       * NEWS: Ditto.
-       * README.template: Ditto.
-       * Makefile.DOS.template: Ditto.
-
-2013-09-21  Paul Smith  <psmith@gnu.org>
-
-       * maintMakefile (check-alt-config): Create a target to test
-       alternative configurations.  Each one will build make with a
-       different configuration then run the test suite.
-
-       Invert the output-sync #define to NO_OUTPUT_SYNC
-
-       * configure.ac: Don't set OUTPUT_SYNC.
-       * makeint.h: Ditto.
-       * main.c: Use NO_OUTPUT_SYNC instead of OUTPUT_SYNC.
-       * output.c: Ditto.
-       * output.h: Ditto.
-       * job.h: Ditto.
-       * job.c: Ditto.
-       * config.ami.template: Set NO_OUTPUT_SYNC.
-       * config.h-vms.template: Ditto.
-       * config.h.W32.template: Ditto.
-       * configh.dos.template: Ditto.
-
-       Output generated while reading makefiles should be synced.
-
-       * main.c (make_sync): Define a context for syncing while reading
-       makefiles and other top-level operations.
-       (main): If we request syncing, enable it while we are parsing
-       options, reading makefiles, etc. to capture that output.  Just
-       before we start to run rules, dump the output if any.
-       (die): Dump any output we've been syncing before we die
-       * output.h (OUTPUT_SET): Disable output_context if not syncout.
-
-       Stderr generated from shell functions in recipes should be synced.
-
-       * job.h (FD_STDIN, FD_STDOUT, FD_STDERR): Create new macros to
-       avoid magic numbers.
-       (child_execute_job): Take a FD for stderr.
-       * job.c (child_execute_job): Handle STDERR FD's in addition to
-       stdin and stdout.
-       (start_job_command): Call child_execute_job() with the new STDERR
-       parameter.  Instead of performing the dup() here, send it to
-       child_execute_job() where it's already being done.
-       * function.c (func_shell_base): Pass the OUTPUT_CONTEXT stderr to
-       child_execute_job() if it's set, otherwise FD_STDERR.
-       * main.c (main): Pass FD_STDERR to child_execute_job().
-
-2013-09-19  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Set MAKE_RESTARTS to negative before re-exec if
-       we've already generated an "Entering" message.  If we are started
-       and notice that MAKE_RESTARTS is negative, assume we already wrote
-       "Entering" and don't write it again.
-
-2013-09-18  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Set starting_directory before we write any
-       errors.  Fixes Savannah bug #40043.
-
-2013-09-16  Eli Zaretskii  <eliz@gnu.org>
-
-       * output.c [WINDOWS32]: Include windows.h and sub_proc.h, to avoid
-       compiler warnings for CLOSE_ON_EXEC.
-
-2013-09-16  Paul Smith  <psmith@gnu.org>
-
-       * configure.ac: Update version to 3.99.91.
-       * NEWS: Ditto.
-
-2013-09-15  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Error Messages): Add a bit more info to the
-       section on static pattern errors, since they're common.
-       Fixes Savannah bug #31326.
-
-       * read.c (eval_makefile): If the file open fails with an
-       unrecoverable error, stop now rather than trying to make it.
-       Fixes Savannah bug #27374.
-
-       * main.c (main): Perform the validation of the jobserver FDs
-       early, before we read makefiles, to ensure that something hasn't
-       opened and used those FDs for some other reason.
-       Fixes Savannah bug #39934.
-
-       * main.c (main): Don't set MAKEFLAGS in the environment when we
-       restart.  We have the original command line flags so keep the
-       original MAKEFLAGS settings as well.
-       Fixes Savannah bug #39203.
-
-2013-09-14  Paul Smith  <psmith@gnu.org>
-
-       * main.c (decode_debug_flags): Add support for the "n" flag to
-       disable all debugging.
-       * make.1: Document the "n" (none) flag.
-       * doc/make.texi (Options Summary): Ditto.
-       * NEWS: Ditto.
-       Fixes Savannah bug #35248.
-
-       * misc.c (close_stdout): Move to output.c.
-       * main.c (main): Move atexit call to output_init().
-       * makeint.h: Remove close_stdout() declaration.
-       * output.c (output_init): Add close_stdout at exit only if it's open.
-       Fixes Savannah bug #33134.  Suggested by David Boyce <dsb@boyski.com>.
-
-2013-09-14  Paul Smith  <psmith@gnu.org>
-
-       * misc.c (set_append_mode, open_tmpfd, open_tmpfile): Move to output.c.
-       * misc.h: Ditto.
-       * output.h: Ditto.
-       * main.c (main): Move stdio init into output.c:output_init().
-       Change open_tmpfile() to output_tmpfile().
-       * output.c: Rename open_*() to output_*().  set_append_mode() and
-       open_tmpfd() are static.
-       (_outputs, log_working_directory): Accept a struct output and
-       print to that rather than the global context.
-       (output_dump): In recurse mode print enter/leave once for the
-       whole makefile.
-       (output_init): Initialize this processes stdio as well as child's.
-
-       * vmsjobs.c: Reformat to be closer to convention.
-
-2013-09-12  Paul Smith  <psmith@gnu.org>
-
-       Rework output to handle synchronization and directory logging more
-       reliably.
-
-       * output.c: New file.  Implement lazy synchronization and
-       directory logging so that we manage them "just in time", and the
-       destination of the output is set via a global state variable.
-       * output.h: New file.
-       * function.c (func_shell_base): Ensure the output is set up before
-       running a shell command, in case it writes to stderr.
-       (func_error): Use outputs() to generate output.
-       * job.h (struct child): Add struct output to track the child's output.
-       * job.c: Use struct output in the child structure to track output.
-       (child_out, sync_init, assign_child_tempfiles, pump_from_tmp)
-       (acquire_semaphore, release_semaphore, sync_output): Move most of
-       the output_sync handling to output.c.
-       (child_error): Set output, then use simple message() and error()
-       not _s versions.
-       * main.c (log_working_directory): Moved to output.c
-       (trace_option, decode_trace_flags) Remove.  Remove support for
-       different trace modes; we don't use it anymore.
-       (die) Invoke output_close() before we exit.
-       * misc.c (message_s, error_s): Removed; no longer needed.
-       (message, error, fatal, perror_with_name, pfatal_with_name): Moved
-       to output.c.
-       * makeint.h: Remove message_s(), error_s(), and
-       log_working_directory().  Remove the TRACE_* macros.
-       * doc/make.texi: Enhance documentation for output sync, and remove
-       MODE assignment for --trace.
-       * make.1: Remove MODE assignment for --trace.
-       * Makefile.am: Add new files.
-       * NMakefile.template: Ditto.
-       * SMakefile.template: Ditto.
-       * build_w32.bat: Ditto.
-       * dosbuild.bat: Ditto.
-       * make.lnk: Ditto.
-       * make_nsvc_net2003.vcproj: Ditto.
-       * makefile.vms: Ditto.
-       * po/POTFILES.in: Ditto.
-
-2013-08-22  Petr Machata  <pmachata@redhat.com>
-
-       * function.c (func_shell_base): Get rid of any avoidable limit on
-       stack size for processes spawned via $(shell).
-
-2013-07-22  Paul Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): Use PARSE_SIMPLE_SEQ() even for
-       non-second expansion prerequisites, to handle globbing in patterns.
-       Fixes Savannah bug #39310.
-
-       * dep.h (PARSE_SIMPLE_SEQ): Macro for simple file sequence parsing.
-       * default.c (set_default_suffixes): Use it.
-       * file.c (split_prereqs): Ditto.
-       * main.c (main): Ditto.
-       * read.c (eval): Ditto.
-       * rule.c (install_pattern_rule): Ditto.
-       * file.c (split_prereqs): Use PARSEFS_NONE instead of 0.
-
-2013-07-21  Paul Smith  <psmith@gnu.org>
-
-       Cleanups detected by cppcheck.  Fixes Savannah bug #39158.
-       * arscan.c (ar_scan): Reduce the scope of local variables.
-       * dir.c (vms_hash): Ditto.
-       (find_directory): Ditto.
-       (file_impossible_p): Ditto.
-       * expand.c (variable_expand_string): Ditto.
-       * function.c (func_sort): Ditto.
-       (func_and): Ditto.
-       * job.c (reap_children): Ditto.
-       (exec_command): Ditto.
-       * main.c (main): Ditto.
-       * misc.c (collapse_continuations): Ditto.
-       * read.c (eval): Ditto.
-       (parse_file_seq): Ditto.
-       * vpath.c (gpath_search): Ditto.
-       (selective_vpath_search): Ditto.
-       * job.c (is_bourne_compatible_shell): Simplify for non-Windows systems.
-       * remake.c (f_mtime): Remove duplicate test.
-       * signame.c (strsignal): Fix bogus conditional.
-
-       * job.c (assign_child_tempfiles): Assign OUTFD to -1 for safety.
-       (start_job_command): Don't test output_sync and sync_cmd: redundant.
-       Changes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
-
-2013-07-14  Paul Smith  <psmith@gnu.org>
-
-       * filedef.h (update_status): Convert UPDATE_STATUS from a char to
-       an enumeration.  Some systems declare "char" to be "unsigned"
-       which broke the code (which expected to be able to use -1 as a
-       flag).  Using magic values was unpleasant, so rather than just
-       force "signed char" I reworked it to use an enum.
-
-       * dep.h (update_goal_chain): Return an update_status value not int.
-       * remake.c (touch_file): Ditto.
-       (update_goal_chain): Track the update_status enum.
-
-       * file.c (enter_file): Use new enumeration values with update_status.
-       (remove_intermediates): Ditto.
-       (print_file): Ditto.
-       * commands.c (execute_file_commands): Ditto.
-       * job.c (reap_children): Ditto.
-       (start_job_command): Ditto.
-       (start_waiting_job): Ditto.
-       * main.c (main): Ditto.
-       * remake.c (update_file): Ditto.
-       (complain): Ditto.
-       (update_file_1): Ditto.
-       (notice_finished_file): Ditto.
-       (remake_file): Ditto.
-       * vmsjobs.c (vmsHandleChildTerm): Ditto.
-
-2013-07-09  Paul Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): Keep a local copy of the number of
-       deps in deplist: the global max might change due to recursion.
-       Fixes a bug reported by Martin d'Anjou <martin.danjou14@gmail.com>.
-
-2013-06-28  Paul Smith  <psmith@gnu.org>
-
-       * misc.c (set_append_mode): Set the O_APPEND flag on a file descriptor.
-       (open_tmpfd): Set append mode on the temporary file descriptor.
-       * main.c (main): Set append mode on stdout and stderr.
-       * makeint.h (set_append_mode): Declare it.
-
-2013-06-22  Eli Zaretskii  <eliz@gnu.org>
-
-       * build_w32.bat (LinkGCC): Prevent a comment from being displayed
-       at build time.
-
-       * job.c (construct_command_argv_internal) [WINDOWS32]: Use
-       case-insensitive comparison with internal commands of non-Unix
-       shells.
-
-       * main.c (find_and_set_default_shell): Don't use file_exists_p or
-       dir_file_exists_p, as those call readdir, which can fail if PATH
-       includes directories with non-ASCII characters, and that would
-       cause Make to fail at startup with confusing diagnostics.  See
-       https://sourceforge.net/mailarchive/message.php?msg_id=30846737
-       for the details.
-
-2013-06-22  Paul Smith  <psmith@gnu.org>
-
-       Improve performance by using a character map to determine where we
-       want to stop searching strings, rather than discrete comparisons.
-
-       * read.c (find_char_unquote): Pass a stop map instead of various
-       flags and use that to check when to stop parsing the string.
-       (eval): Use the new find_char_unquote() calling signature.
-       (remove_comments): Ditto.
-       (unescape_char): Ditto.
-       (find_percent_cached): Ditto.
-       (parse_file_seq): Use a stop-map flag.
-       * main.c (stopchar_map): Character map definition.
-       (initialize_stopchar_map): Initialize the map definition.
-       (main): Invoke the map initialization function.
-       * misc.c (end_of_token_w32): Remove unused function.
-       * dir.c (dosify): Use STOP_SET to check for stop chars.
-       * main.c (main): Ditto.
-       * misc.c (end_of_token): Ditto.
-       * function.c (subst_expand): Ditto.
-       (func_notdir_suffix): Ditto.
-       (func_basename_dir): Ditto.
-       (abspath): Ditto.
-       * job.c (is_bourne_compatible_shell): Ditto.
-       * variable.c (parse_variable_definition): Ditto.
-       * read.c (eval): Ditto.
-       (conditional_line): Ditto.
-       (find_percent_cached): Ditto.
-       * dep.h (PARSE_FILE_SEQ): Update function declaration.
-       * default.c (set_default_suffixes): Update PARSE_FILE_SEQ() call.
-       * file.c (split_prereqs): Ditto.
-       * function.c (string_glob): Ditto.
-       * implicit.c (pattern_search): Ditto.
-       * rule.c (install_pattern_rule): Ditto.
-       * main.c (main): Ditto.
-
-2013-06-21  Paul Smith  <psmith@gnu.org>
-
-       * main.c (verify_flag): Global variable to determine whether to
-       verify the database or not.
-       (decode_debug_flags): If debug mode, enable verify_flag.
-       (main): If MAKE_MAINTAINER_MODE, enable verify_flag, otherwise not.
-       (die): Only verify the database if verify_flag is set.
-       * file.c (enter_file): Don't check caching unless verify_flag.
-       * makeint.h: Export verify_flag.
-
-2013-05-27  Paul Smith  <psmith@gnu.org>
-
-       * variable.c (define_automatic_variables): Create a new variable
-       MAKE_HOST.
-
-2013-05-27  Hartmut Becker  <becker.ismaning@freenet.de>
-
-       * function.c (func_shell_base) [VMS]: Support VMS.
-       * makefile.com [VMS]: Ditto.
-       * makefile.vms [VMS]: Ditto.
-       * makeint.h [VMS]: Ditto.
-       * vmsjobs.c [VMS]: Ditto.
-       * job.h: Define RECORD_SYNC_MUTEX() when OUTPUT_SYNC is not set.
-       * load.c (unload_file): Fix signature if MAKE_LOAD is not set.
-
-2013-05-26  Paul Smith  <psmith@gnu.org>
-
-       * remake.c (f_mtime): Ensure that archive file names are in the
-       string cache.  Fixes Savannah bug #38442.
-
-       * read.c (readline): To be safe, move the entire buffer if we
-       detect a CR.  Fixes Savannah bug #38945.
-
-       * job.c (new_job): Compare OUT to the beginning of the OUT
-       var/function, not IN.  Fixes Savannah bug #39035.
-
-2013-05-22  Paul Smith  <psmith@gnu.org>
-
-       * main.c (switches[]): Order switches so simple flags all come first.
-       (define_makeflags): Rework to make option passing more
-       reliable and the code less tricksy.  Ensure simple flags are kept
-       in the initial batch of flags.  Do not allow any flags with
-       options in that batch.  If there are only non-simple flags MAKEFLAGS
-       begins with ' '.
-       (print_data_base): Print the version.  Fixes part of Savannah #35336.
-
-       * read.c (eval_buffer): Initialize lineno.
-
-2013-05-18  Alexey Pavlov  <alexpux@gmail.com>  (tiny change)
-
-       * w32/Makefile.am (libw32_a_SOURCES): Add compat/posixfcn.c.
-
-       * configure.ac (OUTPUT_SYNC): Define for mingw32 target.
-
-       * job.c (construct_command_argv_internal) <sh_cmds_dos>
-       [WINDOWS32]: Add "move".  Fixes Savannah bug #30714.
-
-       * guile.c: Move inclusion of makeint.h before gnumake.h.  This
-       order must be observed when building Make, because gnumake.h must
-       be included with GMK_BUILDING_MAKE defined, which makeint.h
-       already does.  Otherwise, the linker will look for, and fail to
-       find, gmk_* functions in some external dynamic library.
-
-2013-05-17  Benno Schulenberg  <bensberg@justemail.net>
-
-       * main.c (decode_output_sync_flags): Fix output message.
-       * read.c (EXTRANEOUS): Ditto.
-       (record_files): Ditto.
-       * remake.c (update_file_1): Ditto.
-
-2013-05-17  Eli Zaretskii  <eliz@gnu.org>
-
-       * main.c (prepare_mutex_handle_string): Define conditioned on
-       OUTPUT_SYNC.
-
-       * build_w32.bat: Copy config.h.W32 to config.h regardless of
-       whether or not we are building from SCM.
-
-2013-05-17  Paul Smith  <psmith@gnu.org>
-
-       * configure.ac: Update version to 3.99.90.
-       * NEWS: Ditto.
-
-       * Source (*.[ch]): Remove TABs, use GNU coding styles.
-
-       * ALL: Update copyright.
-
-       * hash.c (CALLOC): Use xcalloc() to handle out of memory errors.
-
-       * makeint.h: Prototype new unload_file() function.
-       * load.c (unload_file): Create a function to unload a file.
-       (struct load_list): Type to remember loaded objects.
-       (loaded_syms): Global variable of remembered loaded objects so we
-       can unload them later.  We don't have to remove from the list
-       because the only time we unload is if we're about to re-exec.
-       (load_object): Remove unneeded extra DLP argument.
-       (load_file): Remove unneeded extra DLP argument.
-       * filedef.h (struct file): Remove the DLP pointer and add the
-       LOADED bit flag.  Saves 32/64 bytes per file, as this pointer is
-       almost never needed.
-       * read.c (eval): Set the new LOADED bit flag on the file.
-       * file.c (rehash_file): Merge the loaded bitfield.
-       * commands.c (execute_file_commands): Call unload_file() instead
-       of dlclose() directly.
-
-2013-05-14  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Loaded Object API): Document the requirement for
-       the plugin_is_GPL_compatible symbol.
-       * load.c (load_object): Check for plugin_is_GPL_compatible symbol.
-
-2013-05-13  Paul Smith  <psmith@gnu.org>
-
-       * filedef.h (struct file): Add a builtin flag.
-       * file.c (enter_file): Unset the builtin flag.
-       (rehash_file): Ditto.
-       (print_file): Don't print builtin files if we've omitted them.
-       * default.c (undefine_default_variables): New function: go through
-       the default variables and undefine them.
-       (set_default_suffixes): Mark these suffix rules as builtin.
-       * makeint.h: Prototype.
-       * main.c (main): Handle addition of -r and -R to MAKEFLAGS in the
-       makefile.  Fixes Savannah bug #20501.
-
-       * main.c (define_makeflags): Assign o_env_override level to
-       MAKEFLAGS to ensure it's set even in the presence of -e.
-       Fixes Savannah bug #2216.
-
-       * makeint.h (TRACE_NONE, TRACE_RULE, TRACE_DIRECTORY): Define
-       constants for the trace mode.
-       * main.c: Add new --trace mode parsing.
-       (decode_trace_flags): New function.
-       (decode_switches): Call it.
-       (define_makeflags): Fix a bug with long-name options.
-       * misc.c (fatal): Remove special output-sync handling.
-       * make.1: Document new --trace mode flags.
-       * doc/make.texi (Options Summary): Ditto.
-
-2013-05-11  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (child_out): Output the newline following the message
-       before fllush-ing the stream.  Avoids displaying the following
-       failure message, which goes to stderr, on the same line.
-
-2013-05-06  Eli Zaretskii  <eliz@gnu.org>
-
-       * gnumake.h (GMK_EXPORT) [_WIN32]: Move the dllexport declaration
-       here from makeint.h.
-
-       * makeint.h (GMK_BUILDING_MAKE) [WINDOWS32]: Define before
-       including gnumake.h.
-
-       * doc/make.texi (Loaded Object Example): Add a note about building
-       shared objects on MS-Windows.
-
-2013-05-05  Paul Smith  <psmith@gnu.org>
-
-       * makeint.h (OUTPUT_SYNC_LINE, OUTPUT_SYNC_RECURSE): Rename
-       output-sync options "job" to "line" and "make" to "recurse".
-       * main.c (decode_output_sync_flags): Ditto.
-       * job.c (reap_children): Ditto.
-       (start_job_command): Ditto.
-       * make.1: Ditto.
-       * doc/make.texi (Parallel Output): Ditto.
-
-       * job.c (child_out): Write newlines explicitly, and don't do
-       anything if the message is empty.
-       (sync_output): Put working dir messages around stdout AND stderr.
-       (start_job_command): Move the tmp file assignment earlier.  After
-       we do it, write the command line to the temp file to get the order
-       correct.
-
-       * misc.c (message): Remove special handling for output_sync.
-       (error): Ditto.
-
-2013-05-04  Paul Smith  <psmith@gnu.org>
-
-       * loadapi.c (gmk_alloc): New function.
-       * gnumake.h: Add gmk_alloc().  Clean GMK_EXPORT a bit to avoid MAIN.
-       * makeint.h (GMK_EXPORT): New handling, vs. MAIN.
-       * doc/make.texi (Loaded Object API): Add information on the memory
-       handling functions.
-       (Loaded Object Example): Create an example.
-
-       * job.c (pump_from_tmp): (Rename) Write to stdout/stderr using
-       FILE* rather than fd.  It's not a good idea to mix and match.
-
-2013-05-04  Eli Zaretskii  <eliz@gnu.org>
-
-       * makeint.h (ftruncate) [_MSC_VER]: Redirect to _chsize.
-       (_S_ISDIR): If not defined (MinGW64), define to S_ISDIR.
-
-2013-05-04  Paul Smith  <psmith@gnu.org>
-
-       * job.c (child_out): Handle EINTR and incomplete write scenarios.
-       (sync_init): New function: separate the initialization code.
-       (assign_child_tempfiles): Remove truncation from this function,
-       (sync_output): and add it here after output is generated.
-       (reap_children): Always call sync_output() in case output_sync was
-       reset after the child started, due to error.
-       (start_job_command): Create new sync_cmd variable.  Use new method
-       for initializing the handle.
-       If we're not syncing the output be sure any output we've saved is
-       dumped immediately before starting the child.
-
-2013-05-04  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (start_job_command): Make the condition for creating a
-       temporary output file be identical to the Posix code branch.
-       Suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
-
-2013-05-03  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/subproc/sub_proc.c: Include makeint.h.  Remove a private
-       incompatible prototype of xmalloc.
-       (batch_file_with_spaces): New function, detects Windows batch
-       files whose names include whitespace characters.
-       (process_begin): If exec_name is a batch file with whitespace
-       characters in its name, pass NULL as the first argument to
-       CreateProcess.  This avoids weird failures due to buggy quoting by
-       CreateProcess.  For the details, see the discussion starting at
-       http://lists.gnu.org/archive/html/make-w32/2013-04/msg00008.html.
-
-       * load.c (load_object, load_file): Accept an additional argument
-       DLP and return in it a pointer that can be used to unload the
-       dynamic object.
-
-       * read.c (eval): Call load_file with an additional argument, and
-       record the pointer returned there in the 'struct file' object of
-       dynamic objects in that object's 'struct file'.
-
-       * commands.c (execute_file_commands): Unload dynamic objects
-       before remaking them, to avoid failure to remake if the OS doesn't
-       allow overwriting objects that are in use.
-
-       * filedef.h (struct file): New member dlopen_ptr.
-
-       * gnumake.h (GMK_EXPORT): Define to dllexport/dllimport
-       decorations for Windows and to nothing on other platforms.
-       (gmk_eval, gmk_expand, gmk_add_function): Add GMK_EXPORT qualifier
-       to prototypes.
-
-       * makeint.h (MAIN): Define before including gnumake.h, to give
-       correct dllexport decorations to exported functions.
-       (load_file): Adjust prototype.
-
-       * loadapi.c: Don't include gnumake.h, since makeint.h already
-       includes it, and takes care of defining MAIN before doing so.
-
-       * build_w32.bat (LinkGCC): Produce an import library for functions
-       exported by Make for loadable dynamic objects.
-
-       * w32/compat/posixfcn.c (dlclose): New function.
-
-       * w32/include/dlfcn.h (dlclose): Add prototype.
-
-2013-05-01  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (start_job_command) [WINDOWS32]: Make the same fix for
-       MS-Windows as the previous commit did for Posix platforms.
-       (construct_command_argv_internal): Don't treat a backslash as an
-       escape character before whitespace, if the shell is not a Posix
-       shell.   For the description of the problem, see
-       http://lists.gnu.org/archive/html/make-w32/2013-04/msg00014.html.
-
-2013-05-01  Paul Smith  <psmith@gnu.org>
-
-       * job.c (start_job_command): Don't redirect output for recursive
-       make jobs, unless we're in makefile synchronization mode.
-
-2013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
-
-       build: enable the 'silent-rules' automake options
-
-       * configure.ac (AM_INIT_AUTOMAKE): Here.  The future major Automake
-       version 2.0 (ETA about one, one and half year from now) will enable
-       it by default, so better prepare ourselves.
-
-2013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
-
-       build: require Autoconf >= 2.62 and Automake >= 1.11.1
-
-       Older versions of those tools should be considered fully obsolete.
-       Also, GNU make already requires Gettext >= 0.18.1, which has been
-       released six months after Automake 1.11.1 and two years after
-       Autoconf 2.62; so the new requirement shouldn't be problematic
-       for people already bootstrapping GNU make from the Git repository.
-
-       * configure.ac (AC_PREREQ): Require Autoconf 2.62 or later.
-       (AM_INIT_AUTOMAKE): Require Automake 1.11.1 or later (1.11 had
-       some serious bugs, and should not be used).
-
-2013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
-
-       build: get rid of 'HAVE_ANSI_COMPILER' C preprocessor conditional
-
-       GNU make already assume C89 or later throughout the codebase, and
-       that preprocessor conditional was no longer used anyway.
-
-       * configure.ac: Remove AC_DEFINE of HAVE_ANSI_COMPILER.
-       * config.ami.template: Remove #define of HAVE_ANSI_COMPILER.
-       * config.h-vms.template: Likewise.
-       * config.h.W32.template: Likewise.
-       * configh.dos.template: Likewise.
-
-2013-04-30  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
-
-       cosmetics: fix few innocuous typos
-
-       Most of these were found using Lucas De Marchi's 'codespell' tool.
-
-       * ChangeLog: Fix minor typos.
-       * ChangeLog.2: Likewise.
-       * README.Amiga: Likewise.
-       * TODO.private: Likewise.
-       * function.c: Likewise.
-       * glob/glob.h: Likewise.
-       * job.c: Likewise.
-       * main.c: Likewise.
-       * readme.vms: Likewise.
-       * remake.c: Likewise.
-       * tests/ChangeLog: Likewise.
-       * tests/NEWS: Likewise.
-       * tests/README: Likewise.
-       * tests/scripts/variables/private: Likewise.
-       * vmsdir.h: Likewise.
-       * signame.c: Likewise.  While at it, improve line wrapping in the
-       touched comment.
-
-2013-04-29  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/include/dlfcn.h: New file.
-
-       * w32/compat/posixfcn.c: Include dlfcn.h.
-       (dlopen, dlerror, dlsym) [MAKE_LOAD]: New functions, in support of
-       dynamic loading.
-
-       * config.h.W32.template (MAKE_LOAD): Define.
-
-       * load.c (load_object) [HAVE_DOS_PATHS]: Support backslashes and
-       drive letters in file names of dynamic objects.
-
-       * job.c (construct_command_argv_internal) [WINDOWS32]: Return
-       right after generating new_argv for one_shell case.  This fixes
-       the Windows build for both Unixy shell and stock Windows shells.
-
-2013-04-28  Eli Zaretskii  <eliz@gnu.org>
-
-       * dir.c (local_stat) [WINDOWS32]: Use the wrapper on MS-Windows.
-       If the argument ends in "dir/.", make sure the parent dir exists
-       and is indeed a directory.  Fixes Savannah bug #37065.
-
-2013-04-28  Paul Smith  <psmith@gnu.org>
-
-       * makeint.h (message_s, error_s): Functions that print to strings
-       rather than directly to files.
-       * misc.c (message_s, error_s): Create them.
-       * job.c (child_error): Print error messages to the output sync
-       logs, if one exists, rather then directly to the terminal.
-       (reap_children): Move the per-line sync after child_error().
-
-       * configure.ac: Remove support for pre-ANSI variadic function calls.
-       * makeint.h: Ditto.
-       * misc.c: Ditto.
-       * config.ami.template: Ditto.
-       * config.h-vms.template: Ditto.
-       * config.h.W32.template: Ditto.
-       * configh.dos.template: Ditto.
-
-       Implement a "per-job" output synchronization option.
-
-       * main.c (decode_output_sync_flags): Recognize the new option.
-       * makeint.h (OUTPUT_SYNC_JOB): Add new values for "job"
-       * job.c (assign_child_tempfiles): In per-job mode, truncate the
-       temp file for re-use by the next job.
-       (sync_output): Don't close the temp files as we may still use them.
-       (free_child): Close the temp files here as we definitely don't
-       need them.
-       (new_job): In per-job output mode, sync_output() after each job.
-       * job.h (struct child): Avoid ifdefs.
-       * make.1: Add new options to the man page.
-       * doc/make.texi (Parallel Output): Break documentation on input
-       and output into separate sections for readability.  Document the
-       new "job" and "none" modes.
-
-2013-04-27  Paul Smith  <psmith@gnu.org>
-
-       * job.c (construct_command_argv_internal): Fix oneshell support
-       for non-POSIX-sh shells.
-
-       * load.c (load_object): Extract all POSIX-isms into a separate
-       function for portability.
-       (load_file): Check the .LOADED variable first and don't invoke
-       load_object() if it's already been loaded.
-
-2013-04-27  Eli Zaretskii  <eliz@gnu.org>
-
-       * read.c (record_files): Pay attention to .ONESHELL in MS-Windows.
-
-       * job.c (construct_command_argv_internal): Support .ONESHELL on
-       MS-Windows, when the shell is not a Unixy shell.
-
-2013-04-27  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c: Fix compilation error on GNU/Linux due to "label at end
-       of compound statement".
-
-2013-04-27  Frank Heckenbach <f.heckenbach@fh-soft.de>  (tiny change)
-
-       * job.c (sync_output): Don't discard the output if
-       acquire_semaphore fails; instead, dump the output unsynchronized.
-
-2013-04-27  Eli Zaretskii  <eliz@gnu.org>
-
-       Support --output-sync on MS-Windows.
-       * w32/compat/posixfcn.c: New file, with emulations of Posix
-       functions and Posix functionality for MS-Windows.
-
-       * w32/subproc/sub_proc.c: Include io.h.
-       (process_noinherit): New function, forces a file descriptor to not
-       be inherited by child processes.
-       (process_easy): Accept two additional arguments, and use them to
-       set up the standard output and standard error handles of the child
-       process.
-
-       * w32/include/sub_proc.h (process_easy): Adjust prototype.
-       (process_noinherit): Add prototype.
-
-       * read.c [WINDOWS32]: Include windows.h and sub_proc.h.
-
-       * makeint.h (LOCALEDIR) [WINDOWS32}: Define to NULL if not
-       defined.  This is needed because the MS-Windows build doesn't have
-       a canonical place for LOCALEDIR.
-       (WIN32_LEAN_AND_MEAN) [WINDOWS32]: Define, to avoid getting from
-       windows.h header too much stuff that could conflict with the code.
-
-       * main.c <sync_mutex>: New static variable.
-       <switches>: Add support for "--sync-mutex" switch.
-       (decode_output_sync_flags): Decode the --sync-mutex= switch.
-       (prepare_mutex_handle_string) [WINDOWS32]: New function.
-       (main): Add "output-sync" to .FEATURES.
-
-       * job.h (CLOSE_ON_EXEC) [WINDOWS32]: Define to call
-       process_noinherit.
-       (F_GETFD, F_SETLKW, F_WRLCK, F_UNLCK, struct flock) [WINDOWS32]:
-       New macros.
-       (RECORD_SYNC_MUTEX): New macro, a no-op for Posix platforms.
-       (sync_handle_t): New typedef.
-
-       * job.c <sync_handle>: Change type to sync_handle_t.
-       (FD_NOT_EMPTY): Seek to the file's end.  Suggested by Frank
-       Heckenbach <f.heckenbach@fh-soft.de>.
-       (pump_from_tmp_fd) [WINDOWS32]: Switch to_fd to binary mode for
-       the duration of this function, and then change back before
-       returning.
-       (start_job_command) [WINDOWS32]: Support output_sync mode on
-       MS-Windows.  Use a system-wide mutex instead of locking
-       stdout/stderr.  Call process_easy with two additional arguments:
-       child->outfd and child->errfd.
-       (exec_command) [WINDOWS32]: Pass two additional arguments, both
-       -1, to process_easy, to adjust for the changed function signature.
-
-       * function.c (windows32_openpipe) [WINDOWS32]: This function now
-       returns an int, which is -1 if it fails and zero otherwise.  It
-       also calls 'error' instead of 'fatal', to avoid exiting
-       prematurely.
-       (func_shell_base) [WINDOWS32]: Call perror_with_name if
-       windows32_openpipe fails, now that it always returns.  This avoids
-       a compiler warning that error_prefix is not used in the MS-Windows
-       build.
-
-       * config.h.W32.template (OUTPUT_SYNC): Define.
-
-       * build_w32.bat: Add w32/compat/posixfcn.c to compilation and
-       linking commands.
-
-2013-04-20  Stefano Lattarini <stefano.lattarini@gmail.com>  (tiny change)
-
-       * README.git: Our autoconf input file is 'configure.ac', not
-       'configure.in'.  Adjust accordingly.
-       * build_w32.bat: Likewise.
-       * config.h-vms.template: Likewise.
-       * Makefile.DOS.template: Likewise.
-
-2013-04-16  Paul Smith  <psmith@gnu.org>
-
-       * misc.c (open_tmpfd): Add a new function that returns a temporary
-       file by file descriptor.
-       (open_tmpfile): Move here from main.c.
-       * job.c (assign_child_tempfiles): Use the new open_tmpfd().
-
-2013-04-15  Paul Smith  <psmith@gnu.org>
-
-       * makeint.h (OUTPUT_SYNC_TARGET, OUTPUT_SYNC_MAKE): Rename.
-       * job.c (start_job_command): Use new constants.
-       * main.c: New -O argument format.
-
-       * doc/make.texi (Options Summary): Document the argument to -O.
-       * make.1: Ditto.
-
-       * main.c (define_makeflags): Don't add space between a single-char
-       option and its argument.
-
-2013-04-06  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Implicit Variables): Clarify LDFLAGS vs. LDLIBS.
-       Fixes Savannah bug #37970.
-
-       * remake.c (check_dep): Reconsider files waiting on prerequisites,
-       as they may have finished.  Fixes Savannah bug #37703.
-
-2013-02-28  Paul Smith  <psmith@gnu.org>
-
-       * function.c (func_realpath): On Solaris (at least) realpath() can
-       fail due to EINTR, so loop it.  Fixes Savannah bug #38420.
-
-2013-02-25  Paul Smith  <psmith@gnu.org>
-
-       Add a proposed supported API for GNU make loaded objects.
-
-       * doc/make.texi (Loaded Object API): Document it.
-       * Makefile.am (make_SOURCES): Add new loadapi.c.
-       * dep.h: Remove eval_buffer(); moved to loadapi.c:gmk_eval().
-       * read.c (eval_buffer): Change eval_buffer() signature.
-       * main.c (main): Change eval_buffer() signature.
-       * variable.h (define_new_function): Change func_ptr signature.
-       * load.c (SYMBOL_EXTENSION): Change the extension.
-       * loadapi.c: Implement the new API.
-       * gnumake.h (gmk_eval): New function prototype.
-       (gmk_expand) Ditto.
-       (gmk_add_function) Ditto.
-       * gmk-default.scm (gmk-eval): Remove: now implemented in guile.c.
-       * guile.c (guile_expand_wrapper): Use gmk_expand()
-       (guile_eval_wrapper): Implement eval here to avoid double-expansion.
-       (guile_define_module): Define gmk-eval.
-       (func_guile): Use new func_ptr calling model.
-       (guile_gmake_setup): Use gmk_add_function() to declare $(guile ...)
-       * function.c (function_table_entry): Provide alternative func_ptr.
-       (func_eval): New signature for eval_buffer();
-       (function_table_init): New initialization for function_table_entry.
-       (expand_builtin_function): Support alternative invocation signature.
-       (define_new_function): Ditto.
-
-2013-01-20  Paul Smith  <psmith@gnu.org>
-
-       * gnumake.h: New file to contain externally-visible content.
-       * makeint.h: Include gnumake.h.  Move gmk_floc type to gnumake.h.
-       * Makefile.am (include_HEADERS): Install the gnumake.h header.
-
-       * makeint.h: Change struct floc to gmk_floc typedef.
-       * Many: Use the new typedef.
-
-       * make.h: Rename to makeint.h.
-       * Many: Use the new name makeint.h.
-
-2013-01-19  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (load Directive): Update to discuss location of
-       loaded object file.
-       (Remaking Loaded Objects): Document remaking of loaded objects.
-
-       * main.c (main): Rename READ_MAKEFILES to READ_FILES.
-       * read.c: Change READ_MAKEFILES to READ_FILES since it now
-       contains loaded object files as well.
-       (read_all_makefiles): Ditto.
-       (eval_makefile): Ditto.
-       (eval): Add any loaded file to the READ_FILES list, so that it
-       will be considered for re-build.
-
-       * load.c (load_file): Return the simple filename (no symbol) in
-       the LDNAME argument (now a const char **).
-       This filename should no longer have "./" prepended: modify the
-       function to always check the current directory if the name has no
-       "/", before using the normal methods.
-       * make.h: Change the load_file() prototype.
-
-       * README.git: Add a bit more documentation on Git workflow & rules.
-
-2013-01-13  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Restore all make flags after re-exec is complete.
-       Fixes Savannah bug #38051.
-
-2013-01-12  Paul Smith  <psmith@gnu.org>
-
-       Convert CVS archive to Git.
-
-       * configure.in: Rename to configure.ac.
-       * README.cvs: Rename to README.git and rework for Git.
-       * maintMakefile: Use git clean for cleanup.
-       * ChangeLog: Use new Git repository URL.
-       * ChangeLog.2: Ditto.
-       * Makefile.am: Change documentation for Git
-       * Makefile.DOS.template: Ditto.
-       * README.template: Ditto.
-       * build_w32.bat: Ditto.
-       * prepare_w32.bat: Ditto.
-       * .cvsignore: Rename to .gitignore, and change to Git format.
-
-2012-12-08  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (create_batch_file): Fix last change: always increment the
-       counter of batch files before trying to use it.
-
-2012-12-07  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (construct_command_argv_internal): Remove " from
-       sh_chars_dos[].  Ignore an escaped backslash inside a string
-       quoted with "..".  This lifts the 4KB or 8KB command-line length
-       limitation imposed by the Windows shells when a command uses quoted
-       strings, because we now don't call the shell in that case.
-
-       * job.c (create_batch_file): Declare the counter of batch files
-       static, to avoid having 2 jobs using the same file name and
-       stepping on each other's toes.  When all 64K names are used up,
-       make one more loop looking for slots that became vacant.  This
-       avoids leaving behind temporary batch files in the temporary
-       directory, which happens frequently on a fast machine when using
-       parallel builds.
-       (reap_children): Add debug message for when removal of a temporary
-       batch file fails.
-
-2012-10-29  Paul Smith  <psmith@gnu.org>
-
-       New feature: "load" directive for dynamically-loaded objects.
-
-       * NEWS: Document new "load" directive.
-       * doc/make.texi (Extending make): New chapter on extensions to make.
-       * configure.in: Check for dlopen/dlsym/dlerror and -ldl.
-       * Makefile.am (make_SOURCES): Add new file load.c.
-       * make.h: Prototype for load_file().
-       * main.c (main): Add "load" to .FEATURES if it's available.
-       * read.c (eval): Parse "load" and "-load" directives.
-
-2012-09-29  Paul Smith  <psmith@gnu.org>
-
-       * configure.in: Require a new version of gettext (1.18.1).
-       Fixes Savannah bug #37307.
-
-2012-09-09  Paul Smith  <psmith@gnu.org>
-
-       * configure.in (bsd_signal): Define _GNU_SOURCE, a la make.h.
-       Fixes Savannah bug #32247.
-
-       * remake.c (update_file_1): Force intermediate files to be
-       considered, not pruned, if their non-intermediate parent needs to
-       be remade.  Fixes Savannah bug #30653.
-
-       * job.c (construct_command_argv_internal): Keep the command line
-       on the heap for very long lines.  Fixes Savannah bug #36451.
-
-       * function.c (func_realpath): BSD realpath(3) doesn't fail if the
-       file does not exist: use stat.  Fixes Savannah bug #35919.
-
-       * file.c (expand_deps): Duplicate the current variable buffer, not
-       the old pointer.  Fixes Savannah bug #36925.
-
-       * read.c (eval): If we detect an initial UTF-8 BOM, skip it.
-       Fixes Savannah bug #36529.
-       (record_target_var): Remove unused variable "fname".
-       (eval): Use the correct pointer when adding to the variable buffer.
-       Fixes Savannah bug #36106.
-
-2012-09-09  Eli Zaretskii  <eliz@gnu.org>
-
-       * read.c (unescape_char): Fix a thinko in the last change.
-
-2012-09-09  Paul Smith  <psmith@gnu.org>
-
-       * default.c (default_variables): Use a correct default LIBPPATERNS
-       for MacOS.  Fixes Savannah bug #37197.
-
-       * read.c (record_files): Reset the default macro values if .POSIX
-       is set.  Fixes Savannah bug #37069.
-       (parse_file_seq): Break out of an infinite loop if we're not
-       making progress when parsing archive references.
-
-2012-09-01  Eli Zaretskii  <eliz@gnu.org>
-
-       * README.W32.template: Update for job-server and Guile support.
-
-       * read.c (unescape_char): Advance 'p' after copying the unescaped
-       characters.  Otherwise the backslashes are incorrectly erased from
-       the original string.
-
-2012-03-05  Paul Smith  <psmith@gnu.org>
-
-       Update copyright notices to use year ranges, as allowed by
-       clarifications in the GNU Maintainer's Manual.
-
-2012-03-04  Paul Smith  <psmith@gnu.org>
-
-       * read.c (unescape_char): New function to remove escapes from a char.
-       (record_files): Call it on the dependency string to unescape ":".
-       Fixes Savannah bug #12126 and bug #16545.
-
-       * make.h (CSTRLEN): Determine the length of a constant string.
-       * main.c: Use the new macro.
-       * read.c: Ditto.
-       * variable.h: Ditto.
-       * function.c: Simplify checks for function alternatives.
-
-       * expand.c (variable_append): If the current set is local and the
-       next one is not a parent, then treat the next set as
-       local as well.  Fixes Savannah bug #35468.
-
-2012-03-03  Paul Smith  <psmith@gnu.org>
-
-       * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for AIX 5.2+
-       nanosecond timestamps.  Fixes Savannah bug #32485.
-
-       Convert uses of `foo' for quoting to 'foo' to reflect changes in
-       the GNU Coding Standards.  Fixes Savannah bug #34530.
-
-       * job.c (construct_command_argv_internal): In oneshell we need to
-       break the SHELLFLAGS up for argv.  Fixes Savannah bug #35397.
-
-       * function.c (func_filter_filterout): Recompute the length of each
-       filter word in case it was compressed due to escape chars.  Don't
-       reset the string as it's freed.  Fixes Savannah bug #35410.
-
-       * misc.c (collapse_continuations): Only use POSIX-style
-       backslash/newline handling if the .POSIX target is set.
-       Addresses Savannah bug #16670 without backward-incompatibility.
-       * NEWS: Document behavior change.
-       * doc/make.texi (Splitting Lines): New section describing how to
-       use backslash/newline to split long lines.
-
-2012-02-26  Paul Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): Check the stem length to avoid
-       stack overflows in stem_str.  Fixes Savannah bug #35525.
-
-2012-02-03  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/subproc/sub_proc.c (proc_stdin_thread, proc_stdout_thread)
-       (proc_stderr_thread, process_pipe_io): Ifdef away unused
-       functions.
-
-       * w32/subproc/w32err.c (map_windows32_error_to_string) [_MSC_VER]:
-       Don't use TLS storage for szMessageBuffer.  Ifdef away special
-       code for handling Winsock error codes.  Make the function return a
-       `const char *'.  Suggested by Ozkan Sezer.  Fixes Savannah bug #34832.
-
-2012-01-29  Paul Smith  <psmith@gnu.org>
-
-       * gmk-default.scm (to-string-maybe): Variables map to empty strings.
-       In Guile 2.0, (define ...) results in a variable object so make
-       sure that maps to an empty string in make.
-
-       * variable.c (parse_variable_definition): New POSIX assignment ::=
-       Take a struct variable to return more information after parsing.
-       (assign_variable_definition): New parse_variable_definition() call.
-       * variable.h: New declaration of parse_variable_definition().
-       * read.c (do_define): New parse_variable_definition() call.
-       (parse_var_assignment): Ditto.
-       (get_next_mword): Parse ::= as a variable assignment.
-       * doc/make.texi (Flavors): Describe the new ::= syntax.
-       * NEWS: Mention the ::= operator.
-
-       * variable.h (struct variable): Rearrange elts to reduce struct size.
-
-       * function.c (func_file): Create a new function, $(file ...)
-       * doc/make.texi (File Function): Document the $(file ..) function.
-       * NEWS: Announce it.
-
-       * gmk-default.scm (to-string-maybe): Use a more portable way to
-       test for unprintable characters.
-       * configure.in [GUILE]: Guile 1.6 doesn't have pkg-config
-       * build_w32.bat: Ditto.
-
-2012-01-28  Eli Zaretskii  <eliz@gnu.org>
-
-       * config.h.W32.template: Update from config.h.in.
-
-       Support a Windows build with Guile.
-
-       * README.W32.template: Update with instructions for building with
-       Guile.
-
-       * build_w32.bat: Support building with Guile.
-
-       * make.h [HAVE_STDINT_H]: Include stdint.h.
-
-       * main.c (main, clean_jobserver): Move declarations of variables
-       not used in the WINDOWS32 build to the #else branch, to avoid
-       compiler warnings.
-
-       Fix failures on MS-Windows when Make's standard handles are invalid.
-       This can happen when Make is invoked from a GUI application.
-
-       * w32/subproc/sub_proc.c (process_init_fd): Don't dereference
-       pproc if it is a NULL pointer.
-       (process_begin, process_cleanup): Don't try to close pipe handles
-       whose value is INVALID_HANDLE_VALUE.
-       (process_easy): Initialize hIn, hOut, and hErr to
-       INVALID_HANDLE_VALUE.  If DuplicateHandle fails with
-       ERROR_INVALID_HANDLE, duplicate a handle for the null device
-       instead of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE or
-       STD_ERROR_HANDLE.  Don't try to close pipe handles whose value is
-       INVALID_HANDLE_VALUE.
-
-       * function.c (windows32_openpipe): Initialize hIn and hErr to
-       INVALID_HANDLE_VALUE.  If DuplicateHandle fails with
-       ERROR_INVALID_HANDLE, duplicate a handle for the null device
-       instead of STD_INPUT_HANDLE or STD_ERROR_HANDLE.  Fix indentation.
-       Don't try to close handles whose value is INVALID_HANDLE_VALUE.
-
-2012-01-25  Eli Zaretskii  <eliz@gnu.org>
-
-       * function.c (define_new_function): Fix format strings in calls to
-       `fatal'.
-
-2012-01-17  Paul Smith  <psmith@gnu.org>
-
-       * guile.c (func_guile): Handle NULL returns from Guile.
-
-2012-01-16  Paul Smith  <psmith@gnu.org>
-
-       * make.h (PATH_SEPARATOR_CHAR): Allow resetting for crosscompiling
-       for Windows.  Patch by Chris Sutcliffe <ir0nh34d@gmail.com>
-       Fixes Savannah bug #34818.
-
-2012-01-15  Paul Smith  <psmith@gnu.org>
-
-       * variable.h: Prototype an interface for defining new make functions.
-       * function.c (define_new_function): Define it.
-       (func_guile): Remove the "guile" function.
-       (function_table_init): Ditto.
-       * guile.c (func_guile): Add the "guile" function here.
-       (setup_guile): Call define_new_function() to define it.
-       (guile_eval_string): Obsolete.
-
-       * all: Update copyright notices.
-
-2012-01-12  Paul Smith  <psmith@gnu.org>
-
-       Support GNU Guile as an embedded extension language for GNU make.
-
-       * NEWS: Note the new Guile capability.
-       * Makefile.am (EXTRA_DIST, make_SOURCES): Add new guile source files.
-       (AM_CFLAGS): Add Guile compiler flags.
-       (guile): Add a rule for converting default SCM into a C header.
-       * configure.in: Add support for --with-guile.
-       Also, convert the entire file to properly escaped autoconf m4, and
-       utilize newer features such as AS_IF() and AS_CASE().
-       * doc/make.texi (Guile Function): Document the GNU guile integration.
-       * make.h (guile_eval_string, guile_boot): Prototypes for Guile.
-       * main.c (main): Run guile_boot() to handle main().
-       (real_main): All the previous content of main() is here.
-       (real_main): Add "guile" to the .FEATURES variable.
-       * function.c (func_guile): Call Guile.
-       * guile.c: New file implementing GNU make integration with GNU Guile.
-       * gmk-default.scm: The integration of GNU make with Guile uses
-       Guile itself for much of the parsing and conversion of return
-       types, etc.  This implementation is embedded into GNU make.
-       * config.h-vms.template: Disable Guile support.
-       * config.h.W32.template: Ditto.
-       * configh.dos.template: Ditto.
-       * config.ami.template: Ditto.
-       * makefile.vms: Add new Guile files.
-       * Makefile.DOS.template: Ditto.
-       * Makefile.ami: Ditto.
-       * NMakefile.template: Ditto.
-       * SMakefile.template: Ditto.
-       * build_w32.bat: Ditto.
-       * dosbuild.bat: Ditto.
-       * make_msvc_net2001.vcproj: Ditto.
-
-2011-11-15  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Use %ld when printing DWORD values.
-       * job.c (new_job): Ditto.
-       * w32/include/sub_proc.h: Use const.
-       * w32/subproc/sub_proc.c (open_jobserver_semaphore): Use const.
-       Fixes Savannah bug #34830.  Changes suggested by Ozkan Sezer.
-
-       * configure.in (MAKE_JOBSERVER): Enable jobserver on W32 systems.
-       * config.h.W32.template (MAKE_JOBSERVER): Ditto.
-
-2011-11-14  Paul Smith  <psmith@gnu.org>
-
-       * read.c (eval): parse_file_seq() might shorten the string due to
-       backslash removal.  Start parsing again at the colon.
-       Fixes Savannah bug #33399.
-
-2011-11-13  Paul Smith  <psmith@gnu.org>
-
-       * file.c (file_timestamp_cons): Match up data types to avoid warnings.
-       * filedef.h: Ditto.
-       * misc.c (concat): Ditto.
-       * read.c (eval): Assign value to avoid warnings.
-       * function.c (func_shell_base): Use fork() instead of vfork() to
-       avoid warnings.
-       * make.h (INTEGER_TYPE_SIGNED): Use <=0 to avoid warnings.
-       Fixes Savannah bug #34608.
-
-       * job.c (construct_command_argv): Remove _p.
-       (construct_command_argv_internal): Remove _ptr.
-       Fixes Savannah bug #32567.
-
-       * main.c (clean_jobserver): Don't write the free token to the pipe.
-       Change suggested by Tim Newsome <tnewsome@aristanetworks.com>
-
-       * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for Darwin.
-       * filedef.h (FILE_TIMESTAMP_STAT_MODTIME): Ditto.
-       Patch provided by Troy Runkel <Troy.Runkel@mathworks.com>
-
-2011-10-11  Troy Runkel  <Troy.Runkel@mathworks.com>
-
-       * config.h.W32: Enable job server support for Windows.
-       * main.c [WINDOWS32]: Include sub_proc.h
-       (main): Create a named semaphore to implement the job server.
-       (clean_jobserver): Free the job server semaphore when make is finished.
-       * job.c [WINDOWS32]: Define WAIT_NOHANG
-       (reap_children): Support non-blocking wait for child processes.
-       (free_child): Release job server semaphore when child process finished.
-       (job_noop): Don't define function on Windows.
-       (set_child_handler_action_flags): Don't define function on Windows.
-       (new_job): Wait for job server semaphore or child process termination.
-       (exec_command): Pass new parameters to process_wait_for_any.
-       * w32/include/sub_proc.h [WINDOWS32]: New/updated EXTERN_DECL entries.
-       * w32/subproc/sub_proc.c [WINDOWS32]: Added job server implementation.
-       (open_jobserver_semaphore): Open existing job server semaphore by name.
-       (create_jobserver_semaphore): Create new job server named semaphore.
-       (free_jobserver_semaphore): Close existing job server semaphore.
-       (acquire_jobserver_semaphore): Decrement job server semaphore count.
-       (release_jobserver_semaphore): Increment job server semaphore count.
-       (has_jobserver_semaphore): Returns whether job server semaphore exists.
-       (get_jobserver_semaphore_name): Returns name of job server semaphore.
-       (wait_for_semaphore_or_child_process): Wait for either the job server
-       semaphore to become signalled or a child process to terminate.
-       (process_wait_for_any_private): Support for non-blocking wait for child.
-       (process_wait_for_any): Added support for non-blocking wait for child.
-       (process_file_io): Pass new parameters to process_wait_for_any_private.
-
-2011-09-18  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): If we're re-exec'ing and we're the master make,
-       then restore the job_slots value so it goes back into MAKEFLAGS
-       properly.  See Savannah bug #33873.
-
-       * remake.c (library_search): STD_DIRS is computed when other
-       static vars like buflen etc. are computed, so it must be static
-       as well.  See Savannah bug #32511.
-
-2011-09-16  Paul Smith  <psmith@gnu.org>
-
-       * maintMakefile (do-po-update): Apparently we have to avoid
-       certificate checks on the http://translationproject.org site now.
-
-2011-09-12  Paul Smith  <psmith@gnu.org>
-
-       * read.c (eval): Ensure exported variables are defined in the
-       global scope.  Fixes Savannah bug #32498.
-
-2011-09-11  Paul Smith  <psmith@gnu.org>
-
-       * Makefile.am (dist-hook): Remove w32/Makefile and .deps/ from the
-       dist file.  Fixes Savannah bug #31489.
-
-       * doc/make.texi (Complex Makefile): Add a hint about using
-       #!/usr/bin/make (for Savannah support request #106459)
-
-2011-09-02  Paul Smith  <psmith@gnu.org>
-
-       * remake.c (touch_file): If we have both -n and -t, -n takes
-       precedence.  Patch from Michael Witten <mfwitten@gmail.com>
-
-2011-08-29  Paul Smith  <psmith@gnu.org>
-
-       * expand.c (variable_expand_string): Always allocate a new buffer
-       for a string we're expanding.  The string we're working on can get
-       freed while we work on it (for example if it's the value of a
-       variable which modifies itself using an eval operation).
-       See Savannah patch #7534 for the original report by Lubomir Rintel.
-
-2011-06-12  Paul Smith  <psmith@gnu.org>
-
-       * read.c (parse_file_seq): Move the check for empty members out of
-       the loop so we can go to the next member properly.
-       Another fix for Savannah bug #30612.
-
-       * config.h-vms.template: Newer versions of VMS have strncasecmp()
-       Patch provided by: Hartmut Becker <becker.ismaning@freenet.de>
-
-2011-05-07  Paul Smith  <psmith@gnu.org>
-
-       * expand.c (variable_append): Add a LOCAL argument to track
-       whether this is the first invocation or not.  If it's not and
-       private_var is set, then skip this variable and try the next one.
-       Fixes Savannah bug #32872.
-
-       * read.c (parse_file_seq): Ensure existence checks use glob().
-
-2011-05-07  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (construct_command_argv_internal): Don't assume shellflags
-       is always non-NULL.  Escape-protect characters special to the
-       shell when copying the value of SHELL into new_line.  Fixes
-       Savannah bug #23922.
-
-2011-05-02  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Special Variables): Add documentation for the new
-       words in .FEATURES.  Fixes Savannah bug #32058.
-       (Flavor Function): Rewrite the section on the flavor function.
-       Fixes Savannah bug #31582.
-
-       * function.c (func_sort): Use the same algorithm to count the
-       number of words we will get after the split, as we use to split.
-       Based on a patch from Matthias Hopf.  Fixes Savannah bug #33125.
-
-       * make.h: Make global variable stack_limit extern.
-       Fixes Savannah bug #32753.
-
-2011-05-01  Paul Smith  <psmith@gnu.org>
-
-       * read.c (parse_file_seq): Don't try to invoke glob() unless there
-       are potential wildcard characters in the filename.  Performance
-       enhancement suggested by Michael Meeks <michael.meeks@novell.com>
-
-2011-04-29 Boris Kolpackov  <boris@codesynthesis.com>
-
-       * read.c (eval_makefile): Delay caching of the file name until after
-       all the expansions and searches.
-
-2011-04-17  David A. Wheeler  <dwheeler@dwheeler.com>
-
-       * doc/make.texi (Reading Makefiles): Document "!=".
-       (Setting): Ditto.
-       (Features): Ditto.
-       * variable.h (enum variable_flavor): New type "f_shell".
-       * variable.c (shell_result): Send a string to the shell and store
-       the output.
-       (do_variable_definition): Handle f_shell variables: expand the
-       value, then send it to the shell and store the result.
-       (parse_variable_definition): Parse "!=" shell assignments.
-       * read.c (get_next_mword): Treat "!=" as a varassign word.
-       * function.c (fold_newlines): If trim_newlines is set remove all
-       trailing newlines; otherwise remove only the last newline.
-       (func_shell_base): Move the guts of the shell function here.
-       (func_shell): Call func_shell_base().
-
-2011-02-21  Paul Smith  <psmith@gnu.org>
-
-       * strcache.c (various): Increase performance based on comments
-       from Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.  Stop looking for
-       a buffer when we find the first one that fits, not the best fit.
-       If there is not enough free space in a buffer move it to a
-       separate list so we don't have to walk it again.
-       * make.h (NDEBUG): Turn off asserts unless maintainer mode is set.
-       (strcache_add_len, strcache_setbufsize): Use unsigned length/size.
-       * maintMakefile (AM_CPPFLAGS): Enable MAKE_MAINTAINER_MODE.
-
-       * remake.c (complain): Move translation lookups closer to use.
-
-2011-02-13  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi: Clean up references to "static" variables and
-       semicolon errors.  Patch from Michael Witten <mfwitten@gmail.com>.
-
-2010-12-27  Paul Smith  <psmith@gnu.org>
-
-       * make.1: Update the header/footer info in the man page.
-
-2010-11-28  Paul Smith  <psmith@gnu.org>
-
-       * read.c (record_target_var): Don't reset v if it's the same as
-       the global version.  Fixes Savannah bug #31743.
-
-2010-11-06  Paul Smith  <psmith@gnu.org>
-
-       * variable.c (print_auto_variable): Print auto variables; ignore others.
-       (print_noauto_variable): Print non-auto variables; ignore others.
-       (print_variable_set): Allow the caller to select which type to print.
-       (print_target_variables): Show all the non-auto variables for a target.
-
-       * default.c (install_default_suffix_rules): Initialize recipe_prefix.
-       * rule.c (install_pattern_rule): Ditto.
-       * read.c (record_files): Pass in the current recipe prefix.  Remember
-       it in the struct command for these targets.
-       (eval): Remember the value of RECIPEPREFIX when we start parsing.
-       Do not remove recipe prefixes from the recipe here: we'll do it later.
-       * job.c (start_job_command): Remove recipe prefix characters early,
-       before we print the output or chop it up.
-       * file.c (print_file): If recipe_prefix is not standard, reset it
-       in -p output.  Assign target variables in -p output as well.
-
-       * commands.c (chop_commands): Max command lines is USHRT_MAX.
-       Set any_recurse as a bitfield.
-       * make.h (USHRT_MAX): Define if not set.
-
-2010-10-27  Paul Smith  <psmith@gnu.org>
-
-       * commands.h (struct commands): Rearrange to make better use of
-       memory.  Add new recipe_prefix value.
-
-2010-10-26  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Setting): Document the treatment of
-       backslash-newline in variable values.
-       * misc.c (collapse_continuations): Do not collapse multiple
-       backslash-newlines into a single space.  Fixes Savannah bug #16670.
-
-2010-08-29  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Implicit Variables): Document LDLIBS and LOADLIBES.
-       Fixes Savannah bug #30807.
-       (Instead of Execution): Mention that included makefiles are still
-       rebuilt even with -n.  Fixes Savannah bug #30762.
-
-       * configure.in: Bump to 3.82.90.
-
-       * make.h: Add trace_flag variable.
-       * main.c (switches): Add --trace option.
-       (trace_flag): Declare variable.
-       * job.c (start_job_command): Show recipe if trace_flag is set.
-       (new_job): Show trace messages if trace_flag is set.
-       * doc/make.texi (Options Summary): Document the new --trace option.
-       * make.1: Add --trace documentation.
-       * NEWS: Mention --trace.
-
-       * job.c (child_error): Show recipe filename/linenumber on error.
-       Also show "(ignored)" when appropriate even for signals/coredumps.
-       * NEWS: Mention file/linenumber change.
-
-       * main.c (main): Print version info when DB_BASIC is set.
-
-       * job.c (construct_command_argv_internal): If shellflags is not
-       set, choose an appropriate default value.  Fixes Savannah bug #30748.
-
-2010-08-27  Eli Zaretskii  <eliz@gnu.org>
-
-       * variable.c (define_automatic_variables) [__MSDOS__ || WINDOWS32]:
-       Remove trailing backslashes in $(@D), $(<D), etc., for consistency
-       with forward slashes.  Fixes Savannah bug #30795.
-
-2010-08-13  Paul Smith  <psmith@gnu.org>
-
-       * NEWS: Accidentally forgot to back out the sorted wildcard
-       enhancement in 3.82, so update NEWS.
-       Also add NEWS about the error check for explicit and pattern
-       targets in the same rule, added to 3.82.
-
-       * main.c (main): Add "oneshell" to $(.FEATURES) (forgot to add
-       this in 3.82!)
-
-       * read.c (parse_file_seq): Fix various errors parsing archives
-       with multiple objects in the parenthesis, as well as wildcards.
-       Fixes Savannah bug #30612.
-
-2010-08-10  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Expand MAKEFLAGS before adding it to the
-       environment when re-exec'ing.  Fixes Savannah bug #30723.
-
-2010-08-07  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/subproc/build.bat: Make all 3 cl.exe compile command lines
-       use the same /I switches.  Fixes Savannah bug #30662.
-
-       * function.c (func_shell) [WINDOWS32]: Reset just_print_flag
-       around the call to construct_command_argv, so that a temporary
-       batch file _is_ created when needed for $(shell).
-       Fixes Savannah bug #16362.
-
-2010-08-07 Juan Manuel Guerrero  <juan.guerrero@gmx.de>
-
-       * configh.dos.template (HAVE_STRNCASECMP): Define.
-
-2010-07-28  Paul Smith  <psmith@gnu.org>
-
-       Version 3.82 released.
-
-       * configure.in: Change release version.
-       * NEWS: Change the date.
-
-       * read.c (parse_file_seq): Remove GLOB_NOSORT for
-       backward-compatibility.  We'll add it back in next release.
-       * NEWS: Note it.
-
-2010-07-24  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (pid2str) [WINDOWS32]: Fix CPP conditionals for using %Id
-       format.
-
-2010-07-18  Paul Smith  <psmith@gnu.org>
-
-       * configure.in: Switch bsd_signal to AC_CHECK_DECLS() to make sure
-       we have a declaration.  Fixes Savannah bug #25713 (maybe?)
-       * doc/make.texi (Complex Makefile): Cleanup variable assignments.
-       (One Shell): New subsection for the .ONESHELL special target.
-
-       Patches by Ozkan Sezer <sezeroz@gmail.com>:
-
-       * misc.c (strncasecmp): Local implementation for systems without.
-       * config.h.W32.template (HAVE_STRNICMP): Define on Windows.
-       * configure.in: Check for strncasecmp/strncmpi/strnicmp.
-       * job.c [WINDOWS32]: Don't define dup2 on Windows.
-       (pid2str): Use "%Id" even with MSVC
-       (exec_command): Cast to pid_t when calling pid2str().
-       * w32/subproc/sub_proc.c [WINDOWS32]: Include config.h first.
-       Use stddef.h on MSVC to get intptr_t.
-       * w32/subproc/misc.c [WINDOWS32]: Include config.h first.
-       * w32/compat/dirent.c [WINDOWS32]: Include config.h first.
-       (readdir): Cast -1 to correct type for d_ino.
-       * w32/pathstuff.c [WINDOWS32]: Ensure make.h is included first.
-       * make.h [WINDOWS32]: Don't prototype alloca() on Windows.
-       Add configuration for strncasecmp().
-       * main.c (ADD_SIG) [WINDOWS32]: Avoid warnings in MSVC.
-       * config.h.W32.template [WINDOWS32]: Don't warn on unsafe
-       functions or variables.
-       * NMakefile.template [WINDOWS32]: Remove /MACHINE:I386.
-       * main.c (clean_jobserver): Cast due to MSVC brokenness.
-       (decode_switches): Ditto.
-       * vpath.c (construct_vpath_list): Ditto.
-       * rule.c (freerule): Ditto.
-       * ar.c (ar_glob): Ditto.
-
-2010-07-16  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * misc.c (concat): Fix buffer overrun.
-
-2010-07-12  Paul Smith  <psmith@gnu.org>
-
-       Update copyrights to add 2010.
-
-       * build_w32.bat: Support for MSVC Windows x86_64 builds.
-       * job.c: Don't define execve() on MSVC/64bit.
-       Patch by Viktor Szakats.  Fixes Savannah bug #27590.
-
-2010-07-12  Eli Zaretskii  <eliz@gnu.org>
-
-       * make.h (alloca) [!__GNUC__]: Don't define prototype.
-       (int w32_kill): Use pid_t for process ID argument.
-       Fixes Savannah bug #27809.
-
-2010-07-12  Paul Smith  <psmith@gnu.org>
-
-       Integrated new .ONESHELL feature.
-       Patch by David Boyce <dsb@boyski.com>.  Modified by me.
-
-       * NEWS: Add a note about the new feature.
-       * job.c (is_bourne_compatible_shell): Determine whether we're
-       using a standard POSIX shell or not.
-       (start_job_command): Accept '-ec' as POSIX shell flags.
-       (construct_command_argv_internal): If one_shell is set and we are
-       using a POSIX shell, remove "interior" prefix characters such as
-       "@", "+", "-".  Also treat "\n" as a special character when
-       choosing the slow path, if ONESHELL is set.
-       * job.h (is_bourne_compatible_argv): Define the new function.
-
-       * make.h (one_shell): New global variable to remember setting.
-       * main.c: Declare it.
-       * read.c (record_files): Set it.
-       * commands.c (chop_commands): If one_shell is set, don't chop
-       commands into multiple lines; just keep one line.
-
-2010-07-09  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/subproc/sub_proc.c: Include stdint.h.
-       (sub_process_t): Use intptr_t for file handles and pid_t for
-       process ID.
-       (process_pipes, process_init_fd, process_begin): Use intptr_t for
-       file handles and pid_t for process ID.  Fixes Savannah bug #27809.
-       Patch by Ozkan Sezer <sezeroz@gmail.com>
-
-       * function.c (abspath): Support absolute file names in UNC format.
-       Fixes Savannah bug #30312.
-
-       * job.c (pid2str) [WINDOWS32]: Don't use %Id with GCC < 4.x.
-       (exec_command) [WINDOWS32]: Use pid2str instead of non-portable
-       %Id.
-
-       * main.c (handle_runtime_exceptions): Use %p to print addresses,
-       to DTRT on both 32-bit and 64-bit hosts.  Savannah bug #27809.
-
-       * job.c (w32_kill, start_job_command, create_batch_file): Use
-       pid_t for process IDs and intptr_t for the 1st arg of
-       _open_osfhandle.
-       * function.c (windows32_openpipe): Use pid_t for process IDs and
-       intptr_t for the 1st arg of _open_osfhandle.
-       (func_shell): Use pid_t for process IDs.
-       * main.c (main) [WINDOWS32]: Pacify the compiler.
-       * config.h.W32.template (pid_t): Add a definition for 64-bit
-       Windows builds that don't use GCC.  Fixes Savannah bug #27809.
-       Patch by Ozkan Sezer <sezeroz@gmail.com>
-
-2010-07-07  Paul Smith  <psmith@gnu.org>
-
-       * configure.in: Bump to a new prerelease version 3.81.91.
-
-2010-07-06  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Set a default value of "-c" for .SHELLFLAGS.
-       * NEWS: Mention the new behavior of .POSIX and the new .SHELLFLAGS
-       variable.
-       * job.c (construct_command_argv): Retrieve the .SHELLFLAGS value
-       and pass it to construct_command_argv_internal().
-       (construct_command_argv_internal): If .SHELLFLAGS is non-standard
-       use the slow path.  Use that value instead of hard-coded "-c".
-
-2010-07-05  Paul Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): lastslash can be const.
-       * dir.c (downcase): Remove unused variable.
-       * hash.c (hash_init): Cast sizeof for error message.
-       * arscan.c (ar_scan): Cast to char* for WINDOWS32.
-       (ar_member_touch): Ditto.
-       * ar.c (glob_pattern_p): Avoid symbol collision: open -> opened
-       * signame.c (strsignal): Ditto: signal -> sig
-       * job.c (create_batch_file): Ditto: error -> error_string
-       (pid2str): Portably convert a pid_t into a string
-       (reap_children): Use it.
-       (start_waiting_job): Use it.
-       Savannah bug #27809.  Patch by Ozkan Sezer <sezeroz@gmail.com>
-
-2010-07-03  Paul Smith  <psmith@gnu.org>
-
-       * read.c (parse_file_seq): All archive groups must end with ')' as
-       the LAST character in a word.  If there is no word ending in ')'
-       then it's not an archive group.  Fixes Savannah bug #28525.
-
-2010-07-01  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Append optional features using separate calls.
-       Not as efficient but not all compilers allow conditionals inside
-       macro calls.  Fixes Savannah bug #29244.
-
-2010-01-10  Paul Smith  <psmith@gnu.org>
-
-       * make.h (patheq): Rename strieq() to patheq() for clarity.
-       * dir.c (dir_contents_file_exists_p): Use it.
-
-       * dir.c (file_impossible): Convert xmalloc/memset to xcalloc.
-       * file.c (enter_file): Ditto.
-       * job.c (new_job): Ditto.
-
-2009-12-11  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (construct_command_argv_internal) <sh_cmds_dos>
-       [WINDOWS32]: Add "echo." and a few more commands that are built
-       into cmd.exe.  Fixes Savannah bug #28126.
-
-       * file.c (lookup_file) [HAVE_DOS_PATHS]: Treat '\\' like we do
-       with '/'.
-
-2009-11-15  Paul Smith  <psmith@gnu.org>
-
-       Patches for VMS provided by Hartmut Becker <Hartmut.Becker@hp.com>
-
-       * vmsjobs.c (ctrlYPressed) [VMS]: Deal with CTRL-Y.
-       (vmsHandleChildTerm) [VMS]: Ditto.
-       (astYHandler) [VMS]: Ditto.
-       (tryToSetupYAst) [VMS]: Ditto.
-       (child_execute_job) [VMS]: Ditto.
-
-       * vmsify.c (trnlog) [VMS]: Fix const errors.
-       (vmsify) [VMS]: Ditto.
-
-       * readme.vms [VMS]: Update with notes for 3.82.
-
-       * job.h (comname) [VMS]: Remember the temporary command filename
-
-       * dir.c (vmsify) [VMS]: Fix const errors.
-       (vms_hash) [VMS]: Ditto.
-       (vmsstat_dir) [VMS]: Ditto.
-       (find_directory) [VMS]: Fix case-insensitive option for VMS
-       (dir_contents_file_exists_p) [VMS]: Ditto.
-       (file_impossible) [VMS]: Ditto.
-
-       * config.h-vms.template (HAVE_FDOPEN) [VMS]: Have it.
-       (HAVE_STRCASECMP) [VMS]: Ditto.
-
-       * arscan.c (VMS_get_member_info) [VMS]: Fix timezone computation.
-       (ar_scan) [VMS]: Fix const error.
-
-2009-11-12  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * vpath.c (vpath_search, selective_vpath_search): Add index arguments
-       which allows the caller to get the index of the matching directory.
-
-       * make.h (vpath_search): Update prototype.
-
-       * remake.c (library_search): Implement linker-compatible library
-       search. Use the new VPATH_SEARCH index functionality to keep track
-       of the directory index for each match. Select the match with the
-       lowest directory index.
-
-       * implicit.c (pattern_search): Pass NULL for the index arguments in
-       the VPATH_SEARCH call.
-
-       * doc/make.texi (Directory Search for Link Libraries): Describe the
-       new search behavior.
-
-       * NEWS: Add a note about the new behavior.
-
-2009-10-25  Paul Smith  <psmith@gnu.org>
-
-       * AUTHORS, et.al.: Update copyright years.
-
-       * implicit.c (stemlen_compare): Fix qsort() compare bug that
-       caused implicit rules with equal stem lengths to be sorted
-       indeterminately.
-
-2009-10-24  Paul Smith  <psmith@gnu.org>
-
-       * main.c (usage): Add --eval to the usage string.
-       (switches): Add the --eval switch.
-       (main): If --eval is given, add them to the simply-expanded variable
-       -*-eval-flags-*- (necessary to allow recursion to work properly).
-       (define_makeflags): Add -*-eval-flags-*- to MAKEFLAGS.
-
-       * NEWS: Describe the new --eval command line argument.
-       * doc/make.texi (Options Summary): Document --eval.
-
-       * dep.h: eval_buffer() returns void.
-       * read.c (eval_buffer): Ditto.
-       (eval): Ditto.
-
-       * variable.h (define_variable_cname): New macro for constant
-       variable names.
-       * default.c (set_default_suffixes): Use it.
-       * main.c (main): Ditto.
-       (handle_non_switch_argument): Ditto.
-       (define_makeflags): Ditto.
-       * read.c (read_all_makefiles): Ditto.
-       * variable.c (define_automatic_variables): Ditto.
-
-       * commands.c (dep_hash_cmp): Avoid casts.
-       (dep_hash_1): Ditto.
-       (dep_hash_2): Ditto.
-
-2009-10-22  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * read.c (read_all_makefiles): Mark the default makefile dependency
-       dontcare.
-
-2009-10-07  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * read.c (do_undefine): Free the expanded variable name.
-
-       * commands.c (dep_hash_cmp, set_file_variables): Move the order-only
-       to normal upgrade logic from  dep_hash_cmp to set_file_variables.
-
-2009-10-06  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * dep.h (uniquize_deps): Remove.
-
-       * read.c (uniquize_deps): Merge into set_file_variables in
-       commands.c.
-       (dep_hash_1, dep_hash_2, dep_hash_cmp): Move to commands.c.
-
-       * commands.c (set_file_variables): Avoid modifying the dep
-       chain to achieve uniqueness. Fixes savannah bug 25780.
-
-       * implicit.c (pattern_search): Instead of re-setting all automatic
-       variables for each rule we try, just update $*.
-
-2009-10-06  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * variable.h (undefine_variable_in_set): New function declaration.
-       (undefine_variable_global): New macro.
-
-       * variable.c (undefine_variable_in_set): New function implementation.
-
-       * read.c (vmodifiers): Add undefine_v modifier.
-       (parse_var_assignment): Parse undefine.
-       (do_undefine): Handle the undefine directive.
-       (eval): Call do_undefine if undefine_v is set.
-
-       * main.c (.FEATURES): Add a keyword to indicate the new feature.
-
-       * doc/make.texi (Undefine Directive): Describe the new directive.
-
-       * NEWS: Add a note about the new directive.
-
-2009-10-05  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * implicit.c (pattern_search): Initialize file variables only
-       if we need to parse a rule that requires the second expansion.
-
-2009-10-03  Paul Smith  <psmith@gnu.org>
-
-       * make.h: Include <alloca.h> even on systems where __GNUC__ is
-       defined.  Not sure why it was done the other way.
-       Requested by David Boyce <dsb@boyski.com>.
-
-2009-09-30  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * dep.h (dep): Add the DONTCARE bitfield.
-
-       * filedef.h (file):Add the NO_DIAG bitfield.
-
-        * read.c (eval_makefile): Set the DONTCARE flag in struct dep,
-       not struct file (a file can be a dependency of many targets,
-       some don't care, some do).
-
-       * remake.c (update_goal_chain): Propagate DONTCARE from struct
-       dep to struct file before updating the goal and restore it
-       afterwards.
-       (update_file): Don't prune the dependency graph if this target
-       has failed but the diagnostics hasn't been issued.
-       (complain): Scan the file's dependency graph to find the file
-       that caused the failure.
-       (update_file_1): Use NO_DIAG instead of DONTCARE to decide
-       whether to print diagnostics.
-
-       Fixes Savannah bugs #15110, #25493, #12686, and #17740.
-
-2009-09-28  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Pattern Intro): Move the match algorithm
-       discussion into the "Pattern Match" node.
-       (Pattern Match): Expand on the pattern rule matching algorithm.
-
-2009-09-28  Andreas Buening  <andreas.buening@nexgo.de>
-
-       * job.c (construct_command_argv_internal) [OS2]: Don't eat too
-       much of the command line on a single pass.
-
-2009-09-28  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * varible.c (create_pattern_var): Insert variables into the
-       PATTERN_VARS list in the shortest patterns first order.
-
-       * implicit.c (tryrule): Add STEMLEN and ORDER members. These are
-       used to sort the rules.
-       (stemlen_compare): Compare two tryrule elements.
-       (pattern_search): Sort the rules so that they are in the shortest
-       stem first order.
-
-       * main.c (.FEATURES): Add a keyword to indicate the new behavior.
-
-       * doc/make.texi (Pattern-specific Variable Values): Describe the
-       new pattern-specific variables application order.
-       (Introduction to Pattern Rules): Describe the new pattern rules
-       search order.
-
-       * NEWS: Add a note about the new behavior.
-
-2009-09-27  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Double-Colon): Mention that pattern rules with
-       double-colons have a different meaning.  Savannah bug #27497.
-
-2009-09-27  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
-
-       * configh.dos.template: Remove unconditional definition of
-       SYS_SIGLIST_DECLARED.
-       Include <sys/version.h> because ports of GCC 4.3.0 and later no
-       longer include it, so macros like __DJGPP_MINOR__ are no longer
-       defined automatically.
-
-       * Makefile.DOS.template (INCLUDES): Use $(prefix) and the
-       corresponding variables to define LIBDIR, INCLUDEDIR and LOCALEDIR
-       instead of using the hardcoded ones.
-       (SUBDIRS): doc subdir added.
-       (INFO_DEPS, DVIS): Values changed to 'make.info' and 'make.dvi'.
-       (TEXI2HTML, TEXI2HTML_FLAGS): Removed.  Use makeinfo --html to
-       create html formated docs.  texi2html may not be ported to DOS.
-       (make.info, make.dvi, make.ps, make.html): Make targets depend on
-       'make.texi'.
-       (.texi.info, .texi, .texi.dvi): Now invoked recursively.  Change
-       -I switch to look in ./ instead of ./doc.
-       (html): Target depend on html-recursive instead of make_1.html.
-       (make_1.html): Removed.
-       (mostlyclean-aminfo): Use $(srcdir)/doc instead of ./ as prefix.
-       (all-recursive): Allow for more than one subdir in the build
-       process.
-       (mostlyclean-recursive, clean-recursive, distclean-recursive)
-       (maintainer-clean-recursive, check-recursive): Enter in doc/ too.
-       (tags-recursive): Allow for more than one subdir in the build
-       process.
-       (info-recursive, dvi-recursive, ps-recursive, html-recursive): New
-       targets.  Enter into doc/ to produce the targets.
-       (all-am): $(INFO_DEPS) replaced by info.
-
-2009-09-26  Paul Smith  <psmith@gnu.org>
-
-       * read.c (record_files): Use free_ns() to free struct nameseq.
-       (eval): Ditto.
-
-       * rule.c (freerule): Use free_dep_chain().
-
-       * read.c (record_files): Free FILENAMES chain for implicit rules.
-       (eval): Static pattern targets go into the string cache.
-
-       * function.c (string_glob): Free NAME in the nameseq chain.
-
-2009-09-25  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * implicit.c (pattern_search): Terminate early if we haven't
-       found any rules to try (performance improvement).
-
-2009-09-25  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * implicit.c (pattern_search): Merge three parallel arrays,
-       TRYRULES, MATCHES, and CHECKED_LASTSLASH, into one array
-       of struct TRYRULE. In the old version the latter two arrays
-       had insufficient length.
-
-2009-09-24  Paul Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): Add back support for order-only
-       prerequisites for secondary expansion implicit rules, that were
-       accidentally dropped.  If we find a "|", enable order-only mode
-       and set IGNORE_MTIME on all deps that are seen afterward.
-       (pattern_search): Fix memory leaks: for intermediate files where
-       we've already set the file variable and pattern variable sets, be
-       sure to either save or free them as appropriate.
-
-2009-09-23  Paul Smith  <psmith@gnu.org>
-
-       Rework the way secondary expansion is stored, for efficiency.
-       This changes secondary expansion so that ONLY WHEN we know we have
-       a possibility of needing secondary expansion, do we defer the
-       secondary expansion.  This means more parsing the deps but we use
-       a lot less memory (due to the strcache).  Also, this fixes
-       Savannah bug #18622.
-
-       * read.c (eval): Don't parse the dep string here anymore.
-       (record_files): Take the dep argument as an unparsed string.  If
-       secondary expansion is enabled AND the prereq string has a '$' in
-       it, then set NEED_2ND_EXPANSION and keep the entire string.
-       Otherwise, parse the dep string here to construct the dep list
-       with the names in the strcache.
-
-       * misc.c (copy_dep_chain): For NEED_2ND_EXPANSION, we need to
-       duplicate the name string (others are in the strcache).
-
-       * implicit.c: Remove struct idep and free_idep_chain(): unused.
-       (struct patdeps): New structure to store prereq information.
-       (pattern_search): Use the NEED_2ND_EXPANSION flag to determine
-       which prerequisites need expansion, and expand only those.
-
-       * file.c (split_prereqs): Break parse_prereqs() into two parts: this
-       and enter_prereqs().  split_prereqs() takes a fully-expanded string
-       and splits it into a DEP list, handling order-only prereqs.
-       (enter_prereqs): This function enters a list of DEPs into the file
-       database.  If there's a stem defined, expand any pattern chars.
-       (expand_deps): Only try to expand DEPs which have NEED_2ND_EXPANSION
-       set.  Use the above functions.
-       (snap_deps): Only perform second expansion on prereqs that need it,
-       as defined by the NEED_2ND_EXPANSION flag.
-       (print_prereqs): New function to print the prereqs
-       (print_file): Call print_prereqs() rather than print inline.
-
-       * hash.h (STRING_COMPARE): Take advantage of strcache() by
-       comparing pointers.
-       (STRING_N_COMPARE): Ditto.
-       (ISTRING_COMPARE): Ditto.
-
-       * dep.h (PARSE_FILE_SEQ): New macro to reduce casts.
-       (parse_file_seq): Return void*
-       * read.c (parse_file_seq): Return void*.
-       (eval): Invoke macroized version of parse_file_seq()
-       * default.c (set_default_suffixes): Ditto.
-       * file.c (split_prereqs): Ditto.
-       * function.c (string_glob): Ditto.
-       * main.c (main): Ditto.
-       * rule.c (install_pattern_rule): Ditto.
-
-       * filedef.h: Add split_prereqs(), enter_prereqs(), etc.
-
-2009-09-16  Paul Smith  <psmith@gnu.org>
-
-       * misc.c (alloc_dep, free_dep): Now that we have xcalloc(),
-       convert to macros.
-       * dep.h: Create alloc_dep() / free_dep() macros.
-
-       * implicit.c (pattern_search): Take advantage of the new
-       parse_file_seq() to add the directory prefix to each prereq.
-
-       * dep.h: Remove multi_glob() and enhance parse_file_seq() to do it
-       all.  Avoid reversing chains.  Support adding prefixes.
-       * read.c (parse_file_seq): Rewrite to support globbing.  Allow for
-       cached/non-cached results.
-       (eval): Remove multi_glob() & invoke new parse_file_seq().
-       * rule.c (install_pattern_rule): Ditto.
-       * main.c (main): Ditto.
-       * implicit.c (pattern_search): Ditto.
-       * function.c (string_glob): Ditto.
-       * file.c (parse_prereqs): Ditto.
-       * default.c (set_default_suffixes): Ditto.
-
-       * variable.c (parse_variable_definition): Don't run off the end of
-       the string if it ends in whitespace (found with valgrind).
-
-       * commands.c (set_file_variables): Keep space for all targets in
-       $? if -B is given (found with valgrind).
-
-2009-09-15  Paul Smith  <psmith@gnu.org>
-
-       * misc.c (concat): Make concat() variadic so it takes >3 arguments.
-       (xcalloc): Add new function.
-       * make.h: New declarations.
-
-       * ar.c (ar_glob_match): New calling method for concat().
-       * main.c (main): Ditto.
-       (decode_env_switches): Ditto.
-       * read.c (eval_makefile): Ditto.
-       (tilde_expand): Ditto.
-       (parse_file_seq): Ditto.
-       * variable.c (target_environment): Ditto.
-       (sync_Path_environment): Ditto.
-
-       * ar.c (ar_glob_match): Use xcalloc().
-       * dir.c (file_impossible): Ditto.
-       * file.c (enter_file): Ditto.
-       * job.c (new_job): Ditto.
-       * read.c (parse_file_seq): Ditto.
-       * vmsfunctions.c (opendir): Ditto.
-
-2009-09-14  Rafi Einstein  <rafi.einstein@gmail.com>  (tiny patch)
-
-       * w32/subproc/sub_proc.c (process_begin): Check *ep non-NULL
-       inside the loop that looks up environment for PATH.
-
-2009-08-31  Eli Zaretskii  <eliz@gnu.org>
-
-       * function.c (windows32_openpipe): Update envp after calling
-       sync_Path_environment.
-
-2009-08-02  Paul Smith  <psmith@gnu.org>
-
-       * remake.c (notice_finished_file): Ensure file->cmds is not null
-       before looping through them.  Fixes Savannah bug #21824.
-
-       * doc/make.texi (Wildcard Examples): Clarify when objects is
-       wildcard-expanded.  Fixes Savannah bug #24509.  Patch by Martin Dorey.
-       (Include): Clarify the behavior of -include.
-       Fixes Savannah bug #18963.
-
-2009-08-01  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Catalogue of Rules): Clarify where -c, -F,
-       etc. come on the command line.  Fixes Savannah bug #27093.
-
-       * expand.c (expand_argument): If the argument is large enough use
-       xmalloc() instead of alloca().  Fixes Savannah bug #27143.
-
-       * variable.c (do_variable_definition): Avoid using alloca() to
-       hold values, which can be large.  Fixes Savannah bug #23960.
-
-       * job.c (new_job): Use memmove() instead of strcpy() since both
-       pointers are in the same memory block.  Fixes Savannah bug #27148.
-       Patch by Petr Machata.
-
-2009-07-29  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-        * job.c (construct_command_argv_internal): Add "ulimit" and
-        "unset" to the sh_cmds for Unixy shells.
-
-2009-07-29  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-        * configure.in: Move side-effects outside AC_CACHE_VAL arguments
-        that set make_cv_sys_gnu_glob, so they are also correctly set
-        when the cache has been populated before.
-
-2009-07-04  Eli Zaretskii  <eliz@gnu.org>
-
-       * function.c (func_realpath) [!HAVE_REALPATH]: Require the file to
-       exist, as realpath(3) does where it's supported.
-
-2006-07-04  Eli Zaretskii  <eliz@gnu.org>
-
-       * function.c (IS_ABSOLUTE, ROOT_LEN): New macros.
-       (abspath): Support systems that define HAVE_DOS_PATHS (have
-       drive letters in their file names).  Use IS_PATHSEP instead of a
-       literal '/' comparison.  Fixes Savannah bug #26886.
-
-2009-06-14  Paul Smith  <psmith@gnu.org>
-
-       * remake.c (update_file_1): Remember the original file we marked
-       as updating, so we can clear that flag again.  If we find a target
-       via vpath, FILE might change.
-       (check_dep): Ditto.  Fixes Savannah bug #13529.
-       Patch by Reid Madsen <reid.madsen@tek.com>.
-
-2009-06-13  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (MAKEFILES Variable): Be explicit that files
-       included by MAKEFILES cannot give default goals.
-       * read.c (eval): If set_default is not set, pass the no-default-goal
-       value when we read included makefiles.  Fixes Savannah bug #13401.
-
-       * ar.c (ar_name): Ensure that targets with empty parens aren't
-       considered archive member references: archive members must have a
-       non-empty "member" string.  Fixes Savannah bug #18435.
-
-       * function.c (string_glob): Rely on multi_glob() to determine
-       whether files exist or not.  Remove call to file_exists_p() which
-       is not always correct.  Fixes Savannah bug #21231.
-       * read.c (multi_glob): Add a new argument EXISTS_ONLY; if true
-       then only files that really exist will be returned.
-       * dep.h: Add new argument to multi_glob().
-       * rule.c (install_pattern_rule): Ditto.
-       * read.c (eval): Ditto.
-       * main.c (main): Ditto.
-       * implicit.c (pattern_search): Ditto.
-       * file.c (parse_prereqs): Ditto.
-       * default.c (set_default_suffixes): Ditto.
-
-2009-06-09  Paul Smith  <psmith@gnu.org>
-
-       * commands.c (set_file_variables): If always_make_flag is set,
-       always add the prereq to $?.  Fixes Savannah bug #17825.
-
-       * remake.c (update_file_1): When rebuilding deps of FILE, also try
-       to rebuild the deps of all the also_make targets for that file.
-       Fixes Savannah bug #19108.
-
-       * implicit.c (pattern_search): Undo test for is_target, added by
-       BorisK on 21 Sep 2004.  This goes against step 5c in the "Implicit
-       Rule Search Algorithm".  Fixes Savannah bug #17752.
-
-       * main.c (clean_jobserver): Clear the jobserver_fds options and
-       set job_slots to the default when we clean up.
-       (define_makeflags): Return the new MAKEFLAGS value.
-       (main): Reset MAKEFLAGS in the environment when we re-exec.
-       Fixes Savannah bug #18124.
-
-2009-06-08  Paul Smith  <psmith@gnu.org>
-
-       * read.c (eval): Collapse continuations post-semicolon on target-
-       specific variables.  Fixes Savannah bug #17521.
-
-2009-06-07  Paul Smith  <psmith@gnu.org>
-
-       * job.c (reap_children): For older systems without waitpid() (are
-       there any of these left?) run wait(2) inside EINTRLOOP to handle
-       EINTR errors.  Fixes Savannah bug #16401.
-
-       * (various): Debug message cleanup.  Fixes Savannah bug #16469.
-
-       * main.c: Fix bsd_signal() typedef.  Fixes Savannah bug #16473.
-
-       * file.c (snap_deps): Set SNAPPED_DEPS at the start of snapping,
-       not the end, to catch second expansion $(eval ...) defining new
-       target/prereq relationships during snap_deps.
-       Fixes Savannah bug #24622.
-
-       * read.c (record_files): The second-expansion "f->updating" hack
-       was not completely correct: if assumed that the target with
-       commands always had prerequisites; if one didn't then the ordering
-       was messed up.  Fixed for now to use f->updating to decide whether
-       to preserve the last element in the deps list... but this whole
-       area of constructing and reversing the deps list is too confusing
-       and needs to be reworked.  Fixes Savannah bug #21198.
-
-2009-06-06  Paul Smith  <psmith@gnu.org>
-
-       * hash.c (hash_insert): Remove useless test for NULL.
-       Fixes Savannah bug #21823.
-
-       * make.h: Move SET_STACK_SIZE determination to make.h.
-       * main.c (main): New global variable, STACK_LIMIT, holds the
-       original stack limit when make was started.
-       * job.c (start_job_command): Reset the stack limit, if we changed it.
-       Fixes Savannah bug #22010.
-
-       * remake.c (check_dep): Only set the target's state to not-started
-       if it's not already running.  Found this while testing -j10 builds
-       of glibc: various targets were being rebuilt multiple times.
-       Fix from Knut St. Osmundsen; fixes a problem reported in Savannah
-       bug #15919.
-
-       * read.c (multi_glob): Don't pass GLOB_NOCHECK to glob(3); instead
-       handle the GLOB_NOMATCH error.  This is to work around Sourceware.org
-       Bugzilla bug 10246.
-
-2009-06-04  Paul Smith  <psmith@gnu.org>
-
-       * read.c (eval): Skip initial whitespace (ffeed, vtab, etc.)
-
-       * maintMakefile: Modify access of config and gnulib Savannah
-       modules to use GIT instead of CVS.
-
-       * main.c (main): Initialize the LENGTH field in SHELL_VAR.
-       Fixes Savannah bug #24655.
-
-       * read.c (eval_buffer): Don't dereference reading_file if it's NULL;
-       this can happen during some invocations of $(eval ...) for example.
-       Fixes Savannah bug #24588.  Patch by Lars Jessen <ljessen@ljessen.dk>
-
-2009-06-02  Paul Smith  <psmith@gnu.org>
-
-       * configure.in: Check for fileno()
-       * read.c (eval_makefile): If fileno() is available, set CLOSE_ON_EXEC
-       for the makefile file so invocations of $(shell ...) don't inherit it.
-       Fixes Savannah bug #24277.
-
-2009-06-01  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): The previous fix for .DEFAULT_GOAL had issues;
-       expansion was handled incorrectly.  Rework the default goal
-       handling to save the variable only.  Remove default_goal_file and
-       default_goal_name.
-       * read.c (eval): Check default_goal_var, not default_goal_name.
-       * read.c (record_target_var): Don't check default_goal_file here.
-
-2009-05-31  Paul Smith  <psmith@gnu.org>
-
-       * main.c (main): Expand the .DEFAULT_GOAL variable before using
-       it, and if the multi_glob() returns nothing (say it expanded to
-       nothing but spaces) then don't crash.  Fixes Savannah bug #25697.
-
-       * doc/make.texi (Quick Reference): Add $(if ..), $(or ..), and
-       $(and ..) to the reference.  Fixes Savannah bug #25694.
-
-       * make.1: Be clear that some recipes will be executed even with -n.
-       * doc/make.texi: Ditto.  Fixes Savannah bug #25460.
-
-       * doc/make.texi (Override Directive): Make more clear how
-       overrides and appends interact.
-       Elucidates part of Savannah bug #26207.
-
-       * read.c (record_target_var): Don't reset the origin on
-       target-specific variables; try_variable_definition() will handle
-       this correctly.  Fixes Savannah bug #26207.
-
-       * maintMakefile (do-po-update): Copy PO files into $(top_srcdir).
-       Fixes Savannah bug #25712.
-
-       * implicit.c (pattern_search): Keep a pointer to the beginning of
-       the filename and save that instead of the constructed pointer.
-       Fixes Savannah bug #26593.
-       Patch by Mark Seaborn <mrs@mythic-beasts.com>
-
-2009-05-30  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Multi-Line): Add a description of the new abilities
-       of define/endef.  Rename "Sequences" to "Multi-Line" and fix some
-       "command sequence" vs. "recipe" syntax.
-       * read.c (do_define): Modify to allow assignment tokens (=, :=, etc.)
-       after a define, to create variables with those flavors.
-
-2009-05-25  Paul Smith  <psmith@gnu.org>
-
-       Reworked the parser for variable assignments to allow multiple
-       modifiers, and in any order.  Also allows variable and
-       prerequisites to be modifier names ('export', 'private', etc.)
-
-       * NEWS: Add notes about user-visible changes.
-
-       * read.c (struct vmodifiers): Remember what modifiers were seen.
-       (parse_var_assignment): New function to parse variable assignments.
-       (eval): Call the new function.  Handle variable assignments earlier.
-
-       * variable.c (parse_variable_definition): Only parse; don't create var.
-       (assign_variable_definition): Call parse, then create the var.
-
-2009-05-24  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi: Fix the ISBN for the GNU make manual.  Incorrect
-       value noticed by Hans Stol <hans.stol@nc3a.nato.int>.
-
-2009-03-14  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/pathstuff.c (convert_Path_to_windows32): Fix last change.
-       Fixes Savannah bug #25412.
-
-       * w32/subproc/sub_proc.c <top level>: Update Copyright years.  Add
-       prototype for xmalloc.
-       (find_file): Accept 3 arguments PATH_VAR, FULL_FNAME, and FULL_LEN
-       instead of an LPOFSTRUCT pointer.  Use xmalloc instead of malloc.
-       Loop over an array of extensions, instead of duplicating the same
-       code inline.  Use SearchPath followed by CreateFile, instead of
-       the obsolete OpenFile.  Fixes Savannah bug #17277.
-       (process_begin): Find $(PATH) in `envp', and pass a pointer to it
-       to `find_file'.  Fixes Savannah bug #25662.
-
-2009-03-07  Eli Zaretskii  <eliz@gnu.org>
-
-       * function.c (func_shell): Don't close pipedes[1] if it is -1.
-       Fixes Savannah bug #20495.
-
-2009-02-28  Ralf Wildenhues  <address@hidden>
-
-        * doc/make.texi (Instead of Execution): Document interaction of
-        -t with phony targets.
-
-2009-02-23  Ramon Garcia  <ramon.garcia.f@gmail.com>
-
-       Introduce a new keyword "private" which applies to target-specific
-       variables and prevents their values from being inherited.
-
-       * variable.h (struct variable): Add private_var flag to each variable.
-       Add a flag to specify which list entry switches to the parent target.
-       * variable.c (define_variable_in_set): Initialize private_var flag.
-       (lookup_variable): Skip private variables in parent contexts.
-       (initialize_file_variables): Set next_is_parent appropriately.
-       (print_variable): Show the private_var flag.
-       * read.c (eval): Recognize the private keyword.
-       (record_target_var): Set private_var.
-       * doc/make.texi (Suppressing Inheritance): Add documentation.
-
-2008-10-26  Paul Smith  <psmith@gnu.org>
-
-       * configure.in: Check for strndup().
-       * misc.c (xstrndup): Rename savestring to xstrndup.  Use strndup
-       if it's available.
-       * make.h: Rename savestring to xstrndup.
-       * commands.c (chop_commands): Ditto.
-       * function.c (func_foreach): Ditto.
-       * read.c (eval, record_files): Ditto.
-       * variable.c (define_variable_in_set): Ditto.
-
-2008-09-30  Eli Zaretskii  <eliz@gnu.org>
-
-       * build_w32.bat (GCCBuild): Use "-gdwarf-2 -g3" instead of
-       "-gstabs+ -ggdb3".
-
-       * w32/subproc/build.bat (GCCBuild): Likewise.
-
-2008-09-30  David Russo  <d-russo@ti.com>  (tiny change)
-
-       * job.c (construct_command_argv_internal): Avoid extra backslash
-       in batch-mode Unixy shells.  Under DB_JOBS, display the contents
-       of the batch file.
-
-2008-05-31  Eli Zaretskii  <eliz@gnu.org>
-
-       * README.W32.template: Remove obsolete text about non-support for
-       -jN without Unixy shell.  Remove obsolete text about not supplying
-       Visual Studio project files (we do supply them).  Modify text to
-       prefer GCC builds to MSC builds.
-
-2008-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * doc/make.texi (Empty Targets): Fix typo.
-
-2008-03-27  Paul Smith  <psmith@gnu.org>
-
-       Fix Savannah bug #22379:
-       * ar.c (ar_glob_match): Zero the allocated structure.
-       * read.c (parse_file_seq): Ditto.
-
-2008-03-08  Brian Dessent  <brian@dessent.net>
-
-       * maintMakefile: Update Translation Project location.
-
-2008-01-26  Eli Zaretskii  <eliz@gnu.org>
-
-       * variable.c (target_environment): Don't use shell_var if its
-       `value' field is NULL.
-
-2007-12-22  Eli Zaretskii  <eliz@gnu.org>
-
-       Suggested by Juan Manuel Guerrero <juan.guerrero@gmx.de>:
-
-       * Makefile.DOS.template (info_TEXINFOS): Remove unused variable.
-       (TEXINFOS): Value changed to `doc/make.texi'.
-       (.SUFFIXES): Use .texi instead of .texinfo.
-       (make.info, make.dvi): Depend on doc/make.texi.
-       (.texi.info): New target, instead of ".texinfo.info".  Change -I
-       switch to $(MAKEINFO) to look in doc/.  Use --no-split.
-       (.texi): New target, instead of ".texinfo".  Change -I switch to
-       $(MAKEINFO) to look in doc/.  Use --no-split.
-       (.texi.dvi): New target, instead of ".texinfo.dvi".  Change -I
-       switch to $(MAKEINFO) to look in doc/.
-       (install-info-am, uninstall-info): Don't look for "*.i[0-9]" and
-       "*.i[0-9][0-9]" (due to --no-split above).
-       (noinst_TEXINFOS, TEXI2HTML, TEXI2HTML_FLAGS): New variables.
-       (html, make_1.html): New targets.
-       (.PHONY): Add "html".
-       (.SUFFIXES): Add .html.
-
-2007-12-22  Juan Manuel Guerrero  <juan.guerrero@gmx.de>  (tiny change)
-
-       * configh.dos.template [__DJGPP__]: Replace HAVE_SYS_SIGLIST with
-       HAVE_DECL_SYS_SIGLIST.
-
-       * job.c (child_execute_job): Remove __MSDOS__ because MSDOS/DJGPP
-       build does not use child_execute_job.
-
-       * variable.c (define_automatic_variables) [__MSDOS__]: Always
-       export the SHELL environment variable to the child.
-
-2007-12-22  Eli Zaretskii  <eliz@gnu.org>
-
-       * config.h.W32: Include sys/types.h.
-       [!_PID_T_] (pid_t): Define only if not already defined by sys/types.h.
-
-       * vpath.c (construct_vpath_list) [HAVE_DOS_PATHS]: Support VPATH
-       values that use `:' in drive letters, when PATH_SEPARATOR_CHAR is
-       also `:'.
-
-2007-11-04  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi: Convert references to "commands", "command
-       lines", and "command script" to "recipe".
-       * NEWS: Ditto.
-       * commands.c, file.c, job.c, remake.c, read.c, variable.c, main.c:
-       Ditto.
-
-2007-10-27  Bruno Haible  <bruno@clisp.org>
-
-       * remake.c (f_mtime): Print time difference values between 100 and
-       ULONG_MAX in fixed-point notation rather than in exponention notation.
-
-2007-10-12  Eli Zaretskii  <eliz@gnu.org>
-
-       * variable.c (do_variable_definition): Allow $(SHELL) to expand to
-       a more complex value than a simple shell: if it's not a default
-       shell now then expand it and see if is a default shell then.
-
-2007-10-10  Eli Zaretskii  <eliz@gnu.org>
-
-       * dir.c (find_directory) [WINDOWS32]: Remove trailing slashes from
-       pathnames, with const strings.
-       * build_w32.bat [WINDOWS32]: If no config.h.W32 exists, create one
-       from the template (used for building from CVS, not a dist).
-
-2007-10-10  Paul Smith  <psmith@gnu.org>
-
-       * make.h: Add a prototype for w32_kill() (change suggested by
-       Yongwei Wu <wuyongwei@gmail.com>).
-
-2007-09-21  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/pathstuff.c (convert_Path_to_windows32): Handle quoted
-       directories in Path.
-
-2007-09-12  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi: Applied wording cleanups from Savannah patch #6195.
-       Provided by Diego Biurrun <diego@biurrun.de>
-       (Complex Makefile): Remove .PHONY setting for tar: patch #6196.
-       Provided by Diego Biurrun <diego@biurrun.de>
-
-2007-09-11  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Special Variables): Moved this into the "How to
-       Use Variables" chapter.  Added a table entry for .RECIPEPREFIX.
-       (MAKEFILE_LIST) No longer a section; this was added into the
-       "Special Variables" section.
-       (Rule Introduction): Reference .RECIPEPREFIX.
-       (Simple Makefile): Ditto.
-       (Rule Syntax): Ditto.
-       (Command Syntax): Ditto.
-       (Error Messages): Ditto.
-
-2007-09-10  Paul Smith  <psmith@gnu.org>
-
-       * commands.c (print_commands): Don't print an extra line in the
-       command scripts.  Prefix the command scripts with cmd_prefix, not \t.
-
-       * read.c (construct_include_path): Add the full string to the cache; we
-       were chopping the last char.
-
-       * NEWS: Announce the .RECIPEPREFIX special variable.
-       * variable.c (lookup_special_var): Rename from handle_special_var().
-       (lookup_variable): Call the new name.
-       (set_special_var): New function: handle setting of special variables.
-       When setting .RECIPEPREFIX, reset the cmd_prefix global variable.
-       (do_variable_definition): Call it.
-       * make.h (RECIPEPREFIX_DEFAULT): Define the default command prefix char.
-       (RECIPEPREFIX_NAME): Define the command prefix special variable name.
-       * main.c (main): Create the .RECIPEPREFIX special variable.
-       * read.c (eval): Remove the cmd_prefix characters from the command
-       scripts here, so they're not stored in the commands array at all,
-       rather than waiting and stripping them out during command construction.
-       * job.c (construct_command_argv_internal): Don't skip cmd_prefix here.
-
-2007-08-15  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (GNU Free Documentation License): The fdl.texi
-       file has had the section info removed, so add some to make.texi
-       before we include it.
-
-2007-08-15  Icarus Sparry  <savannah@icarus.freeuk.com>
-
-       * remake.c (check_dep): Reset the target state for intermediate
-       files.  They might have been considered before but not updated
-       then (order-only for example) but they will be this time.
-       Fixes Savannah bug #'s 3330 and 15919.
-
-2007-07-21  Eli Zaretskii  <eliz@gnu.org>
-
-       Fix Savannah bug #20549:
-       * function.c (func_shell): Call construct_command_argv with zero
-       value of FLAGS.
-       * job.c (construct_command_argv_internal): New argument FLAGS; all
-       callers changed.
-       [WINDOWS32]: If FLAGS has the COMMANDS_RECURSE bit set, ignore
-       just_print_flag.
-       * job.h (construct_command_argv_internal): Update prototype.
-
-2007-07-13  Paul Smith  <psmith@gnu.org>
-
-       * file.c (expand_deps): Use variable_buffer as the start of the
-       buffer, not the original pointer (in case it was reallocated).
-       Fix suggested by Rafi Einstein <rafi.einstein@formalism-labs.com>.
-       Fixes Savannah bug #20452.
-
-2007-07-04  Paul Smith  <psmith@gnu.org>
-
-       * (ALL FILES): Update to GPLv3.
-       * (ALL FILES): Update copyright for 2007.
-
-       * main.c (print_version): Move the host type info to the second line.
-
-2007-06-29  Thiemo Seufer  <ths@mips.com>
-
-       * maintMakefile: Update Translation Project location.
-
-2007-06-13  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Reading Makefiles): "Expansion of deferred" ->
-       "Expansion of a deferred"
-       Fixes Savannah bug #20018.
-
-       * expand.c (variable_expand_for_file): Preserve the value of
-       reading_file rather than setting it to 0 at the end.
-       Fixes Savannah bug #20033.
-
-2007-05-11  Paul Smith  <psmith@gnu.org>
-
-       * job.c (new_job): Add debug info to specify where make found the
-       command script it is running to build a target.
-       Fixes Savannah bug #18617.
-
-       * default.c (default_suffixes,default_suffix_rules,default_variables):
-       Add support for Objective C.  Fixes Savannah bug #16389.
-       Based on a patch provided by Peter O'Gorman <peter@pogma.com>.
-
-       * function.c (func_lastword): Initialize p.
-
-       * doc/make.texi (Eval Function, Implicit Variables, Special Targets):
-       Doc fixes noticed by Bob <twobanjobob@sbcglobal.net>.  Patch from
-       Dave Korn <dave.korn@artimi.com>
-
-2007-05-08  Paul Smith  <psmith@gnu.org>
-
-       Fix Savannah bug #19656:
-
-       * configure.in: Check for strcasecmp(), strcmpi(), and stricmp().
-
-       * make.h: Change all case-insensitive string compares to use
-       strcasecmp() (from POSIX).  If we don't have that but do have one
-       of the others, define strcasecmp to be one of those instead.  If
-       we don't have any, declare a prototype for our own version.
-
-       * misc.c (strcasecmp): Use this if we can't find any native
-       case-insensitive string comparison function.
-       * vmsfunctions.c: Remove strcmpi(); we'll use misc.c:strcasecmp().
-       * main.c (find_and_set_default_shell): Use strcasecmp() instead of
-       strcmpi().
-       * job.c (_is_unixy_shell, construct_command_argv_internal): Use
-       strcasecmp() instead of stricmp().
-       * hash.h (ISTRING_COMPARE, return_ISTRING_COMPARE): Use strcasecmp()
-       instead of strcmpi().
-       * acinclude.m4: Remove the strcasecmp() check from here.
-
-2007-03-21  Paul Smith  <psmith@gnu.org>
-
-       * configure.in: Don't turn on case-insensitive file system support
-       if --disable-... is given.  Fixes Savannah bug #19348.
-
-2007-03-19  Paul Smith  <psmith@gnu.org>
-
-       * ALL: Use the strcache for all file name strings, or other
-       strings which we will never free.  The goal is to save memory by
-       avoiding duplicate copies of strings.  However, at the moment this
-       doesn't save much memory in most situations: due to secondary
-       expansion we actually save prerequisite lists twice (once before
-       the secondary expansion, and then again after it's been parsed
-       into individual file names in the dep list).  We will resolve this
-       in a future change, by doing the parsing up-front for targets
-       where secondary expansion is not set.
-
-       Moving things into the strcache also allows us to use const
-       pointers in many more places.
-
-2007-01-03  Paul Smith  <psmith@gnu.org>
-
-       * make.h (ENULLLOOP): Reset errno after each failed invocation of
-       the function, not just the first.  Fixes Savannah bug #18680.
-
-2006-11-18  Paul Smith  <psmith@gnu.org>
-
-       * strcache.c (strcache_add_len): Don't allocate a new buffer
-       unless the string is not already nil-terminated.  Technically this
-       is a violation of the standard, since we may be passed an array
-       that is not long enough to test one past.  However, in make this
-       is never true since we only use nil-terminated strings or
-       sub-strings thereof.
-
-       * read.c (eval, do_define): Use cmd_prefix instead of '\t'.
-
-       * main.c: New global cmd_prefix, defaults to '\t'.
-       * job.c (construct_command_argv_internal): Use cmd_prefix instead
-       of '\t'.
-
-       * dir.c: Constified.
-       (dir_contents_file_exists_p): Check for an error return from
-       readdir(), just in case.
-
-       * commands.c: Constified.
-       * default.c: Constified.
-       * expand.c: Constified.
-       * function.c: Partial constification.
-       * variable.c: Partial constification.
-       * vmsify.c: Constification.  Hard to test this but I hope I didn't
-       screw it up!
-       * vpath.c: Partial constification.
-       * w32/pathstuff.c: Partial constification.
-
-2006-11-16  Eli Zaretskii  <eliz@gnu.org>
-
-       * main.c (main) [HAVE_DOS_PATHS]: Treat DOS style argv[0] with
-       backslashes and drive letters as absolute.
-
-2006-10-22  Paul Smith  <psmith@gnu.org>
-
-       * main.c (struct command_switch): Use const and void*.
-
-2006-10-21  Paul Smith  <psmith@gnu.org>
-
-       * ar.c: Constified.
-       * arscan.c: Constified.
-
-2006-09-30  Paul Smith  <psmith@gnu.org>
-
-       * doc/make.texi (MAKEFILE_LIST Variable): Modify reference to
-       point to lastword since the example was updated.
-       Fixes Savannah bug #16304.
-       (Secondary Expansion): Correct example description.
-       Fixes Savannah bug #16468.
-       (Makefile Contents): Clarify that comments cannot appear within
-       variable references or function calls.
-       Fixes Savannah bug #16577.
-       (Special Targets): Clarify how .NOTPARALLEL works in recursion.
-       Fixes Savannah bug #17701.
-       Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>:
-       (Prerequisite Types): Added an example of using order-only
-       prerequisites.  Fixes Savannah bug #17880.
-       (Rule Syntax): "lise" -> "list"
-       (Multiple Rules): ... -> @dots{}
-       (Splitting Lines): ditto.
-
-       * remake.c (update_file_1): Prereqs that don't exist should be
-       considered changed, for the purposes of $?.
-       Fixes Savannah bug #16051.
-
-       * make.1: Remove extraneous "+".
-       Fixes Savannah bug #16652.
-
-2006-09-06  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in: Include sys/types.h when checking for sys/wait.h.
-
-2006-08-18  Eli Zaretskii  <eliz@gnu.org>
-
-       * configure.in (PATH_SEPARATOR_CHAR): Define to the value of
-       $PATH_SEPARATOR.
-
-       * make.h (PATH_SEPARATOR_CHAR): Define only if still undefined.
-       Normally, it is defined in config.h.
-
-       * config/dospaths.m4 <ac_cv_dos_paths>: Define to yes on Cygwin as
-       well.
-
-       * job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]: Define
-       sh_chars_sh for Windows platforms that emulate Unix.
-
-2006-05-07  Paul D. Smith  <psmith@gnu.org>
-
-       * README.OS2.template: Updates provided by Andreas Buening
-       <andreas.buening@nexgo.de>.
-
-2006-04-30  Paul D. Smith  <psmith@gnu.org>
-
-       * make.h: Include <direct.h> if HAVE_DIRECT_H.
-       * config.h.W32.template (HAVE_DIRECT_H): Set it if it's available.
-
-2006-04-26  Paul D. Smith  <psmith@gnu.org>
-
-       * README.cvs: Add a reminder to notify the GNU translation robot.
-
-       * doc/make.texi: Change @direcategory (requested by Karl Berry).
-
-2006-04-20  Paul D. Smith  <psmith@gnu.org>
-
-       * maintMakefile (po-check): Use Perl instead of grep -E, for systems
-       that don't have extended grep.
-       (cvsclean): Use $(PERL) instead of perl.
-
-2006-04-09  Paul D. Smith  <psmith@gnu.org>
-
-       * maintMakefile: Add some extra warning options (GCC 4.1 only?)
-
-       * expand.c, implicit.c, main.c, read.c: Rename variables so that
-       inner-scope variables don't mask outer-scope variables.
-
-       * ar.c, arscan.c, commands.c, default.c, dir.c, expand.c, file.c:
-       * function.c, getloadavg.c, implicit.c, job.c, main.c, misc.c, read.c:
-       * remake.c, remote-cstms.c, rule.c, strcache.c, variable.c:
-       * vmsfunctions.c, vmsify.c, vpath.c: Remove all casts of returned
-       values from memory allocation functions: they return void* and so
-       don't need to be cast.  Also remove (char *) casts of arguments to
-       xrealloc().
-
-       * configure.in: Remove checks for memcpy/memmove/strchr.
-
-       * make.h: Remove bcmp/bcopy/bzero/strchr/strrchr macros.
-
-       * ar.c, arscan.c, commands.c, dir.c: Convert all bzero/bcopy/bcmp
-       calls to memset/memcpy/memmove/memcmp calls.
-       * expand.c, file.c, function.c, getloadavg.c, implicit.c: Ditto.
-       * job.c, main.c, misc.c, read.c, remake.c, rule.c: Ditto.
-       * variable.c, vpath.c: Ditto.
-
-       * make.h (EXIT_FAILURE): Should be 1, not 0.
-
-2006-04-06  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in: Removed AM_C_PROTOTYPES.  Starting now on we
-       require an ISO C 1989 standard compiler and runtime library.
-
-       * Makefile.am: Remove the ansi2knr feature.
-
-       * make.h: Remove the PARAMS() macro definition and all uses of it.
-
-       * amiga.h, ar.c, arscan.c: Remove all uses of the PARAMS() macro.
-       * commands.c, commands.h, config.h-vms.template: Ditto.
-       * dep.h, dir.c, expand.c, filedef.h, function.c: Ditto.
-       * implicit.c, job.c, job.h, main.c, read.c, remake.c: Ditto.
-       * rule.c, rule.h, variable.h, vmsdir.h, vmsjobs.c, vpath.c: Ditto.
-
-       * NEWS: Update.
-
-2006-04-01  Paul D. Smith  <psmith@gnu.org>
-
-       Version 3.81 released.
-
-       * NEWS: Updated for 3.81.
-
-       * README.cvs: Mention that vpath builds are not supported out of
-       CVS.  Fixes Savannah bug #16236.
-       Remove update of make.texi from the list of things to do; we use
-       version.texi now.
-
-2006-03-26  Paul D. Smith  <psmith@gnu.org>
-
-       * doc/make.texi: Clean up licensing.  Use @copying and version.texi
-       support from automake, as described in the Texinfo manual.
-
-2006-03-25  Eli Zaretskii  <eliz@gnu.org>
-
-       * implicit.c (pattern_search) [HAVE_DOS_PATHS]: Don't compare b
-       with lastslash, since the latter points to filename, not to
-       target.
-       * job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]:
-       Declare and define sh_chars_sh[].
-
-2006-03-23  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in: Look for build.sh.in in $srcdir so it will be
-       built for remote configurations as well.
-
-       * Makefile.am: Make sure to clean up build.sh during distclean.
-       Fixes Savannah bug #16166.
-
-       * misc.c (log_access): Takes a const char *.
-       * function.c (fold_newlines): Takes an unsigned int *.
-       Both fixes for Savannah bug #16170.
-
-2006-03-22  Boris Kolpackov  <boris@kolpackov.net>
-
-       * implicit.c (pattern_search): Call set_file_variables only
-       if we have prerequisites that need second expansion. Fixes
-       Savannah bug #16140.
-
-2006-03-19  Paul D. Smith  <psmith@gnu.org>
-
-       * remake.c (update_file): Add alloca(0) to clean up alloca'd
-       memory on hosts that don't support it directly.
-
-       * README.cvs: Add information on steps for making a release (to
-       make sure I don't forget any).
-
-       * main.c (clean_jobserver): Move jobserver cleanup code into a new
-       function.
-       (die): Cleanup code was removed from here; call the new function.
-       (main): If we are re-execing, clean up the jobserver first so we
-       don't leak file descriptors.
-       Reported by Craig Fithian <craig.fithian@citigroup.com>
-
-2006-03-17  Paul D. Smith  <psmith@gnu.org>
-
-       * maintMakefile (do-po-update): Rewrite this rule to clean up and
-       allow multiple concurrent runs.
-       Patch from Joseph Myers <joseph@codesourcery.com>
-
-2006-03-17  Boris Kolpackov  <boris@kolpackov.net>
-
-       * dep.h (struct dep): Add the stem field.
-       * misc.c (alloc_dep, free_dep): New functions.
-       (copy_dep_chain): Copy stem.
-       (free_dep_chain): Use free_dep.
-       * read.c (record_files): Store stem in the dependency line.
-       * file.c (expand_deps): Use stem stored in the dependency line. Use
-       free_dep_chain instead of free_ns_chain.
-       * implicit.c (pattern_search): Use alloc_dep and free_dep.
-       * read.c (read_all_makefiles, eval_makefile, eval): Ditto.
-       * main.c (main, handle_non_switch_argument): Ditto.
-       * remake.c (check_dep): Ditto.
-       * rule.c (convert_suffix_rule, freerule): Ditto.
-
-2006-03-14  Paul D. Smith  <psmith@gnu.org>
-
-       * expand.c (variable_append): Instead of appending everything then
-       expanding the result, we expand (or not, if it's simple) each part
-       as we add it.
-       (allocated_variable_append): Don't expand the final result.
-       Fixes Savannah bug #15913.
-
-2006-03-09  Paul Smith  <psmith@gnu.org>
-
-       * remake.c (update_file_1): Revert the change of 3 Jan 2006 which
-       listed non-existent files as changed.  Turns out there's a bug in
-       the Linux kernel builds which means that this change causes
-       everything to rebuild every time.  We will re-introduce this fix
-       in the next release, to give them time to fix their build system.
-       Fixes Savannah bug #16002.
-       Introduces Savannah bug #16051.
-
-       * implicit.c (pattern_search) [DOS_PATHS]: Look for DOS paths if
-       we *don't* find UNIX "/".
-       Reported by David Ergo <david.ergo@alterface.com>
-
-2006-03-04  Eli Zaretskii  <eliz@gnu.org>
-
-       * variable.c (do_variable_definition) [WINDOWS32]: Call the shell
-       locator function find_and_set_default_shell if SHELL came from the
-       command line.
-
-2006-02-20  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (merge_variable_set_lists): It's legal for *setlist0
-       to be null; don't core in that case.
-
-2006-02-19  Paul D. Smith  <psmith@gnu.org>
-
-       * commands.c (set_file_variables): Realloc, not malloc, the static
-       string values to avoid memory leaks.
-
-       * expand.c (recursively_expand_for_file): Only set reading_file to
-       an initialized value.
-
-       * implicit.c (pattern_search): We need to make a copy of the stem
-       if we get it from an intermediate dep, since those get freed.
-
-       * file.c (lookup_file) [VMS]: Don't lowercase special targets that
-       begin with ".".
-       (enter_file) [VMS]: Ditto.
-       Patch provided by Hartmut Becker <Hartmut.Becker@hp.com>.
-
-2006-02-24  Eli Zaretskii  <eliz@gnu.org>
-
-       * job.c (construct_command_argv_internal): Fix last change.
-
-       * w32/subproc/sub_proc.c (process_pipe_io): Make dwStdin,
-        dwStdout, and dwStderr unsigned int: avoids compiler warnings in
-        the calls to _beginthreadex.
-
-       * expand.c (recursively_expand_for_file): Initialize `save' to
-        prevent compiler warnings.
-
-2006-02-18  Eli Zaretskii  <eliz@gnu.org>
-
-        * job.c (construct_command_argv_internal): Don't create a temporary
-       script/batch file if we are under -n.  Call _setmode to switch the
-       script file stream to text mode.
-
-2006-02-17  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (merge_variable_set_lists): Don't try to merge the
-       global_setlist.  Not only is this useless, but it can lead to
-       circularities in the linked list, if global_setlist->next in one
-       list gets set to point to another list which also ends in
-       global_setlist.
-       Fixes Savannah bug #15757.
-
-2006-02-15  Paul D. Smith  <psmith@gnu.org>
-
-       Fix for Savannah bug #106.
-
-       * expand.c (expanding_var): Keep track of which variable we're
-       expanding.  If no variable is being expanded, it's the same as
-       reading_file.
-       * make.h (expanding_var): Declare it.
-       * expand.c (recursively_expand_for_file): Set expanding_var to the
-       current variable we're expanding, unless there's no file info in
-       it (could happen if it comes from the command line or a default
-       variable).  Restore it before we exit.
-       * expand.c (variable_expand_string): Use the expanding_var file
-       info instead of the reading_file info.
-       * function.c (check_numeric): Ditto.
-       (func_word): Ditto.
-       (func_wordlist): Ditto.
-       (func_error): Ditto.
-       (expand_builtin_function): Ditto.
-       (handle_function): Ditto.
-
-2006-02-14  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (eval): Even if the included filenames expands to the
-       empty string we still need to free the allocated buffer.
-
-       * implicit.c (pattern_search): If we allocated a variable set for
-       an impossible file, free it.
-       * variable.c (free_variable_set): New function.
-       * variable.h: Declare it.
-
-       * read.c (read_all_makefiles): Makefile names are kept in the
-       strcache, so there's never any need to alloc/free them.
-       (eval): Ditto.
-
-       * main.c (main): Add "archives" to the .FEATURES variable if
-       archive support is enabled.
-       * doc/make.texi (Special Variables): Document it.
-
-2006-02-13  Paul D. Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): Add checking for DOS pathnames to
-       the pattern rule target LASTSLASH manipulation.
-       Fixes Savannah bug #11183.
-
-2006-02-11  Paul D. Smith  <psmith@gnu.org>
-
-       * (ALL FILES): Updated copyright and license notices.
-
-2006-02-10  Paul D. Smith  <psmith@gnu.org>
-
-       A new internal capability: the string cache is a read-only cache
-       of strings, with a hash table interface for fast lookup.  Nothing
-       in the cache will ever be freed, so there's no need for reference
-       counting, etc.  This is the beginning of a full solution for
-       Savannah bug #15182, but for now we only store makefile names here.
-
-       * strcache.c: New file.  Implement a read-only string cache.
-       * make.h: Add prototypes for new functions.
-       * main.c (initialize_global_hash_tables): Initialize the string cache.
-       (print_data_base): Print string cache stats.
-       * read.c (eval_makefile): Use the string cache to store makefile
-       names.  Rewrite the string allocation to be sure we free everything.
-
-2006-02-10  Eli Zaretskii  <eliz@gnu.org>
-
-       * dir.c (dir_contents_file_exists_p): Don't opendir if the
-       directory time stamp didn't change, except on FAT filesystems.
-       Suggested by J. David Bryan <jdbryan@acm.org>.
-
-2006-02-09  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (func_or): Implement a short-circuiting OR function.
-       (func_and): Implement a short-circuiting AND function.
-       (function_table_init): Update the table with the new functions.
-       * doc/make.texi (Conditional Functions): Changed the "if" section
-       to one on general conditional functions.  Added documentation for
-       $(and ...) and $(or ...) functions.
-       * NEWS: Note new $(and ...) and $(or ...) functions.
-
-2006-02-08  Boris Kolpackov  <boris@kolpackov.net>
-
-       * job.h (struct child): Add the dontcare bitfield.
-       * job.c (new_job): Cache dontcare flag.
-       * job.c (reap_children): Use cached dontcare flag instead of the
-       one in struct file. Fixes Savannah bug #15641.
-
-2006-02-06  Paul D. Smith  <psmith@gnu.org>
-
-       * vpath.c (selective_vpath_search): If the file we find has a
-       timestamp from -o or -W, use that instead of the real time.
-       * remake.c (f_mtime): If the mtime is a special token from -o or
-       -W, don't overwrite it with the real mtime.
-       Fixes Savannah bug #15341.
-
-       Updates from Markus Mauhart <qwe123@chello.at>:
-
-       * w32/subproc/sub_proc.c (process_begin): Remove no-op tests.
-       (process_signal, process_last_err, process_exit_code): Manage
-       invalid handle values.
-       (process_{outbuf,errbuf,outcnt,errcnt,pipes}): Unused and don't
-       manage invalid handles; remove them.
-       * job.c (start_job_command) [WINDOWS32]: Jump out on error.
-       * config.h.W32.template [WINDOWS32]: Set flags for Windows builds.
-       * README.cvs: Updates for building from CVS.
-
-2006-02-05  Paul D. Smith  <psmith@gnu.org>
-
-       * file.c (enter_file): Keep track of the last double_colon entry,
-       to avoid walking the list every time we want to add a new one.
-       Fixes Savannah bug #15533.
-       * filedef.h (struct file): Add a new LAST pointer.
-
-       * dir.c (directory_contents_hash_cmp): Don't use subtraction to do
-       the comparison.  For 64-bits systems the result of the subtraction
-       might not fit into an int.  Use comparison instead.
-       Fixes Savannah bug #15534.
-
-       * doc/make.texi: Update the chapter on writing commands to reflect
-       the changes made in 3.81 for backslash/newline and SHELL handling.
-
-2006-02-01  Paul D. Smith  <psmith@gnu.org>
-
-       * dir.c (dir_contents_file_exists_p) [WINDOWS32]: Make sure
-       variable st is not used when it's not initialized.
-       Patch from Eli Zaretskii <eliz@gnu.org>.
-
-2006-01-31  Paul D. Smith  <psmith@gnu.org>
-
-       * README.W32.template: Applied patch #4785 from
-       Markus Mauhart <qwe123@chello.at>.
-       * README.cvs: Applied patch #4786 from
-       Markus Mauhart <qwe123@chello.at>.
-       * make_msvc_net2003.vcproj [WINDOWS32]: New version from
-       J. Grant <jg@jguk.org>.
-
-       * main.c: Update the copyright year in the version output.
-       * prepare_w32.bat: Remove this file from the distribution.
-
-2006-01-21  Eli Zaretskii  <eliz@gnu.org>
-
-       * remake.c (update_goal_chain): Set g->changed instead of
-       incrementing it, as it is only 8-bit wide, and could overflow if
-       many commands got started in update_file.
-
-       * w32/include/sub_proc.h: Add a prototype for process_used_slots.
-
-       * w32/subproc/sub_proc.c: Change dimension of proc_array[] to
-       MAXIMUM_WAIT_OBJECTS.
-       (process_wait_for_any_private): Change dimension of handles[]
-       array to MAXIMUM_WAIT_OBJECTS.
-       (process_used_slots): New function.
-       (process_register): Don't register more processes than the
-       available number of slots.
-       (process_easy): Don't start new processes if all slots are used up.
-
-       * job.c (load_too_high, start_waiting_jobs) [WINDOWS32]: If there
-       are already more children than sub_proc.c can handle, behave as if
-       the load were too high.
-       (start_job_command): Fix a typo in error message when process_easy
-       fails.
-
-2006-01-14  Eli Zaretskii  <eliz@gnu.org>
-
-       * main.c (main) [WINDOWS32]: Don't refuse to run with -jN, even if
-       the shell is not sh.exe.
-
-       * job.c (create_batch_file): Renamed from create_batch_filename;
-       all callers changed.  Don't close the temporary file; return its
-       file descriptor instead.  New arg FD allows to return the file
-       descriptor.
-       (construct_command_argv_internal): Use _fdopen instead of fopen to
-       open the batch file.
-
-2006-01-04  Paul D. Smith  <psmith@gnu.org>
-
-       * readme.vms: Updates for case-insensitive VMS file systems from
-       Hartmut Becker <Hartmut.Becker@hp.com>.
-       * dir.c (vms_hash): Ditto.
-       * vmsify.c (copyto): Ditto.
-       * vmsfunctions.c (readdir): Ditto.
-
-       * make.1: Add a section on the exit codes for make.
-
-       * doc/make.texi: A number of minor updates to the documentation.
-
-2006-01-03  Paul D. Smith  <psmith@gnu.org>
-
-       * remake.c (update_file_1): Mark a prerequisite changed if it
-       doesn't exist.
-
-       * read.c (eval): Be sure to strip off trailing whitespace from the
-       prerequisites list properly.  Also, initialize all fields in
-       struct dep when creating a new one.
-
-2005-12-28  Paul D. Smith  <psmith@gnu.org>
-
-       * config.h.W32.template [WINDOWS32]: Add in some pragmas to
-       disable warnings for MSC.
-       Patch by Rob Tulloh <rtulloh@yahoo.com>.
-
-2005-12-17  Eli Zaretskii  <eliz@gnu.org>
-
-       * doc/make.texi (Execution): Add a footnote about changes in
-       handling of backslash-newline sequences.  Mention the differences
-       on MS-DOS and MS-Windows.
-
-       * NEWS: More details about building the MinGW port and a pointer
-       to README.W32.  Fix the section name that describes the new
-       backward-incompatible processing of backslash-newline sequences.
-       The special processing of SHELL set to "cmd" is only relevant to
-       MS-Windows, not MS-DOS.
-
-2005-12-17  Eli Zaretskii  <eliz@gnu.org>
-
-       * main.c (handle_runtime_exceptions): Cast exrec->ExceptionAddress
-       to DWORD, to avoid compiler warnings.
-       * job.c (exec_command): Cast hWaitPID and hPID to DWORD, and
-       use %ld in format, to avoid compiler warnings.
-
-       * doc/make.texi (Special Targets): Fix a typo.
-       (Appending): Fix cross-reference to Setting.
-       (Special Variables, Secondary Expansion, File Name Functions)
-       (Flavor Function, Pattern Match, Quick Reference): Ensure two
-       periods after a sentence.
-       (Execution): Add @: after "e.g.".
-       (Environment): Fix punctuation.
-       (Target-specific, Call Function, Quick Reference): Add @: after "etc."
-       (Shell Function, Target-specific): Add @: after "vs."
-
-2005-12-14  Boris Kolpackov  <boris@kolpackov.net>
-
-       * read.c (record_target_var): Initialize variable's export field
-       with v_default instead of leaving it "initialized" by whatever
-       garbage happened to be on the heap.
-
-2005-12-12  Paul D. Smith  <psmith@gnu.org>
-
-       * make.1: Fix some display errors and document all existing options.
-       Patch by Mike Frysinger <vapier@gentoo.org>.
-
-2005-12-11  Paul D. Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): If 2nd expansion is not set for
-       this implicit rule, replace the pattern with the stem directly,
-       and don't re-expand the variable list.  Along with the other
-       .SECONDEXPANSION changes below, fixes bug #13781.
-
-2005-12-09  Boris Kolpackov  <boris@kolpackov.net>
-
-       * implicit.c (pattern_search): Mark other files that this rule
-       builds as targets so that they are not treated as intermediates
-       by the pattern rule search algorithm. Fixes bug #13022.
-
-2005-12-07  Boris Kolpackov  <boris@kolpackov.net>
-
-       * remake.c (notice_finished_file): Propagate the change of
-       modification time to all the double-colon entries only if
-       it is the last one to be updated. Fixes bug #14334.
-
-2005-11-17  Boris Kolpackov  <boris@kolpackov.net>
-
-       * function.c (func_flavor): Implement the flavor function which
-       returns the flavor of a variable.
-       * doc/make.texi (Functions for Transforming Text): Document it.
-       * NEWS: Add it to the list of new functions.
-
-2005-11-14  Boris Kolpackov  <boris@kolpackov.net>
-
-       * read.c (construct_include_path): Set the .INCLUDE_DIRS special
-       variable.
-       * doc/make.texi (Special Variables): Document .INCLUDE_DIRS.
-       * NEWS: Add .INCLUDE_DIRS to the list of new special variables.
-
-2005-10-26  Paul Smith  <psmith@gnu.org>
-
-       * read.c (record_files): Don't set deps flags if there are no deps.
-       * maintMakefile: We only need to build the templates when we are
-       creating a distribution, so don't do it for "all".
-
-2005-10-24  Paul D. Smith  <psmith@gnu.org>
-
-       Make secondary expansion optional: its enabled by declaring the
-       special target .SECONDEXPANSION.
-
-       * NEWS: Update information on second expansion capabilities.
-       * doc/make.texi (Secondary Expansion): Document the
-       .SECONDEXPANSION special target and its behavior.
-       * dep.h (struct dep): Add a flag STATICPATTERN, set to true if the
-       prerequisite list was found in a static pattern rule.
-       (free_dep_chain): Declare a prototype.
-       * file.c (parse_prereqs): New function: break out some complexity
-       from expand_deps().
-       (expand_deps): If we aren't doing second expansion, replace % with
-       the stem for static pattern rules.  Call the new function.
-       * filedef.h (parse_prereqs): Declare a prototype.
-       * implicit.c (pattern_search): Initialize the new staticpattern
-       field.
-       * main.c (second_expansion): Declare a global variable to remember
-       if the special target has been seen.  Initialize the new
-       staticpattern field for prerequisites.
-       * make.h: Extern for second_expansion.
-       * misc.c (free_dep_chain): New function: frees a struct dep list.
-       * read.c (read_all_makefiles): Initialize the staticpattern field.
-       (eval_makefile): Ditto.
-       (record_files): Check for the .SECONDEXPANSION target and set
-       second_expansion global if it's found.
-       Use the new free_dep_chain() instead of doing it by hand.
-       Set the staticpattern field for prereqs of static pattern targets.
-
-2005-10-16  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main): Set CURDIR to be a file variable instead of a
-       default, so that values of CURDIR inherited from the environment
-       won't override the make value.
-
-2005-09-26  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (construct_command_argv_internal): If the line is empty
-       remember to free the temporary argv strings.
-       Fixes bug # 14527.
-
-2005-09-16  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (start_job_command): The noerror flag is a boolean (single
-       bit); set it appropriately.
-       Reported by Mark Eichin <eichin@metacarta.com>
-
-2005-08-29  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (func_error): On Windows, output from $(info ...)
-       seems to come in the wrong order.  Try to force it with fflush().
-
-2005-08-10  Boris Kolpackov  <boris@kolpackov.net>
-
-       * read.c (record_files): Move code that sets stem for static
-       pattern rules out of the if (!two_colon) condition so it is
-       also executed for two-colon rules. Fixes Savannah bug #13881.
-
-2005-08-08  Paul D. Smith  <psmith@gnu.org>
-
-       * make.h: Don't test that __STDC__ is non-0.  Some compilers
-       (Windows for example) set it to 0 to denote "ISO C + extensions".
-       Fixes bug # 13594.
-
-2005-08-07  Paul D. Smith  <psmith@gnu.org>
-
-       * w32/pathstuff.c (getcwd_fs): Fix warning about assignment in a
-       conditional (slightly different version of a fix from Eli).
-
-       Fix a bug reported by Michael Matz <matz@suse.de>: patch included.
-       If make is running in parallel without -k and two jobs die in a
-       row, but not too close to each other, then make will quit without
-       waiting for the rest of the jobs to die.
-
-       * main.c (die): Don't reset err before calling reap_children() the
-       second time: we still want it to be in the error condition.
-       * job.c (reap_children): Use a static variable, rather than err,
-       to control whether or not the error message should be printed.
-
-2005-08-06  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/subproc/sub_proc.c: Include signal.h.
-       (process_pipe_io, process_file_io): Pass a pointer to a local
-       DWORD variable to GetExitCodeProcess.  If the exit code is
-       CONTROL_C_EXIT, put SIGINT into pproc->signal.
-
-       * job.c [WINDOWS32]: Include windows.h.
-       (main_thread) [WINDOWS32]: New global variable.
-       (reap_children) [WINDOWS32]: Get the handle for the main thread
-       and store it in main_thread.
-
-       * commands.c [WINDOWS32]: Include windows.h and w32err.h.
-       (fatal_error_signal) [WINDOWS32]: Suspend the main thread before
-       doing anything else.  When we are done, close the main thread
-       handle and exit with status 130.
-
-2005-07-30  Eli Zaretskii  <eliz@gnu.org>
-
-       * w32/subproc/sub_proc.c (process_begin): Don't pass a NULL
-       pointer to fprintf.
-
-       * main.c (find_and_set_default_shell): If found a DOSish shell,
-       set sh_found and the value of default_shell, and report the
-       findings in debug mode.
-
-       * job.c (construct_command_argv_internal): Check unixy_shell, not
-       no_default_sh_exe, to decide whether to use Unixy or DOSish
-       builtin commands.
-
-       * README.W32: Update with info about the MinGW build.
-
-       * build_w32.bat: Support MinGW.
-
-       * w32/subproc/build.bat: Likewise.
-
-       * w32/subproc/sub_proc.c (process_easy): Fix format strings for
-       printing DWORD args.
-
-       * function.c (windows32_openpipe): Fix format strings for printing
-       DWORD args.
-
-       * job.c (reap_children) [WINDOWS32]: Don't declare 'status' and
-       'reap_mode'.
-       (start_job_command): Fix format string for printing the result of
-       process_easy.
-       (start_job_command) [WINDOWS32]: Do not define.
-       (exec_command): Fix format string for printing HANDLE args.
-
-       * main.c (handle_runtime_exceptions): Fix sprintf format strings
-       to avoid compiler warnings.
-       (open_tmpfile): Declare fd only if HAVE_FDOPEN is defined.
-       (Note: some of these fixes were submitted independently by J. Grant)
-
-2005-07-30  J. Grant <jg@jguk.org>
-
-       * prepare_w32.bat: Copy config.h.w32 to config.h if not exist.
-       * make_msvc_net2003.vcproj, make_msvc_net2003.sln: MSVC Project files.
-       * Makefile.am (EXTRA_DIST): Add MSVC Project files.
-
-2005-07-15  Paul Smith  <psmith@gnu.org>
-
-       * job.c (construct_command_argv_internal) [DOS,WINDOWS32,OS/2]: If
-       we don't have a POSIX shell, then revert to the old
-       backslash-newline behavior (where they are stripped).
-       Fixes bug #13665.
-
-2005-07-08  Paul D. Smith  <psmith@gnu.org>
-
-       * config.h.W32.template: Reorder to match the standard config.h,
-       for easier comparisons.
-       From J. Grant <jg@jguk.org>
-
-       * maintMakefile: Remove .dep_segment before overwriting it, in
-       case it's not writable or noclobber is set.
-       * expand.c (variable_expand_string): Cast result of pointer
-       arithmetic to avoid a warning.
-       * main.c (switches): Add full-fledged final initializer.
-
-2005-07-06  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in: IRIX has _sys_siglist.  Tru64 UNIX has __sys_siglist.
-       * signame.c (strsignal): If we found _sys_siglist[] or
-       __sys_siglist[] use those instead of sys_siglist[].
-       From Albert Chin <china@thewrittenword.com>
-
-2005-07-04  Paul D. Smith  <psmith@gnu.org>
-
-       * config.h-vms.template [VMS]: Latest VMS has its own glob() and
-       globfree(); set up to use the GNU versions.
-       From Martin Zinser <zinser@zinser.no-ip.info>
-
-2005-07-03  Paul D. Smith  <psmith@gnu.org>
-
-       From J. Grant <jg@jguk.org>:
-
-       * README.W32.template: Update the Windows and tested MSVC versions.
-       * NMakefile.template (CFLAGS_any): Change warning level from W3 to W4.
-       * w32/subproc/NMakefile (CFLAGS_any): Ditto.
-       * build_w32.bat: Ditto.
-       * w32/subproc/build.bat: Ditto.
-
-2005-06-28  Paul D. Smith  <psmith@gnu.org>
-
-       * signame.c: HAVE_DECL_* macros are set to 0, not undef, if the
-       declaration was checked but not present.
-
-2005-06-27  Paul D. Smith  <psmith@gnu.org>
-
-       * dir.c (find_directory): Change type of fs_serno/fs_flags/fs_len
-       to unsigned long.  Fixes Savannah bug #13550.
-
-       * w32/subproc/sub_proc.c: Remove (HANDLE) casts on lvalues.
-       (process_pipe_io): Initialize tStdin/tStdout/tStderr variables.
-       Fixes Savannah bug #13551.
-
-2005-06-26  Paul D. Smith  <psmith@gnu.org>
-
-       * make.h: Fix bug in ANSI_STRING/strerror() handling; only define
-       it if ANSI_STRING is not set.
-
-2005-06-25  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (eval): If no filenames are passed to any of the
-       "include" variants, don't print an error.
-       * doc/make.texi (Include): Document this.
-       Fixes Savannah bug #1761.
-
-       * job.c (construct_command_argv_internal): Sanitize handling of
-       backslash/newline pairs according to POSIX: that is, keep the
-       backslash-newline in the command script, but remove a following
-       TAB character, if present.  In the fast path, make sure that the
-       behavior matches what the shell would do both inside and outside
-       of quotes.  In the slow path, quote the backslash and put a
-       literal newline in the string.
-       Fixes Savannah bug #1332.
-       * doc/make.texi (Execution): Document the new behavior and give
-       some examples.
-       * NEWS: Make a note of the new behavior.
-
-       * make.h [WINDOWS32]: #include <direct.h>.
-       Fixes Savannah bug #13478.
-
-       * remake.c (name_mtime): If the stat() of a file fails and the -L
-       option was given and the file is a symlink, take the best mtime of
-       the symlink we can get as the mtime of the file and don't fail.
-       Fixes Savannah bug #13280.
-
-       * read.c (find_char_unquote): Accept a new argument IGNOREVARS.
-       If it's set, then don't stop on STOPCHARs or BLANKs if they're
-       inside a variable reference.  Make this function static as it's
-       only used here.
-       (eval): Call find_char_unquote() with IGNOREVARS set when we're
-       parsing an unexpanded line looking for semicolons.
-       Fixes Savannah bug #1454.
-       * misc.c (remove_comments): Move this to read.c and make it static
-       as it's only used there.  Call find_char_unquote() with new arg.
-       * make.h: Remove prototypes for find_char_unquote() and
-       remove_comments() since they're static now.
-
-       * main.c (main): If we see MAKE_RESTARTS in the environment, unset
-       its export flag and obtain its value.  When we need to re-exec,
-       increment the value and add it into the environment.
-       * doc/make.texi (Special Variables): Document MAKE_RESTARTS.
-       * NEWS: Mention MAKE_RESTARTS.
-       * main.c (always_make_set): New variable.  Change the -B option to
-       set this one instead.
-       (main): When checking makefiles, only set always_make_flag if
-       always_make_set is set AND the restarts flag is 0.  When building
-       normal targets, set it IFF always_make_set is set.
-       (main): Avoid infinite recursion with -W, too: only set what-if
-       files to NEW before we check makefiles if we've never restarted
-       before.  If we have restarted, set what-if files to NEW _after_ we
-       check makefiles.
-       Fixes Savannah bug #7566:
-
-2005-06-17  Paul D. Smith  <psmith@gnu.org>
-
-       * default.c: Change VMS implicit rules to use $$$$ instead of $$
-       in the prerequisites list.
-
-2005-06-12  Paul D. Smith  <psmith@gnu.org>
-
-       Fix Savannah bug # 1328.
-
-       * configure.in: Check for atexit().
-       * misc.c (close_stdout): Test stdout to see if writes to it have
-       failed.  If so, be sure to exit with a non-0 error code.  Based on
-       code found in gnulib.
-       * make.h: Prototype.
-       * main.c (main): Install close_stdout() with atexit().
-
-2005-06-10  Paul D. Smith  <psmith@gnu.org>
-
-       VMS build updates from Hartmut Becker <Hartmut.Becker@hp.com>:
-
-       * vmsjobs.c [VMS]: Updates to compile on VMS: add some missing
-       headers; make vmsWaitForChildren() static; extern vmsify().
-       * job.c [VMS]: Move vmsWaitForChildren() prototype to be global.
-       Don't create child_execute_job() here (it's in vmsjobs.c).
-       * makefile.vms (job.obj) [VMS]: Add vmsjobs.c as a prerequisite.
-
-2005-06-09  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (push_new_variable_scope): File variables point
-       directly to the global_setlist variable.  So, inserting a new
-       scope in front of that has no effect on those variables: they
-       don't go through current_variable_set_list.  If we're pushing a
-       scope and the current scope is global, push it "the other way" so
-       that the new setlist is in the global_setlist variable, and
-       next points to a new setlist with the global variable set.
-       (pop_variable_scope): Properly undo a push with the new
-       semantics.
-       Fixes Savannah bug #11913.
-
-2005-05-31  Boris Kolpackov  <boris@kolpackov.net>
-
-       * job.c (reap_children): Don't die of the command failed but
-       the dontcare flag is set. Fixes Savannah bug #13216.
-
-       * implicit.c (pattern_search): When creating a target from
-       an implicit rule match, lookup pattern target and set precious
-       flag in a newly created target. Fixes Savannah bug #13218.
-
-2005-05-13  Paul D. Smith  <psmith@gnu.org>
-
-       Implement "if... else if... endif" syntax.
-
-       * read.c (eval): Push all checks for conditional words ("ifeq",
-       "else", etc.) down into the conditional_line() function.
-       (conditional_line): Rework to allow "else if..." clause.  New
-       return value -2 for lines which are not conditionals.  The
-       ignoring flag can now also be 2, which means "already parsed a
-       true branch".  If that value is seen no other branch of this
-       conditional can be considered true.  In the else parsing if there
-       is extra text after the else, invoke conditional_line()
-       recursively to see if it's another conditional.  If not, it's an
-       error.  If so, raise the conditional value to this level instead
-       of creating a new conditional nesting level.  Special check for
-       "else" and "endif", which aren't allowed on the "else" line.
-       * doc/make.texi (Conditional Syntax): Document the new syntax.
-
-2005-05-09  Paul D. Smith  <psmith@gnu.org>
-
-       * Makefile.am (EXTRA_make_SOURCES): Add vmsjobs.c
-       (MAYBE_W32): Rework how SUBDIRS are handled so that "make dist"
-       recurses to the w32 directory, even on non-Windows systems.  Use
-       the method suggested in the automake manual.
-       * configure.in: Add w32/Makefile to AC_CONFIG_FILES.
-       * maintMakefile (gnulib-url): They moved the texinfo.tex files.
-
-2005-05-07  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (die): If we're dying with a fatal error (not that a
-       command has failed), write back any leftover tokens before we go.
-
-       * job.c (set_child_handler_action_flags): If there are jobs
-       waiting for the load to go down, set an alarm to go off in 1
-       second.  This allows us to wake up from a potentially long-lasting
-       read() and start a new job if the load has gone down.  Turn it off
-       after the read.
-       (job_noop): Dummy signal handler function.
-       (new_job): Invoke it with the new semantics.
-
-       * docs/make.texi: Document secondary expansion.  Various cleanups
-       and random work.
-
-2005-05-03  Paul D. Smith  <psmith@gnu.org>
-
-       Rename .DEFAULT_TARGET to .DEFAULT_GOAL: in GNU make terminology
-       the targets which are to ultimately be made are called "goals";
-       see the GNU make manual.  Also, MAKECMDGOALS, etc.
-
-       * filedef.h, read.c, main.c: Change .DEFAULT_TARGET to
-       .DEFAULT_GOAL, and default_target_name to default_goal_name.
-       * doc/make.texi (Special Variables): Document .DEFAULT_GOAL.
-
-2005-05-02  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c, vmsjobs.c (vmsWaitForChildren, vms_redirect,
-       vms_handle_apos, vmsHandleChildTerm, reEnableAst, astHandler,
-       tryToSetupYAst, child_execute_job) [VMS]: Move VMS-specific
-       functions to vmsjobs.c.  #include it into jobs.c.
-
-       Grant Taylor <gtaylor@picante.com> reports that -j# can lose
-       jobserver tokens.  I found that this happens when an exported
-       recursive variable contains a $(shell ...) function reference: in
-       this situation we could "forget" to write back a token.
-
-       * job.c, job.h: Add variable jobserver_tokens: counts the tokens
-       we have.  It's not reliable to depend on the number of children in
-       our linked list so keep a separate count.
-       (new_job): Check jobserver_tokens rather than children &&
-       waiting_jobs.  Increment jobserver_tokens when we get one.
-       (free_child): If jobserver_tokens is 0, internal error.  If it's
-       >1, write a token back to the jobserver pipe (we don't write a
-       token for the "free" job).  Decrement jobserver_tokens.
-
-       * main.c: Add variable master_job_slots.
-       (main): Set it to hold the number of jobs requested if we're the
-       master process, when using the jobserver.
-       (die): Sanity checks: first test jobserver_tokens to make sure
-       this process isn't holding any tokens we didn't write back.
-       Second, if master_job_slots is set count the tokens left in the
-       jobserver pipe and ensure it's the same as master_job_slots (- 1).
-
-2005-04-24  Paul D. Smith  <psmith@gnu.org>
-
-       Grant Taylor <gtaylor@picante.com> reports that -j# in conjunction
-       with -l# can lose jobserver tokens, because waiting jobs are not
-       consulted properly when checking for the "free" token.
-
-       * job.c (free_child): Count waiting_jobs as having tokens.
-       * job.c (new_job): Ditto.  Plus, call start_waiting_jobs() here to
-       handle jobs waiting for the load to drop.
-
-2005-04-23  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main): Be careful to not core if a variable setting in
-       the environment doesn't contain an '='.  This is illegal but can
-       happen in broken setups.
-       Reported by Joerg Schilling <schilling@fokus.fraunhofer.de>.
-
-2005-04-12  Paul D. Smith  <psmith@gnu.org>
-
-       The second expansion feature causes significant slowdown.  Timing
-       a complex makefile (GCC 4.1) shows a slowdown from .25s to just
-       read the makefile before the feature, to 11+s to do the same
-       operations after the feature.  Additionally, memory usage
-       increased drastically.  To fix this I added some intelligence that
-       avoids the overhead of the second expansion unless it's required.
-
-       * dep.h: Add a new boolean field, need_2nd_expansion.
-
-       * read.c (eval): When creating the struct dep for the target,
-       check if the name contains a "$"; if so set need_2nd_expansion to 1.
-       (record_files): If there's a "%" in a static pattern rule, it gets
-       converted to "$*" so set need_2nd_expansion to 1.
-
-       * file.c (expand_deps): Rework to be more efficient.  Only perform
-       initialize_file_variables(), set_file_variables(), and
-       variable_expand_for_file() if the need_2nd_expansion is set.
-
-       * implicit.c (pattern_search): Default need_2nd_expansion to 0.
-       (pattern_search): Ditto.
-       * main.c (handle_non_switch_argument): Ditto.
-       (main): Ditto.
-       * read.c (read_all_makefiles): Ditto.
-       (eval_makefile): Ditto.
-
-2005-04-07  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main) [WINDOWS32]: Export PATH to sub-shells, not Path.
-       * variable.c (sync_Path_environment): Ditto.
-       Patch by Alessandro Vesely.  Fixes Savannah bug #12209.
-
-       * main.c (main): Define the .FEATURES variable.
-       * NEWS: Announce .FEATURES.
-       * doc/make.texi (Special Variables): Document .FEATURES.
-
-       * remake.c (check_dep): If a file is .PHONY, update it even if
-       it's marked intermediate.  Fixes Savannah bug #12331.
-
-2005-03-15  Boris Kolpackov  <boris@kolpackov.net>
-
-       * file.c (expand_deps): Factor out the second expansion and
-       prerequisite line parsing logic from snap_deps().
-
-       * file.c (snap_deps): Use expand_deps(). Expand and parse
-       prerequisites of the .SUFFIXES special target first. Fixes
-       Savannah bug #12320.
-
-2005-03-13  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main) [MSDOS]: Export SHELL in MSDOS.  Requested by Eli
-       Zaretskii.
-
-2005-03-11  Paul D. Smith  <psmith@gnu.org>
-
-       * signame.c (strsignal): HAVE_DECL_SYS_SIGLIST is 0 when not
-       available, not undefined (from Earnie Boyd).
-
-2005-03-10  Boris Kolpackov  <boris@kolpackov.net>
-
-       * implicit.c (pattern_search): Mark an intermediate target as
-       precious if it happened to be a prerequisite of some (other)
-       target. Fixes Savannah bug #12267.
-
-2005-03-09  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (eval_makefile): Add alloca(0).
-       (eval_buffer): Ditto.
-
-2005-03-09  Boris Kolpackov  <boris@kolpackov.net>
-
-       * main.c (main): Use o_file instead of o_default when defining
-       the .DEFAULT_TARGET special variable.
-       * read.c (eval): Use define_variable_global() instead of
-       define_variable() when setting new value for the .DEFAULT_TARGET
-       special variable.  Fixes Savannah bug #12266.
-
-2005-03-04  Boris Kolpackov  <boris@kolpackov.net>
-
-       * imlicit.c (pattern_search): Mark files for which an implicit
-       rule has been found as targets. Fixes Savannah bug #12202.
-
-2005-03-04  Paul D. Smith  <psmith@gnu.org>
-
-       * AUTHORS: Update.
-       * doc/make.texi (Automatic Variables): Document $|.
-
-2005-03-03  Boris Kolpackov  <boris@kolpackov.net>
-
-       * read.c (record_files): Instead of substituting % with
-       actual stem value in dependency list replace it with $*.
-       This fixes stem triple expansion bug.
-
-       * implicit.c (pattern_search): Copy stem to a separate
-       buffer and make it a properly terminated string. Assign
-       this buffer instead of STEM (which is not terminated) to
-       f->stem. Instead of substituting % with actual stem value
-       in dependency list replace it with $*. This fixes stem
-       triple expansion bug.
-
-2005-03-01  Paul D. Smith  <psmith@gnu.org>
-
-       * commands.c (fatal_error_signal) [WINDOWS32]: Don't call kill()
-       on Windows, as it takes a handle not a pid.  Just exit.
-       Fix from patch #3679, provided by Alessandro Vesely.
-
-       * configure.in: Update check for sys_siglist[] from autoconf manual.
-       * signame.c (strsignal): Update to use the new autoconf macro.
-
-2005-03-01  Boris Kolpackov  <boris@kolpackov.net>
-
-       * read.c (record_files): Add a check for the list of prerequisites
-       of a static pattern rule being empty. Fixes Savannah bug #12180.
-
-2005-02-28  Paul D. Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Text Functions): Update docs to allow the end
-       ordinal for $(wordlist ...) to be 0.
-       * function.c (func_wordlist): Fail if the start ordinal for
-       $(wordlist ...) is <1.  Matches documentation.
-       Resolves Savannah support request #103195.
-
-       * remake.c (update_goal_chain): Fix logic for stopping in -q:
-       previously we were stopping when !-q, exactly the opposite.  This
-       has been wrong since version 1.34, in 1994!
-       (update_file): If we got an error don't break out to run more
-       double-colon rules: just return immediately.
-       Fixes Savannah bug #7144.
-
-2005-02-27  Paul D. Smith  <psmith@gnu.org>
-
-       * misc.c (end_of_token): Make argument const.
-       * make.h: Update prototype.
-
-       * function.c (abspath, func_realpath, func_abspath): Use
-       PATH_VAR() and GET_PATH_MAX instead of PATH_MAX.
-       * dir.c (downcase): Use PATH_VAR() instead of PATH_MAX.
-       * read.c (record_files): Ditto.
-       * variable.c (do_variable_definition): Ditto.
-
-       * function.c (func_error): Create a new function $(info ...) that
-       simply prints the message to stdout with no extras.
-       (function_table_init): Add new function to the table.
-       * NEWS: Add $(info ...) reference.
-       * doc/make.texi (Make Control Functions): Document it.
-
-       New feature: if the system supports symbolic links, and the user
-       provides the -L/--check-symlink-time flag, then use the latest
-       mtime between the symlink(s) and the target file.
-
-       * configure.in (MAKE_SYMLINKS): Check for lstat() and
-       readlink().  If both are available, define MAKE_SYMLINKS.
-       * main.c: New variable: check_symlink_flag.
-       (usage): Add a line for -L/--check-symlink-times to the help string.
-       (switches): Add -L/--check-symlink-times command line argument.
-       (main): If MAKE_SYMLINKS is not defined but the user specified -L,
-       print a warning and disable it again.
-       * make.h: Declare check_symlink_flag.
-       * remake.c (name_mtime): If MAKE_SYMLINKS and check_symlink_flag,
-       if the file is a symlink then check each link in the chain and
-       choose the NEWEST mtime we find as the mtime for the file.  The
-       newest mtime might be the file itself!
-       * NEWS: Add information about this new feature.
-       * doc/make.texi (Options Summary): Add -L/--check-symlink-times docs.
-
-       Avoid core dumps described in Savannah bug # 12124:
-
-       * file.c: New variable snapped_deps remember whether we've run
-       snap_deps().
-       (snap_deps): Set it.
-       * filedef.h: Extern it.
-       * read.c (record_files): Check snapped_deps; if it's set then
-       we're trying to eval a new target/prerequisite relationship from
-       within a command script, which we don't support.  Fatal.
-
-2005-02-28  Boris Kolpackov  <boris@kolpackov.net>
-
-       Implementation of the .DEFAULT_TARGET special variable.
-
-       * read.c (eval): If necessary, update default_target_name when
-       reading rules.
-       * read.c (record_files): Update default_target_file if
-       default_target_name has changed.
-       * main.c (default_target_name): Define.
-       * main.c (main): Enter .DEFAULT_TARGET as make variable. If
-       default_target_name is set use default_target_file as a root
-       target to make.
-       * filedef.h (default_target_name): Declare.
-       * dep.h (free_dep_chain):
-       * misc.c (free_dep_chain): Change to operate on struct nameseq
-       and change name to free_ns_chain.
-       * file.c (snap_deps): Update to use free_ns_chain.
-
-2005-02-27  Boris Kolpackov  <boris@kolpackov.net>
-
-       Implementation of the second expansion in explicit rules,
-       static pattern rules and implicit rules.
-
-       * read.c (eval): Refrain from chopping up rule's dependencies.
-       Store them in a struct dep as a single dependency line. Remove
-       the code that implements SySV-style automatic variables.
-
-       * read.c (record_files): Adjust the code that handles static
-       pattern rules to expand all percents instead of only the first
-       one. Reverse the order in which dependencies are stored so that
-       when the second expansion reverses them again they appear in
-       the makefile order (with some exceptions, see comments in
-       the code). Remove the code that implements SySV-style automatic
-       variables.
-
-       * file.c (snap_deps): Implement the second expansion and chopping
-       of dependency lines for explicit rules.
-
-       * implicit.c (struct idep): Define an auxiliary data type to hold
-       implicit rule's dependencies after stem substitution and
-       expansion.
-
-       * implicit.c (free_idep_chain): Implement.
-
-       * implicit.c (get_next_word): Implement helper function for
-       parsing implicit rule's dependency lines into words taking
-       into account variable expansion requests. Used in the stem
-       splitting code.
-
-       * implicit.c (pattern_search): Implement the second expansion
-       for implicit rules. Also fixes bug #12091.
-
-       * commands.h (set_file_variables): Declare.
-       * commands.c (set_file_variables): Remove static specifier.
-
-       * dep.h (free_dep_chain): Declare.
-       * misc.c (free_dep_chain): Implement.
-
-       * variable.h (variable_expand_for_file): Declare.
-       * expand.c (variable_expand_for_file): Remove static specifier.
-
-       * make.h (strip_whitespace): Declare.
-       * function.c (strip_whitespace): Remove static specifier.
-
-2005-02-26  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main): Check for ferror() when reading makefiles from stdin.
-       Apparently some shells in Windows don't close pipes properly and
-       require this check.
-
-2005-02-24  Jonathan Grant  <jg@jguk.org>
-
-       * configure.in: Add MinGW configuration options, and extra w32 code
-       directory.
-       * Makefile.am: Add MinGW configuration options, and extra w32 code
-       directory.
-       * main.c: Determine correct program string (after last \ without .exe).
-       * subproc/sub_proc.c: `GetExitCodeProcess' from incompatible pointer
-       type fix x2
-       * w32/Makefile.am: Import to build win32 lib of sub_proc etc.
-       * subproc/w32err.c: MSVC thread directive not applied to MinGW builds.
-       * tests/run_make_tests.pl, tests/test_driver.pl: MSYS testing
-       environment support.
-
-2004-04-16  Dmitry V. Levin  <ldv@altlinux.org>
-
-       * function.c (func_shell): When initializing error_prefix, check
-       that reading file name is not null.  This fixes long-standing
-       segfault in cases like "make 'a1=$(shell :)' 'a2:=$(a1)'".
-
-2005-02-09  Paul D. Smith  <psmith@gnu.org>
-
-       * maintMakefile: Update the CVS download URL to simplify them.
-       Also, the ftp://ftp.gnu.org/GNUinfo site was removed so I'm
-       downloading the .texi files from Savannah now.
-
-       Fixed these issues reported by Markus Mauhart <qwe123@chello.at>:
-
-       * main.c (handle_non_switch_argument): Only add variables to
-       command_variables if they're not already there: duplicate settings
-       waste space and can be confusing to read.
-
-       * w32/include/sub_proc.h: Remove WINDOWS32.  It's not needed since
-       this header is never included by non-WINDOWS32 code, and it
-       requires <config.h> to define which isn't always included first.
-
-       * dir.c (read_dirstream) [MINGW]: Use proper macro names when
-       testing MINGW32 versions.
-
-       * main.c (log_working_directory): flush stdout to be sure the WD
-       change is printed before any stderr messages show up.
-
-2005-02-01  Paul D. Smith  <psmith@gnu.org>
-
-       * maintMakefile (po_repo): Update the GNU translation site URL.
-
-2004-12-01  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main): Change char* env_shell to struct variable shell_var.
-       * variable.c (target_environment): Use new shell_var.
-
-2004-11-30  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in: The old way we avoided creating build.sh from
-       build.sh.in before build.sh.in exists doesn't work anymore; we
-       have to use raw M4 (thanks to Andreas Schwab <schwab@suse.de> for
-       the help!).  This also keeps automake from complaining.
-       * Makefile.am (README): Add a dummy target so automake won't
-       complain that this file doesn't exist when we checkout from CVS.
-       * maintMakefile (.dep_segment): Rewrite this rule since newer
-       versions of automake don't provide DEP_FILES.
-
-2004-11-30  Boris Kolpackov  <boris@kolpackov.net>
-
-       Implementation of `realpath' and `abspath' built-in functions.
-
-       * configure.in: Check for realpath.
-       * function.c (abspath): Return an absolute file name that does
-       not contain any `.' or `..' components, nor repeated `/'.
-       * function.c (func_abspath): For each name call abspath.
-       * function.c (func_realpath): For each name call realpath
-       from libc or delegate to abspath if realpath is not available.
-       * doc/make.texi (Functions for File Names): Document new functions.
-       * doc/make.texi (Quick Reference): Ditto.
-
-2004-11-28  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main) [WINDOWS32]: Remove any trailing slashes from -C
-       arguments.  Fixes bug #10252.
-
-       Fix for bug #1276: Handle SHELL according to POSIX requirements.
-
-       * main.c (main): Set SHELL to v_noexport by default.  Remember the
-       original environment setting of SHELL in the env_shell variable.
-       * main.h: Export new env_shell variable.
-       * variable.c (target_environment): If we find a v_noexport
-       variable for SHELL, add a SHELL variable with the env_shell value.
-       * doc/make.texi (Quick Reference): Document the POSIX behavior.
-       * doc/make.texi (Variables/Recursion): Ditto.
-
-2004-11-28  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (find_and_set_default_shell) [WINDOWS32]: check for
-       equality of "cmd"/"cmd.exe", not inequality.  Fixes bug #11155.
-       Patch by Alessandro Vesely.
-
-2004-11-12  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (child_execute_job) [VMS]: Don't treat "#" as a comment on
-       the command line if it's inside a string.
-       Patch by: Hartmut Becker <Hartmut.Becker@hp.com>
-
-2004-10-21  Boris Kolpackov  <boris@kolpackov.net>
-
-       * function.c (func_lastword): New function: return last word
-       from the list of words.
-       * doc/make.texi: Document $(lastword ). Fix broken links in
-       Quick Reference section.
-
-2004-10-06  Paul D. Smith  <psmith@gnu.org>
-
-       Apply patch from Alessandro Vesely, provided with bug # 9748.
-       Fix use of tmpnam() to work with Borland C.
-
-       * job.c (construct_command_argv_internal) [WINDOWS32]: Remove
-       construction of a temporary filename, and call new function
-       create_batch_filename().
-       (create_batch_filename) [WINDOWS32]: New function to create a
-       temporary filename.
-
-2004-10-05  Boris Kolpackov  <boris@kolpackov.net>
-
-       * read.c (record_target_var): Expand simple pattern-specific
-       variable.
-       * variable.c (initialize_file_variables): Do not expand simple
-       pattern-specific variable.
-
-2004-09-28  Boris Kolpackov  <boris@kolpackov.net>
-
-       * remake.c (update_file_1): When rebuilding makefiles inherit
-       dontcare flag from a target that triggered update.
-
-2004-09-27  Boris Kolpackov  <boris@kolpackov.net>
-
-       * variable.c (initialize_file_variables): Mark pattern-specific
-       variable as a per-target and copy export status.
-
-2004-09-21  Boris Kolpackov  <boris@kolpackov.net>
-
-       * file.c (snap_deps): Mark .PHONY prerequisites as targets.
-
-       * implicit.c (pattern_search): When considering an implicit rule's
-       prerequisite check that it is actually a target rather then
-       just an entry in the file hashtable.
-
-2004-09-21  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (readstring): Fix some logic errors in backslash handling.
-       (eval): Remove some unnecessary processing in buffer handling.
-       (record_target_var): Assert that parse_variable_definition() succeeded.
-       Reported by: Markus Mauhart <qwe123@chello.at>.
-
-       * misc.c: Removed the sindex() function.  All instances of this
-       function were trivially replaceable by the standard strstr()
-       function, and that function will always have better (or certainly
-       no worse) performance than the very simple-minded algorithm
-       sindex() used.  This can matter with complex makefiles.
-       * make.h: Remove the prototype for sindex().
-       * function.c (subst_expand): Convert sindex() call to strstr().
-       This means we no longer need to track the TLEN value so remove that.
-       (func_findstring): Convert sindex() to strstr().
-       * commands.c (chop_commands): Convert sindex() calls to strstr().
-       Suggested by: Markus Mauhart <qwe123@chello.at>.
-
-       * main.c (find_and_set_default_shell) [WINDOWS32]: Implement the
-       idea behind Savannah Patch #3144 from david.baird@homemail.com.
-       If SHELL is set to CMD.EXE then assume it's batch-mode and
-       non-unixy.  I wrote the code differently from the patch, though,
-       to make it safer.  This also resolves bug #9174.
-
-2004-09-20  Paul D. Smith  <psmith@gnu.org>
-
-       * expand.c (variable_expand_string): Modify to invoke
-       patsubst_expand() instead of subst_expand(); the latter didn't
-       handle suffix patterns correctly.
-       * function.c (subst_expand): Remove the SUFFIX_ONLY parameter; it
-       was used only from variable_expand_string() and is no longer used
-       there.
-       (func_subst): Ditto, on call to subst_expand().
-       (patsubst_expand): Require the percent pointers to point to the
-       character after the %, not to the % itself.
-       * read.c (record_files): New call criteria for patsubst_expand().
-       * variable.h: Remove SUFFIX_ONLY from subst_expand() prototype.
-       This is to fix a bug reported by Markus Mauhart <qwe123@chello.at>.
-
-2004-09-19  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (subst_expand): Fix a check in by_word: look for a
-       previous blank if we're beyond the beginning of the string, not
-       the beginning of the word.
-       Bugs reported by Markus Mauhart <qwe123@chello.at>.
-
-2004-05-16  Paul D. Smith  <psmith@gnu.org>
-
-       * remake.c (update_goal_chain): Change the argument specifying
-       whether we're rebuilding makefiles to be a global variable,
-       REBUILDING_MAKEFILES.
-       (complain): Extract the code that complains about no rules to make
-       a target into a separate function.
-       (update_file_1): If we tried to rebuild a file during the makefile
-       rebuild phase and it was dontcare, then no message was printed.
-       If we then try to build the same file during the normal build,
-       print a message this time.
-       (remake_file): Don't complain about un-remake-able files when
-       we're rebuilding makefiles.
-
-2004-05-11  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (construct_command_argv_internal): OS/2 patches from
-       Andreas Buening <andreas.buening@nexgo.de>.
-
-2004-05-10  Paul D. Smith  <psmith@gnu.org>
-
-       * remake.c (update_file): Don't walk the double-colon chain unless
-       this is a double-colon rule.  Fix suggested by Boris Kolpackov
-       <boris@kolpackov.net>.
-
-       * makefile.vms (CFLAGS): Remove glob/globfree (see readme.vms docs)
-       * readme.vms: New section describing OpenVMS support and issues.
-       * default.c (default_variables): Add support for IA64.
-       * job.c (tryToSetupYAst) [VMS]: On VMS running make in batch mode
-       without some privilege aborts make with the error
-       %SYSTEM-F-NOPRIV. It happens when setting up a handler for
-       pressing Ctrl+Y and the input device is no terminal. The change
-       catches this error and just continues.
-
-       Patches by Hartmut Becker <Hartmut.Becker@hp.com>
-
-2004-04-25  Paul D. Smith  <psmith@gnu.org>
-
-       * commands.c (set_file_variables): Set $< properly in the face of
-       order-only prerequisites.
-       Patch from Boris Kolpackov <boris@kolpackov.net>
-
-2004-04-21  Bob Byrnes  <byrnes@curl.com>
-
-       * main.c (main): Notice failures to remake makefiles.
-
-2004-03-28  Paul D. Smith  <psmith@gnu.org>
-
-       Patches for Acorn RISC OS by Peter Naulls <peter@chocky.org>
-
-       * job.c: No default shell for RISC OS.
-       (load_too_high): Hard-code the return to 1.
-       (construct_command_argv_internal): No sh_chars or sh_cmds.
-       * getloadavg.c: Don't set LOAD_AVE_TYPE on RISC OS.
-
-2004-03-20  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (do_variable_definition): Don't append from the
-       global set if a previous non-appending target-specific variable
-       definition exists.  Reported by Oliver Schmidt <oschmidt@gmx.net>
-       (with fix).
-
-       * expand.c (reference_variable): Don't give up on variables with
-       no value that have the target-specific append flag set: they might
-       have a value after all.  Reported by Oliver Schmidt
-       <oschmidt@gmx.net> (with fix) and also by Maksim A. Nikulin
-       <nikulin@dx1cmd.inp.nsk.su>.
-
-       * rule.c (count_implicit_rule_limits): Don't delete patterns which
-       refer to absolute pathnames in directories that don't exist: some
-       portion of the makefile could create those directories before we
-       match the pattern.  Fixes bugs #775 and #108.
-
-       Fixes from Jonathan R. Grant  <jg-make@jguk.org>:
-
-       * main.c (main): Free makefile_mtimes if we have any.
-       * README.W32.template: Update documentation for the current status
-       of the MS-Windows port.
-       * NMakefile.template (MAKE): Add "MAKE = nmake".  A conflicting
-       environment variable is sometimes already defined which causes the
-       build to fail.
-       * main.c (debug_signal_handler): Only define this function if
-       SIGUSR1 is available.
-
-       Fixes for OS/2 from Andreas Beuning <andreas.buening@nexgo.de>:
-
-       * configure.in [OS/2]: Relocate setting of HAVE_SA_RESTART for OS/2.
-       * README.OS2.template: Documentation updates.
-       * build.template: Add LIBINTL into LOADLIBES.  Add $CFLAGS to the
-       link line for safety.
-       * maintMakefile (build.sh.in): Remove an extraneous ")".
-       * job.c (child_execute_job): Close saved FDs.
-       * job.c (exec_command) [OS/2]: exec_command(): If the command
-       can't be exec'ed and if the shell is not Unix-sh, then try again
-       with argv = { "cmd", "/c", ... }. Normally, this code is never
-       reached for the cmd shell unless the command really doesn't exist.
-       (construct_command_argv_internal) [OS/2]: The code for cmd
-       handling now uses new_argv = { "cmd", "/c", "original line", NULL}.
-       The CMD builtin commands are case insensitive so use strcasecmp().
-
-2004-03-19  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (do_define): Re-order line counter increment so the count
-       is accurate (we were losing one line per define).  Reported by
-       Dave Yost <Dave@Yost.com>.
-
-2004-03-06  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in (HAVE_ANSI_COMPILER): Define if we have an ANSI/ISO
-       compiler.
-       * make.h: Convert uses of __STDC__ to HAVE_ANSI_COMPILER.
-       * misc.c (message,error,fatal): Ditto.
-       * configh.dos.template: Define HAVE_ANSI_COMPILER.
-       * config.h.W32.template: Ditto.
-       * config.h-vms.template: Ditto.
-       * config.ami.template: Ditto.
-
-2004-03-04  Paul D. Smith  <psmith@gnu.org>
-
-       * README.template: Add a note about broken /bin/sh on SunOS
-       4.1.3_U1 & 4.1.4.  Fix up Savannah links.
-
-       * misc.c (message, error, fatal): Don't use "..." if we're using
-       varargs.  ansi2knr should handle this but it doesn't work: it
-       translates "..." to va_dcl etc. but _AFTER_ the preprocessor is
-       done.  On many systems (SunOS for example) va_dcl is a #define.
-       So, force the use of the non-"..." version on pre-ANSI compilers.
-
-       * maintMakefile (sign-dist): Create some rules to help automate
-       the new GNU ftp upload method.
-
-2004-02-24  Paul D. Smith  <psmith@gnu.org>
-
-       * config.h.W32.template: Add HAVE_STDARG_H
-       * config.h-vms.template: Ditto.
-       * config.ami.template: Ditto.
-
-2004-02-23  Jonathan Grant  <jg-make@jguk.org>
-
-       * README.W32.template: Add a notation about -j with BATCH_MODE_ONLY.
-       * build_w32.bat: Remove extra "+".
-
-2004-02-23  Paul D. Smith  <psmith@gnu.org>
-
-       * make.h: Create an UNUSED macro to mark unused parameters.
-       * (many): Clean up warnings by applying UNUSED, fixing
-       signed/unsigned incompatibilities, etc.
-
-       * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add quoting to silence
-       autoconf warnings.
-       * filedef.h: Name the command_state enumeration.
-       * file.c (set_command_state): Use the enumeration in the function
-       argument.
-
-       * configure.in: Explicitly set SET_MAKE to empty, to disable
-       MAKE=make even when no make already exists.  Fix bug #3823.
-
-2004-02-22  Paul D. Smith  <psmith@gnu.org>
-
-       * maintMakefile: Perl script to clean up all non-CVS files.  Use
-       it on all the subdirectories for the cvs-clean target.
-
-       * main.c (decode_switches): Require non-empty strings for all our
-       string command-line options.  Fixes Debian bug # 164165.
-
-       * configure.in: Check for stdarg.h and varargs.h.
-       * make.h (USE_VARIADIC): Set this if we can use variadic functions
-       for printing messages.
-       * misc.c: Check USE_VARIADIC instead of (obsolete) HAVE_STDVARARGS.
-       (message): Ditto.
-       (error): Ditto.
-       (fatal): Ditto.
-
-       A number of patches for OS/2 support from Andreas Buening
-       <andreas.buening@nexgo.de>:
-
-       * job.c (child_handler) [OS/2]: Allow this on OS/2 but we have to
-       disable the SIGCHLD handler.
-       (reap_children) [OS/2]: Remove special handling of job_rfd.
-       (set_child_handler_action_flags) [OS/2]: Use this function in OS/2.
-       (new_job) [OS/2]: Disable the SIGCHLD handler on OS/2.
-       * main.c (main) [OS/2]: Special handling for paths in OS/2.
-       * configure.in [OS/2]: Force SA_RESTART for OS/2.
-       * Makefile.am (check-regression): Use $(EXEEXT) for Windows-type
-       systems.
-
-2004-02-21  Paul D. Smith  <psmith@gnu.org>
-
-       * w32/subproc/sub_proc.c (process_easy) [W32]: Christoph Schulz
-       <mail@kristov.de> reports that if process_begin() fails we don't
-       handle the error condition correctly in all cases.
-       * w32/subproc/w32err.c (map_windows32_error_to_string): Make sure
-       to have a newline on the message.
-
-       * job.c (construct_command_argv_internal): Add "test" to UNIX
-       sh_cmds[].  Fixes Savannah bug # 7606.
-
-2004-02-04  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (vms_handle_apos) [VMS]: Fix various string handling
-       situations in VMS DCL.  Fixes Savannah bug #5533.  Fix provided by
-       Hartmut Becker <Hartmut.Becker@hp.com>.
-
-2004-01-21  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (load_too_high): Implement an algorithm to control the
-       "thundering herd" problem when using -l to control job creation
-       via the load average.  The system only recomputes the load once a
-       second but we can start many jobs in a second.  To solve this we
-       keep track of the number of jobs started in the last second and
-       apply a weight to try to guess what a correct load would be.
-       The algorithm was provided by Thomas Riedl <thomas.riedl@siemens.com>.
-       Also fixes bug #4693.
-       (reap_children): Decrease the job count for this second.
-       (start_job_command): Increase the job count for this second.
-
-       * read.c (conditional_line): Expand the text after ifn?def before
-       checking to see if it's a single word.  Fixes bug #7257.
-
-2004-01-09  Paul D. Smith  <psmith@gnu.org>
-
-       * file.c (print_file): Recurse to print all targets in
-       double-colon rules.  Fixes bug #4518, reported (with patch) by
-       Andrew Chatham <chatham@google.com>.
-
-2004-01-07  Paul D. Smith  <psmith@gnu.org>
-
-       * acinclude.m4: Remove make_FUNC_SETVBUF_REVERSED.
-       * configure.in: Change make_FUNC_SETVBUF_REVERSED to
-       AC_FUNC_SETVBUF_REVERSED.
-
-       * doc/make.texi (Target-specific): Fix Savannah bug #1772.
-       (MAKE Variable): Fix Savannah bug #4898.
-
-       * job.c (construct_command_argv_internal): Add "!" to the list of
-       shell escape chars.  POSIX sh allows it to appear before a
-       command, to negate the exit code.  Fixes bug #6404.
-
-       * implicit.c (pattern_search): When matching an implicit rule,
-       remember which dependencies have the ignore_mtime flag set.
-       Original fix provided in Savannah patch #2349, by Benoit
-       Poulot-Cazajous <Benoit.Poulot-Cazajous@jaluna.com>.
-
-2003-11-22  Paul D. Smith  <psmith@gnu.org>
-
-       * README.W32.template (Outputs): Clarification on -j with
-       BATCH_MODE_ONLY_SEHLL suggested by Jonathan R. Grant
-       <jg-make@jguk.org>.
-
-2003-11-02  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (func_if): Strip all the trailing whitespace from the
-       condition, then don't expand it.  Fixed bug # 5798.
-
-       * expand.c (recursively_expand_for_file): If we're expanding a
-       variable with no file context, then use the variable's context.
-       Fixes bug # 6195.
-
-2003-10-21  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (log_working_directory): Add newlines to printf()s.
-
-       * README.cvs: Add a note to ignore warnings during autoreconf.
-
-       * maintMakefile (po_repo): Set a new URL for PO file updates.
-       (get-config/config.guess get-config/config.sub): Get these files
-       from the Savannah config project instead of ftp.gnu.org.
-
-2003-10-05  Paul Eggert  <eggert@twinsun.com>
-
-       * main.c (main): Avoid potential subscript error if environ has
-       short strings.
-
-2003-08-22  Paul D. Smith  <psmith@gnu.org>
-
-       * misc.c (xmalloc, xrealloc): Add one to 0 sizes, to cater to
-       systems which don't yet implement the C89 standard :-/.
-
-2003-07-18  Paul D. Smith  <psmith@gnu.org>
-
-       * dir.c (directory_contents_hash_1, directory_contents_hash_1)
-       [WINDOWS32]: Initialize hash.
-
-2003-06-19  Earnie Boyd  <earnie@uses.sf.net>
-
-       * dir.c (read_dirstream): Provide a workaround for broken versions of
-       the MinGW dirent structure.
-
-2003-05-30  Earnie Boyd  <earnie@users.sf.net>
-
-       * w32/include/dirent.h: Add __MINGW32__ filter.
-
-2003-05-30  Earnie Boyd  <earnie@users.sf.net>
-
-       * make.h: Add global declaration of *make_host.
-       * main.c (print_usage): Remove local declaration of *make_host.
-       (print_version): Display "This program built for ..." after Copyright
-       notice.
-
-2003-05-30  Earnie Boyd  <earnie@users.sf.net>
-
-       * doc/make.texi: Change "ifinfo" to "ifnottex" as suggested by the
-       execution of "makeinfo --html make.texi".
-
-2003-04-30  Paul D. Smith  <psmith@gnu.org>
-
-       * build.template: Make some changes to maybe allow this script to
-       work on DOS/Windows/OS2 systems.  Suggested by Andreas Buening.
-
-       * README.OS2.template: New file for OS/2 support.  Original
-       contributed by Andreas Buening.
-       * configure.in: Invoke new pds_AC_DOS_PATHS macro to test for
-       DOS-style paths.
-
-2003-04-19  Paul D. Smith  <psmith@gnu.org>
-
-       Fix bug #1405: allow a target to match multiple pattern-specific
-       variables.
-
-       * rule.c (create_pattern_var, lookup_pattern_var): Move these to
-       variable.c, where they've always belonged.
-       * rule.h: Move the prototypes and struct pattern_var as well.
-       * variable.c (initialize_file_variables): Invoke
-       lookup_pattern_var() in a loop, until no more matches are found.
-       If a match is found, create a new variable set for the target's
-       pattern variables.  Then merge the contents of each matching
-       pattern variable set into the target's pattern variable set.
-       (lookup_pattern_var): Change this function to be usable
-       in a loop.  It takes a starting position: if NULL, start at the
-       beginning; if non-NULL, start with the pattern variable after that
-       position, and return the next matching pattern.
-       (create_pattern_var): Create a unique instance of
-       pattern-specific variables for every definition in the makefile.
-       Don't combine the same pattern together.  This allows us to
-       process the variable handling properly even when the same pattern
-       is used multiple times.
-       (parse_variable_definition): New function: break out the parsing
-       of a variable definition line from try_variable_definition.
-       (try_variable_definition): Call parse_variable_definition to
-       parse.
-       (print_variable_data_base): Print out pattern-specific variables.
-       * variable.h (struct variable): Remember when a variable is
-       conditional.  Also remember its flavor.
-       (struct pattern_var): Instead of keeping a variable set, we just
-       keep a single variable for each pattern.
-       * read.c (record_target_var): Each pattern variable contains only a
-       single variable, not a set, so create it properly.
-       * doc/make.texi (Pattern-specific): Document the new behavior.
-
-2003-04-17  Paul D. Smith  <psmith@gnu.org>
-
-       * dir.c (file_exists_p) [VMS]: Patch provided with Bug #3018 by
-       Jean-Pierre Portier <portierjp2@free.fr>.  I don't understand the
-       file/directory naming rules for VMS so I can't tell whether this
-       is correct or not.
-
-2003-04-09  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in (HAVE_DOS_PATHS): Define this on systems that need
-       DOS-style pathnames: backslash separators and drive specifiers.
-
-2003-03-28  Paul D. Smith  <psmith@gnu.org>
-
-       * file.c (snap_deps): If .SECONDARY with no targets is given, set
-       the intermediate flag on all targets.  Fixes bug #2515.
-
-2003-03-24  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in, Makefile.am, glob/Makefile.am, doc/Makefile.am:
-       Upgrade to autoconf 2.57 and automake 1.7.3.
-
-       * job.c: More OS/2 changes from Andreas Buening.
-
-       * file.c (print_file): Fix variable initialization.
-       Fixes bug #2892.
-
-       * remake.c (notice_finished_file):
-
-       * make.h (ENULLLOOP): Set errno = 0 before invoking the command;
-       some calls (like readdir()) return NULL in valid situations
-       without resetting errno.  Fixes bug #2846.
-
-2003-02-25  Paul D. Smith  <psmith@gnu.org>
-
-       Port to OS/2 (__EMX__) by Andreas Buening <andreas.buening@nexgo.de>.
-
-       * job.c (_is_unixy_shell) [OS/2]: New function.
-       Set default shell to /bin/sh.
-       (reap_children): Close the job_rfd pipe here since we don't use a
-       SIGCHLD handler.
-       (set_child_handler_action_flags): define this to empty on OS/2.
-       (start_job_command): Close the jobserver pipe and use
-       child_execute_job() instead of fork/exec.
-       (child_execute_job): Rewrite to handle stdin/stdout FDs and spawn
-       rather than exec'ing, then reconfigure stdin/stdout.
-       (exec_command): Rewrite to use spawn instead of exec.  Return the
-       PID of the child.
-
-       * main.c (main) [OS/2]: Call initialize_main().  Handle argv[0] as
-       in DOS.  Handle the TEMP environment variable as in DOS.  Don't
-       use a SIGCHLD handler on OS/2.  Choose a shell as in DOS.  Don't
-       use -j in DOS mode.  Use child_execute_job() instead of
-       exec_command().
-
-       * function.c (func_shell) [OS/2]: Can't use fork/exec on OS/2: use
-       spawn() instead.
-
-       * job.h [OS/2]: Move CLOSE_ON_EXEC here from job.c.  Add
-       prototypes that return values.
-
-       * remake.c (f_mtime) [OS/2]: Handle FAT timestamp offsets for OS/2.
-
-       * read.c (readline) [OS/2]: Don't handle CRLF specially on OS/2.
-       * default.c (default_suffixes) [OS/2]: Set proper default suffixes
-       for OS/2.
-       * vpath.c (construct_vpath_list) [OS/2]: Handle OS/2 paths like
-       DOS paths.
-
-2003-02-24  Paul D. Smith  <psmith@gnu.org>
-
-       * default.c [VMS]: New default rules for .cxx -> .obj compiles.
-       * job.c (child_execute_job) [VMS]: New code for handling spawn().
-       (child_execute_job) [VMS]: Handle error status properly.
-       Patches provided by Hartmut Becker <Hartmut.Becker@compaq.com>.
-
-       * function.c (func_shell): Use EINTRLOOP() while reading from the
-       subshell pipe (Fixes bug #2502).
-       * job.c (free_child): Use EINTRLOOP() while writing tokens to the
-       jobserver pipe.
-       * main.c (main): Ditto.
-
-2003-01-30  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (eval): eval() was not fully reentrant, because the
-       collapsed buffer was static.  Change it to be an automatic
-       variable so that eval() can be invoked recursively.
-       Fixes bug # 2238.
-       (eval): Apply patch # 1022: fix memory reference error on long
-       target-specific variable lines.
-       Patch provided by Steve Brown <Steve.Brown@macquarie.com>.
-
-       * function.c (check_numeric): Combine the is_numeric() function
-       into this function, since it's only called from one place.
-       Constify this function.  Have it print the incorrect string in the
-       error message.  Fixes bug #2407.
-       (strip_whitespace): Constify.
-       (func_if): Constify.
-       * expand.c (expand_argument): Constify.
-
-2003-01-29  Paul D. Smith  <psmith@gnu.org>
-
-       Fix bug # 2169, also reported by other people on various systems.
-
-       * make.h: Some systems, such as Solaris and PTX, do not fully
-       implement POSIX-compliant SA_RESTART functionality; important
-       system calls like stat() and readdir() can still fail with EINTR
-       even if SA_RESTART has been set on the signal handler.  So,
-       introduce macros EINTRLOOP() and ENULLLOOP() which can loop on
-       EINTR for system calls which return -1 or 0 (NULL), respectively,
-       on error.
-       Also, remove the old atomic_stat()/atomic_readdir() and
-       HAVE_BROKEN_RESTART handling.
-
-       * configure.in: Remove setting of HAVE_BROKEN_RESTART.
-
-       * arscan.c (ar_member_touch): Use EINTRLOOP() to wrap fstat().
-       * remake.c (touch_file): Ditto.
-
-       * commands.c (delete_target): Use EINTRLOOP() to wrap stat().
-       * read.c (construct_include_path): Ditto.
-       * remake.c (name_mtime): Ditto.
-       * vpath.c (selective_vpath_search): Ditto.
-       * dir.c (find_directory): Ditto.
-       (local_stat): Ditto.
-       (find_directory): Use ENULLLOOP() to wrap opendir().
-       (dir_contents_file_exists_p): Use ENULLLOOP() to wrap readdir().
-
-       * misc.c: Remove HAVE_BROKEN_RESTART, atomic_stat(), and
-       atomic_readdir() handling.
-
-2003-01-22  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (func_call): Fix Bug #1744.  If we're inside a
-       recursive invocation of $(call ...), mask any of the outer
-       invocation's arguments that aren't used by this one, so that this
-       invocation doesn't "inherit" them accidentally.
-
-2002-12-05  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (subst_expand): Valery Khamenia reported a
-       pathological performance hit when doing substitutions on very
-       large values with lots of words: turns out we were invoking
-       strlen() a ridiculous number of times.  Instead of having each
-       call to sindex() call strlen() again, keep track of how much of
-       the text we've seen and pass the length to sindex().
-
-2002-11-19  Paul D. Smith  <psmith@gnu.org>
-
-       * README.cvs, configure.in: Upgrade to require autoconf 2.56.
-
-
-2002-11-16  Paul D. Smith  <psmith@gnu.org>
-
-       * NMakefile.template (OBJS): Add hash.c object file.
-       * SMakefile.template (srcs): Ditto.
-       * Makefile.ami (objs): Ditto.
-       * build_w32.bat: Ditto.
-
-       * Makefile.DOS.template: Remove extra dependencies.
-
-2002-10-25  Paul D. Smith  <psmith@gnu.org>
-
-       * expand.c (install_variable_buffer): New function.  Install a new
-       variable_buffer context and return the previous one.
-       (restore_variable_buffer): New function.  Free the current
-       variable_buffer context and put a previously saved one back.
-       * variable.h: Prototypes for {install,restore}_variable_buffer.
-       * function.c (func_eval): Push a new variable_buffer context
-       before we eval, then restore the old one when we're done.
-       Fixes Bug #1517.
-
-       * read.c (install_conditionals): New function.  Install a new
-       conditional context and return the previous one.
-       (restore_conditionals): New function.  Free the current
-       conditional context and put a previously saved one back.
-       (eval): Use the {install,restore}_conditionals for "include"
-       handling.
-       (eval_buffer): Use {install,restore}_conditionals to preserve the
-       present conditional state before we evaluate the buffer.
-       Fixes Bug #1516.
-
-       * doc/make.texi (Quick Reference): Add references to $(eval ...)
-       and $(value ...).
-       (Recursion): Add a variable index entry for CURDIR.
-
-       * README.cvs: Update to appropriate versions.
-       * Makefile.am (nodist_loadavg_SOURCES): automake gurus point out I
-       don't need to copy loadavg.c: automake is smart enough to create
-       it for me.  Still have a bug in automake related to ansi2knr tho.
-
-2002-10-14  Paul D. Smith  <psmith@gnu.org>
-
-       * remake.c (notice_finished_file): Only touch targets if they have
-       at least one command (as per POSIX).  Resolve Bug #1418.
-
-       * *.c: Convert to using ANSI C-style function definitions.
-       * Makefile.am: Enable the ansi2knr feature of automake.
-       * configure.in: ditto.
-
-2002-10-13  Paul D. Smith  <psmith@gnu.org>
-
-       * commands.c (set_file_variables): Bug #1379: Don't use alloca()
-       for automatic variable values like $^, etc.  In the case of very
-       large lists of prerequisites this causes problems.  Instead reuse
-       a static buffer (resizeable) for each variable.
-
-       * read.c (eval): Fix Bug #1391: allow "export" keyword in
-       target-specific variable definitions.  Check for it and set an
-       "exported" flag.
-       (record_target_var): Set the export field to v_export if the
-       "exported" flag is set.
-       * doc/make.texi (Target-specific): Document the ability to use
-       "export".
-
-       * doc/make.texi: Change the name of the section on automatic
-       variables from "Automatic" to "Automatic Variables".  Added text
-       clarifying the scope of automatic variables.
-
-2002-10-04  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (eval): Allow SysV $$@ variables to use {} braces as well
-       as () braces.
-       (record_files): Ditto.
-
-       * expand.c (variable_expand_string): In $(A:x=y) expansion limit
-       the search for the '=' to only within the enclosing parens.
-
-2002-10-03  Paul D. Smith  <psmith@gnu.org>
-
-       Version 3.80 released.
-
-       * dir.c: Change hash functions to use K&R function definition style.
-       * function.c: Ditto.
-       * read.c: Ditto.
-       * variable.c: Ditto.
-
-       Update to automake 1.7.
-
-       * Makefile.am (AUTOMAKE_OPTIONS): Update to require 1.7.
-       (pdf): Remove this target as automake now provides one.
-
-       * configure.in: Change AM_CONFIG_HEADER to AC_CONFIG_HEADERS.
-
-2002-09-30  Martin P.J. Zinser  <zinser@decus.de>
-
-       * makefile.com: Updates for GNU make 3.80.
-       * makefile.vms: Ditto.
-
-2002-09-23  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (enum make_word_type): Remove w_comment.
-       (get_next_mword): Don't treat comment characters as special; where
-       this function is used we will never see a comment (it's stripped
-       before we get here) and treating comments specially means that
-       targets like "foo\#bar" aren't handled properly.
-
-2002-09-18  Paul D. Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Bugs): Update with some info on Savannah, etc.
-
-       * read.c (eval): Expansion of arguments to export/unexport was
-       ignoring all arguments after the first one.  Change the algorithm
-       to expand the whole line once, then parse the results.
-
-2002-09-17  Paul D. Smith  <psmith@gnu.org>
-
-       Fix Bug #940 (plus another bug I found while looking at this):
-
-       * read.c (record_target_var): enter_file() will add a new entry if
-       it's a double-colon target: we don't want to do that in this
-       situation.  Invoke lookup_file() and only enter_file() if it does
-       not already exist.  If the file we get back is a double-colon then
-       add this variable to the "root" double-colon target.
-
-       * variable.c (initialize_file_variables): If this file is a
-       double-colon target but is not the "root" target, then initialize
-       the root and make the root's variable list the parent of our
-       variable list.
-
-2002-09-13  Paul D. Smith  <psmith@gnu.org>
-
-       * doc/make.texi (MAKE Variable): Add some indexing for "+".
-
-       * hash.c (round_up_2): Get rid of a warning.
-
-2002-09-12  Paul D. Smith  <psmith@gnu.org>
-
-       * Makefile.am (loadavg_SOURCES, loadavg.c): Tiptoe around automake
-       so it doesn't complain about getloadavg.c.
-
-       * commands.c (set_file_variables): Make sure we always alloca() at
-       least 1 character for the value of $? (for '\0').
-
-2002-09-11  Paul D. Smith  <psmith@gnu.org>
-
-       * hash.h (STRING_COMPARE, ISTRING_COMPARE, STRING_N_COMPARE): Fix
-       macro to use RESULT instead of the incorrect _RESULT_.
-
-       * make.h (HAVE_BROKEN_RESTART): Add prototypes for atomic_stat()
-       and atomic_readdir().  We need to #include dirent.h to get this to
-       work.
-       * misc.c (atomic_readdir): Fix typos.
-
-2002-09-10  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (eval): Expand variable lists given to export and
-       unexport, so that "export $(LIST_OF_VARIABLES)" (etc.) works.
-       (conditional_line): Ditto for "ifdef".  Fixes bug #103.
-
-       * doc/make.texi (Variables/Recursion): Document this.
-       (Conditional Syntax): And here.
-
-2002-09-09  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in: Check for memmove().
-
-2002-09-07  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in (HAVE_BROKEN_RESTART): Define this on PTX systems;
-       Michael Sterrett <msterret@coat.com> reports that while it has
-       SA_RESTART, it does not work properly.
-
-       * misc.c (atomic_stat): If HAVE_BROKEN_RESTART, create a function
-       that invokes stat() and loops to do it again if it returns EINTR.
-       (atomic_readdir): Ditto, with readdir().
-
-       * make.h (stat, readdir): If HAVE_BROKEN_RESTART, alias stat()
-       and readdir() to atomic_stat() and atomic_readdir().
-
-2002-09-04  Paul D. Smith  <psmith@gnu.org>
-
-       * implicit.c (pattern_search): Daniel <barkalow@reputation.com>
-       reports that GNU make sometimes doesn't recognize that targets can
-       be made, when directories can be created as prerequisites.  He
-       reports that changing the order of predicates in the DEP->changed
-       flag test so that lookup_file() is always performed, solves this
-       problem.
-
-2002-08-08  Paul D. Smith  <psmith@gnu.org>
-
-       * configure.in: Require a newer version of gettext.
-
-       * misc.c (perror_with_name): Translate the format string (for
-       right-to-left language support).
-       (pfatal_with_name): Ditto.
-
-       * main.c: Create a static array of strings to store the usage
-       text.  This is done to facilitate translations.
-       (struct command_switch): Remove argdesc and description fields.
-       (switches): Remove values for obsolete fields.
-       (print_usage): Print each element of the usage array.
-
-       * hash.c: Change function definitions to be K&R style.
-
-2002-08-02  Paul D. Smith  <psmith@gnu.org>
-
-       * NEWS: Remove the mention of .TARGETS; we aren't going to publish
-       this one because it's too hard to get right.  We'll look at it for
-       a future release.
-       * main.c (main): Don't create the .TARGETS variable.
-       * variable.c (handle_special_var): Don't handle .TARGETS.
-
-2002-08-01  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (switches): Add a new option, -B (--always-make).  If
-       specified, make will rebuild all targets that it encounters even
-       if they don't appear to be out of date.
-       (always_make_flag): New flag.
-       * make.h: Extern always_make_flag.
-       * remake.c (update_file_1): Check always_make_flag; if it's set we
-       will always rebuild any target we can, even if none of its
-       prerequisites are newer.
-       * NEWS: Mention it.
-
-       * doc/make.texi (Shell Function): Make it clear that make
-       variables marked as "export" are not passed to instances of the
-       shell function.
-
-       Add new introspection variable .VARIABLES and .TARGETS.
-
-       * variable.c (handle_special_var): New function.  If the variable
-       reference passed in is "special" (.VARIABLES or .TARGETS),
-       calculate the new value if necessary.  .VARIABLES is handled here:
-       walk through the hash of defined variables and construct a value
-       which is a list of the names.  .TARGETS is handled by
-       build_target_list().
-       (lookup_variable): Invoke handle_special_var().
-       * file.c (build_target_list): Walk through the hask of known files
-       and construct a list of the names of all the ones marked as
-       targets.
-       * main.c (main): Initialize them to empty (and as simple variables).
-       * doc/make.texi (Special Variables): Document them.
-       * NEWS: Mention them.
-
-       * variable.h (struct variable): Add a new flag "exportable" which
-       is true if the variable name is valid for export.
-       * variable.c (define_variable_in_set): Set "exportable" when a new
-       variable is defined.
-       (target_environment): Use the "exportable" flag instead of
-       re-checking the name here... an efficiency improvement.
-
-2002-07-31  Paul D. Smith  <psmith@gnu.org>
-
-       * config.h-vms.template: Updates to build on VMS.  Thanks to
-       Brian_Benning@aksteel.com for helping verify the build.
-       * makefile.com: Build the new hash.c file.
-       * hash.h: Use strcpmi(), not stricmp(), in the
-       HAVE_CASE_INSENSITIVE_FS case.
-
-2002-07-30  Paul D. Smith  <psmith@gnu.org>
-
-       * hash.h (ISTRING_COMPARE, return_ISTRING_COMPARE): Add missing
-       backslashes to the HAVE_CASE_INSENSITIVE_FS case.
-       Reported by <Brian_Benning@aksteel.com>.
-
-2002-07-10  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (pop_variable_scope): Remove variable made unused by
-       new hash infrastructure.
-       * read.c (dep_hash_cmp): Rewrite this to handle ignore_mtime
-       comparisons as well as name comparisons.
-       * variable.h: Add a prototype for new hash_init_function_table().
-       * file.c (lookup_file): Remove variables made unused by new hash
-       infrastructure.
-       * dir.c (directory_contents_hash_2): Missing return of hash value.
-       (dir_contents_file_exists_p): Remove variables made unused by new
-       hash infrastructure.
-
-
-       Installed Greg McGary's integration of the hash functions from the
-       GNU id-utils package:
-
-2002-07-10  Greg McGary  <greg@mcgary.org>
-
-       * scripts/functions/filter-out: Add literals to to the
-       pattern space in order to add complexity, and trigger
-       use of an internal hash table.  Fix documentation strings.
-       * scripts/targets/INTERMEDIATE: Reverse order of files
-       passed to expected `rm' command.
-
-2002-07-10  Greg McGary  <greg@mcgary.org>
-
-       * Makefile.am (SRCS): Add hash.c (noinst_HEADERS): Add hash.h
-       * hash.c: New file, taken from id-utils.
-       * hash.h: New file, taken from id-utils.
-
-       * make.h (HASH, HASHI): Remove macros.
-       (find_char_unquote): Change arglist in decl.
-       (hash_init_directories): New function decl.
-       * variable.h (hash.h): New #include.
-       (MAKELEVEL_NAME, MAKELEVEL_LENGTH): New constants.
-       * filedef.h (hash.h): New #include.
-       (struct file) [next]: Remove member.
-       (file_hash_enter): Remove function decl.
-       (init_hash_files): New function decl.
-
-       * ar.c (ar_name): Delay call to strlen until needed.
-       * main.c (initialize_global_hash_tables): New function.
-       (main): Call it.  Use MAKELEVEL_NAME & MAKELEVEL_LENGTH.
-       * misc.c (remove_comments): Pass char constants to find_char_unquote.
-       * remake.c (notice_finished_file): Update last_mtime on `prev' chain.
-
-       * dir.c (hash.h): New #include.
-       (struct directory_contents) [next, files]: Remove members.
-       [ctime]: Add member for VMS.  [dirfiles]: Add hash-table member.
-       (directory_contents_hash_1, directory_contents_hash_2,
-       directory_contents_hash_cmp): New functions.
-       (directories_contents): Change type to `struct hash_table'.
-       (struct directory) [next]: Remove member.
-       (directory_hash_1, directory_hash_2, directory_hash_cmp): New funcs.
-       (directory): Change type to `struct hash_table'.
-       (struct dirfile) [next]: Remove member.
-       [length]: Add member.  [impossible]: widen type to fill alignment gap.
-       (dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp): New functions.
-       (find_directory): Use new hash table package.
-       (dir_contents_file_exists_p): Likewise.
-       (file_impossible): Likewise.
-       (file_impossible_p): Likewise.
-       (print_dir_data_base): Likewise.
-       (open_dirstream): Likewise.
-       (read_dirstream): Likewise.
-       (hash_init_directories): New function.
-
-       * file.c (hash.h): New #include.
-       (file_hash_1, file_hash_2, file_hash_cmp): New functions.
-       (files): Change type to `struct hash_table'.
-       (lookup_file): Use new hash table package.
-       (enter_file): Likewise.
-       (remove_intermediates): Likewise.
-       (snap_deps): Likewise.
-       (print_file_data_base): Likewise.
-
-       * function.c
-       (function_table_entry_hash_1, function_table_entry_hash_2,
-       function_table_entry_hash_cmp): New functions.
-       (lookup_function): Remove `table' argument.
-       Use new hash table package.
-       (struct a_word) [chain, length]: New members.
-       (a_word_hash_1, a_word_hash_2, a_word_hash_cmp): New functions.
-       (struct a_pattern): New struct.
-       (func_filter_filterout): Pass through patterns noting boundaries
-       and '%', if present.  Note a_word length.  Use a hash table if
-       arglists are large enough to justify cost.
-       (function_table_init): Renamed from function_table.
-       (function_table): Declare as `struct hash_table'.
-       (FUNCTION_TABLE_ENTRIES): New constant.
-       (hash_init_function_table): New function.
-
-       * read.c (hash.h): New #include.
-       (read_makefile): Pass char constants to find_char_unquote.
-       (dep_hash_1, dep_hash_2, dep_hash_cmp): New functions.
-       (uniquize_deps): Use hash table to efficiently identify duplicates.
-       (find_char_unquote): Accept two char-constant stop chars, rather
-       than a string constant, avoiding zillions of calls to strchr.
-       Tighten inner search loops to test only for desired delimiters.
-
-       * variable.c (variable_hash_1, variable_hash_2,
-       variable_hash_cmp): New functions.
-       (variable_table): Declare as `struct hash_table'.
-       (global_variable_set): Remove initialization.
-       (init_hash_global_variable_set): New function.
-       (define_variable_in_set): Use new hash table package.
-       (lookup_variable): Likewise.
-       (lookup_variable_in_set): Likewise.
-       (initialize_file_variables): Likewise.
-       (pop_variable_scope): Likewise.
-       (create_new_variable_set): Likewise.
-       (merge_variable_sets): Likewise.
-       (define_automatic_variables): Likewise.
-       (target_environment): Likewise.
-       (print_variable_set): Likewise.
-
-2002-07-10  Paul D. Smith  <psmith@gnu.org>
-
-       Implement the SysV make syntax $$@, $$(@D), and $$(@F) in the
-       prerequisite list.  A real SysV make will expand the entire
-       prerequisites list _twice_: we don't do that as it's a big
-       backward-compatibility problem.  We only replace those specific
-       variables.
-
-       * read.c (record_files): Replace any $@, $(@D), and $(@F) variable
-       references left in the list of prerequisites.  Check for .POSIX as
-       we record targets, so we can disable non-POSIX behavior while
-       reading makefiles as well as running them.
-       (eval): Check the prerequisite list to see if we have anything
-       that looks like a SysV prerequisite variable reference.
-
-2002-07-09  Paul D. Smith  <psmith@gnu.org>
-
-       * doc/make.texi (Prerequisite Types): Add a new section describing
-       order-only prerequisites.
-
-       * read.c (uniquize_deps): If we have the same file as both a
-       normal and order-only prereq, get rid of the order-only prereq,
-       since the normal one supersedes it.
-
-2002-07-08  Paul D. Smith  <psmith@gnu.org>
-
-       * AUTHORS: Added Greg McGary to the AUTHORS file.
-       * NEWS: Blurbed order-only prerequisites.
-       * file.c (print_file): Show order-only deps properly when printing
-       the database.
-
-       * maintMakefile: Add "update" targets for wget'ing the latest
-       versions of various external files.  Taken from Makefile.maint in
-       autoconf, etc.
-
-       * dosbuild.bat: Somehow we got _double_ ^M's.  Remove them.
-       Reported by Eli Zaretskii <eliz@is.elta.co.il>.
-
-2002-07-07  Paul D. Smith  <psmith@gnu.org>
-
-       * po/*.po: Remove.  We'll use wget to retrieve them at release
-       time.
-
-       * variable.c (do_variable_definition) [W32]: On W32 using cmd
-       rather than a shell you get an exception.  Make sure we look up
-       the variable.  Patch provided by Eli Zaretskii <eliz@is.elta.co.il>.
-
-       * remake.c (notice_finished_file): Fix handling of -t flag.
-       Patch provided by Henning Makholm <henning@makholm.net>.
-
-       * implicit.c (pattern_search): Some systems apparently run short
-       of stack space, and using alloca() in this function caused an
-       overrun.  I modified it to use xmalloc() on the two variables
-       which seemed like they might get large.  Fixes Bug #476.
-
-       * main.c (print_version): Update copyright notice to conform with
-       GNU standards.
-       (print_usage): Update help output.
-
-       * function.c (func_eval): Create a new make function, $(eval
-       ...).  Expand the arguments, put them into a buffer, then invoke
-       eval_buffer() on the resulting string.
-       (func_quote): Create a new function, $(quote VARNAME).  Inserts
-       the value of the variable VARNAME without expanding it any
-       further.
-
-       * read.c (struct ebuffer): Change the linebuffer structure to an
-       "eval buffer", which can be either a file or a buffer.
-       (eval_makefile): Move the code in the old read_makefile() which
-       located a makefile into here: create a struct ebuffer with that
-       information.  Have it invoke the new function eval() with that
-       ebuffer.
-       (eval_buffer): Create a new function that creates a struct ebuffer
-       that holds a string buffer instead of a file.  Have it invoke
-       eval() with that ebuffer.
-       (eval): New function that contains the guts of the old
-       read_makefile() function: this function parses makefiles.  Obtains
-       data to parse from the provided ebuffer.  Some modifications to
-       make the flow of the function cleaner and clearer.  Still could
-       use some work here...
-       (do_define): Takes a struct ebuffer instead of a FILE*.  Read the
-       contents of the define/endef variable from the ebuffer.
-       (readstring): Read the next line from a string-style ebuffer.
-       (readline): Read the next line from an ebuffer.  If it's a string
-       ebuffer, invoke readstring().  If it's a FILE* ebuffer, read it
-       from the file.
-
-       * dep.h (eval_buffer): Prototype eval_buffer();
-
-       * variable.c (do_variable_definition): Make sure that all
-       non-target-specific variables are registered in the global set.
-       If we're invoked from an $(eval ...) we might be inside a $(call
-       ...) or other function which has pushed a variable scope; we still
-       want to define our variables from evaluated makefile code in the
-       global scope.
-
-2002-07-03  Greg McGary  <greg@mcgary.org>
-
-       * dep.h (struct dep) [ignore_mtime]: New member.
-       [changed]: convert to a bitfield.
-       * implicit.c (pattern_search): Zero ignore_mtime.
-       * main.c (main, handle_non_switch_argument): Likewise.
-       * rule.c (convert_suffix_rule): Likewise.
-       * read.c (read_all_makefiles, read_makefile, multi_glob): Likewise.
-       (read_makefile): Parse '|' in prerequisite list.
-       (uniquize_deps): Consider ignore_mtime when comparing deps.
-       * remake.c (update_file_1, check_dep): Don't force remake for
-       dependencies that have d->ignore_mtime.
-       * commands.c (FILE_LIST_SEPARATOR): New constant.
-       (set_file_variables): Don't include a
-       prerequisite in $+, $^ or $? if d->ignore_mtime.
-       Define $|.
-
-2002-06-18  Paul D. Smith  <psmith@gnu.org>
-
-       * make.texinfo: Updates for next revision.  New date/rev/etc.
-       Recreate all Info menus.  Change license on the manual to the GNU
-       Free Documentation License.  A number of typos.
-       (Variables Simplify): Don't use "-" before it's defined.
-       (Automatic Prerequisites): Rewrite the target example to work
-       properly if the compile fails.  Remove incorrect comments about
-       how "set -e" behaves.
-       (Text Functions): Move the "word", "wordlist", "words", and
-       "firstword" functions here, from "File Name Functions".
-       * make-stds.texi: Update from latest GNU version.
-       * fdl.texi: (created) Import the latest GNU version.
-
-2002-06-06  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (do_variable_definition): New function: extract the
-       part of try_variable_definition() that actually sets the value
-       into a separate function.
-       (try_variable_definition): Call do_variable_definition() after
-       parsing the variable definition string.
-       (define_variable_in_set): Make the name argument const.
-
-       * variable.h (enum variable_flavor): Make public.
-       (do_variable_definition): Create prototype.
-
-       * read.c (read_all_makefiles): Create a new built-in variable,
-       MAKEFILE_LIST.
-       (read_makefile): Add each makefile read in to this variable value.
-
-2002-05-18  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * Makefile.DOS.template: Tweak according to changes in the
-       distribution.  Add back the dependencies of *.o files.
-
-       * configh.dos.template: Synchronize with config.h.in.
-
-2002-05-09  Paul D. Smith  <psmith@gnu.org>
-
-       * file.c (file_timestamp_now): Use K&R function declaration.
-
-       * getloadavg.c (getloadavg): Merge setlocale() fix from sh-utils
-       getloadavg.c.  Autoconf thinks QNX is SVR4-like, but it isn't, so
-       #undef it.  Remove predefined setup of NLIST_STRUCT.  Decide
-       whether to include nlist.h based on HAVE_NLIST_H.  Change obsolete
-       NLIST_NAME_UNION to new HAVE_STRUCT_NLIST_N_UN_N_NAME.
-       * configure.in (NLIST_STRUCT): Define this if we have nlist.h and
-       nlist.n_name is a pointer rather than an array.
-
-       * acinclude.m4 (make_FUNC_SETVBUF_REVERSED): Grab the latest
-       version of AC_FUNC_SETVBUF_REVERSED from autoconf CVS.
-       * configure.in: Use it instead of the old version.
-
-       * main.c (main): Prefer setvbuf() to setlinebuf().
-
-2002-05-08  Paul D. Smith  <psmith@gnu.org>
-
-       * Makefile.am (make_LDADD): Add GETLOADAVG_LIBS.
-       (loadavg_LDADD): Ditto.
-
-2002-04-29  Paul D. Smith  <psmith@gnu.org>
-
-       * expand.c (recursively_expand_for_file): Rename
-       recursively_expand() to recursively_expand_for_file() and provide
-       an extra argument, struct file.  If the argument is provided, set
-       the variable scope to that of the file before expanding.
-       * variable.h (recursively_expand): Make this a macro that invokes
-       recursively_expand_for_file() with a NULL file pointer.
-       * variable.c (target_environment): Call the renamed function and
-       provide the current file context.
-       Fixes Debian bug #144306.
-
-2002-04-28  Paul D. Smith  <psmith@gnu.org>
-
-       Allow $(call ...) user-defined variables to be self-referencing
-       without throwing an error.  Allows implementation of transitive
-       closures, among other possibly useful things.
-       Requested by: Philip Guenther <guenther@sendmail.com>
-
-       * variable.h (struct variable): Add a new field: exp_count, and
-       new macros to hold its size and maximum value.
-       (warn_undefined): Make this a macro.
-       * variable.c (define_variable_in_set): Initialize it.
-       * expand.c (recursively_expand): If we detect recursive expansion
-       of a variable, check the exp_count field.  If it's greater than 0
-       allow the recursion and decrement the count.
-       (warn_undefined): Remove this (now a macro in variable.h).
-       * function.c (func_call): Before we expand the user-defined
-       function, modify its exp_count field to contain the maximum
-       number of recursive calls we'll allow.  After the call, reset it
-       to 0.
-
-2002-04-21  Paul D. Smith  <psmith@gnu.org>
-
-       Modified to use latest autoconf (2.53), automake (1.6.1), and
-       gettext (0.11.1).  We're using gettext's new "external" support,
-       to avoid including libintl source with GNU make.
-
-       * README.cvs: New file.  Explain how to build GNU make from CVS.
-
-       * configure.in: Modify checking for the system glob library.
-       Use AC_EGREP_CPP instead of AC_TRY_CPP.  Remove the setting of
-       GLOBDIR (we will always put "glob" in SUBDIRS, so automake
-       etc. will manage it correctly).  Set an automake conditional
-       USE_LOCAL_GLOB to decide whether to compile the glob library.
-
-       * getloadavg.c (main): Include make.h in the "TEST" program to
-       avoid warnings.
-
-       * Makefile.am: Remove special rules for loadavg.  Replace them
-       with Automake capabilities for building extra programs.
-
-       * signame.c: This file does nothing if the system provide
-       strsignal().  If not, it implements strsignal().  If the system
-       doesn't define sys_siglist, then we make our own; otherwise we use
-       the system version.
-       * signame.h: Removed.
-
-       * main.c (main): No need to invoke signame_init().  Update copyright.
-
-       * ABOUT-NLS: Removed.
-       * gettext.c: Removed.
-       * gettext.h: Get a simplified copy from the gettext package.
-       * po/*: Created.
-       * i18n/*.po: Moved to po/.
-       * i18n/: Removed.
-
-       * config/*: Created.  Contains package configuration helper files.
-       * config.guess, config.sub: Moved to config directory.
-
-       * configure.in (AC_CONFIG_FILES): Add po/Makefile.in, config/Makefile.
-       Rework to use new-style autoconf features.  Use the "external"
-       mode for gettext.  Make the build.sh config file conditional on
-       whether build.sh.in exists, to avoid autoconf errors.
-       * acinclude.m4: Removed almost all macros as being obsolete.
-       Rewrote remaining macros to use AC_DEFINE.
-       * acconfig.h: Removed.
-
-       * Makefile.am (EXTRA_DIST): Add config/config.rpath.  Use a
-       conditional to handle customs support.  Remove special handling
-       for i18n features.
-
-2002-04-20  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (func_call): Don't mark the argument variables $1,
-       etc. as recursive.  They've already been fully expanded so
-       there's no need to do it again, and doing so strips escaped $'s.
-       Reported by Sebastian Glita <glseba@yahoo.com>.
-
-       * remake.c (notice_finished_file): Walk through double-colon
-       entries via the prev field, not the next field!
-       Reported by Greg McGary <greg@mcgary.org>.
-
-       * main.c (main): If the user specifies -q and asks for a specific
-       target which is a makefile, we got an assert.  In that case it
-       turns out we should continue normally instead.
-
-       * i18n/de.po, i18n/fr.po: Installed an updated translation.
-
-       * i18n/he.po: Installed a new translation.
-
-2002-01-07  Paul D. Smith  <psmith@gnu.org>
-
-       * i18n/es.po, i18n/ru.po: Installed an updated translation.
-
-2001-12-04  Paul D. Smith  <psmith@gnu.org>
-
-       * i18n/ja.po: Installed an updated translation.
-
-2001-09-06  Paul Eggert  <eggert@twinsun.com>
-
-       * configure.in (AC_CHECK_HEADERS): Add sys/resource.h.
-       (AC_CHECK_FUNCS): Add getrlimit, setrlimit.
-
-       * main.c: Include <sys/resource.h> if it, getrlimit, and setrlimit
-       are available.
-       (main): Get rid of any avoidable limit on stack size.
-
-2001-09-04  Paul D. Smith  <psmith@gnu.org>
-
-       * i18n/da.po: Installed an updated translation.
-
-2001-08-03  Paul D. Smith  <psmith@gnu.org>
-
-       * i18n/fr.po: Installed an updated translation.
-       Resolves Debian bug #106720.
-
-2001-06-13  Paul D. Smith  <psmith@gnu.org>
-
-       * i18n/da.po, configure.in (ALL_LINGUAS): Installed a new
-       translation.
-
-2001-06-11  Paul D. Smith  <psmith@gnu.org>
-
-       * i18n/ko.po: Installed a new translation.
-
-2001-05-06  Paul D. Smith  <psmith@gnu.org>
-
-       Modify the EINTR handling.
-
-       * job.c (new_job): Reorganize the jobserver algorithm.  Reorder
-       the way in which we manage the file descriptor/signal handler race
-       trap to be more efficient.
-
-2001-05-06  Paul Eggert  <eggert@twinsun.com>
-
-       Restart almost all system calls that are interrupted, instead
-       of worrying about EINTR.  The lone exception is the read() for
-       job tokens.
-
-       * configure.in (HAVE_SA_RESTART): New macro.
-       (MAKE_JOBSERVER): Define to 1 only if HAVE_SA_RESTART.
-       * main.c (main): Use SA_RESTART instead of the old,
-       nonstandard SA_INTERRUPT.
-
-       * configure.in (AC_CHECK_FUNCS): Add bsd_signal.
-       * main.c (bsd_signal): New function or macro,
-       if the implementation doesn't supply it.
-       (The bsd_signal function will be in POSIX 1003.1-200x.)
-       (HANDLESIG): Remove.
-       (main, FATAL_SIG): Use bsd_signal instead of signal or HANDLESIG.
-
-       * make.h (EINTR_SET): Remove.
-       (SA_RESTART): New macro.
-
-       * arscan.c (ar_member_touch): Don't worry about EINTR.
-       * function.c (func_shell): Likewise.
-       * job.c (reap_children, free_child, new_job): Likewise.
-       * main.c (main): Likewise.
-       * remake.c (touch_file, name_mtime): Likewise.
-
-       * arscan.c (ar_member_touch): Fix bug uncovered by EINTR removal;
-       if fstat failed with errno!=EINTR, the error was ignored.
-
-       * job.c (set_child_handler_action_flags): New function.
-       (new_job): Use it to temporarily clear the SIGCHLD action flags
-       while reading the token.
-
-2001-05-02  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (start_job_command): Don't add define/endef per-line flags
-       to the top-level flags setting.
-
-2001-04-03  Paul D. Smith  <psmith@gnu.org>
-
-       * arscan.c (VMS_get_member_info,ar_scan) [VMS]: VMS sets the low
-       bit on error, so check for odd return values, not non-0 return
-       values.
-       (VMS_get_member_info): Calculate the timezone differences correctly.
-       Reported by John Fowler <jfowler@nyx.net>.
-
-
-2001-03-14  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (lookup_variable) [VMS]: Null-terminate the variable
-       value before invoking define_variable().
-       Reported by John Fowler <jfowler@nyx.net>.
-
-2001-02-07  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (record_target_var): If we reset the variable due to a
-       command-line variable setting overriding it, turn off the "append"
-       flag.
-
-2001-01-17  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (lookup_variable) [VMS]: When getting values from the
-       environment, allocate enough space for the _value_ plus escapes,
-       not enough space for the name plus escapes :-/.
-       Reported by John Fowler <jfowler@nyx.net>.
-
-       * remake.c (f_mtime): Removed the "***" prefix from the mod time
-       warnings that make generates, so it doesn't look like an error.
-       Reported by Karl Berry <karl@gnu.org>.
-
-
-       Fix for PR/2020:  Rework appended target-specific variables.  I'm
-       fairly confident this algorithm is finally correct.
-
-       * expand.c (allocated_variable_append): Rewrite.  Instead of
-       expanding each appended variable then adding all the expanded
-       strings together, we append all the unexpanded values going up
-       through the variable set contexts, then expand the final result.
-       This behaves just like non-target-specific appended variable
-       values, while the old way didn't in various corner cases.
-       (variable_append): New function: recursively append the unexpanded
-       value of a variable, walking from the outermost variable scope to
-       the innermost.
-       * variable.c (lookup_variable): Remove the code that looked up the
-       variable set list if the found variable was "append".  We don't
-       need this anymore.
-       (lookup_variable_in_set): Make this non-static so we can use it
-       elsewhere.
-       (try_variable_definition): Use lookup_variable_in_set() rather
-       than faking out current_variable_set_list by hand (cleanup).
-       * variable.h: Add a prototype for the now non-static
-       lookup_variable_in_set().
-
-2000-11-17  Paul D. Smith  <psmith@gnu.org>
-
-       * remake.c (f_mtime) [WINDOWS32]: On various advice, I changed the
-       WINDOWS32 port to assume timestamps can be up to 3 seconds away
-       before throwing a fit.
-
-2000-11-17  Paul D. Smith  <psmith@gnu.org>
-
-       * read.c (readline): CRLF calculations had a hole, if you hit the
-       buffer grow scenario just right.  Reworked the algorithm to avoid
-       the need for len or lastlen at all.  Problem description with
-       sample code chages provided by Chris Faylor <cgf@redhat.com>.
-
-2000-10-24  Paul D. Smith  <psmith@gnu.org>
-
-       * gettext.c (SWAP): Declare this with the prototype, otherwise
-       some systems don't work (non-32-bit?  Reported for Cray T3E).
-       Reported by Thorstein Thorsteinsson <thor@signe.teokem.lu.se>.
-
-2000-10-05  Paul D. Smith  <psmith@gnu.org>
-
-       * acinclude.m4 (AM_LC_MESSAGES): Remove undefined macro
-       AM_LC_MESSAGES; it doesn't seem to do anything anyway??
-
-       * i18n/gl.po, configure.in (ALL_LINGUAS): New Galician translation.
-
-2000-09-22  Paul D. Smith  <psmith@gnu.org>
-
-       * gettext.c: Don't #define _GETTEXT_H here; we only include some
-       parts of the real gettext.h here, and we expect to really include
-       the real gettext.h later.  If we keep this #define, it's ignored.
-
-2000-09-21  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (log_working_directory): Rework the text to use complete
-       sentences, to make life simpler for the translators.
-
-2000-08-29  Paul D. Smith  <psmith@gnu.org>
-
-       * file.c (remove_intermediates): Print a debug message before we
-       remove intermediate files, so the user (if she uses -d) knows
-       what's going on.
-
-2000-08-21  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (try_variable_definition): Change how we handle
-       target-specific append variable defns: instead of just setting the
-       value, expand it as an append _but_ only within the current
-       target's context.  Otherwise we lose all but the last value if the
-       variable is appended more than once within the current target
-       context.  Fixes PR/1831.
-
-2000-08-16  Paul D. Smith  <psmith@gnu.org>
-
-       * function.c (func_shell): Nul-terminate the buffer before
-       printing an exec error message (just in case it's not!).
-       Fixes PR/1860, reported by Joey Hess <joey@valinux.com>.
-
-2000-07-25  Paul D. Smith  <psmith@gnu.org>
-
-       * job.c (construct_command_argv_internal): Add "~" to the list of
-       sh_chars[] which disallow optimizing out the shell call.
-
-2000-07-23  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, make.texinfo: Document .LOW_RESOLUTION_TIME, which
-       supersedes --disable-nsec-timestamps.
-       * make.texinfo: Consistently use "time stamp" instead of "timestamp".
-       * README: Remove --disable-nsec-timestamps.
-
-       * filedef.h (struct file.low_resolution_time): New member.
-       * file.c (snap_deps): Add support for .LOW_RESOLUTION_TIME.
-       * remake.c (update_file_1):
-       Avoid spurious rebuilds due to low resolution time stamps,
-       generalizing the earlier code that applied only to archive members.
-       (f_mtime): Archive members always have low resolution time stamps.
-
-       * configure.in: Remove --disable-nsec-timestamps, as this has
-       been superseded by .LOW_RESOLUTION_TIME.
-
-2000-07-23  Paul Eggert  <eggert@twinsun.com>
-
-       * configure.in (enable_nsec_timestamps): Renamed from
-       make_cv_nsec_timestamps, since enable/disable options
-       shouldn't be cached.
-
-2000-07-23  Bruno Haible  <haible@clisp.cons.org>
-       and  Paul Eggert  <eggert@twinsun.com>
-
-       * file.c (file_timestamp_now):
-       Use preprocessor-time check for FILE_TIMESTAMP_HI_RES
-       so that clock_gettime is not linked unless needed.
-
-       * filedef.h (FILE_TIMESTAMP_HI_RES):
-       Remove definition; "configure" now does this.
-
-       * configure.in (jm_AC_TYPE_UINTMAX_T): Move up,
-       to before high resolution file timestamp check,
-       since that check now uses uintmax_t.
-       (FILE_TIMESTAMP_HI_RES): Define to nonzero if the code should use
-       high resolution file timestamps.
-       (HAVE_CLOCK_GETTIME): Do not define if !FILE_TIMESTAMP_HI_RES,
-       so that we don't link in clock_gettime unnecessarily.
-
-2000-07-17  Paul D. Smith  <psmith@gnu.org>
-
-       * i18n/ja.po: New version of the translation file.
-
-2000-07-07  Paul D. Smith  <psmith@gnu.org>
-
-       * remake.c (f_mtime): If NO_FLOAT is defined, don't bother with
-       the offset calculation.
-       (name_mtime): Replace EINTR test with EINTR_SET macro.
-
-2000-07-07  Paul Eggert  <eggert@twinsun.com>
-
-       Fix for PR/1811:
-
-       * remake.c (update_file_1):
-       Avoid spurious rebuilds of archive members due to their
-       timestamp resolution being only one second.
-       (f_mtime): Avoid spurious warnings of timestamps in the future due to
-       the clock's resolution being lower than file timestamps'.
-       When warning about future timestamps, report only the discrepancy,
-       not the absolute value of the timestamp and the current time.
-
-       * file.c (file_timestamp_now): New arg RESOLUTION.
-       * filedef.h (file_timestamp_now): Likewise.
-       (FILE_TIMESTAMP_NS): Now returns int.  All uses changed.
-
-2000-07-05  Paul D. Smith  <psmith@gnu.org>
-
-       * variable.c (lookup_variable) [VMS]: Remove vestigial references
-       to listp.  Fixes PR/1793.
-
-2000-06-26  Paul Eggert  <eggert@twinsun.com>
-
-       * Makefile.am (MAINTAINERCLEANFILES): New macro, with stamp-pot in it.
-
-       * dir.c (vms_hash): Ensure ctype macro args are nonnegative.
-
-       * remake.c (f_mtime): Remove unused var memtime.
-
-2000-06-25  Martin Buchholz  <martin@xemacs.org>
-
-       * make.texinfo, NEWS, TODO.private: Minor spelling corrections.
-       Ran spell-check on make.texinfo.
-
-2000-06-23  Paul D. Smith  <psmith@gnu.org>
-
-       * main.c (main): Replace EXIT_SUCCESS, EXIT_FAILURE, and
-       EXIT_TROUBLE with MAKE_SUCCESS, MAKE_FAILURE, and MAKE_TROUBLE.
-       * make.h: Define these macros.
-
-       * Version 3.79.1 released.
-
-       * configure.in: Add a new option, --disable-nsec-timestamps, to
-       avoid using sub-second timestamps on systems that support it.  It
-       can lead to problems, e.g. if your makefile relies on "cp -p".
-       * README.template: Document the issue with "cp -p".
-
-       * config.guess, config.sub: Updated.
-
-\f
-
-See ChangeLog.2, available in the Git repository at:
-
-       http://git.savannah.gnu.org/cgit/make.git/tree/
-
-for earlier changes.
-
-
-Copyright (C) 2000-2013 Free Software Foundation, Inc.
-This file is part of GNU Make.
-
-GNU Make is free software; you can redistribute it and/or modify it under the
-terms of the GNU General Public License as published by the Free Software
-Foundation; either version 3 of the License, or (at your option) any later
-version.
-
-GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see <http://www.gnu.org/licenses/>.
index 42cd487590d811412dd9799f0abe3dbad8b0850a..43753e40c9872b8e8be618059da662772a63188d 100644 (file)
@@ -1,7 +1,7 @@
 # -*-Makefile-*- template for DJGPP
 # Makefile.in generated automatically by automake 1.2 from Makefile.am
 #
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -71,13 +71,13 @@ PACKAGE = make
 PERL = perl
 RANLIB = ranlib
 REMOTE = stub
-VERSION = 4.0
+VERSION = 4.1
 
 AUTOMAKE_OPTIONS = 1.2
 
 bin_PROGRAMS = make$(EXEEXT)
 
-make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c function.c getopt.c getopt1.c implicit.c job.c load.c loadapi.c main.c misc.c output.c read.c remake.c rule.c signame.c strcache.c variable.c version.c vpath.c hash.c guile.c remote-$(REMOTE).c
+make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c function.c getopt.c getopt1.c guile.c implicit.c job.c load.c loadapi.c main.c misc.c output.c read.c remake.c rule.c signame.c strcache.c variable.c version.c vpath.c hash.c remote-$(REMOTE).c
 # This should include the glob/ prefix
 libglob_a_SOURCES =    glob/fnmatch.c glob/glob.c glob/fnmatch.h glob/glob.h
 make_LDADD =     glob/libglob.a
@@ -103,7 +103,7 @@ DEFS =  -I. -I$(srcdir) -I.
 CPPFLAGS = -DHAVE_CONFIG_H
 LDFLAGS =
 LIBS =
-make_OBJECTS =  ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o load.o loadapi.o main.o misc.o output.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o guile.o remote-$(REMOTE).o
+make_OBJECTS =  ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o guile.o implicit.o job.o load.o loadapi.o main.o misc.o output.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o remote-$(REMOTE).o
 make_DEPENDENCIES =    glob/libglob.a
 make_LDFLAGS =
 libglob_a_LIBADD =
@@ -606,8 +606,7 @@ arscan.o: arscan.c makeint.h config.h \
  gettext.h \
 
 # .deps/commands.Po
-commands.o: commands.c \
- makeint.h config.h \
+commands.o: commands.c makeint.h config.h \
  gnumake.h \
  getopt.h \
  gettext.h \
@@ -766,7 +765,8 @@ remake.o: remake.c makeint.h config.h \
 # dummy
 
 # .deps/remote-stub.Po
-remote-stub.o: remote-stub.c makeint.h config.h \
+remote-stub.o: remote-stub.c makeint.h \
+ config.h \
  gnumake.h \
  getopt.h \
  gettext.h \
index 5156f4743fe58b0fedc6179b3debabd7376b07ee..204ab320cdaf30d2f1f7e267ba684256544eeb5a 100644 (file)
@@ -1,6 +1,6 @@
 # This is a -*-Makefile-*-, or close enough
 #
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -40,15 +40,11 @@ else
 endif
 
 make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
-               function.c getopt.c getopt1.c implicit.c job.c load.c \
+               function.c getopt.c getopt1.c guile.c implicit.c job.c load.c \
                loadapi.c main.c misc.c output.c read.c remake.c rule.c \
                signame.c strcache.c variable.c version.c vpath.c hash.c \
                $(remote)
 
-if HAVE_GUILE
-  make_SOURCES += guile.c
-endif
-
 EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cstms.c
 
 noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \
@@ -90,13 +86,6 @@ EXTRA_DIST = README build.sh.in $(man_MANS) \
 
 DISTCLEANFILES = build.sh
 
-# Forward targets
-
-html:
-       cd doc && $(MAKE) $(AM_MAKEFLAGS) $@
-
-.PHONY: html
-
 # --------------- Internationalization Section
 
 localedir =    $(datadir)/locale
@@ -183,7 +172,7 @@ loadavg_LDADD = @GETLOADAVG_LIBS@
 #
 MAKETESTFLAGS =
 
-check-regression:
+check-regression: tests/config-flags.pm
        @if test -f '$(srcdir)/tests/run_make_tests'; then \
          if $(PERL) -v >/dev/null 2>&1; then \
            case `cd '$(srcdir)'; pwd` in `pwd`) : ;; \
index efbab013c7c2eee226176938b9933e6e2b5205b9..7c561a325408cf591a8d2c9e807b8d95e635430c 100644 (file)
@@ -3,7 +3,7 @@
 # NOTE: If you have no 'make' program at all to process this makefile, run
 # 'build.sh' instead.
 #
-# Copyright (C) 1995-2013 Free Software Foundation, Inc.
+# Copyright (C) 1995-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
index 9814180a35ae2f266ea57fddb4f5b28f3458f40c..e2310fe87be8d821bb57c478f06413e3cd05d00c 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,7 +16,7 @@
 
 # This is a -*-Makefile-*-, or close enough
 #
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,17 +98,22 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 bin_PROGRAMS = make$(EXEEXT)
-@HAVE_GUILE_TRUE@am__append_1 = guile.c
 # Only process if target is MS-Windows
-@WINDOWSENV_TRUE@am__append_2 = $(W32LIB)
+@WINDOWSENV_TRUE@am__append_1 = $(W32LIB)
 # Only process if target is MS-Windows
-@WINDOWSENV_TRUE@am__append_3 = $(W32INC)
+@WINDOWSENV_TRUE@am__append_2 = $(W32INC)
 check_PROGRAMS = loadavg$(EXEEXT)
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
-       $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/config.h.in $(top_srcdir)/configure ABOUT-NLS \
-       AUTHORS COPYING ChangeLog INSTALL NEWS alloca.c getloadavg.c
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/configure $(am__configure_deps) \
+       $(srcdir)/config.h.in $(top_srcdir)/tests/config-flags.pm.in \
+       getloadavg.c alloca.c $(top_srcdir)/config/depcomp \
+       $(include_HEADERS) $(noinst_HEADERS) ABOUT-NLS AUTHORS COPYING \
+       INSTALL NEWS README $(top_srcdir)/config/ar-lib \
+       $(top_srcdir)/config/compile $(top_srcdir)/config/config.guess \
+       $(top_srcdir)/config/config.rpath \
+       $(top_srcdir)/config/config.sub \
+       $(top_srcdir)/config/install-sh $(top_srcdir)/config/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
        $(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
@@ -97,7 +129,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_FILES = tests/config-flags.pm
 CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
        "$(DESTDIR)$(includedir)"
@@ -106,27 +138,38 @@ nodist_loadavg_OBJECTS = loadavg-getloadavg.$(OBJEXT)
 loadavg_OBJECTS = $(nodist_loadavg_OBJECTS)
 loadavg_DEPENDENCIES =
 am__make_SOURCES_DIST = ar.c arscan.c commands.c default.c dir.c \
-       expand.c file.c function.c getopt.c getopt1.c implicit.c job.c \
-       load.c loadapi.c main.c misc.c output.c read.c remake.c rule.c \
-       signame.c strcache.c variable.c version.c vpath.c hash.c \
-       remote-stub.c remote-cstms.c guile.c
+       expand.c file.c function.c getopt.c getopt1.c guile.c \
+       implicit.c job.c load.c loadapi.c main.c misc.c output.c \
+       read.c remake.c rule.c signame.c strcache.c variable.c \
+       version.c vpath.c hash.c remote-stub.c remote-cstms.c
 @USE_CUSTOMS_FALSE@am__objects_1 = remote-stub.$(OBJEXT)
 @USE_CUSTOMS_TRUE@am__objects_1 = remote-cstms.$(OBJEXT)
-@HAVE_GUILE_TRUE@am__objects_2 = guile.$(OBJEXT)
 am_make_OBJECTS = ar.$(OBJEXT) arscan.$(OBJEXT) commands.$(OBJEXT) \
        default.$(OBJEXT) dir.$(OBJEXT) expand.$(OBJEXT) \
        file.$(OBJEXT) function.$(OBJEXT) getopt.$(OBJEXT) \
-       getopt1.$(OBJEXT) implicit.$(OBJEXT) job.$(OBJEXT) \
-       load.$(OBJEXT) loadapi.$(OBJEXT) main.$(OBJEXT) misc.$(OBJEXT) \
-       output.$(OBJEXT) read.$(OBJEXT) remake.$(OBJEXT) \
-       rule.$(OBJEXT) signame.$(OBJEXT) strcache.$(OBJEXT) \
-       variable.$(OBJEXT) version.$(OBJEXT) vpath.$(OBJEXT) \
-       hash.$(OBJEXT) $(am__objects_1) $(am__objects_2)
+       getopt1.$(OBJEXT) guile.$(OBJEXT) implicit.$(OBJEXT) \
+       job.$(OBJEXT) load.$(OBJEXT) loadapi.$(OBJEXT) main.$(OBJEXT) \
+       misc.$(OBJEXT) output.$(OBJEXT) read.$(OBJEXT) \
+       remake.$(OBJEXT) rule.$(OBJEXT) signame.$(OBJEXT) \
+       strcache.$(OBJEXT) variable.$(OBJEXT) version.$(OBJEXT) \
+       vpath.$(OBJEXT) hash.$(OBJEXT) $(am__objects_1)
 make_OBJECTS = $(am_make_OBJECTS)
 am__DEPENDENCIES_1 =
 @WINDOWSENV_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
 make_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -134,32 +177,30 @@ am__mv = mv -f
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(nodist_loadavg_SOURCES) $(make_SOURCES) \
        $(EXTRA_make_SOURCES)
 DIST_SOURCES = $(am__make_SOURCES_DIST) $(EXTRA_make_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-       html-recursive info-recursive install-data-recursive \
-       install-dvi-recursive install-exec-recursive \
-       install-html-recursive install-info-recursive \
-       install-pdf-recursive install-ps-recursive install-recursive \
-       installcheck-recursive installdirs-recursive pdf-recursive \
-       ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -198,11 +239,33 @@ MANS = $(man_MANS)
 HEADERS = $(include_HEADERS) $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-       distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+       $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DIST_SUBDIRS = glob config po doc w32
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
@@ -213,6 +276,7 @@ am__remove_distdir = \
       && rm -rf "$(distdir)" \
       || { sleep 5 && rm -rf "$(distdir)"; }; \
   else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -240,6 +304,7 @@ am__relativize = \
   reldir="$$dir2"
 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
 GZIP_ENV = --best
+DIST_TARGETS = dist-bzip2 dist-gzip
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -327,6 +392,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
@@ -386,19 +452,20 @@ SUBDIRS = glob config po doc $(MAYBE_W32)
 include_HEADERS = gnumake.h
 @USE_CUSTOMS_FALSE@remote = remote-stub.c
 @USE_CUSTOMS_TRUE@remote = remote-cstms.c
-make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c \
-       file.c function.c getopt.c getopt1.c implicit.c job.c load.c \
-       loadapi.c main.c misc.c output.c read.c remake.c rule.c \
-       signame.c strcache.c variable.c version.c vpath.c hash.c \
-       $(remote) $(am__append_1)
+make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
+               function.c getopt.c getopt1.c guile.c implicit.c job.c load.c \
+               loadapi.c main.c misc.c output.c read.c remake.c rule.c \
+               signame.c strcache.c variable.c version.c vpath.c hash.c \
+               $(remote)
+
 EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cstms.c
 noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \
                debug.h getopt.h gettext.h hash.h output.h
 
 make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ \
-       $(GUILE_LIBS) $(am__append_2)
+       $(GUILE_LIBS) $(am__append_1)
 man_MANS = make.1
-AM_CPPFLAGS = $(GLOBINC) $(am__append_3)
+AM_CPPFLAGS = $(GLOBINC) $(am__append_2)
 AM_CFLAGS = $(GUILE_CFLAGS)
 
 # Extra stuff to include in the distribution.
@@ -454,15 +521,15 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-             $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+             echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+             $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
                && exit 0; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu Makefile
+         $(AUTOMAKE) --foreign Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -484,8 +551,8 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then rm -f stamp-h1; else :; fi
-       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+       @test -f $@ || rm -f stamp-h1
+       @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -497,6 +564,8 @@ $(srcdir)/config.h.in:  $(am__configure_deps)
 
 distclean-hdr:
        -rm -f config.h stamp-h1
+tests/config-flags.pm: $(top_builddir)/config.status $(top_srcdir)/tests/config-flags.pm.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
        @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
@@ -506,10 +575,11 @@ install-binPROGRAMS: $(bin_PROGRAMS)
        fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
-       while read p p1; do if test -f $$p; \
-         then echo "$$p"; echo "$$p"; else :; fi; \
+       while read p p1; do if test -f $$p \
+         then echo "$$p"; echo "$$p"; else :; fi; \
        done | \
-       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
            -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
        sed 'N;N;N;s,\n, ,g' | \
        $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -530,7 +600,8 @@ uninstall-binPROGRAMS:
        @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
        files=`for p in $$list; do echo "$$p"; done | \
          sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-             -e 's/$$/$(EXEEXT)/' `; \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
        test -n "$$list" || exit 0; \
        echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -540,9 +611,11 @@ clean-binPROGRAMS:
 
 clean-checkPROGRAMS:
        -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+
 loadavg$(EXEEXT): $(loadavg_OBJECTS) $(loadavg_DEPENDENCIES) $(EXTRA_loadavg_DEPENDENCIES) 
        @rm -f loadavg$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(loadavg_OBJECTS) $(loadavg_LDADD) $(LIBS)
+
 make$(EXEEXT): $(make_OBJECTS) $(make_DEPENDENCIES) $(EXTRA_make_DEPENDENCIES) 
        @rm -f make$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(make_OBJECTS) $(make_LDADD) $(LIBS)
@@ -592,14 +665,14 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 loadavg-getloadavg.o: getloadavg.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loadavg-getloadavg.o -MD -MP -MF $(DEPDIR)/loadavg-getloadavg.Tpo -c -o loadavg-getloadavg.o `test -f 'getloadavg.c' || echo '$(srcdir)/'`getloadavg.c
@@ -680,22 +753,25 @@ uninstall-includeHEADERS:
        dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -710,57 +786,12 @@ $(RECURSIVE_TARGETS):
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-ctags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-       done
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -776,12 +807,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
              set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
-       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -793,15 +819,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -810,9 +832,31 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+       test ! -s cscope.files \
+         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+       -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
        @case `sed 15q $(srcdir)/NEWS` in \
@@ -821,19 +865,6 @@ distdir: $(DISTFILES)
          echo "NEWS not updated; not releasing" 1>&2; \
          exit 1;; \
        esac
-       @list='$(MANS)'; if test -n "$$list"; then \
-         list=`for p in $$list; do \
-           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
-         if test -n "$$list" && \
-           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
-           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
-           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
-           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
-           echo "       typically \`make maintainer-clean' will remove them" >&2; \
-           exit 1; \
-         else :; fi; \
-       else :; fi
        $(am__remove_distdir)
        test -d "$(distdir)" || mkdir "$(distdir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -902,40 +933,41 @@ distdir: $(DISTFILES)
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 dist-bzip2: distdir
        tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-lzip: distdir
        tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-       $(am__remove_distdir)
-
-dist-lzma: distdir
-       tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-xz: distdir
        tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-tarZ: distdir
+       @echo WARNING: "Support for shar distribution archives is" \
+                      "deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-shar: distdir
+       @echo WARNING: "Support for distribution archives compressed with" \
+                      "legacy program 'compress' is deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
        shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-zip: distdir
        -rm -f $(distdir).zip
        zip -rq $(distdir).zip $(distdir)
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
-dist dist-all: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
+dist dist-all:
+       $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+       $(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -946,8 +978,6 @@ distcheck: dist
          GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-       *.tar.lzma*) \
-         lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
        *.tar.lz*) \
          lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
        *.tar.xz*) \
@@ -959,18 +989,19 @@ distcheck: dist
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
-       chmod -R a-w $(distdir); chmod u+w $(distdir)
-       mkdir $(distdir)/_build
-       mkdir $(distdir)/_inst
+       chmod -R a-w $(distdir)
+       chmod u+w $(distdir)
+       mkdir $(distdir)/_build $(distdir)/_inst
        chmod a-w $(distdir)
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
          && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
          && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
-         && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+         && ../configure \
            $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
+           --srcdir=.. --prefix="$$dc_install_base" \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
          && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -993,7 +1024,7 @@ distcheck: dist
          && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
          && cd "$$am__cwd" \
          || exit 1
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
          sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
@@ -1080,6 +1111,8 @@ dvi: dvi-recursive
 
 dvi-am:
 
+html: html-recursive
+
 html-am:
 
 info: info-recursive
@@ -1138,18 +1171,17 @@ uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \
 
 uninstall-man: uninstall-man1
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \
-       ctags-recursive install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am am--refresh check check-am check-local clean \
-       clean-binPROGRAMS clean-checkPROGRAMS clean-generic ctags \
-       ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \
-       dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
-       distcheck distclean distclean-compile distclean-generic \
-       distclean-hdr distclean-tags distcleancheck distdir \
-       distuninstallcheck dvi dvi-am html html-am info info-am \
-       install install-am install-binPROGRAMS install-data \
+.MAKE: $(am__recursive_targets) all check-am install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+       am--refresh check check-am check-local clean clean-binPROGRAMS \
+       clean-checkPROGRAMS clean-cscope clean-generic cscope \
+       cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+       dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
+       dist-zip distcheck distclean distclean-compile \
+       distclean-generic distclean-hdr distclean-tags distcleancheck \
+       distdir distuninstallcheck dvi dvi-am html html-am info \
+       info-am install install-am install-binPROGRAMS install-data \
        install-data-am install-dvi install-dvi-am install-exec \
        install-exec-am install-exec-local install-html \
        install-html-am install-includeHEADERS install-info \
@@ -1158,17 +1190,9 @@ uninstall-man: uninstall-man1
        installcheck installcheck-am installdirs installdirs-am \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
-       tags tags-recursive uninstall uninstall-am \
-       uninstall-binPROGRAMS uninstall-includeHEADERS uninstall-man \
-       uninstall-man1
-
-
-# Forward targets
-
-html:
-       cd doc && $(MAKE) $(AM_MAKEFLAGS) $@
+       tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
+       uninstall-includeHEADERS uninstall-man uninstall-man1
 
-.PHONY: html
 
 install-exec-local:
        @if $(inst_setgid); then \
@@ -1221,7 +1245,7 @@ check-loadavg: loadavg$(EXEEXT)
        @echo The GNU load average checking code thinks:
        -./loadavg$(EXEEXT)
 
-check-regression:
+check-regression: tests/config-flags.pm
        @if test -f '$(srcdir)/tests/run_make_tests'; then \
          if $(PERL) -v >/dev/null 2>&1; then \
            case `cd '$(srcdir)'; pwd` in `pwd`) : ;; \
diff --git a/NEWS b/NEWS
index 2227a359a427848f66e3ead4ee7c4841ef76c401..7e11787e6be7649eaee815c59e68d27c0adce8b4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 GNU make NEWS                                               -*-indented-text-*-
   History of user-visible changes.
-  09 Oct 2013
+  05 Oct 2014
 
 See the end of this file for copyrights and conditions.
 
@@ -8,6 +8,27 @@ All changes mentioned here are more fully described in the GNU make
 manual, which is contained in this distribution as the file doc/make.texi.
 See the README file and the GNU make manual for instructions for
 reporting bugs.
+\f
+Version 4.1 (05 Oct 2014)
+
+A complete list of bugs fixed in this version is available here:
+
+http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=105&set=custom
+
+* New variables: $(MAKE_TERMOUT) and $(MAKE_TERMERR) are set to non-empty
+  values if stdout or stderr, respectively, are believed to be writing to a
+  terminal.  These variables are exported by default.
+
+* Allow a no-text-argument form of the $(file ...) function.  Without a text
+  argument nothing is written to the file: it is simply opened in the
+  requested mode, then closed again.
+
+* Change the fatal error for mixed explicit and implicit rules, that was
+  introduced in GNU make 3.82, to a non-fatal error.  However, this syntax is
+  still deprecated and may return to being illegal in a future version of GNU
+  make.  Makefiles that rely on this syntax should be fixed.
+  See https://savannah.gnu.org/bugs/?33034
+
 \f
 Version 4.0 (09 Oct 2013)
 
@@ -143,15 +164,6 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set
   results from wildcard expansions, use the $(sort ...)  function to request
   it explicitly.
 
-* WARNING: Backward-incompatibility!
-  In previous versions of make it was acceptable to list one or more explicit
-  targets followed by one or more pattern targets in the same rule and it
-  worked "as expected".  However, this was not documented as acceptable and if
-  you listed any explicit targets AFTER the pattern targets, the entire rule
-  would be mis-parsed.  This release removes this ability completely: make
-  will generate an error message if you mix explicit and pattern targets in
-  the same rule.
-
 * WARNING: Backward-incompatibility!
   As a result of parser enhancements, three backward-compatibility issues
   exist: first, a prerequisite containing an "=" cannot be escaped with a
@@ -239,8 +251,8 @@ Version 3.81 (01 Apr 2006)
   any prerequisite that does not exist, even though that prerequisite
   might have caused the target to rebuild.  Starting with the _next_
   release of GNU make, '$?' will contain all prerequisites that caused
-  the target to be considered out of date.  See this Savannah bug:
-  http://savannah.gnu.org/bugs/index.php?func=detailitem&item_id=16051
+  the target to be considered out of date.
+  See http://savannah.gnu.org/bugs/?16051
 
 * WARNING: Backward-incompatibility!
   GNU make now implements a generic "second expansion" feature on the
@@ -767,7 +779,7 @@ Version 3.69 (07 Nov 1993)
   have reversed the change made in version 3.68 because it turned out to
   cause a paradoxical situation in cases like:
 
-       export variable = $(shell echo value)
+        export variable = $(shell echo value)
 
   When Make attempted to put this variable in the environment for a
   recipe, it would try expand the value by running the shell command
@@ -790,8 +802,8 @@ Version 3.68 (28 Jul 1993)
   foo.a(b.o) bar.a(c.o) bar.a(d.o)'.
 
 * A suffix rule `.X.a' now produces two pattern rules:
-       (%.o): %.X      # Previous versions produced only this.
-       %.a: %.X        # Now produces this as well, just like other suffixes.
+        (%.o): %.X     # Previous versions produced only this.
+        %.a: %.X       # Now produces this as well, just like other suffixes.
 
 * The new flag `--warn-undefined-variables' says to issue a warning message
   whenever Make expands a reference to an undefined variable.
@@ -861,15 +873,15 @@ Version 3.63 (22 Jan 1993)
   no longer automatically put into the environments of the recipe lines that
   Make runs.  Instead, only variables specified on the command line or in
   the environment are exported by default.  To export others, use:
-       export VARIABLE
+        export VARIABLE
   or you can define variables with:
-       export VARIABLE = VALUE
+        export VARIABLE = VALUE
   or:
-       export VARIABLE := VALUE
+        export VARIABLE := VALUE
   You can use just:
-       export
+        export
   or:
-       .EXPORT_ALL_VARIABLES:
+        .EXPORT_ALL_VARIABLES:
   to get the old behavior.  See the node `Variables/Recursion' in the manual
   for a full description.
 
@@ -889,9 +901,9 @@ Version 3.63 (22 Jan 1993)
 
 * A single `include' directive can now specify more than one makefile to
   include, like this:
-       include file1 file2
+        include file1 file2
   You can also use shell file name patterns in an `include' directive:
-       include *.mk
+        include *.mk
 
 * The default directories to search for included makefiles, and for
   libraries specified with `-lNAME', are now set by configuration.
@@ -1027,7 +1039,7 @@ Version 3.49
 * The `wildcard' variable expansion function now expands ~ and ~USER.
 
 * Messages indicating failed recipe lines now contain the target name:
-       make: *** [target] Error 1
+        make: *** [target] Error 1
 
 * The `-p' output format has been changed somewhat to look more like
   makefile rules and to give all information that Make has about files.
@@ -1207,7 +1219,7 @@ Version 3.05
 (Changes from versions 1 through 3.05 were never recorded.  Sorry.)
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 176535ab5b939a80d529af7cca26371f5c4cdac0..6ed11a7ecef6d0e60587edb8d99322adc89a5711 100644 (file)
--- a/NMakefile
+++ b/NMakefile
@@ -3,7 +3,7 @@
 # NOTE: If you have no 'make' program at all to process this makefile,
 # run 'build_w32.bat' instead.
 #
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -32,9 +32,9 @@ CFLAGS_debug = $(CFLAGS_any) /Od /D DEBUG /D _DEBUG /FR.\WinDebug/ /Fp.\WinDebug
 CFLAGS_release = $(CFLAGS_any) /O2 /D NDEBUG /FR.\WinRel/ /Fp.\WinRel/make.pch /Fo.\WinRel/
 
 LDFLAGS_debug = w32\subproc\WinDebug\subproc.lib /NOLOGO /SUBSYSTEM:console\
-       /INCREMENTAL:no /PDB:WinDebug/make.pdb /OUT:WinDebug/make.exe /DEBUG
+       /STACK:0x400000 /INCREMENTAL:no /PDB:WinDebug/make.pdb /OUT:WinDebug/make.exe /DEBUG
 LDFLAGS_release = w32\subproc\WinRel\subproc.lib /NOLOGO /SUBSYSTEM:console\
-       /INCREMENTAL:no /OUT:WinRel/make.exe
+       /STACK:0x400000 /INCREMENTAL:no /OUT:WinRel/make.exe
 
 all: config.h subproc Release Debug
 
@@ -72,7 +72,7 @@ $(OUTDIR):
 
 LIBS = kernel32.lib user32.lib advapi32.lib
 
-#guile = $(OUTDIR)/guile.obj
+guile = $(OUTDIR)/guile.obj
 
 OBJS = \
        $(OUTDIR)/ar.obj \
@@ -89,6 +89,7 @@ OBJS = \
        $(OUTDIR)/hash.obj \
        $(OUTDIR)/implicit.obj \
        $(OUTDIR)/job.obj \
+       $(OUTDIR)/load.obj \
        $(OUTDIR)/main.obj \
        $(OUTDIR)/misc.obj \
        $(OUTDIR)/output.obj \
@@ -105,6 +106,7 @@ OBJS = \
        $(OUTDIR)/fnmatch.obj \
        $(OUTDIR)/dirent.obj \
        $(OUTDIR)/pathstuff.obj \
+       $(OUTDIR)/posixfcn.obj \
        $(guile)
 
 $(OUTDIR)/make.exe: $(OUTDIR) $(OBJS)
@@ -121,6 +123,8 @@ $(OUTDIR)/fnmatch.obj : glob/fnmatch.c
        $(CC) $(CFLAGS) /c $?
 $(OUTDIR)/dirent.obj : w32/compat/dirent.c
        $(CC) $(CFLAGS) /c $?
+$(OUTDIR)/posixfcn.obj : w32/compat/posixfcn.c
+       $(CC) $(CFLAGS) /c $?
 $(OUTDIR)/pathstuff.obj : w32/pathstuff.c
        $(CC) $(CFLAGS) /c $?
 
@@ -144,8 +148,7 @@ $(OUTDIR)/arscan.obj: arscan.c makeint.h config.h \
  gettext.h \
 
 # .deps/commands.Po
-$(OUTDIR)/commands.obj: commands.c \
- makeint.h config.h \
+$(OUTDIR)/commands.obj: commands.c makeint.h config.h \
  gnumake.h \
  getopt.h \
  gettext.h \
@@ -304,7 +307,8 @@ $(OUTDIR)/remake.obj: remake.c makeint.h config.h \
 # dummy
 
 # .deps/remote-stub.Po
-$(OUTDIR)/remote-stub.obj: remote-stub.c makeint.h config.h \
+$(OUTDIR)/remote-stub.obj: remote-stub.c makeint.h \
+ config.h \
  gnumake.h \
  getopt.h \
  gettext.h \
diff --git a/README b/README
index 8b10c428026e8361c6f7809bbe5fbff435383fa8..9ed662a8203def08bb4a8b175897e942c8bf0576 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This directory contains the 4.0 release of GNU Make.
+This directory contains the 4.1 release of GNU Make.
 
 See the file NEWS for the user-visible changes from previous releases.
 In addition, there have been bugs fixed.
@@ -162,7 +162,7 @@ at the right README!
 
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 1fabe07f8da8543b3d51ff3bde56f72a59760816..f9be348430ff4eafcfa0d5637ae86a386f3d3bc2 100644 (file)
@@ -61,7 +61,7 @@ If you plan to use recursive makes, install make resident:
 
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 1995-2013 Free Software Foundation, Inc.
+Copyright (C) 1995-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 158560dee44efe489aac84d32734e1907e09444e..335661ca0a1f0fdd07cec3787193f5dc66a44fbc 100644 (file)
@@ -62,7 +62,7 @@ To build from sources:
       [Enter].  Otherwise, you need to supply the path to the source
       directory as an argument to the batch file, like this:
 
-        c:\djgpp\gnu\make-4.0\configure.bat c:/djgpp/gnu/make-4.0
+        c:\djgpp\gnu\make-4.1\configure.bat c:/djgpp/gnu/make-4.1
 
       Note the forward slashes in the source path argument: you MUST
       use them here.
@@ -84,7 +84,7 @@ To build from sources:
       If you are building from outside of the source directory, you
       need to tell Make where the sources are, like this:
 
-                make srcdir=c:/djgpp/gnu/make-4.0
+                make srcdir=c:/djgpp/gnu/make-4.1
 
       (configure.bat will tell you this when it finishes).  You MUST
       use a full, not relative, name of the source directory here, or
@@ -324,7 +324,7 @@ Bug reports:
 
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 792c4bb91176ae1c182decd41a00b8a05d49f0fd..9e2045ef24647ad02189a348a0319b70af7aa5fb 100644 (file)
@@ -160,7 +160,7 @@ from the make source tree.
 
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 2003-2013 Free Software Foundation, Inc.
+Copyright (C) 2003-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index f7b064dc73b8bdc1985b2d677592e2514e4dafb2..2ff553cd98675392429bb8c5811c441f65311478 100644 (file)
@@ -268,7 +268,7 @@ Long command lines are now converted to command files.
 Comma (',') as a separator is now allowed. See makefile.vms for an example.
 
 -------------------------------------------------------------------------------
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index e31117076192e36673caf3fef28e5498994c5230..e52e406a7f933a3f1d42fc3add36851064ee4c08 100644 (file)
@@ -207,7 +207,7 @@ GNU make handling of drive letters in pathnames (PATH, vpath, VPATH):
 GNU make test suite:
 
         I verified all functionality with a slightly modified version
-        of make-test-4.0 (modifications to get test suite to run
+        of make-test-4.1 (modifications to get test suite to run
         on Windows NT). All tests pass in an environment that includes
         sh.exe.  Tests were performed on both Windows NT and Windows 95.
 
@@ -293,7 +293,7 @@ Bug reports:
         is described in the GNU make manual and the base README.
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 8b3fa7428b768f0afb1bf8a00c8494dad79c8189..30d98ac40b732a1db95e0f477f584094f472958b 100644 (file)
@@ -96,7 +96,7 @@ SunOS 4.1.x:
 
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 1998-2013 Free Software Foundation, Inc.
+Copyright (C) 1998-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 766a5c64aca6f679e8ddf5b9c00c7104c44cda25..2b55f22bd5e5c08d87eebb06d1a6de6ca73026b5 100644 (file)
--- a/SMakefile
+++ b/SMakefile
@@ -3,7 +3,7 @@
 # NOTE: If you have no 'make' program at all to process this makefile,
 # run 'build.sh' instead.
 #
-# Copyright (C) 1995-2013 Free Software Foundation, Inc.
+# Copyright (C) 1995-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -24,9 +24,9 @@
 #
 
 # Ultrix 2.2 make doesn't expand the value of VPATH.
-VPATH = /make-4.0/
+VPATH = /make-4.1/
 # This must repeat the value, because configure will remove 'VPATH = .'.
-srcdir = /make-4.0/
+srcdir = /make-4.1/
 
 CC = sc
 RM = delete
@@ -237,8 +237,7 @@ arscan.o: arscan.c makeint.h config.h \
  gettext.h \
 
 # .deps/commands.Po
-commands.o: commands.c \
- makeint.h config.h \
+commands.o: commands.c makeint.h config.h \
  gnumake.h \
  getopt.h \
  gettext.h \
@@ -397,7 +396,8 @@ remake.o: remake.c makeint.h config.h \
 # dummy
 
 # .deps/remote-stub.Po
-remote-stub.o: remote-stub.c makeint.h config.h \
+remote-stub.o: remote-stub.c makeint.h \
+ config.h \
  gnumake.h \
  getopt.h \
  gettext.h \
index b7d8efd56ddd1db06cffe3b1dd3460ab636f4ebe..53d7ef1357c9ecd782d3a416baf867816d867ea1 100644 (file)
@@ -1,7 +1,7 @@
 dnl acinclude.m4 -- Extra macros needed for GNU make.
 dnl
 dnl Automake will incorporate this into its generated aclocal.m4.
-dnl Copyright (C) 1998-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1998-2014 Free Software Foundation, Inc.
 dnl This file is part of GNU Make.
 dnl
 dnl GNU Make is free software; you can redistribute it and/or modify it under
index 833ec7d2a0e56e1e5311683605a993a10b2255cb..98f09b68e637d5322ba6ecf93f477ef4ab5c35a1 100644 (file)
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
 [m4_warning([this file was generated for autoconf 2.69.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
 # serial 1 (pkg-config-0.24)
@@ -180,25 +180,22 @@ else
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.14'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.6], [],
+m4_if([$1], [1.14.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -214,24 +211,82 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_AR([ACT-IF-FAIL])
+# -------------------------
+# Try to determine the archiver interface, and trigger the ar-lib wrapper
+# if it is needed.  If the detection of archiver interface fails, run
+# ACT-IF-FAIL (default is to abort configure with a proper error message).
+AC_DEFUN([AM_PROG_AR],
+[AC_BEFORE([$0], [LT_INIT])dnl
+AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([ar-lib])dnl
+AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false])
+: ${AR=ar}
+
+AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
+  [AC_LANG_PUSH([C])
+   am_cv_ar_interface=ar
+   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])],
+     [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([am_ar_try])
+      if test "$ac_status" -eq 0; then
+        am_cv_ar_interface=ar
+      else
+        am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+        AC_TRY_EVAL([am_ar_try])
+        if test "$ac_status" -eq 0; then
+          am_cv_ar_interface=lib
+        else
+          am_cv_ar_interface=unknown
+        fi
+      fi
+      rm -f conftest.lib libconftest.a
+     ])
+   AC_LANG_POP([C])])
+
+case $am_cv_ar_interface in
+ar)
+  ;;
+lib)
+  # Microsoft lib, so override with the ar-lib wrapper script.
+  # FIXME: It is wrong to rewrite AR.
+  # But if we don't then we get into trouble of one sort or another.
+  # A longer-term fix would be to have automake use am__AR in this case,
+  # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
+  # similar.
+  AR="$am_aux_dir/ar-lib $AR"
+  ;;
+unknown)
+  m4_default([$1],
+             [AC_MSG_ERROR([could not determine $AR interface])])
+  ;;
+esac
+AC_SUBST([AR])dnl
+])
+
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -250,7 +305,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -276,22 +331,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -310,16 +362,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 12
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -329,7 +379,7 @@ fi])])
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -342,12 +392,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -355,8 +406,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -396,16 +447,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -414,8 +465,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
@@ -423,7 +474,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -471,7 +522,7 @@ AM_CONDITIONAL([am__fastdep$1], [
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -481,9 +532,13 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -498,20 +553,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -524,7 +577,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -536,21 +589,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -568,7 +619,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -577,46 +628,45 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 ])
 
 
-# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2010
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 AC_DEFUN([AM_WITH_DMALLOC],
 [AC_MSG_CHECKING([if malloc debugging is wanted])
-AC_ARG_WITH(dmalloc,
-[  --with-dmalloc          use dmalloc, as in http://www.dmalloc.com],
+AC_ARG_WITH([dmalloc],
+[AS_HELP_STRING([--with-dmalloc],
+                [use dmalloc, as in http://www.dmalloc.com])],
 [if test "$withval" = yes; then
-  AC_MSG_RESULT(yes)
-  AC_DEFINE(WITH_DMALLOC,1,
+  AC_MSG_RESULT([yes])
+  AC_DEFINE([WITH_DMALLOC], [1],
            [Define if using the dmalloc debugging malloc package])
   LIBS="$LIBS -ldmalloc"
   LDFLAGS="$LDFLAGS -g"
 else
-  AC_MSG_RESULT(no)
-fi], [AC_MSG_RESULT(no)])
+  AC_MSG_RESULT([no])
+fi], [AC_MSG_RESULT([no])])
 ])
 
-AU_DEFUN([fp_WITH_DMALLOC], [AM_WITH_DMALLOC])
-
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 16
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -629,7 +679,7 @@ AU_DEFUN([fp_WITH_DMALLOC], [AM_WITH_DMALLOC])
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -658,31 +708,40 @@ AC_SUBST([CYGPATH_W])
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -693,34 +752,78 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
                             [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-                 [_AM_DEPENDENCIES(CC)],
-                 [define([AC_PROG_CC],
-                         defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+                 [_AM_DEPENDENCIES([CC])],
+                 [m4_define([AC_PROG_CC],
+                            m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                 [_AM_DEPENDENCIES(CXX)],
-                 [define([AC_PROG_CXX],
-                         defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+                 [_AM_DEPENDENCIES([CXX])],
+                 [m4_define([AC_PROG_CXX],
+                            m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-                 [_AM_DEPENDENCIES(OBJC)],
-                 [define([AC_PROG_OBJC],
-                         defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+                 [_AM_DEPENDENCIES([OBJC])],
+                 [m4_define([AC_PROG_OBJC],
+                            m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+                 [_AM_DEPENDENCIES([OBJCXX])],
+                 [m4_define([AC_PROG_OBJCXX],
+                            m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -742,15 +845,12 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -764,16 +864,14 @@ if test x"${install_sh}" != xset; then
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -789,14 +887,12 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -814,7 +910,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -839,52 +935,14 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 6
-
-# AM_PROG_CC_C_O
-# --------------
-# Like AC_PROG_CC_C_O, but changed for automake.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
-          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-])
-
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -892,11 +950,10 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -909,29 +966,32 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_MKDIR_P
 # ---------------
-# Check for `mkdir -p'.
+# Check for 'mkdir -p'.
 AC_DEFUN([AM_PROG_MKDIR_P],
 [AC_PREREQ([2.60])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl FIXME we are no longer going to remove this! adjust warning
+dnl FIXME message accordingly.
+AC_DIAGNOSE([obsolete],
+[$0: this macro is deprecated, and will soon be removed.
+You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
+and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.])
 dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
 dnl while keeping a definition of mkdir_p for backward compatibility.
 dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
@@ -948,15 +1008,12 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -966,7 +1023,7 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 # --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
 # ------------------------
@@ -980,24 +1037,82 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -1008,32 +1123,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \   ]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+       && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -1043,31 +1166,50 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
 dnl
-dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
 dnl do not support nested variable expansions.
 dnl See automake bug#9928 and bug#10237.
 am_make=${MAKE-make}
@@ -1085,7 +1227,7 @@ else
   am_cv_make_support_nested_variables=no
 fi])
 if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using `$V' instead of `$(V)' breaks IRIX make.
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
   AM_V='$(V)'
   AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
 else
@@ -1102,44 +1244,40 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_STRIP
 # ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1153,18 +1291,16 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -1174,76 +1310,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
diff --git a/amiga.c b/amiga.c
index 73ed59a0ecae19d823f60edbf8038f548b6125d5..1ef949ce7b2a86230436b0da7918f007f3e42227 100644 (file)
--- a/amiga.c
+++ b/amiga.c
@@ -1,5 +1,5 @@
 /* Running commands on Amiga
-Copyright (C) 1995-2013 Free Software Foundation, Inc.
+Copyright (C) 1995-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -42,7 +42,7 @@ MyExecute (char **argv)
     buffer = AllocMem (len, MEMF_ANY);
 
     if (!buffer)
-      fatal (NILF, "MyExecute: Cannot allocate space for calling a command");
+      O (fatal, NILF, "MyExecute: Cannot allocate space for calling a command\n");
 
     ptr = buffer;
 
diff --git a/amiga.h b/amiga.h
index a11a128d56bd33f5e0d8e374ab86dc58e7ba3e1b..00bca4f3cd9bb4d79d37f8be114ecddcc20010d6 100644 (file)
--- a/amiga.h
+++ b/amiga.h
@@ -1,5 +1,5 @@
 /* Definitions for amiga specific things
-Copyright (C) 1995-2013 Free Software Foundation, Inc.
+Copyright (C) 1995-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/ar.c b/ar.c
index afed591fffb55207e481c36fa5e42dcd7f03632a..675572a1b158f07dd473379b38543df419749de9 100644 (file)
--- a/ar.c
+++ b/ar.c
@@ -1,5 +1,5 @@
 /* Interface to 'ar' archives for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
 This file is part of GNU Make.
 
@@ -43,7 +43,7 @@ ar_name (const char *name)
     return 0;
 
   if (p[1] == '(' && end[-1] == ')')
-    fatal (NILF, _("attempt to use unsupported feature: '%s'"), name);
+    OS (fatal, NILF, _("attempt to use unsupported feature: '%s'"), name);
 
   return 1;
 }
@@ -120,7 +120,7 @@ ar_member_date (const char *name)
 int
 ar_touch (const char *name)
 {
-  error (NILF, _("touch archive member is not available on VMS"));
+  O (error, NILF, _("touch archive member is not available on VMS"));
   return -1;
 }
 #else
@@ -144,24 +144,24 @@ ar_touch (const char *name)
   switch (ar_member_touch (arname, memname))
     {
     case -1:
-      error (NILF, _("touch: Archive '%s' does not exist"), arname);
+      OS (error, NILF, _("touch: Archive '%s' does not exist"), arname);
       break;
     case -2:
-      error (NILF, _("touch: '%s' is not a valid archive"), arname);
+      OS (error, NILF, _("touch: '%s' is not a valid archive"), arname);
       break;
     case -3:
       perror_with_name ("touch: ", arname);
       break;
     case 1:
-      error (NILF,
-             _("touch: Member '%s' does not exist in '%s'"), memname, arname);
+      OSS (error, NILF,
+           _("touch: Member '%s' does not exist in '%s'"), memname, arname);
       break;
     case 0:
       val = 0;
       break;
     default:
-      error (NILF,
-             _("touch: Bad return code from ar_member_touch on '%s'"), name);
+      OS (error, NILF,
+          _("touch: Bad return code from ar_member_touch on '%s'"), name);
     }
 
   free (arname);
@@ -172,10 +172,20 @@ ar_touch (const char *name)
 \f
 /* State of an 'ar_glob' run, passed to 'ar_glob_match'.  */
 
+/* On VMS, (object) modules in libraries do not have suffixes. That is, to
+   find a match for a pattern, the pattern must not have any suffix. So the
+   suffix of the pattern is saved and the pattern is stripped (ar_glob).
+   If there is a match and the match, which is a module name, is added to
+   the chain, the saved suffix is added back to construct a source filename
+   (ar_glob_match). */
+
 struct ar_glob_state
   {
     const char *arname;
     const char *pattern;
+#ifdef VMS
+    char *suffix;
+#endif
     unsigned int size;
     struct nameseq *chain;
     unsigned int n;
@@ -196,7 +206,13 @@ ar_glob_match (int desc UNUSED, const char *mem, int truncated UNUSED,
     {
       /* We have a match.  Add it to the chain.  */
       struct nameseq *new = xcalloc (state->size);
-      new->name = strcache_add (concat (4, state->arname, "(", mem, ")"));
+#ifdef VMS
+      if (state->suffix)
+        new->name = strcache_add(
+            concat(5, state->arname, "(", mem, state->suffix, ")"));
+      else
+#endif
+        new->name = strcache_add(concat(4, state->arname, "(", mem, ")"));
       new->next = state->chain;
       state->chain = new;
       ++state->n;
@@ -248,7 +264,9 @@ ar_glob (const char *arname, const char *member_pattern, unsigned int size)
   struct nameseq *n;
   const char **names;
   unsigned int i;
-
+#ifdef VMS
+  char *vms_member_pattern;
+#endif
   if (! glob_pattern_p (member_pattern, 1))
     return 0;
 
@@ -256,11 +274,36 @@ ar_glob (const char *arname, const char *member_pattern, unsigned int size)
      ar_glob_match will accumulate them in STATE.chain.  */
   state.arname = arname;
   state.pattern = member_pattern;
+#ifdef VMS
+    {
+      /* In a copy of the pattern, find the suffix, save it and  remove it from
+         the pattern */
+      char *lastdot;
+      vms_member_pattern = xstrdup(member_pattern);
+      lastdot = strrchr(vms_member_pattern, '.');
+      state.suffix = lastdot;
+      if (lastdot)
+        {
+          state.suffix = xstrdup(lastdot);
+          *lastdot = 0;
+        }
+      state.pattern = vms_member_pattern;
+    }
+#endif
   state.size = size;
   state.chain = 0;
   state.n = 0;
   ar_scan (arname, ar_glob_match, &state);
 
+#ifdef VMS
+  /* Deallocate any duplicated string */
+  free(vms_member_pattern);
+  if (state.suffix)
+    {
+      free(state.suffix);
+    }
+#endif
+
   if (state.chain == 0)
     return 0;
 
index 2b3cd5dfb00decec29f66af79e08fc8da9a03803..24286fde1e0657f0261c9ea5fa4ba7b29d816ecb 100644 (file)
--- a/arscan.c
+++ b/arscan.c
@@ -1,5 +1,5 @@
 /* Library function for scanning an archive file.
-Copyright (C) 1987-2013 Free Software Foundation, Inc.
+Copyright (C) 1987-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,6 +16,11 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "makeint.h"
 
+#ifdef TEST
+/* Hack, the real error() routine eventually pulls in die from main.c */
+#define error(a, b, c, d)
+#endif
+
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #else
@@ -30,99 +35,139 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <credef.h>
 #include <descrip.h>
 #include <ctype.h>
+#include <ssdef.h>
+#include <stsdef.h>
+#include <rmsdef.h>
+globalvalue unsigned int LBR$_HDRTRUNC;
+
 #if __DECC
 #include <unixlib.h>
 #include <lbr$routines.h>
 #endif
+const char *
+vmsify (const char *name, int type);
+
+/* Time conversion from VMS to Unix
+   Conversion from local time (stored in library) to GMT (needed for gmake)
+   Note: The tm_gmtoff element is a VMS extension to the ANSI standard. */
+static time_t
+vms_time_to_unix(void *vms_time)
+{
+  struct tm *tmp;
+  time_t unix_time;
 
-static void *VMS_lib_idx;
+  unix_time = decc$fix_time(vms_time);
+  tmp = localtime(&unix_time);
+  unix_time -= tmp->tm_gmtoff;
 
-static char *VMS_saved_memname;
+  return unix_time;
+}
 
-static time_t VMS_member_date;
+
+/* VMS library routines need static variables for callback */
+static void *VMS_lib_idx;
+
+static const void *VMS_saved_arg;
 
 static long int (*VMS_function) ();
 
+static long int VMS_function_ret;
+
+
+/* This is a callback procedure for lib$get_index */
 static int
-VMS_get_member_info (struct dsc$descriptor_s *module, unsigned long *rfa)
+VMS_get_member_info(struct dsc$descriptor_s *module, unsigned long *rfa)
 {
   int status, i;
-  long int fnval;
-
-  time_t val;
+  const int truncated = 0; /* Member name may be truncated */
+  time_t member_date; /* Member date */
+  char *filename;
+  unsigned int buffer_length; /* Actual buffer length */
+
+  /* Unused constants - Make does not actually use most of these */
+  const int file_desc = -1; /* archive file descriptor for reading the data */
+  const int header_position = 0; /* Header position */
+  const int data_position = 0; /* Data position in file */
+  const int data_size = 0; /* Data size */
+  const int uid = 0; /* member gid */
+  const int gid = 0; /* member gid */
+  const int mode = 0; /* member protection mode */
+  /* End of unused constants */
 
   static struct dsc$descriptor_s bufdesc =
     { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, NULL };
 
+  /* Only need the module definition */
   struct mhddef *mhd;
-  char filename[128];
 
-  bufdesc.dsc$a_pointer = filename;
-  bufdesc.dsc$w_length = sizeof (filename);
+  /* If a previous callback is non-zero, just return that status */
+  if (VMS_function_ret)
+    {
+      return SS$_NORMAL;
+    }
+
+  /* lbr_set_module returns more than just the module header. So allocate
+     a buffer which is big enough: the maximum LBR$C_MAXHDRSIZ. That's at
+     least bigger than the size of struct mhddef.
+     If the request is too small, a buffer truncated warning is issued so
+     it can be reissued with a larger buffer.
+     We do not care if the buffer is truncated, so that is still a success. */
+  mhd = xmalloc(LBR$C_MAXHDRSIZ);
+  bufdesc.dsc$a_pointer = (char *) mhd;
+  bufdesc.dsc$w_length = LBR$C_MAXHDRSIZ;
 
-  status = lbr$set_module (&VMS_lib_idx, rfa, &bufdesc,
-                           &bufdesc.dsc$w_length, 0);
-  if (! (status & 1))
+  status = lbr$set_module(&VMS_lib_idx, rfa, &bufdesc, &buffer_length, 0);
+
+  if ((status != LBR$_HDRTRUNC) && !$VMS_STATUS_SUCCESS(status))
     {
-      error (NILF, _("lbr$set_module() failed to extract module info, status = %d"),
-             status);
+      ON(error, NILF,
+          _("lbr$set_module() failed to extract module info, status = %d"),
+          status);
 
-      lbr$close (&VMS_lib_idx);
+      lbr$close(&VMS_lib_idx);
 
-      return 0;
+      return status;
     }
 
-  mhd = (struct mhddef *) filename;
-
-#ifdef __DECC
-  /* John Fowler <jfowler@nyx.net> writes this is needed in his environment,
-   * but that decc$fix_time() isn't documented to work this way.  Let me
-   * know if this causes problems in other VMS environments.
-   */
-  {
-    /* Modified by M. Gehre at 11-JAN-2008 because old formula is wrong:
-     * val = decc$fix_time (&mhd->mhd$l_datim) + timezone - daylight*3600;
-     * a) daylight specifies, if the timezone has daylight saving enabled, not
-     *    if it is active
-     * b) what we need is the information, if daylight saving was active, if
-     *    the library module was replaced. This information we get using the
-     *    localtime function
-     */
-
-    struct tm *tmp;
-
-    /* Conversion from VMS time to C time */
-    val = decc$fix_time (&mhd->mhd$l_datim);
-
-    /*
-     * Conversion from local time (stored in library) to GMT (needed for gmake)
-     * Note: The tm_gmtoff element is a VMS extension to the ANSI standard.
-     */
-    tmp = localtime (&val);
-    val -= tmp->tm_gmtoff;
-  }
+#ifdef TEST
+  /* When testing this code, it is useful to know the length returned */
+  printf("Input length = %d, actual = %d\n",
+      bufdesc.dsc$w_length, buffer_length);
 #endif
 
+  /* Conversion from VMS time to C time.
+     VMS defectlet - mhddef is sub-optimal, for the time, it has a 32 bit
+     longword, mhd$l_datim, and a 32 bit fill instead of two longwords, or
+     equivalent. */
+  member_date = vms_time_to_unix(&mhd->mhd$l_datim);
+  free(mhd);
+
+  /* Here we have a problem.  The module name on VMS does not have
+     a file type, but the filename pattern in the "VMS_saved_arg"
+     may have one.
+     But only the method being called knows how to interpret the
+     filename pattern.
+     There are currently two different formats being used.
+     This means that we need a VMS specific code in those methods
+     to handle it. */
+  filename = xmalloc(module->dsc$w_length + 1);
+
+  /* TODO: We may need an option to preserve the case of the module
+     For now force the module name to lower case */
   for (i = 0; i < module->dsc$w_length; i++)
-    filename[i] = _tolower ((unsigned char)module->dsc$a_pointer[i]);
+    filename[i] = _tolower((unsigned char )module->dsc$a_pointer[i]);
 
   filename[i] = '\0';
 
-  VMS_member_date = (time_t) -1;
-
-  fnval =
-    (*VMS_function) (-1, filename, 0, 0, 0, 0, val, 0, 0, 0,
-                     VMS_saved_memname);
+  VMS_function_ret = (*VMS_function)(file_desc, filename, truncated,
+      header_position, data_position, data_size, member_date, uid, gid, mode,
+      VMS_saved_arg);
 
-  if (fnval)
-    {
-      VMS_member_date = fnval;
-      return 0;
-    }
-  else
-    return 1;
+  free(filename);
+  return SS$_NORMAL;
 }
 
+
 /* Takes three arguments ARCHIVE, FUNCTION and ARG.
 
    Open the archive named ARCHIVE, find its members one by one,
@@ -153,60 +198,89 @@ VMS_get_member_info (struct dsc$descriptor_s *module, unsigned long *rfa)
    Returns 0 if have scanned successfully.  */
 
 long int
-ar_scan (const char *archive, ar_member_func_t function, const void *arg)
+ar_scan (const char *archive, ar_member_func_t function, const void *varg)
 {
-  char *p;
+  char *vms_archive;
 
   static struct dsc$descriptor_s libdesc =
     { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, NULL };
 
-  unsigned long func = LBR$C_READ;
-  unsigned long type = LBR$C_TYP_UNK;
-  unsigned long index = 1;
-
+  const unsigned long func = LBR$C_READ;
+  const unsigned long type = LBR$C_TYP_UNK;
+  const unsigned long index = 1;
+  unsigned long lib_idx;
   int status;
 
-  status = lbr$ini_control (&VMS_lib_idx, &func, &type, 0);
+  VMS_saved_arg = varg;
 
-  if (! (status & 1))
+  /* Null archive string can show up in test and cause an access violation */
+  if (archive == NULL)
     {
-      error (NILF, _("lbr$ini_control() failed with status = %d"), status);
-      return -2;
+      /* Null filenames do not exist */
+      return -1;
     }
 
-  /* there is no such descriptor with "const char *dsc$a_pointer" */
-  libdesc.dsc$a_pointer = (char *)archive;
-  libdesc.dsc$w_length = strlen (archive);
+  /* archive path name must be in VMS format */
+  vms_archive = (char *) vmsify(archive, 0);
 
-  status = lbr$open (&VMS_lib_idx, &libdesc, 0, 0, 0, 0, 0);
+  status = lbr$ini_control(&VMS_lib_idx, &func, &type, 0);
 
-  if (! (status & 1))
+  if (!$VMS_STATUS_SUCCESS(status))
     {
-      error (NILF, _("unable to open library '%s' to lookup member '%s'"),
-             archive, (char *)arg);
-      return -1;
+      ON(error, NILF, _("lbr$ini_control() failed with status = %d"), status);
+      return -2;
     }
 
-  VMS_saved_memname = (char *)arg;
+  libdesc.dsc$a_pointer = vms_archive;
+  libdesc.dsc$w_length = strlen(vms_archive);
+
+  status = lbr$open(&VMS_lib_idx, &libdesc, 0, NULL, 0, NULL, 0);
+
+  if (!$VMS_STATUS_SUCCESS(status))
+    {
 
-  /* For comparison, delete .obj from arg name.  */
+      /* TODO: A library format failure could mean that this is a file
+         generated by the GNU AR utility and in that case, we need to
+         take the UNIX codepath.  This will also take a change to the
+         GNV AR wrapper program. */
 
-  p = strrchr (VMS_saved_memname, '.');
-  if (p)
-    *p = '\0';
+      switch (status)
+        {
+      case RMS$_FNF:
+        /* Archive does not exist */
+        return -1;
+      default:
+#ifndef TEST
+        OSN(error, NILF,
+            _("unable to open library '%s' to lookup member status %d"),
+            archive, status);
+#endif
+        /* For library format errors, specification says to return -2 */
+        return -2;
+        }
+    }
 
   VMS_function = function;
 
-  VMS_member_date = (time_t) -1;
-  lbr$get_index (&VMS_lib_idx, &index, VMS_get_member_info, 0);
+  /* Clear the return status, as we are supposed to stop calling the
+     callback function if it becomes non-zero, and this is a static
+     variable. */
+  VMS_function_ret = 0;
 
-  /* Undo the damage.  */
-  if (p)
-    *p = '.';
+  status = lbr$get_index(&VMS_lib_idx, &index, VMS_get_member_info, NULL, 0);
 
-  lbr$close (&VMS_lib_idx);
+  lbr$close(&VMS_lib_idx);
+
+  /* Unless a failure occurred in the lbr$ routines, return the
+     the status from the 'function' routine. */
+  if ($VMS_STATUS_SUCCESS(status))
+    {
+      return VMS_function_ret;
+    }
 
-  return VMS_member_date > 0 ? VMS_member_date : 0;
+  /* This must be something wrong with the library and an error
+     message should already have been printed. */
+  return -2;
 }
 
 #else /* !VMS */
@@ -251,10 +325,10 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
 #endif
 
 #ifndef WINDOWS32
-# ifndef __BEOS__
+# if !defined (__ANDROID__) && !defined (__BEOS__)
 #  include <ar.h>
 # else
-   /* BeOS 5 doesn't have <ar.h> but has archives in the same format
+   /* These platforms don't have <ar.h> but have archives in the same format
     * as many other Unices.  This was taken from GNU binutils for BeOS.
     */
 #  define ARMAG "!<arch>\n"     /* String that begins an archive file.  */
@@ -751,9 +825,32 @@ ar_name_equal (const char *name, const char *mem, int truncated)
 #endif /* !__hpux && !cray */
 #endif /* !AIAMAG */
     }
-#endif /* !VMS */
 
   return !strcmp (name, mem);
+#else
+  /* VMS members do not have suffixes, but the filenames usually
+     have.
+     Do we need to strip VMS disk/directory format paths?
+
+     Most VMS compilers etc. by default are case insensitive
+     but produce uppercase external names, incl. module names.
+     However the VMS librarian (ar) and the linker by default
+     are case sensitive: they take what they get, usually
+     uppercase names. So for the non-default settings of the
+     compilers etc. there is a need to have a case sensitive
+     mode. */
+  {
+    int len;
+    len = strlen(mem);
+    int match;
+    char *dot;
+    if ((dot=strrchr(name,'.')))
+      match = (len == dot - name) && !strncasecmp(name, mem, len);
+    else
+      match = !strcasecmp (name, mem);
+    return match;
+  }
+#endif /* !VMS */
 }
 \f
 #ifndef VMS
index 92957bd79934073019803de3ee22185bd2d9ab12..ea5865d5fbfe5f70004a563ac236e47a7dc3c0cf 100755 (executable)
@@ -2,7 +2,7 @@
 # Shell script to build GNU Make in the absence of any 'make' program.
 # @configure_input@
 
-# Copyright (C) 1993-2013 Free Software Foundation, Inc.
+# Copyright (C) 1993-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
 
 srcdir='@srcdir@'
 CC='@CC@'
-CFLAGS='@CFLAGS@'
+CFLAGS='@CFLAGS@ @GUILE_CFLAGS@'
 CPPFLAGS='@CPPFLAGS@'
-LDFLAGS='@LDFLAGS@'
+LDFLAGS='@AM_LDFLAGS@ @LDFLAGS@'
 ALLOCA='@ALLOCA@'
-LOADLIBES='@LIBS@ @LIBINTL@'
+LOADLIBES='@LIBS@ @GUILE_LIBS@ @LIBINTL@'
 eval extras=\'@LIBOBJS@\'
 REMOTE='@REMOTE@'
 GLOBLIB='@GLOBLIB@'
@@ -46,13 +46,13 @@ includedir=${prefix}/include
 localedir=${prefix}/share/locale
 aliaspath=${localedir}${PATH_SEPARATOR}.
 
-defines="-DALIASPATH=\"${aliaspath}\" -DLOCALEDIR=\"${localedir}\" -DLIBDIR=\"${libdir}\" -DINCLUDEDIR=\"${includedir}\""' @DEFS@'
+defines="-DLOCALEDIR=\"${localedir}\" -DLIBDIR=\"${libdir}\" -DINCLUDEDIR=\"${includedir}\""' @DEFS@'
 
 # Exit as soon as any command fails.
 set -e
 
 # These are all the objects we need to link together.
-objs="ar.${OBJEXT} arscan.${OBJEXT} commands.${OBJEXT} default.${OBJEXT} dir.${OBJEXT} expand.${OBJEXT} file.${OBJEXT} function.${OBJEXT} getopt.${OBJEXT} getopt1.${OBJEXT} implicit.${OBJEXT} job.${OBJEXT} load.${OBJEXT} loadapi.${OBJEXT} main.${OBJEXT} misc.${OBJEXT} output.${OBJEXT} read.${OBJEXT} remake.${OBJEXT} rule.${OBJEXT} signame.${OBJEXT} strcache.${OBJEXT} variable.${OBJEXT} version.${OBJEXT} vpath.${OBJEXT} hash.${OBJEXT} guile.${OBJEXT} remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
+objs="ar.${OBJEXT} arscan.${OBJEXT} commands.${OBJEXT} default.${OBJEXT} dir.${OBJEXT} expand.${OBJEXT} file.${OBJEXT} function.${OBJEXT} getopt.${OBJEXT} getopt1.${OBJEXT} guile.${OBJEXT} implicit.${OBJEXT} job.${OBJEXT} load.${OBJEXT} loadapi.${OBJEXT} main.${OBJEXT} misc.${OBJEXT} output.${OBJEXT} read.${OBJEXT} remake.${OBJEXT} rule.${OBJEXT} signame.${OBJEXT} strcache.${OBJEXT} variable.${OBJEXT} version.${OBJEXT} vpath.${OBJEXT} hash.${OBJEXT} remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
 
 if [ x"$GLOBLIB" != x ]; then
   objs="$objs glob/fnmatch.${OBJEXT} glob/glob.${OBJEXT}"
index 148dfac9c91b7c843eafb31a33ed50de6dd4dcb3..00632a7505c730fd17404b29f5db31b187bb898d 100644 (file)
@@ -1,5 +1,5 @@
 @echo off\r
-rem Copyright (C) 1996-2013 Free Software Foundation, Inc.\r
+rem Copyright (C) 1996-2014 Free Software Foundation, Inc.\r
 rem This file is part of GNU Make.\r
 rem\r
 rem GNU Make is free software; you can redistribute it and/or modify it under\r
@@ -30,7 +30,6 @@ copy config.h.W32 config.h
 rem Guile configuration\r
 set GUILECFLAGS=\r
 set GUILELIBS=\r
-set GUILESRC=\r
 set NOGUILE=\r
 set OPT=-O2\r
 set COMPILER=\r
@@ -79,7 +78,6 @@ GoTo GuileDone
 echo "pkg-config not found, building without Guile"\r
 :GuileDone\r
 if not "%GUILECFLAGS%" == "" echo "Guile found, building with Guile"\r
-if not "%GUILECFLAGS%" == "" set GUILESRC=guile.c\r
 if not "%GUILECFLAGS%" == "" set GUILECFLAGS=%GUILECFLAGS% -DHAVE_GUILE\r
 if "%COMPILER%" == "gcc" if "%OPT%" == "-O0" echo "Building without compiler optimizations"\r
 cd w32\subproc\r
@@ -162,8 +160,7 @@ cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D
 echo WinDebug\fnmatch.obj >>link.dbg\r
 cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\w32\pathstuff.c\r
 echo WinDebug\pathstuff.obj >>link.dbg\r
-if "%GUILESRC%" == "" GoTo LinkDbg\r
-cl.exe /nologo /MT /W4 /GX /Zi /YX /Od %GUILECFLAGS%% /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c guile.c\r
+cl.exe /nologo /MT /W4 /GX /Zi /YX /Od %GUILECFLAGS% /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c guile.c\r
 echo WinDebug\guile.obj >>link.dbg\r
 :LinkDbg\r
 echo off\r
@@ -241,8 +238,7 @@ cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WIND
 echo WinRel\fnmatch.obj >>link.rel\r
 cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\w32\pathstuff.c\r
 echo WinRel\pathstuff.obj >>link.rel\r
-if "%GUILESRC%" == "" GoTo LinkRel\r
-cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c guile.c\r
+cl.exe /nologo /MT /W4 /GX /YX /O2 %GUILECFLAGS% /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c guile.c\r
 echo WinRel\guile.obj >>link.rel\r
 :LinkRel\r
 echo off\r
@@ -288,18 +284,13 @@ gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32
 gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o\r
 gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o\r
 gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/compat/posixfcn.c -o posixfcn.o\r
-@echo off\r
-set GUILEOBJ=\r
-if "%GUILESRC%" == "" GoTo LinkGCC\r
-set GUILEOBJ=guile.o\r
-echo on\r
 gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% %GUILECFLAGS% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c guile.c\r
 :LinkGCC\r
 @echo off\r
 Rem The version NN of libgnumake-NN.dll.a should be bumped whenever\r
 Rem the API changes in binary-incompatible manner.\r
 @echo on\r
-gcc -mthreads -gdwarf-2 -g3 -o gnumake.exe variable.o rule.o remote-stub.o commands.o file.o getloadavg.o default.o signame.o expand.o dir.o main.o getopt1.o %GUILEOBJ% job.o output.o read.o version.o getopt.o arscan.o remake.o misc.o hash.o strcache.o ar.o function.o vpath.o implicit.o loadapi.o load.o glob.o fnmatch.o pathstuff.o posixfcn.o w32_misc.o sub_proc.o w32err.o %GUILELIBS% -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -Wl,--out-implib=libgnumake-1.dll.a\r
+gcc -mthreads -gdwarf-2 -g3 -o gnumake.exe variable.o rule.o remote-stub.o commands.o file.o getloadavg.o default.o signame.o expand.o dir.o main.o getopt1.o guile.o job.o output.o read.o version.o getopt.o arscan.o remake.o misc.o hash.o strcache.o ar.o function.o vpath.o implicit.o loadapi.o load.o glob.o fnmatch.o pathstuff.o posixfcn.o w32_misc.o sub_proc.o w32err.o %GUILELIBS% -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -Wl,--out-implib=libgnumake-1.dll.a\r
 @GoTo BuildEnd\r
 :Usage\r
 echo Usage: %0 [options] [gcc]\r
@@ -310,8 +301,6 @@ echo.  --without-guile   Do not compile Guile support even if found
 echo.  --help            Display these instructions and exit\r
 :BuildEnd\r
 @echo off\r
-set GUILEOBJ=\r
-set GUILESRC=\r
 set GUILELIBS=\r
 set GUILECFLAGS=\r
 set PKGMSC=\r
index f91035845bea7720c16fc6e4b2e44c023c048c06..7123021f22b628d2fc035420f1b951689a43b58e 100644 (file)
@@ -1,5 +1,5 @@
 /* Command processing for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -14,8 +14,6 @@ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 You should have received a copy of the GNU General Public License along with
 this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include <dlfcn.h>
-
 #include "makeint.h"
 #include "filedef.h"
 #include "dep.h"
@@ -403,7 +401,7 @@ chop_commands (struct commands *cmds)
      CMDS->any_recurse flag.  */
 
   if (nlines > USHRT_MAX)
-    fatal (&cmds->fileinfo, _("Recipe has too many lines (%ud)"), nlines);
+    ON (fatal, &cmds->fileinfo, _("Recipe has too many lines (%ud)"), nlines);
 
   cmds->ncommand_lines = nlines;
   cmds->command_lines = lines;
@@ -587,7 +585,7 @@ fatal_error_signal (int sig)
   if (sig == SIGQUIT)
     /* We don't want to send ourselves SIGQUIT, because it will
        cause a core dump.  Just exit instead.  */
-    exit (EXIT_FAILURE);
+    exit (MAKE_TROUBLE);
 #endif
 
 #ifdef WINDOWS32
@@ -627,11 +625,13 @@ delete_target (struct file *file, const char *on_behalf_of)
       if (ar_member_date (file->name) != file_date)
         {
           if (on_behalf_of)
-            error (NILF, _("*** [%s] Archive member '%s' may be bogus; not deleted"),
-                   on_behalf_of, file->name);
+            OSS (error, NILF,
+                 _("*** [%s] Archive member '%s' may be bogus; not deleted"),
+                 on_behalf_of, file->name);
           else
-            error (NILF, _("*** Archive member '%s' may be bogus; not deleted"),
-                   file->name);
+            OS (error, NILF,
+                _("*** Archive member '%s' may be bogus; not deleted"),
+                file->name);
         }
       return;
     }
@@ -643,9 +643,10 @@ delete_target (struct file *file, const char *on_behalf_of)
       && FILE_TIMESTAMP_STAT_MODTIME (file->name, st) != file->last_mtime)
     {
       if (on_behalf_of)
-        error (NILF, _("*** [%s] Deleting file '%s'"), on_behalf_of, file->name);
+        OSS (error, NILF,
+             _("*** [%s] Deleting file '%s'"), on_behalf_of, file->name);
       else
-        error (NILF, _("*** Deleting file '%s'"), file->name);
+        OS (error, NILF, _("*** Deleting file '%s'"), file->name);
       if (unlink (file->name) < 0
           && errno != ENOENT)   /* It disappeared; so what.  */
         perror_with_name ("unlink: ", file->name);
index 7829e4038c76b1b1b38af5f9fc1f96cabbb8ff49..0d58f22d82d62bbb11c8eda566de296b798d3e79 100644 (file)
@@ -1,5 +1,5 @@
 /* Definition of data structures describing shell commands for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 126a0e54ba59e542f40f894e52a99ed38bd26091..e3d6ee8cdce87a3d2c492bc45f10c671b9124496 100644 (file)
@@ -1,5 +1,5 @@
 /* config.h -- hand-massaged for Amiga                                  -*-C-*-
-Copyright (C) 1995-2013 Free Software Foundation, Inc.
+Copyright (C) 1995-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -177,7 +177,7 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #define PACKAGE "make"
 
 /* Version of this package (needed by automake) */
-#define VERSION "4.0"
+#define VERSION "4.1"
 
 /* Define to the name of the SCCS 'get' command.  */
 #define SCCS_GET "get"
@@ -318,6 +318,12 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Define if you have the kstat library (-lkstat).  */
 /* #undef HAVE_LIBKSTAT */
 
+/* Define to 1 if you have the `isatty' function. */
+/* #undef HAVE_ISATTY */
+
+/* Define to 1 if you have the `ttyname' function. */
+/* #undef HAVE_TTYNAME */
+
 /* Define if you have the sun library (-lsun).  */
 /* #undef HAVE_LIBSUN */
 
index 8d307ee7f3379a05904b3a3e054e86220d7dc8dd..d20953e75cb249818845b249c5fee530e4a46ac4 100644 (file)
@@ -1,6 +1,6 @@
 /* config.h-vms. Generated by hand by Klaus Kämpf <kkaempf@rmi.de>      -*-C-*-
 
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -18,6 +18,12 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* config.h.  Generated automatically by configure.  */
 /* config.h.in.  Generated automatically from configure.ac by autoheader.  */
 
+/* Pull in types.h here to get __CRTL_VER defined for old versions of the
+   compiler which don't define it. */
+#ifdef __DECC
+# include <types.h>
+#endif
+
 /* Define to 1 if on AIX 3.
    System headers sometimes define this.
    We just want to avoid a redefinition error message.  */
@@ -211,7 +217,7 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #define PACKAGE "make"
 
 /* Version of this package (needed by automake) */
-#define VERSION "4.0"
+#define VERSION "4.1"
 
 /* Define to the name of the SCCS 'get' command.  */
 /* #undef SCCS_GET */
@@ -356,6 +362,12 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Define to 1 if you have the sun library (-lsun).  */
 /* #undef HAVE_LIBSUN */
 
+/* Define to 1 if you have the `isatty' function. */
+/* #undef HAVE_ISATTY */
+
+/* Define to 1 if you have the `ttyname' function. */
+/* #undef HAVE_TTYNAME */
+
 /* Use high resolution file timestamps if nonzero. */
 #define FILE_TIMESTAMP_HI_RES 0
 
@@ -372,15 +384,9 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* #undef HAVE_VMSDIR_H */
 /* #undef _DIRENT_HAVE_D_NAMLEN */
 
-/* On older systems without 7.0 backport of CRTL the first one is defined */
-#ifdef __CRTL_VER
-# if __CRTL_VER < 70000000
-#  define HAVE_VMSDIR_H 1
-# endif
-#else
-# if __VMS_VER < 70000000
-#  define HAVE_VMSDIR_H 1
-# endif
+/* On older systems without 7.0 backport of CRTL use non-VMS code for opendir() etc. */
+#if __CRTL_VER < 70000000
+# define HAVE_VMSDIR_H 1
 #endif
 
 #if defined(HAVE_VMSDIR_H) && defined(HAVE_DIRENT_H)
@@ -414,5 +420,13 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Output sync sypport */
 #define NO_OUTPUT_SYNC
 
+/* Define to 1 to write even short single-line actions into a VMS/DCL command
+   file; this also enables exporting make environment variables into the
+   (sub-)process, which executes the action.
+   The usual make rules apply whether a shell variable - here a DCL symbol or
+   VMS logical [see CRTL getenv()] - is added to the make environment and
+   is exported. */
+#define USE_DCL_COM_FILE 1
+
 /* Build host information. */
 #define MAKE_HOST "VMS"
index 664816d3cc5ebc9970b1e07a97a2643072b402dd..a52552016a8997d88736c7211f3efe5371310e2d 100644 (file)
@@ -1,6 +1,6 @@
 /* config.h.W32 -- hand-massaged config.h file for Windows builds       -*-C-*-
 
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -292,6 +292,13 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Define to 1 if you have the 'strsignal' function. */
 /* #undef HAVE_STRSIGNAL */
 
+/* Define to 1 if you have the `isatty' function. */
+#define HAVE_ISATTY 1
+
+/* Define to 1 if you have the `ttyname' function. */
+#define HAVE_TTYNAME 1
+char *ttyname (int);
+
 /* Define to 1 if 'n_un.n_name' is a member of 'struct nlist'. */
 /* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */
 
@@ -377,7 +384,7 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #define PACKAGE_URL "http://www.gnu.org/software/make/"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "4.0"
+#define PACKAGE_VERSION "4.1"
 
 /* Define to the character that separates directories in PATH. */
 #define PATH_SEPARATOR_CHAR ';'
@@ -429,7 +436,7 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* #undef UMAX4_3 */
 
 /* Version number of package */
-#define VERSION "4.0"
+#define VERSION "4.1"
 
 /* Define if using the dmalloc debugging malloc package */
 /* #undef WITH_DMALLOC */
index bd6843fce7fb0ebc230e58fc8054cc341772586d..664fbc2a18f2ee988529c492fb00c3bdd763fc0d 100644 (file)
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the `isatty' function. */
+#undef HAVE_ISATTY
+
 /* Define to 1 if you have the `dgc' library (-ldgc). */
 #undef HAVE_LIBDGC
 
 /* Define to 1 if you have the <sys/wait.h> header file. */
 #undef HAVE_SYS_WAIT_H
 
+/* Define to 1 if you have the `ttyname' function. */
+#undef HAVE_TTYNAME
+
 /* Define to 1 if you have the 'union wait' type in <sys/wait.h>. */
 #undef HAVE_UNION_WAIT
 
 /* Define to 1 if struct nlist.n_name is a pointer rather than an array. */
 #undef NLIST_STRUCT
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
 /* Name of package */
 #undef PACKAGE
 
diff --git a/config/ChangeLog b/config/ChangeLog
deleted file mode 100644 (file)
index 4e3155b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-2012-01-15  Paul Smith  <psmith@gnu.org>
-
-       * dospaths.m4: Use AC_LANG_PROGRAM to encapsulate the test code.
-       Fixes Savannah bug #35256.  Patch from Sebastian Pipping.
-
-2006-03-09  Paul Smith  <psmith@gnu.org>
-
-       * dospaths.m4: Add MSYS to the list of targets allowing DOS-style
-       pathnames.  Reported by David Ergo <david.ergo@alterface.com>.
-
-2005-07-01  Paul D. Smith  <psmith@gnu.org>
-
-       * Makefile.am (EXTRA_DIST): Added more M4 files to EXTRA_DIST, so
-       users can re-run aclocal.
-
-2003-04-30  Paul D. Smith  <psmith@gnu.org>
-
-       * dospaths.m4: New macro to test for DOS-style pathnames, based on
-       coreutils 5.0 "dos.m4" by Jim Meyering.
-
-2002-04-21  gettextize  <bug-gnu-gettext@gnu.org>
-
-       * codeset.m4: New file, from gettext-0.11.1.
-       * gettext.m4: New file, from gettext-0.11.1.
-       * glibc21.m4: New file, from gettext-0.11.1.
-       * iconv.m4: New file, from gettext-0.11.1.
-       * isc-posix.m4: New file, from gettext-0.11.1.
-       * lcmessage.m4: New file, from gettext-0.11.1.
-       * lib-ld.m4: New file, from gettext-0.11.1.
-       * lib-link.m4: New file, from gettext-0.11.1.
-       * lib-prefix.m4: New file, from gettext-0.11.1.
-       * progtest.m4: New file, from gettext-0.11.1.
-       * Makefile.am: New file.
-\f
-
-Copyright (C) 2002-2013 Free Software Foundation, Inc.
-This file is part of GNU Make.
-
-GNU Make is free software; you can redistribute it and/or modify it under the
-terms of the GNU General Public License as published by the Free Software
-Foundation; either version 3 of the License, or (at your option) any later
-version.
-
-GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see <http://www.gnu.org/licenses/>.
index f770e64fa442688c46c9a7cadc5838d590601312..396c234b8861ec9adea57f680e5e46afd0fee03c 100644 (file)
@@ -1,5 +1,5 @@
 # -*-Makefile-*-, or close enough
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
index 3a05524021a9ccb3ae147f2a17414ce7c85965e2..8ebc4fdd5879b4ac483af9e963c8d5d393badbc0 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,7 +15,7 @@
 @SET_MAKE@
 
 # -*-Makefile-*-, or close enough
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -68,9 +95,9 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = config
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ar-lib \
        compile config.guess config.rpath config.sub depcomp \
-       install-sh mdate-sh missing texinfo.tex
+       install-sh missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
        $(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
@@ -86,12 +113,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -99,6 +132,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -183,6 +217,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
@@ -241,9 +276,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu config/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign config/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu config/Makefile
+         $(AUTOMAKE) --foreign config/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -262,11 +297,11 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -401,15 +436,16 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: all all-am check check-am clean clean-generic distclean \
-       distclean-generic distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+       ctags-am distclean distclean-generic distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+       pdf-am ps ps-am tags-am uninstall uninstall-am
 
 
 # Autoconf / automake know how to handle this directory.
diff --git a/config/ar-lib b/config/ar-lib
new file mode 100755 (executable)
index 0000000..fe2301e
--- /dev/null
@@ -0,0 +1,270 @@
+#! /bin/sh
+# Wrapper for Microsoft lib.exe
+
+me=ar-lib
+scriptversion=2012-03-01.08; # UTC
+
+# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Written by Peter Rosin <peda@lysator.liu.se>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+
+# func_error message
+func_error ()
+{
+  echo "$me: $1" 1>&2
+  exit 1
+}
+
+file_conv=
+
+# func_file_conv build_file
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+           file_conv=mingw
+           ;;
+         CYGWIN*)
+           file_conv=cygwin
+           ;;
+         *)
+           file_conv=wine
+           ;;
+       esac
+      fi
+      case $file_conv in
+       mingw)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+       cygwin)
+         file=`cygpath -m "$file" || echo "$file"`
+         ;;
+       wine)
+         file=`winepath -w "$file" || echo "$file"`
+         ;;
+      esac
+      ;;
+  esac
+}
+
+# func_at_file at_file operation archive
+# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
+# for each of them.
+# When interpreting the content of the @FILE, do NOT use func_file_conv,
+# since the user would need to supply preconverted file names to
+# binutils ar, at least for MinGW.
+func_at_file ()
+{
+  operation=$2
+  archive=$3
+  at_file_contents=`cat "$1"`
+  eval set x "$at_file_contents"
+  shift
+
+  for member
+  do
+    $AR -NOLOGO $operation:"$member" "$archive" || exit $?
+  done
+}
+
+case $1 in
+  '')
+     func_error "no command.  Try '$0 --help' for more information."
+     ;;
+  -h | --h*)
+    cat <<EOF
+Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
+
+Members may be specified in a file named with @FILE.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "$me, version $scriptversion"
+    exit $?
+    ;;
+esac
+
+if test $# -lt 3; then
+  func_error "you must specify a program, an action and an archive"
+fi
+
+AR=$1
+shift
+while :
+do
+  if test $# -lt 2; then
+    func_error "you must specify a program, an action and an archive"
+  fi
+  case $1 in
+    -lib | -LIB \
+    | -ltcg | -LTCG \
+    | -machine* | -MACHINE* \
+    | -subsystem* | -SUBSYSTEM* \
+    | -verbose | -VERBOSE \
+    | -wx* | -WX* )
+      AR="$AR $1"
+      shift
+      ;;
+    *)
+      action=$1
+      shift
+      break
+      ;;
+  esac
+done
+orig_archive=$1
+shift
+func_file_conv "$orig_archive"
+archive=$file
+
+# strip leading dash in $action
+action=${action#-}
+
+delete=
+extract=
+list=
+quick=
+replace=
+index=
+create=
+
+while test -n "$action"
+do
+  case $action in
+    d*) delete=yes  ;;
+    x*) extract=yes ;;
+    t*) list=yes    ;;
+    q*) quick=yes   ;;
+    r*) replace=yes ;;
+    s*) index=yes   ;;
+    S*)             ;; # the index is always updated implicitly
+    c*) create=yes  ;;
+    u*)             ;; # TODO: don't ignore the update modifier
+    v*)             ;; # TODO: don't ignore the verbose modifier
+    *)
+      func_error "unknown action specified"
+      ;;
+  esac
+  action=${action#?}
+done
+
+case $delete$extract$list$quick$replace,$index in
+  yes,* | ,yes)
+    ;;
+  yesyes*)
+    func_error "more than one action specified"
+    ;;
+  *)
+    func_error "no action specified"
+    ;;
+esac
+
+if test -n "$delete"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  for member
+  do
+    case $1 in
+      @*)
+        func_at_file "${1#@}" -REMOVE "$archive"
+        ;;
+      *)
+        func_file_conv "$1"
+        $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
+        ;;
+    esac
+  done
+
+elif test -n "$extract"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  if test $# -gt 0; then
+    for member
+    do
+      case $1 in
+        @*)
+          func_at_file "${1#@}" -EXTRACT "$archive"
+          ;;
+        *)
+          func_file_conv "$1"
+          $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
+          ;;
+      esac
+    done
+  else
+    $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
+    do
+      $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+    done
+  fi
+
+elif test -n "$quick$replace"; then
+  if test ! -f "$orig_archive"; then
+    if test -z "$create"; then
+      echo "$me: creating $orig_archive"
+    fi
+    orig_archive=
+  else
+    orig_archive=$archive
+  fi
+
+  for member
+  do
+    case $1 in
+    @*)
+      func_file_conv "${1#@}"
+      set x "$@" "@$file"
+      ;;
+    *)
+      func_file_conv "$1"
+      set x "$@" "$file"
+      ;;
+    esac
+    shift
+    shift
+  done
+
+  if test -n "$orig_archive"; then
+    $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
+  else
+    $AR -NOLOGO -OUT:"$archive" "$@" || exit $?
+  fi
+
+elif test -n "$list"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  $AR -NOLOGO -LIST "$archive" || exit $?
+fi
index 862a14e8c81cca0faa2c7b32ce7ca80777afd88a..531136b068ef00e23d38429e6ee9a57d581a0870 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-03-05.13; # UTC
+scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -113,6 +112,11 @@ func_cl_dashl ()
       lib=$dir/$lib.lib
       break
     fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
   done
   IFS=$save_IFS
 
index b79252d6b1034cbcce18ed21d4ed21a405f987e9..1f5c50c0d1529d50b94dc3533ca72a47f0fa5849 100644 (file)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2013 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2013-06-10'
+timestamp='2014-03-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
        LIBC=gnu
        #endif
        EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
        ;;
 esac
 
@@ -826,7 +826,7 @@ EOF
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
-    i*:MSYS*:*)
+    *:MSYS*:*)
        echo ${UNAME_MACHINE}-pc-msys
        exit ;;
     i*:windows32*:*)
@@ -969,10 +969,10 @@ EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
        ;;
-    or1k:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+    openrisc*:Linux:*:*)
+       echo or1k-unknown-linux-${LIBC}
        exit ;;
-    or32:Linux:*:*)
+    or32:Linux:*:* | or1k*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     padre:Linux:*:*)
@@ -1260,16 +1260,26 @@ EOF
        if test "$UNAME_PROCESSOR" = unknown ; then
            UNAME_PROCESSOR=powerpc
        fi
-       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-           if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-               grep IS_64BIT_ARCH >/dev/null
-           then
-               case $UNAME_PROCESSOR in
-                   i386) UNAME_PROCESSOR=x86_64 ;;
-                   powerpc) UNAME_PROCESSOR=powerpc64 ;;
-               esac
+       if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+           if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+               if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                   (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+                   grep IS_64BIT_ARCH >/dev/null
+               then
+                   case $UNAME_PROCESSOR in
+                       i386) UNAME_PROCESSOR=x86_64 ;;
+                       powerpc) UNAME_PROCESSOR=powerpc64 ;;
+                   esac
+               fi
            fi
+       elif test "$UNAME_PROCESSOR" = i386 ; then
+           # Avoid executing cc on OS X 10.9, as it ships with a stub
+           # that puts up a graphical alert prompting to install
+           # developer tools.  Any system running Mac OS X 10.7 or
+           # later (Darwin 11 and later) is required to have a 64-bit
+           # processor. This is not true of the ARM version of Darwin
+           # that Apple uses in portable devices.
+           UNAME_PROCESSOR=x86_64
        fi
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
        exit ;;
@@ -1361,154 +1371,6 @@ EOF
        exit ;;
 esac
 
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-       "4"
-#else
-       ""
-#endif
-       ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-       { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit ;;
-    c34*)
-       echo c34-convex-bsd
-       exit ;;
-    c38*)
-       echo c38-convex-bsd
-       exit ;;
-    c4*)
-       echo c4-convex-bsd
-       exit ;;
-    esac
-fi
-
 cat >&2 <<EOF
 $0: unable to guess system type
 
index 61cb4bc22db8e0a490b5ea5bffe6575c10ff92e0..d4c83385f73c2c09c11d43dd32d1417f097fd15b 100644 (file)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2013 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2013-10-01'
+timestamp='2014-09-26'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -283,8 +283,10 @@ case $basic_machine in
        | mips64vr5900 | mips64vr5900el \
        | mipsisa32 | mipsisa32el \
        | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa32r6 | mipsisa32r6el \
        | mipsisa64 | mipsisa64el \
        | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64r6 | mipsisa64r6el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
        | mipsr5900 | mipsr5900el \
@@ -296,11 +298,11 @@ case $basic_machine in
        | nds32 | nds32le | nds32be \
        | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
-       | open8 \
-       | or1k | or32 \
+       | open8 | or1k | or1knd | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
+       | riscv32 | riscv64 \
        | rl78 | rx \
        | score \
        | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -325,6 +327,9 @@ case $basic_machine in
        c6x)
                basic_machine=tic6x-unknown
                ;;
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
+               ;;
        m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
@@ -402,8 +407,10 @@ case $basic_machine in
        | mips64vr5900-* | mips64vr5900el-* \
        | mipsisa32-* | mipsisa32el-* \
        | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa32r6-* | mipsisa32r6el-* \
        | mipsisa64-* | mipsisa64el-* \
        | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64r6-* | mipsisa64r6el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
        | mipsr5900-* | mipsr5900el-* \
@@ -415,6 +422,7 @@ case $basic_machine in
        | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | open8-* \
+       | or1k*-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -769,6 +777,9 @@ case $basic_machine in
                basic_machine=m68k-isi
                os=-sysv
                ;;
+       leon-*|leon[3-9]-*)
+               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+               ;;
        m68knommu)
                basic_machine=m68k-unknown
                os=-linux
@@ -824,6 +835,10 @@ case $basic_machine in
                basic_machine=powerpc-unknown
                os=-morphos
                ;;
+       moxiebox)
+               basic_machine=moxie-unknown
+               os=-moxiebox
+               ;;
        msdos)
                basic_machine=i386-pc
                os=-msdos
@@ -1369,14 +1384,14 @@ case $os in
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
              | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1594,9 +1609,6 @@ case $basic_machine in
        mips*-*)
                os=-elf
                ;;
-       or1k-*)
-               os=-elf
-               ;;
        or32-*)
                os=-coff
                ;;
index 25a39e6cd5c82d7276f6ccc62ef5e7ba1cc9776f..4ebd5b3a2f2d689de95251c9424e2763aa159de5 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,9 +27,9 @@ scriptversion=2012-03-27.16; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -57,11 +56,65 @@ EOF
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
 # A tabulation character.
 tab='  '
 # A newline character.
 nl='
 '
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
 
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
@@ -75,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -86,32 +142,32 @@ if test "$depmode" = hp; then
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
 fi
 
 cygpath_u="cygpath -u -f -"
 if test "$depmode" = msvcmsys; then
-   # This is just like msvisualcpp but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvisualcpp
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
 fi
 
 if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
 fi
 
 if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -134,8 +190,7 @@ gcc3)
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -143,13 +198,17 @@ gcc3)
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -157,15 +216,14 @@ gcc)
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
 ## This next piece of magic avoids the "deleted header file" problem.
@@ -174,15 +232,15 @@ gcc)
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
 ## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-      | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -200,8 +258,7 @@ sgi)
     "$@" -MDupdate "$tmpdepfile"
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -209,7 +266,6 @@ sgi)
 
   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
     echo "$object : \\" > "$depfile"
-
     # Clip off the initial element (the dependent).  Don't try to be
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
@@ -217,19 +273,15 @@ sgi)
     # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
     tr ' ' "$nl" < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
-
     # The second pass generates a dummy entry for each header file.
     tr ' ' "$nl" < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
   else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile"
   ;;
@@ -247,9 +299,8 @@ aix)
   # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -262,9 +313,7 @@ aix)
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -273,65 +322,113 @@ aix)
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using '\' :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -342,9 +439,8 @@ hp2)
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -355,8 +451,7 @@ hp2)
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -366,76 +461,61 @@ hp2)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
     # Add 'dependent.h:' lines.
     sed -ne '2,${
-              s/^ *//
-              s/ \\*$//
-              s/$/:/
-              p
-            }' "$tmpdepfile" >> "$depfile"
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
-
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
 
 msvc7)
   if test "$libtool" = yes; then
@@ -446,8 +526,7 @@ msvc7)
   "$@" $showIncludes > "$tmpdepfile"
   stat=$?
   grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -473,6 +552,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -524,13 +604,14 @@ dashmstdout)
   # in the target name.  This is to cope with DOS-style filenames:
   # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -583,10 +664,12 @@ makedepend)
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -622,10 +705,10 @@ cpp)
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -657,15 +740,15 @@ msvisualcpp)
       shift
       ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-       set fnord "$@"
-       shift
-       shift
-       ;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-       set fnord "$@" "$arg"
-       shift
-       shift
-       ;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
   "$@" -E 2>/dev/null |
index 36863773d5e5891859d6df25dc541654f544d475..92fb5402068de91c60c1c2c6b7946d6981c631fd 100644 (file)
@@ -1,7 +1,7 @@
 # Test if the system uses DOS-style pathnames (drive specs and backslashes)
 # By Paul Smith <psmith@gnu.org>.  Based on dos.m4 by Jim Meyering.
 #
-# Copyright (C) 1993-2013 Free Software Foundation, Inc.
+# Copyright (C) 1993-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
index a9244eb0786534553fdd9eb0050bb4b172bad0a3..377bb8687ffe16bfc79ea25c8667cabf72aaf2c2 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-01-19.21; # UTC
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@ scriptversion=2011-01-19.21; # UTC
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
@@ -156,7 +156,7 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
-       # Protect names problematic for `test' and other utilities.
+       # Protect names problematic for 'test' and other utilities.
        case $dst_arg in
          -* | [=\(\)!]) dst_arg=./$dst_arg;;
        esac
@@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
+    # Protect names problematic for 'test' and other utilities.
     case $dst_arg in
       -* | [=\(\)!]) dst_arg=./$dst_arg;;
     esac
@@ -202,7 +202,7 @@ if test $# -eq 0; then
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
@@ -240,7 +240,7 @@ fi
 
 for src
 do
-  # Protect names problematic for `test' and other utilities.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
     -* | [=\(\)!]) src=./$src;;
   esac
@@ -354,7 +354,7 @@ do
              if test -z "$dir_arg" || {
                   # Check for POSIX incompatibilities with -m.
                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                  # other-writeable bit of parent directory when it shouldn't.
+                  # other-writable bit of parent directory when it shouldn't.
                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
                   case $ls_ld_tmpdir in
index 60dc485a37847f65428d846fcf694d940cfb071f..b3719cf76191aefd6a48f36c27b8275e268677d0 100755 (executable)
@@ -3,8 +3,7 @@
 
 scriptversion=2010-08-21.06; # UTC
 
-# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009, 2010
-# Free Software Foundation, Inc.
+# Copyright (C) 1995-2013 Free Software Foundation, Inc.
 # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
 #
 # This program is free software; you can redistribute it and/or modify
@@ -40,7 +39,7 @@ fi
 
 case $1 in
   '')
-     echo "$0: No file.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No file.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
@@ -76,7 +75,7 @@ LC_TIME=C
 export LC_TIME
 
 # GNU ls changes its time format in response to the TIME_STYLE
-# variable.  Since we cannot assume `unset' works, revert this
+# variable.  Since we cannot assume 'unset' works, revert this
 # variable to its documented default.
 if test "${TIME_STYLE+set}" = set; then
   TIME_STYLE=posix-long-iso
@@ -96,14 +95,14 @@ if ls -n /dev/null 1>/dev/null 2>&1; then
   ls_command="$ls_command -n"
 fi
 
-# A `ls -l' line looks as follows on OS/2.
+# A 'ls -l' line looks as follows on OS/2.
 #  drwxrwx---        0 Aug 11  2001 foo
 # This differs from Unix, which adds ownership information.
 #  drwxrwx---   2 root  root      4096 Aug 11  2001 foo
 #
 # To find the date, we split the line on spaces and iterate on words
 # until we find a month.  This cannot work with files whose owner is a
-# user named `Jan', or `Feb', etc.  However, it's unlikely that `/'
+# user named "Jan", or "Feb", etc.  However, it's unlikely that '/'
 # will be owned by a user whose name is a month.  So we first look at
 # the extended ls output of the root directory to decide how many
 # words should be skipped to get the date.
@@ -116,7 +115,7 @@ month=
 command=
 until test $month
 do
-  test $# -gt 0 || error "failed parsing \`$ls_command /' output"
+  test $# -gt 0 || error "failed parsing '$ls_command /' output"
   shift
   # Add another shift to the command.
   command="$command shift;"
@@ -136,7 +135,7 @@ do
   esac
 done
 
-test -n "$month" || error "failed parsing \`$ls_command /' output"
+test -n "$month" || error "failed parsing '$ls_command /' output"
 
 # Get the extended ls output of the file or directory.
 set dummy x`eval "$ls_command \"\\\$save_arg1\""`
index 86a8fc31e3c2aa268688a5be47d161c586772e78..db98974ff5d59295d7e0edfec2eb2069dc78ef1a 100755 (executable)
@@ -1,11 +1,10 @@
 #! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,68 +25,40 @@ scriptversion=2012-01-06.13; # UTC
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
+case $1 in
 
-msg="missing on your system"
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
 
-case $1 in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
 
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
@@ -99,228 +70,141 @@ Send bug reports to <bug-automake@gnu.org>."
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
-# normalize program name to check for.
-program=`echo "$1" | sed '
-  s/^gnu-//; t
-  s/^gnu//; t
-  s/^g//; t'`
-
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).  This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
-  lex*|yacc*)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case $f in
-      *:*) touch_files="$touch_files "`echo "$f" |
-                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-          sed 's/\.am$/.in/' |
-          while read f; do touch "$f"; done
-    ;;
-
-  autom4te*)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-       touch $file
-    else
-       test -z "$file" || exec >$file
-       echo "#! /bin/sh"
-       echo "# Created by GNU Automake missing as a replacement of"
-       echo "#  $ $@"
-       echo "exit 0"
-       chmod +x $file
-       exit 1
-    fi
-    ;;
-
-  bison*|yacc*)
-    echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-       case $LASTARG in
-       *.y)
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" y.tab.c
-           fi
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" y.tab.h
-           fi
-         ;;
-       esac
-    fi
-    if test ! -f y.tab.h; then
-       echo >y.tab.h
-    fi
-    if test ! -f y.tab.c; then
-       echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex*|flex*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-       case $LASTARG in
-       *.l)
-           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" lex.yy.c
-           fi
-         ;;
-       esac
-    fi
-    if test ! -f lex.yy.c; then
-       echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-        you modified a dependency of a manual page.  You may need the
-        \`Help2man' package in order for those modifications to take
-        effect.  You can get \`Help2man' from any GNU archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-       touch $file
-    else
-       test -z "$file" || exec >$file
-       echo ".ab help2man is required to generate this page"
-       exit $?
-    fi
-    ;;
-
-  makeinfo*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '
-       /^@setfilename/{
-         s/.* \([^ ]*\) *$/\1/
-         p
-         q
-       }' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-    fi
-    # If the file does not exist, the user really needs makeinfo;
-    # let's fail without touching anything.
-    test -f $file || exit 1
-    touch $file
-    ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
 
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'autom4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
     ;;
-esac
-
-exit 0
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
index bfd765dd2112c9aff973fa5e440746b81e7d0a48..6312dadbce044dda55f728598b21705a1007ca3c 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2013-09-11.11}
+\def\texinfoversion{2014-05-20.16}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -1138,10 +1138,12 @@ output) for that.)}
 
 \ifpdf
   %
-  % Color manipulation macros based on pdfcolor.tex,
+  % Color manipulation macros using ideas from pdfcolor.tex,
   % except using rgb instead of cmyk; the latter is said to render as a
   % very dark gray on-screen and a very dark halftone in print, instead
-  % of actual black.
+  % of actual black. The dark red here is dark enough to print on paper as
+  % nearly black, but still distinguishable for online viewing.  We use
+  % black by default, though.
   \def\rgbDarkRed{0.50 0.09 0.12}
   \def\rgbBlack{0 0 0}
   %
@@ -1251,10 +1253,9 @@ output) for that.)}
   % used to mark target names; must be expandable.
   \def\pdfmkpgn#1{#1}
   %
-  % by default, use a color that is dark enough to print on paper as
-  % nearly black, but still distinguishable for online viewing.
-  \def\urlcolor{\rgbDarkRed}
-  \def\linkcolor{\rgbDarkRed}
+  % by default, use black for everything.
+  \def\urlcolor{\rgbBlack}
+  \def\linkcolor{\rgbBlack}
   \def\endlink{\setcolor{\maincolor}\pdfendlink}
   %
   % Adding outlines to PDF; macros for calculating structure of outlines
@@ -2145,7 +2146,7 @@ end
   \let\tenttsl=\secttsl
   \def\curfontsize{sec}%
   \def\lsize{subsec}\def\lllsize{reduced}%
-  \resetmathfonts \setleading{16pt}}
+  \resetmathfonts \setleading{17pt}}
 \def\subsecfonts{%
   \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
   \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
@@ -2574,37 +2575,21 @@ end
 \let\file=\code
 \let\option=\code
 
-% @uref (abbreviation for `urlref') takes an optional (comma-separated)
-% second argument specifying the text to display and an optional third
-% arg as text to display instead of (rather than in addition to) the url
-% itself.  First (mandatory) arg is the url.
-% (This \urefnobreak definition isn't used now, leaving it for a while
-% for comparison.)
-\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
-\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
-  \unsepspaces
-  \pdfurl{#1}%
-  \setbox0 = \hbox{\ignorespaces #3}%
-  \ifdim\wd0 > 0pt
-    \unhbox0 % third arg given, show only that
-  \else
-    \setbox0 = \hbox{\ignorespaces #2}%
-    \ifdim\wd0 > 0pt
-      \ifpdf
-        \unhbox0             % PDF: 2nd arg given, show only it
-      \else
-        \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
-      \fi
-    \else
-      \code{#1}% only url given, so show it
-    \fi
-  \fi
-  \endlink
-\endgroup}
+% @uref (abbreviation for `urlref') aka @url takes an optional
+% (comma-separated) second argument specifying the text to display and
+% an optional third arg as text to display instead of (rather than in
+% addition to) the url itself.  First (mandatory) arg is the url.
 
-% This \urefbreak definition is the active one.
+% TeX-only option to allow changing PDF output to show only the second
+% arg (if given), and not the url (which is then just the link target).
+\newif\ifurefurlonlylink
+
+% The main macro is \urefbreak, which allows breaking at expected
+% places within the url.  (There used to be another version, which
+% didn't support automatic breaking.)
 \def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
 \let\uref=\urefbreak
+%
 \def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
 \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
   \unsepspaces
@@ -2613,12 +2598,19 @@ end
   \ifdim\wd0 > 0pt
     \unhbox0 % third arg given, show only that
   \else
-    \setbox0 = \hbox{\ignorespaces #2}%
+    \setbox0 = \hbox{\ignorespaces #2}% look for second arg
     \ifdim\wd0 > 0pt
       \ifpdf
-        \unhbox0             % PDF: 2nd arg given, show only it
+        \ifurefurlonlylink
+          % PDF plus option to not display url, show just arg
+          \unhbox0             
+        \else
+          % PDF, normally display both arg and url for consistency,
+          % visibility, if the pdf is eventually used to print, etc.
+          \unhbox0\ (\urefcode{#1})%
+        \fi
       \else
-        \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
+        \unhbox0\ (\urefcode{#1})% DVI, always show arg and url
       \fi
     \else
       \urefcode{#1}% only url given, so show it
@@ -2658,8 +2650,10 @@ end
 % we put a little stretch before and after the breakable chars, to help
 % line breaking of long url's.  The unequal skips make look better in
 % cmtt at least, especially for dots.
-\def\urefprestretch{\urefprebreak \hskip0pt plus.13em }
-\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em }
+\def\urefprestretchamount{.13em}
+\def\urefpoststretchamount{.1em}
+\def\urefprestretch{\urefprebreak \hskip0pt plus\urefprestretchamount\relax}
+\def\urefpoststretch{\urefpostbreak \hskip0pt plus\urefprestretchamount\relax}
 %
 \def\urefcodeamp{\urefprestretch \&\urefpoststretch}
 \def\urefcodedot{\urefprestretch .\urefpoststretch}
@@ -3691,7 +3685,7 @@ end
   \parskip=\smallskipamount
   \ifdim\parskip=0pt \parskip=2pt \fi
   %
-  % Try typesetting the item mark that if the document erroneously says
+  % Try typesetting the item mark so that if the document erroneously says
   % something like @itemize @samp (intending @table), there's an error
   % right away at the @itemize.  It's not the best error message in the
   % world, but it's better than leaving it to the @item.  This means if
@@ -3941,19 +3935,23 @@ end
 }
 
 % multitable-only commands.
-%
-% @headitem starts a heading row, which we typeset in bold.
-% Assignments have to be global since we are inside the implicit group
-% of an alignment entry.  \everycr resets \everytab so we don't have to
+% 
+% @headitem starts a heading row, which we typeset in bold.  Assignments
+% have to be global since we are inside the implicit group of an
+% alignment entry.  \everycr below resets \everytab so we don't have to
 % undo it ourselves.
 \def\headitemfont{\b}% for people to use in the template row; not changeable
 \def\headitem{%
   \checkenv\multitable
   \crcr
+  \gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings
   \global\everytab={\bf}% can't use \headitemfont since the parsing differs
   \the\everytab % for the first item
 }%
 %
+% default for tables with no headings.
+\let\headitemcrhook=\relax
+%
 % A \tab used to include \hskip1sp.  But then the space in a template
 % line is not enough.  That is bad.  So let's go back to just `&' until
 % we again encounter the problem the 1sp was intended to solve.
@@ -3984,15 +3982,15 @@ end
   %
   \everycr = {%
     \noalign{%
-      \global\everytab={}%
+      \global\everytab={}% Reset from possible headitem.
       \global\colcount=0 % Reset the column counter.
-      % Check for saved footnotes, etc.
+      %
+      % Check for saved footnotes, etc.:
       \checkinserts
-      % Keeps underfull box messages off when table breaks over pages.
-      %\filbreak
-       % Maybe so, but it also creates really weird page breaks when the
-       % table breaks over pages. Wouldn't \vfil be better?  Wait until the
-       % problem manifests itself, so it can be fixed for real --karl.
+      %
+      % Perhaps a \nobreak, then reset:
+      \headitemcrhook
+      \global\let\headitemcrhook=\relax
     }%
   }%
   %
@@ -4434,7 +4432,7 @@ end
   % complicated, when \tex is in effect and \{ is a \delimiter again.
   % We can't use \lbracecmd and \rbracecmd because texindex assumes
   % braces and backslashes are used only as delimiters.  Perhaps we
-  % should define @lbrace and @rbrace commands a la @comma.
+  % should use @lbracechar and @rbracechar?
   \def\{{{\tt\char123}}%
   \def\}{{\tt\char125}}%
   %
@@ -4455,8 +4453,7 @@ end
   % @end macro
   % ...
   % @funindex commtest
-  %
-  % The above is not enough to reproduce the bug, but it gives the flavor.
+  % This is not enough to reproduce the bug, but it gives the flavor.
   %
   % Sample whatsit resulting:
   % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
@@ -4657,8 +4654,21 @@ end
   \definedummyword\verb
   \definedummyword\w
   \definedummyword\xref
+  %
+  % Consider:
+  %   @macro mkind{arg1,arg2}
+  %   @cindex \arg2\
+  %   @end macro
+  %   @mkind{foo, bar}
+  % The space after the comma will end up in the temporary definition
+  % that we make for arg2 (see \parsemargdef ff.).  We want all this to be
+  % expanded for the sake of the index, so we end up just seeing "bar".
+  \let\xeatspaces = \eatspaces
 }
 
+% For testing: output @{ and @} in index sort strings as \{ and \}.
+\newif\ifusebracesinindexes
+
 % \indexnofonts is used when outputting the strings to sort the index
 % by, and when constructing control sequence names.  It eliminates all
 % control sequences and just writes whatever the best ASCII sort string
@@ -4687,11 +4697,16 @@ end
   % Unfortunately, texindex is not prepared to handle braces in the
   % content at all.  So for index sorting, we map @{ and @} to strings
   % starting with |, since that ASCII character is between ASCII { and }.
-  \def\{{|a}%
-  \def\lbracechar{|a}%
+  \ifusebracesinindexes
+    \def\lbracechar{\lbracecmd}%
+    \def\rbracechar{\rbracecmd}%
+  \else
+    \def\lbracechar{|a}%
+    \def\rbracechar{|b}%
+  \fi
+  \let\{=\lbracechar
+  \let\}=\rbracechar
   %
-  \def\}{|b}%
-  \def\rbracechar{|b}%
   %
   % Non-English letters.
   \def\AA{AA}%
@@ -6419,8 +6434,6 @@ end
                                % side, and for 6pt waste from
                                % each corner char, and rule thickness
   \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
-  % Flag to tell @lisp, etc., not to narrow margin.
-  \let\nonarrowing = t%
   %
   % If this cartouche directly follows a sectioning command, we need the
   % \parskip glue (backspaced over by default) or the cartouche can
@@ -6587,9 +6600,13 @@ end
 
 
 % @raggedright does more-or-less normal line breaking but no right
-% justification.  From plain.tex.
+% justification.  From plain.tex.  Don't stretch around special
+% characters in urls in this environment, since the stretch at the right
+% should be enough.
 \envdef\raggedright{%
-  \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax
+  \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax
+  \def\urefprestretchamount{0pt}%
+  \def\urefpoststretchamount{0pt}%
 }
 \let\Eraggedright\par
 
@@ -7482,7 +7499,7 @@ end
 
 % Parse the optional {params} list.  Set up \paramno and \paramlist
 % so \defmacro knows what to do.  Define \macarg.BLAH for each BLAH
-% in the params list to some hook where the argument si to be expanded.  If
+% in the params list to some hook where the argument is to be expanded.  If
 % there are less than 10 arguments that hook is to be replaced by ##N where N
 % is the position in that list, that is to say the macro arguments are to be
 % defined `a la TeX in the macro body.  
@@ -8344,6 +8361,7 @@ end
 \gdef\footnote{%
   \let\indent=\ptexindent
   \let\noindent=\ptexnoindent
+  %
   \global\advance\footnoteno by \@ne
   \edef\thisfootno{$^{\the\footnoteno}$}%
   %
@@ -8367,6 +8385,11 @@ end
 %
 \gdef\dofootnote{%
   \insert\footins\bgroup
+  %
+  % Nested footnotes are not supported in TeX, that would take a lot
+  % more work.  (\startsavinginserts does not suffice.)
+  \let\footnote=\errfootnote
+  %
   % We want to typeset this text as a normal paragraph, even if the
   % footnote reference occurs in (for example) a display environment.
   % So reset some parameters.
@@ -8404,13 +8427,19 @@ end
 }
 }%end \catcode `\@=11
 
+\def\errfootnote{%
+  \errhelp=\EMsimple
+  \errmessage{Nested footnotes not supported in texinfo.tex,
+    even though they work in makeinfo; sorry}
+}
+
 % In case a @footnote appears in a vbox, save the footnote text and create
 % the real \insert just after the vbox finished.  Otherwise, the insertion
 % would be lost.
 % Similarly, if a @footnote appears inside an alignment, save the footnote
 % text to a box and make the \insert when a row of the table is finished.
 % And the same can be done for other insert classes.  --kasal, 16nov03.
-
+%
 % Replace the \insert primitive by a cheating macro.
 % Deeper inside, just make sure that the saved insertions are not spilled
 % out prematurely.
@@ -8827,20 +8856,20 @@ end
 {
   \catcode`\_ = \active
   \globaldefs=1
-\parseargdef\documentlanguage{\begingroup
-  \let_=\normalunderscore  % normal _ character for filenames
+\parseargdef\documentlanguage{%
   \tex % read txi-??.tex file in plain TeX.
     % Read the file by the name they passed if it exists.
+    \let_ = \normalunderscore  % normal _ character for filename test
     \openin 1 txi-#1.tex
     \ifeof 1
-      \documentlanguagetrywithoutunderscore{#1_\finish}%
+      \documentlanguagetrywithoutunderscore #1_\finish
     \else
       \globaldefs = 1  % everything in the txi-LL files needs to persist
       \input txi-#1.tex
     \fi
     \closein 1
   \endgroup % end raw TeX
-\endgroup}
+}
 %
 % If they passed de_DE, and txi-de_DE.tex doesn't exist,
 % try txi-de.tex.
index 03bf8dbca737909b3c39451ed3a2b15bf00e277d..b316214702162a2e68bbfd18d355fb68ae10b255 100644 (file)
@@ -1,6 +1,6 @@
 /* configh.dos -- hand-massaged config.h file for MS-DOS builds         -*-C-*-
 
-Copyright (C) 1994-2013 Free Software Foundation, Inc.
+Copyright (C) 1994-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -92,19 +92,19 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #define PACKAGE_NAME "GNU make"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GNU make 4.0"
+#define PACKAGE_STRING "GNU make 4.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "make"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "4.0"
+#define PACKAGE_VERSION "4.1"
 
 /* Output sync sypport */
 #define NO_OUTPUT_SYNC
 
 /* Version number of package */
-#define VERSION "4.0"
+#define VERSION "4.1"
 
 /* Build host information. */
 #define MAKE_HOST "i386-pc-msdosdjgpp"
index c9229f06d829b61928979bda316f9a39df5bf6d7..c587e449ae54bec57042451a54e1c5665b7657db 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GNU make 4.0.
+# Generated by GNU Autoconf 2.69 for GNU make 4.1.
 #
 # Report bugs to <bug-make@gnu.org>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU make'
 PACKAGE_TARNAME='make'
-PACKAGE_VERSION='4.0'
-PACKAGE_STRING='GNU make 4.0'
+PACKAGE_VERSION='4.1'
+PACKAGE_STRING='GNU make 4.1'
 PACKAGE_BUGREPORT='bug-make@gnu.org'
 PACKAGE_URL='http://www.gnu.org/software/make/'
 
@@ -666,8 +666,6 @@ GMSGFMT
 MSGFMT
 GETTEXT_MACRO_VERSION
 USE_NLS
-EGREP
-GREP
 host_os
 host_vendor
 host_cpu
@@ -676,10 +674,13 @@ build_os
 build_vendor
 build_cpu
 build
+ac_ct_AR
 PERL
 AR
-CPP
 RANLIB
+EGREP
+GREP
+CPP
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
@@ -1334,7 +1335,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU make 4.0 to adapt to many kinds of systems.
+\`configure' configures GNU make 4.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1404,7 +1405,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU make 4.0:";;
+     short | recursive ) echo "Configuration of GNU make 4.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1412,10 +1413,12 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
   --disable-largefile     omit support for large files
@@ -1433,7 +1436,7 @@ Optional Packages:
   --with-libintl-prefix[=DIR]  search for libintl in DIR/include and DIR/lib
   --without-libintl-prefix     don't search for libintl in includedir and libdir
   --with-guile            Support GNU Guile for embedded scripting
-   --with-customs=DIR      enable remote jobs via Customs--see README.customs
+  --with-customs=DIR      enable remote jobs via Customs--see README.customs
   --with-dmalloc          use dmalloc, as in http://www.dmalloc.com
 
 Some influential environment variables:
@@ -1522,7 +1525,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU make configure 4.0
+GNU make configure 4.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2048,7 +2051,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GNU make $as_me 4.0, which was
+It was created by GNU make $as_me 4.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2435,7 +2438,10 @@ ac_config_headers="$ac_config_headers config.h"
 
 
 # Automake setup
-am__api_version='1.11'
+# We have to enable "foreign" because ChangeLog is auto-generated
+# We cannot enable -Werror because gettext 0.18.1 has invalid content
+# When we update gettext to 0.18.3 or better we can add it again.
+am__api_version='1.14'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2532,9 +2538,6 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -2545,32 +2548,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+       && test "$*" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
@@ -2582,6 +2593,16 @@ Check your system clock" "$LINENO" 5
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -2604,12 +2625,12 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -2621,10 +2642,10 @@ if test x"${install_sh}" != xset; then
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
@@ -2763,12 +2784,6 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -2856,10 +2871,10 @@ if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=1;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
 esac
 am_make=${MAKE-make}
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
@@ -2912,7 +2927,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='make'
- VERSION='4.0'
+ VERSION='4.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2940,12 +2955,22 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
 
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
 am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
@@ -2953,7 +2978,112 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
 # Checks for programs.
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+       @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+  enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3742,68 +3872,64 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-       @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
-  enableval=$enable_dependency_tracking;
-fi
+int
+main ()
+{
 
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-  am__nodep='_no'
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
 fi
- if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
 fi
-
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 depcc="$CC"   am_compiler_list=
@@ -3817,8 +3943,8 @@ else
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -3853,16 +3979,16 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -3871,8 +3997,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
@@ -3880,7 +4006,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
 
 
 
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
 do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
 
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  # Broken: fails on valid input.
+continue
 fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -4164,157 +4198,6 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-# Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Perl is needed for the test suite (only)
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PERL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PERL"; then
-  ac_cv_prog_PERL="$PERL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_PERL="perl"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_PERL" && ac_cv_prog_PERL="perl"
-fi
-fi
-PERL=$ac_cv_prog_PERL
-if test -n "$PERL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-# Specialized system macros
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
@@ -4576,64 +4459,1343 @@ done
 
 
 
-  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
-  MINIX=yes
+  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+  MINIX=yes
+else
+  MINIX=
+fi
+
+
+  if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_safe_to_define___extensions__=yes
+else
+  ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+# Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Perl is needed for the test suite (only)
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PERL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PERL"; then
+  ac_cv_prog_PERL="$PERL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PERL="perl"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_PERL" && ac_cv_prog_PERL="perl"
+fi
+fi
+PERL=$ac_cv_prog_PERL
+if test -n "$PERL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+# Needed for w32/Makefile.am
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar lib "link -lib"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$AR" && break
+  done
+fi
+if test -z "$AR"; then
+  ac_ct_AR=$AR
+  for ac_prog in ar lib "link -lib"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_AR" && break
+done
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+fi
+
+: ${AR=ar}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5
+$as_echo_n "checking the archiver ($AR) interface... " >&6; }
+if ${am_cv_ar_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  MINIX=
-fi
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+   am_cv_ar_interface=ar
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int some_variable = 0;
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
+  (eval $am_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+        am_cv_ar_interface=ar
+      else
+        am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5'
+        { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
+  (eval $am_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+        if test "$ac_status" -eq 0; then
+          am_cv_ar_interface=lib
+        else
+          am_cv_ar_interface=unknown
+        fi
+      fi
+      rm -f conftest.lib libconftest.a
 
-  if test "$MINIX" = yes; then
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5
+$as_echo "$am_cv_ar_interface" >&6; }
 
+case $am_cv_ar_interface in
+ar)
+  ;;
+lib)
+  # Microsoft lib, so override with the ar-lib wrapper script.
+  # FIXME: It is wrong to rewrite AR.
+  # But if we don't then we get into trouble of one sort or another.
+  # A longer-term fix would be to have automake use am__AR in this case,
+  # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
+  # similar.
+  AR="$am_aux_dir/ar-lib $AR"
+  ;;
+unknown)
+  as_fn_error $? "could not determine $AR interface" "$LINENO" 5
+  ;;
+esac
 
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
 
+# Specialized system macros
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-$as_echo "#define _MINIX 1" >>confdefs.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
-  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#         define __EXTENSIONS__ 1
-          $ac_includes_default
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_safe_to_define___extensions__=yes
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
 else
-  ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
-  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
 
-  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
-  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 
@@ -4698,6 +5860,12 @@ fi
 # Enable gettext, in "external" mode.
 
 
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+  [\\/$]* | ?:[\\/]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 $as_echo_n "checking whether NLS is requested... " >&6; }
@@ -6746,7 +7914,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -6792,7 +7960,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -6816,7 +7984,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -6861,7 +8029,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -6885,7 +8053,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -7343,131 +8511,6 @@ fi
 done
 
 
-if test "x$CC" != xcc; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
-                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-   test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-then
-  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
-  if test "x$CC" != xcc; then
-    # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.$ac_ext >&5'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-      rm -f conftest2.*
-      if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-        test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-      then
-       # cc works too.
-       :
-      else
-       # cc exists but doesn't like -o.
-       eval ac_cv_prog_cc_${ac_cc}_c_o=no
-      fi
-    fi
-  fi
-else
-  eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
-
-fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
 $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
@@ -7893,7 +8936,7 @@ for ac_func in strdup strndup mkstemp mktemp fdopen fileno \
                 dup dup2 getcwd realpath sigsetmask sigaction \
                 getgroups seteuid setegid setlinebuf setreuid setregid \
                 getrlimit setrlimit setvbuf pipe strerror strsignal \
-                lstat readlink atexit
+                lstat readlink atexit isatty ttyname
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -9813,23 +10856,13 @@ else
 fi
 
 
-case /$ac_cv_func_dlopen/$ac_cv_func_dlsym/$ac_cv_func_dlerror/ in #(
+case /$ac_cv_have_decl_dlopen/$ac_cv_have_decl_dlsym/$ac_cv_have_decl_dlerror/ in #(
   */no/*) :
     make_cv_load=no ;; #(
   *) :
      ;;
 esac
 
-case /$make_cv_load/$user_load/ in #(
-  */no/*) :
-    make_cv_load=no ;; #(
-  *) :
-
-$as_echo "#define MAKE_LOAD 1" >>confdefs.h
-
-   ;;
-esac
-
 # We might need -ldl
 if test "$make_cv_load" = yes; then :
 
@@ -9894,6 +10927,16 @@ fi
 
 fi
 
+case /$make_cv_load/$user_load/ in #(
+  */no/*) :
+    make_cv_load=no ;; #(
+  *) :
+
+$as_echo "#define MAKE_LOAD 1" >>confdefs.h
+
+   ;;
+esac
+
 # If we want load support, we might need to link with export-dynamic.
 # See if we can figure it out.  Unfortunately this is very difficult.
 # For example passing -rdynamic to the SunPRO linker gives a warning
@@ -10199,7 +11242,7 @@ if test "x$make_cv_load" = xno && test "x$user_load" = xyes; then :
 fi
 
 # Specify what files are to be created.
-ac_config_files="$ac_config_files Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile w32/Makefile"
+ac_config_files="$ac_config_files Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile w32/Makefile tests/config-flags.pm"
 
 
 # OK, do it!
@@ -10313,6 +11356,14 @@ LIBOBJS=$ac_libobjs
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -10329,6 +11380,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${HAVE_GUILE_TRUE}" && test -z "${HAVE_GUILE_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_GUILE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -10746,7 +11801,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GNU make $as_me 4.0, which was
+This file was extended by GNU make $as_me 4.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10814,7 +11869,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GNU make config.status 4.0
+GNU make config.status 4.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -10959,6 +12014,7 @@ do
     "config/Makefile") CONFIG_FILES="$CONFIG_FILES config/Makefile" ;;
     "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
     "w32/Makefile") CONFIG_FILES="$CONFIG_FILES w32/Makefile" ;;
+    "tests/config-flags.pm") CONFIG_FILES="$CONFIG_FILES tests/config-flags.pm" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
@@ -11594,7 +12650,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -11607,7 +12663,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -11641,21 +12697,19 @@ $as_echo X"$mf" |
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
index d73dd8cc89bc9ca90827f6bcd0f3b3e6ca3536fd..fab9a2da2cba65f824063a269217d750664c8d2b 100644 (file)
@@ -1,6 +1,6 @@
 # Process this file with autoconf to produce a configure script.
 #
-# Copyright (C) 1993-2013 Free Software Foundation, Inc.
+# Copyright (C) 1993-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -16,7 +16,7 @@
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([GNU make],[4.0],[bug-make@gnu.org])
+AC_INIT([GNU make],[4.1],[bug-make@gnu.org])
 
 AC_PREREQ([2.62])
 
@@ -26,9 +26,13 @@ AC_CONFIG_SRCDIR([vpath.c])
 AC_CONFIG_HEADERS([config.h])
 
 # Automake setup
-AM_INIT_AUTOMAKE([1.11.1 silent-rules])
+# We have to enable "foreign" because ChangeLog is auto-generated
+# We cannot enable -Werror because gettext 0.18.1 has invalid content
+# When we update gettext to 0.18.3 or better we can add it again.
+AM_INIT_AUTOMAKE([1.11.1 silent-rules foreign -Wall])
 
 # Checks for programs.
+AC_USE_SYSTEM_EXTENSIONS
 AC_PROG_CC
 AC_PROG_INSTALL
 AC_PROG_RANLIB
@@ -37,6 +41,9 @@ AC_CHECK_PROG([AR], [ar], [ar], [ar])
 # Perl is needed for the test suite (only)
 AC_CHECK_PROG([PERL], [perl], [perl], [perl])
 
+# Needed for w32/Makefile.am
+AM_PROG_AR
+
 # Specialized system macros
 AC_CANONICAL_HOST
 AC_AIX
@@ -44,7 +51,6 @@ AC_ISC_POSIX
 AC_MINIX
 
 # Enable gettext, in "external" mode.
-
 AM_GNU_GETTEXT_VERSION([0.18.1])
 AM_GNU_GETTEXT([external])
 
@@ -134,7 +140,7 @@ AC_CHECK_FUNCS([strdup strndup mkstemp mktemp fdopen fileno \
                 dup dup2 getcwd realpath sigsetmask sigaction \
                 getgroups seteuid setegid setlinebuf setreuid setregid \
                 getrlimit setrlimit setvbuf pipe strerror strsignal \
-                lstat readlink atexit])
+                lstat readlink atexit isatty ttyname])
 
 # We need to check declarations, not just existence, because on Tru64 this
 # function is not declared without special flags, which themselves cause
@@ -243,8 +249,8 @@ AS_IF([test "$PATH_SEPARATOR" = ';'],
 AC_SUBST([REMOTE]) REMOTE=stub
 use_customs=false
 AC_ARG_WITH([customs],
-[ AC_HELP_STRING([--with-customs=DIR],
-                 [enable remote jobs via Customs--see README.customs])],
+[AC_HELP_STRING([--with-customs=DIR],
+                [enable remote jobs via Customs--see README.customs])],
 [ AS_CASE([$withval], [n|no], [:],
     [make_cppflags="$CPPFLAGS"
      AS_CASE([$withval],
@@ -317,20 +323,20 @@ AC_ARG_ENABLE([load],
   [make_cv_load="$enableval" user_load="$enableval"],
   [make_cv_load="yes"])
 
-AS_CASE([/$ac_cv_func_dlopen/$ac_cv_func_dlsym/$ac_cv_func_dlerror/],
+AS_CASE([/$ac_cv_have_decl_dlopen/$ac_cv_have_decl_dlsym/$ac_cv_have_decl_dlerror/],
   [*/no/*], [make_cv_load=no])
 
+# We might need -ldl
+AS_IF([test "$make_cv_load" = yes], [
+  AC_SEARCH_LIBS([dlopen], [dl], [], [make_cv_load=])
+  ])
+
 AS_CASE([/$make_cv_load/$user_load/],
   [*/no/*], [make_cv_load=no],
   [AC_DEFINE(MAKE_LOAD, 1,
              [Define to 1 to enable 'load' support in GNU make.])
   ])
 
-# We might need -ldl
-AS_IF([test "$make_cv_load" = yes], [
-  AC_SEARCH_LIBS([dlopen], [dl], [], [make_cv_load=])
-  ])
-
 # If we want load support, we might need to link with export-dynamic.
 # See if we can figure it out.  Unfortunately this is very difficult.
 # For example passing -rdynamic to the SunPRO linker gives a warning
@@ -498,7 +504,7 @@ AS_IF([test "x$make_cv_load" = xno && test "x$user_load" = xyes],
 
 # Specify what files are to be created.
 AC_CONFIG_FILES([Makefile glob/Makefile po/Makefile.in config/Makefile \
-                 doc/Makefile w32/Makefile])
+                 doc/Makefile w32/Makefile tests/config-flags.pm])
 
 # OK, do it!
 
index aba3a3bd1d4ef86ab2081745fa35b60cfe55041b..e54ba843ba29f02b90cac340e6246bddb441a9a7 100644 (file)
@@ -1,5 +1,5 @@
 @echo off\r
-rem Copyright (C) 1994-2013 Free Software Foundation, Inc.\r
+rem Copyright (C) 1994-2014 Free Software Foundation, Inc.\r
 rem This file is part of GNU Make.\r
 rem\r
 rem GNU Make is free software; you can redistribute it and/or modify it under\r
diff --git a/debug.h b/debug.h
index 9f630d69cd9e72ba246ebc14c4c55841338a9373..9d2ec04a12ec2ab45e2303c381327872b72fbeff 100644 (file)
--- a/debug.h
+++ b/debug.h
@@ -1,5 +1,5 @@
 /* Debugging macros and interface.
-Copyright (C) 1999-2013 Free Software Foundation, Inc.
+Copyright (C) 1999-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 47b7dd3471925df79bd2ea3e06a15e3d3ca5de68..3b6f7ae7043827698f802fcd341354a1b20bdf49 100644 (file)
--- a/default.c
+++ b/default.c
@@ -1,5 +1,5 @@
 /* Data base of default implicit rules for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -38,9 +38,11 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 static char default_suffixes[]
 #ifdef VMS
-  = ".exe .olb .ln .obj .c .cxx .cc .pas .p .for .f .r .y .l .mar \
-.s .ss .i .ii .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo \
-.w .ch .cweb .web .com .sh .elc .el";
+  /* VMS should include all UNIX/POSIX + some VMS extensions */
+  = ".out .exe .a .olb .hlb .tlb .mlb .ln .o .obj .c .cxx .cc .cpp .pas .p \
+.for .f .r .y .l .ym .yl .mar .s .ss .i .ii .mod .sym .def .h .info .dvi \
+.tex .texinfo .texi .txinfo .mem .hlp .brn .rnh .rno .rnt .rnx .w .ch .cweb \
+.web .com .sh .elc .el";
 #elif defined(__EMX__)
   = ".out .a .ln .o .c .cc .C .cpp .p .f .F .m .r .y .l .ym .yl .s .S \
 .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo \
@@ -53,19 +55,35 @@ static char default_suffixes[]
 
 static struct pspec default_pattern_rules[] =
   {
+#ifdef VMS
     { "(%)", "%",
+        "@if f$$search(\"$@\") .eqs. \"\" then $(LIBRARY)/CREATE/"
+         "$(or "
+          "$(patsubst %,TEXT,$(filter %.tlb %.TLB,$@)),"
+          "$(patsubst %,HELP,$(filter %.hlb %.HLB,$@)),"
+          "$(patsubst %,MACRO,$(filter %.mlb %.MLB,$@)),"
+          "$(and "
+           "$(patsubst %,SHARE,$(filter %.olb %.OLB,$@)),"
+           "$(patsubst %,SHARE,$(filter %.exe %.EXE,$<))),"
+          "OBJECT)"
+         " $@\n"
         "$(AR) $(ARFLAGS) $@ $<" },
 
+#else
+    { "(%)", "%",
+        "$(AR) $(ARFLAGS) $@ $<" },
+#endif
     /* The X.out rules are only in BSD's default set because
        BSD Make has no null-suffix rules, so 'foo.out' and
        'foo' are the same thing.  */
 #ifdef VMS
     { "%.exe", "%",
-        "copy $< $@" },
-#else
+        "$(CP) $< $@" },
+
+#endif
     { "%.out", "%",
         "@rm -f $@ \n cp $< $@" },
-#endif
+
     /* Syntax is "ctangle foo.w foo.ch foo.c".  */
     { "%.c", "%.w %.ch",
         "$(CTANGLE) $^ $@" },
@@ -78,18 +96,20 @@ static struct pspec default_pattern_rules[] =
 static struct pspec default_terminal_rules[] =
   {
 #ifdef VMS
+
     /* RCS.  */
     { "%", "%$$5lv", /* Multinet style */
-        "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" },
+        "if f$$search(\"$@\") .nes. \"\" then +$(CHECKOUT,v)" },
     { "%", "[.$$rcs]%$$5lv", /* Multinet style */
-        "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" },
+        "if f$$search(\"$@\") .nes. \"\" then +$(CHECKOUT,v)" },
     { "%", "%_v", /* Normal style */
-        "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" },
+        "if f$$search(\"$@\") .nes. \"\" then +$(CHECKOUT,v)" },
     { "%", "[.rcs]%_v", /* Normal style */
-        "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" },
+        "if f$$search(\"$@\") .nes. \"\" then +$(CHECKOUT,v)" },
 
     /* SCCS.  */
         /* ain't no SCCS on vms */
+
 #else
     /* RCS.  */
     { "%", "%,v",
@@ -108,7 +128,7 @@ static struct pspec default_terminal_rules[] =
     { 0, 0, 0 }
   };
 
-static char *default_suffix_rules[] =
+static const char *default_suffix_rules[] =
   {
 #ifdef VMS
     ".obj.exe",
@@ -149,6 +169,8 @@ static char *default_suffix_rules[] =
     "$(COMPILE.c)/noprep/noobj/machine /list=$@ $<",
     ".c.obj",
     "$(COMPILE.c) /obj=$@ $<",
+    ".c.o",
+    "$(COMPILE.c) /obj=$@ $<",
     ".cc.ii",
     "$(COMPILE.cc)/prep /list=$@ $<",
     ".cc.ss",
@@ -157,12 +179,20 @@ static char *default_suffix_rules[] =
     "$(COMPILE.cc)/noprep/noobj/machine /list=$@ $<",
     ".cc.obj",
     "$(COMPILE.cc) /obj=$@ $<",
+    ".cc.o",
+    "$(COMPILE.cc) /obj=$@ $<",
     ".cxx.obj",
     "$(COMPILE.cxx) /obj=$@ $<",
+    ".cxx.o",
+    "$(COMPILE.cxx) /obj=$@ $<",
     ".for.obj",
     "$(COMPILE.for) /obj=$@ $<",
+    ".for.o",
+    "$(COMPILE.for) /obj=$@ $<",
     ".pas.obj",
     "$(COMPILE.pas) /obj=$@ $<",
+    ".pas.o",
+    "$(COMPILE.pas) /obj=$@ $<",
 
     ".y.c",
     "$(YACC.y) $< \n rename y_tab.c $@",
@@ -322,7 +352,8 @@ static const char *default_variables[] =
 #ifdef __VAX
     "ARCH", "VAX",
 #endif
-    "AR", "library/obj",
+    "AR", "library",
+    "LIBRARY", "library",
     "ARFLAGS", "/replace",
     "AS", "macro",
     "MACRO", "macro",
@@ -332,15 +363,21 @@ static const char *default_variables[] =
     "CC", "cc",
 #endif
     "CD", "builtin_cd",
-    "MAKE", "make",
-    "ECHO", "write sys$$output \"",
+    "ECHO", "builtin_echo",
 #ifdef GCC_IS_NATIVE
     "C++", "gcc/plus",
     "CXX", "gcc/plus",
 #else
     "C++", "cxx",
     "CXX", "cxx",
+#ifndef __ia64
     "CXXLD", "cxxlink",
+    "CXXLINK", "cxxlink",
+#else
+    /* CXXLINK is not used on VMS/IA64 */
+    "CXXLD", "link",
+    "CXXLINK", "link",
+#endif
 #endif
     "CO", "co",
     "CPP", "$(CC) /preprocess_only",
@@ -393,6 +430,7 @@ static const char *default_variables[] =
 
     "MV", "rename/new_version",
     "CP", "copy",
+    ".LIBPATTERNS", "%.olb lib%.a",
 
 #else /* !VMS */
 
@@ -523,6 +561,8 @@ static const char *default_variables[] =
     ".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a",
 #elif defined(__APPLE__)
     ".LIBPATTERNS", "lib%.dylib lib%.a",
+#elif defined(__CYGWIN__) || defined(WINDOWS32)
+    ".LIBPATTERNS", "lib%.dll.a %.dll.a lib%.a %.lib lib%.dll %.dll",
 #else
     ".LIBPATTERNS", "lib%.so lib%.a",
 #endif
@@ -546,8 +586,8 @@ set_default_suffixes (void)
   else
     {
       struct dep *d;
-      char *p = default_suffixes;
-      suffix_file->deps = enter_prereqs (PARSE_SIMPLE_SEQ (&p, struct dep),
+      const char *p = default_suffixes;
+      suffix_file->deps = enter_prereqs (PARSE_SIMPLE_SEQ ((char **)&p, struct dep),
                                          NULL);
       for (d = suffix_file->deps; d; d = d->next)
         d->file->builtin = 1;
@@ -564,7 +604,7 @@ set_default_suffixes (void)
 void
 install_default_suffix_rules (void)
 {
-  char **s;
+  const char **s;
 
   if (no_builtin_rules_flag)
     return;
@@ -576,7 +616,7 @@ install_default_suffix_rules (void)
       assert (f->cmds == 0);
       f->cmds = xmalloc (sizeof (struct commands));
       f->cmds->fileinfo.filenm = 0;
-      f->cmds->commands = s[1];
+      f->cmds->commands = xstrdup (s[1]);
       f->cmds->command_lines = 0;
       f->cmds->recipe_prefix = RECIPEPREFIX_DEFAULT;
       f->builtin = 1;
diff --git a/dep.h b/dep.h
index 13cefdc59dc46b3b19cbe842974fad8b94ae9739..b8c0d29be5cfe0b5a498ec03888ac0e875b13b43 100644 (file)
--- a/dep.h
+++ b/dep.h
@@ -1,5 +1,5 @@
 /* Definitions of dependency data structures for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/dir.c b/dir.c
index d046bd9a0d5e5e298195920705a6a7acbf200036..7e00b8f73e849f62f8a045b96f0610ea941a124b 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -1,5 +1,5 @@
 /* Directory hashing for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -674,7 +674,7 @@ dir_contents_file_exists_p (struct directory_contents *dir,
       if (d == 0)
         {
           if (errno)
-            fatal (NILF, "INTERNAL: readdir: %s\n", strerror (errno));
+            pfatal_with_name ("INTERNAL: readdir");
           break;
         }
 
@@ -1172,13 +1172,6 @@ read_dirstream (__ptr_t stream)
   return 0;
 }
 
-static void
-ansi_free (void *p)
-{
-  if (p)
-    free (p);
-}
-
 /* On 64 bit ReliantUNIX (5.44 and above) in LFS mode, stat() is actually a
  * macro for stat64().  If stat is a macro, make a local wrapper function to
  * invoke it.
@@ -1224,7 +1217,7 @@ dir_setup_glob (glob_t *gl)
 {
   gl->gl_opendir = open_dirstream;
   gl->gl_readdir = read_dirstream;
-  gl->gl_closedir = ansi_free;
+  gl->gl_closedir = free;
   gl->gl_stat = local_stat;
   /* We don't bother setting gl_lstat, since glob never calls it.
      The slot is only there for compatibility with 4.4 BSD.  */
index ed519a17cad69bb99160e9fd4f84be4ef3822542..03977bac31078317d33479c6e9acaaf7eafd1d0b 100644 (file)
@@ -1,5 +1,5 @@
 # -*-Makefile-*-, or close enough
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
+# Copyright (C) 2000-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -22,14 +22,3 @@ info_TEXINFOS =      make.texi
 make_TEXINFOS = fdl.texi make-stds.texi
 
 CLEANFILES = make*.html
-
-## ----------------------------- ##
-## Other documentation formats.  ##
-## ----------------------------- ##
-
-html: make_1.html
-
-make_1.html: $(info_TEXINFOS) $(make_TEXINFOS)
-       $(TEXI2HTML) $(TEXI2HTML_FLAGS) $(srcdir)/make.texi
-
-.PHONY: html
index c7a018fbbb34df2482a85fbdaf5819c723706b6f..f930c6aabac24e73900ffd9c77e61b73f4d28465 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,7 +15,7 @@
 @SET_MAKE@
 
 # -*-Makefile-*-, or close enough
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
+# Copyright (C) 2000-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -68,9 +95,10 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = doc
-DIST_COMMON = $(make_TEXINFOS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in $(srcdir)/stamp-vti \
-       $(srcdir)/version.texi
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(make_TEXINFOS) $(top_srcdir)/config/mdate-sh \
+       $(srcdir)/version.texi $(srcdir)/stamp-vti \
+       $(top_srcdir)/config/texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
        $(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
@@ -86,14 +114,48 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
+AM_V_DVIPS = $(am__v_DVIPS_@AM_V@)
+am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@)
+am__v_DVIPS_0 = @echo "  DVIPS   " $@;
+am__v_DVIPS_1 = 
+AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@)
+am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@)
+am__v_MAKEINFO_0 = @echo "  MAKEINFO" $@;
+am__v_MAKEINFO_1 = 
+AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@)
+am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@)
+am__v_INFOHTML_0 = @echo "  INFOHTML" $@;
+am__v_INFOHTML_1 = 
+AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@)
+am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@)
+am__v_TEXI2DVI_0 = @echo "  TEXI2DVI" $@;
+am__v_TEXI2DVI_1 = 
+AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@)
+am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@)
+am__v_TEXI2PDF_0 = @echo "  TEXI2PDF" $@;
+am__v_TEXI2PDF_1 = 
+AM_V_texinfo = $(am__v_texinfo_@AM_V@)
+am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@)
+am__v_texinfo_0 = -q
+am__v_texinfo_1 = 
+AM_V_texidevnull = $(am__v_texidevnull_@AM_V@)
+am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
+am__v_texidevnull_0 = > /dev/null
+am__v_texidevnull_1 = 
 INFO_DEPS = $(srcdir)/make.info
 TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex
 am__TEXINFO_TEX_DIR = $(top_srcdir)/config
@@ -140,6 +202,7 @@ am__uninstall_files_from_dir = { \
     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -224,6 +287,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
@@ -288,9 +352,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu doc/Makefile
+         $(AUTOMAKE) --foreign doc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -311,7 +375,7 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 .texi.info:
-       restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
        am__cwd=`pwd` && $(am__cd) $(srcdir) && \
        rm -rf $$backupdir && mkdir $$backupdir && \
        if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
@@ -333,27 +397,25 @@ $(am__aclocal_m4_deps):
        rm -rf $$backupdir; exit $$rc
 
 .texi.dvi:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2DVI) $<
+       $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+       $<
 
 .texi.pdf:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2PDF) $<
+       $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+       $<
 
 .texi.html:
-       rm -rf $(@:.html=.htp)
-       if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+       $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+       $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
         -o $(@:.html=.htp) $<; \
        then \
-         rm -rf $@; \
-         if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-           mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+         rm -rf $@ && mv $(@:.html=.htp) $@; \
        else \
-         if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-           rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
-         exit 1; \
+         rm -rf $(@:.html=.htp); exit 1; \
        fi
 $(srcdir)/make.info: make.texi $(srcdir)/version.texi $(make_TEXINFOS)
 make.dvi: make.texi $(srcdir)/version.texi $(make_TEXINFOS)
@@ -379,8 +441,8 @@ mostlyclean-vti:
 maintainer-clean-vti:
        -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
 .dvi.ps:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-       $(DVIPS) -o $@ $<
+       $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(DVIPS) $(AM_V_texinfo) -o $@ $<
 
 uninstall-dvi-am:
        @$(NORMAL_UNINSTALL)
@@ -459,8 +521,7 @@ dist-info: $(INFO_DEPS)
        done
 
 mostlyclean-aminfo:
-       -rm -rf make.aux make.cp make.cps make.fn make.fns make.ky make.kys \
-         make.log make.pg make.tmp make.toc make.tp make.tps make.vr
+       -rm -rf make.t2d make.t2p
 
 clean-aminfo:
        -test -z "make.dvi make.pdf make.ps make.html" \
@@ -472,11 +533,11 @@ maintainer-clean-aminfo:
          echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
          rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
        done
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -562,6 +623,8 @@ dvi: dvi-am
 
 dvi-am: $(DVIS)
 
+html: html-am
+
 html-am: $(HTMLS)
 
 info: info-am
@@ -710,26 +773,20 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-aminfo clean-generic \
-       dist-info distclean distclean-generic distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
-       maintainer-clean-aminfo maintainer-clean-generic \
-       maintainer-clean-vti mostlyclean mostlyclean-aminfo \
-       mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \
-       uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
-       uninstall-info-am uninstall-pdf-am uninstall-ps-am
-
-
-html: make_1.html
-
-make_1.html: $(info_TEXINFOS) $(make_TEXINFOS)
-       $(TEXI2HTML) $(TEXI2HTML_FLAGS) $(srcdir)/make.texi
-
-.PHONY: html
+       cscopelist-am ctags-am dist-info distclean distclean-generic \
+       distdir dvi dvi-am html html-am info info-am install \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-aminfo \
+       maintainer-clean-generic maintainer-clean-vti mostlyclean \
+       mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
+       pdf-am ps ps-am tags-am uninstall uninstall-am \
+       uninstall-dvi-am uninstall-html-am uninstall-info-am \
+       uninstall-pdf-am uninstall-ps-am
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index cb71f05a175f841e91d37d73f2ac911100e40e7b..9c3bbe56e91de3ec7bcb6c58154034a2d7ad4090 100644 (file)
@@ -97,7 +97,7 @@ format, SGML or XML using a publicly available
 DTD, and standard-conforming simple HTML,
 PostScript or PDF designed for human modification.  Examples
 of transparent image formats include PNG, XCF and
-JPG.  Opaque formats include proprietary formats that can be
+JPG@.  Opaque formats include proprietary formats that can be
 read and edited only by proprietary word processors, SGML or
 XML for which the DTD and/or processing tools are
 not generally available, and the machine-generated HTML,
index c6ad6e6a724c18bb01542d1c6d5239fca1c0d831..7a54c1b12ffb70745dc0e541372abcc5910c3f53 100644 (file)
@@ -1,15 +1,15 @@
-This is make.info, produced by makeinfo version 4.13 from make.texi.
+This is make.info, produced by makeinfo version 5.2 from make.texi.
 
-This file documents the GNU `make' utility, which determines
-automatically which pieces of a large program need to be recompiled,
-and issues the commands to recompile them.
+This file documents the GNU 'make' utility, which determines
+automatically which pieces of a large program need to be recompiled, and
+issues the commands to recompile them.
 
-   This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
-Manual', for GNU `make' version 4.0.
+   This is Edition 0.73, last updated 5 October 2014, of 'The GNU Make
+Manual', for GNU 'make' version 4.1.
 
    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -22,7 +22,6 @@ Manual', for GNU `make' version 4.0.
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
      modify this GNU manual.  Buying copies from the FSF supports it in
      developing GNU and promoting software freedom."
-
 INFO-DIR-SECTION Software development
 START-INFO-DIR-ENTRY
 * Make: (make).            Remake files automatically.
@@ -30,172 +29,172 @@ END-INFO-DIR-ENTRY
 
 \1f
 Indirect:
-make.info-1: 1338
-make.info-2: 291887
+make.info-1: 1342
+make.info-2: 305689
 \1f
 Tag Table:
 (Indirect)
-Node: Top\7f1338
+Node: Top\7f1342
 Node: Overview\7f16115
-Node: Preparing\7f17130
-Node: Reading\7f18101
-Node: Bugs\7f19028
-Node: Introduction\7f20857
-Node: Rule Introduction\7f22454
-Node: Simple Makefile\7f24387
-Node: How Make Works\7f28129
-Node: Variables Simplify\7f30784
-Node: make Deduces\7f32990
-Node: Combine By Prerequisite\7f34723
-Node: Cleanup\7f35752
-Node: Makefiles\7f37170
-Node: Makefile Contents\7f38006
-Node: Splitting Lines\7f41188
-Node: Makefile Names\7f42949
-Node: Include\7f44560
-Ref: Include-Footnote-1\7f48308
-Node: MAKEFILES Variable\7f48442
-Node: Remaking Makefiles\7f49983
-Node: Overriding Makefiles\7f54208
-Node: Reading Makefiles\7f56236
-Node: Secondary Expansion\7f59690
-Node: Rules\7f67152
-Node: Rule Example\7f69825
-Node: Rule Syntax\7f70679
-Node: Prerequisite Types\7f73272
-Node: Wildcards\7f76139
-Node: Wildcard Examples\7f77858
-Node: Wildcard Pitfall\7f79207
-Node: Wildcard Function\7f80996
-Node: Directory Search\7f82780
-Node: General Search\7f83915
-Node: Selective Search\7f85622
-Node: Search Algorithm\7f88610
-Node: Recipes/Search\7f91128
-Node: Implicit/Search\7f92451
-Node: Libraries/Search\7f93393
-Node: Phony Targets\7f95364
-Node: Force Targets\7f100440
-Node: Empty Targets\7f101477
-Node: Special Targets\7f102782
-Node: Multiple Targets\7f110640
-Node: Multiple Rules\7f112505
-Node: Static Pattern\7f114723
-Node: Static Usage\7f115375
-Node: Static versus Implicit\7f119095
-Node: Double-Colon\7f120836
-Node: Automatic Prerequisites\7f122596
-Node: Recipes\7f126861
-Node: Recipe Syntax\7f128034
-Node: Splitting Recipe Lines\7f130149
-Node: Variables in Recipes\7f133302
-Node: Echoing\7f134628
-Node: Execution\7f135903
-Ref: Execution-Footnote-1\7f137316
-Node: One Shell\7f137461
-Node: Choosing the Shell\7f140776
-Node: Parallel\7f144922
-Node: Parallel Output\7f147591
-Node: Parallel Input\7f152020
-Node: Errors\7f153141
-Node: Interrupts\7f156809
-Node: Recursion\7f158392
-Node: MAKE Variable\7f160492
-Node: Variables/Recursion\7f162739
-Node: Options/Recursion\7f168185
-Node: -w Option\7f174203
-Node: Canned Recipes\7f175198
-Node: Empty Recipes\7f178183
-Node: Using Variables\7f179331
-Node: Reference\7f182761
-Node: Flavors\7f184319
-Node: Advanced\7f190301
-Node: Substitution Refs\7f190806
-Node: Computed Names\7f192359
-Node: Values\7f196906
-Node: Setting\7f197823
-Node: Appending\7f200730
-Node: Override Directive\7f204674
-Node: Multi-Line\7f206301
-Node: Undefine Directive\7f209125
-Node: Environment\7f210211
-Node: Target-specific\7f212462
-Node: Pattern-specific\7f215489
-Node: Suppressing Inheritance\7f217335
-Node: Special Variables\7f218788
-Node: Conditionals\7f224226
-Node: Conditional Example\7f224939
-Node: Conditional Syntax\7f227502
-Node: Testing Flags\7f233263
-Node: Functions\7f234364
-Node: Syntax of Functions\7f235924
-Node: Text Functions\7f238258
-Node: File Name Functions\7f246829
-Node: Conditional Functions\7f252051
-Node: Foreach Function\7f254425
-Node: File Function\7f257638
-Node: Call Function\7f259639
-Node: Value Function\7f262524
-Node: Eval Function\7f263961
-Node: Origin Function\7f266237
-Node: Flavor Function\7f269455
-Node: Make Control Functions\7f270497
-Node: Shell Function\7f272183
-Node: Guile Function\7f273816
-Node: Running\7f274566
-Node: Makefile Arguments\7f276549
-Node: Goals\7f277265
-Node: Instead of Execution\7f282004
-Node: Avoiding Compilation\7f285717
-Node: Overriding\7f287691
-Node: Testing\7f290003
-Node: Options Summary\7f291887
-Node: Implicit Rules\7f303579
-Node: Using Implicit\7f305725
-Node: Catalogue of Rules\7f309244
-Node: Implicit Variables\7f318592
-Node: Chained Rules\7f323705
-Node: Pattern Rules\7f327716
-Node: Pattern Intro\7f329250
-Node: Pattern Examples\7f331838
-Node: Automatic Variables\7f333645
-Node: Pattern Match\7f341003
-Node: Match-Anything Rules\7f344326
-Node: Canceling Rules\7f348205
-Node: Last Resort\7f348919
-Node: Suffix Rules\7f350748
-Node: Implicit Rule Search\7f354473
-Node: Archives\7f357973
-Node: Archive Members\7f358678
-Node: Archive Update\7f360288
-Node: Archive Symbols\7f362199
-Node: Archive Pitfalls\7f363433
-Node: Archive Suffix Rules\7f364155
-Node: Extending make\7f365702
-Node: Guile Integration\7f366839
-Node: Guile Types\7f368065
-Node: Guile Interface\7f370487
-Node: Guile Example\7f371774
-Node: Loading Objects\7f373965
-Node: load Directive\7f375452
-Node: Remaking Loaded Objects\7f378206
-Node: Loaded Object API\7f378840
-Node: Loaded Object Example\7f385601
-Node: Features\7f387849
-Node: Missing\7f397021
-Node: Makefile Conventions\7f400749
-Node: Makefile Basics\7f401728
-Node: Utilities in Makefiles\7f404895
-Node: Command Variables\7f407393
-Node: DESTDIR\7f410632
-Node: Directory Variables\7f412799
-Node: Standard Targets\7f428164
-Node: Install Command Categories\7f442269
-Node: Quick Reference\7f446795
-Node: Error Messages\7f459490
-Node: Complex Makefile\7f467403
-Node: GNU Free Documentation License\7f476021
-Node: Concept Index\7f501183
-Node: Name Index\7f571815
+Node: Preparing\7f17128
+Node: Reading\7f18096
+Node: Bugs\7f19023
+Node: Introduction\7f20852
+Node: Rule Introduction\7f22445
+Node: Simple Makefile\7f24378
+Node: How Make Works\7f28114
+Node: Variables Simplify\7f30763
+Node: make Deduces\7f32969
+Node: Combine By Prerequisite\7f34702
+Node: Cleanup\7f35731
+Node: Makefiles\7f37149
+Node: Makefile Contents\7f37985
+Node: Splitting Lines\7f41158
+Node: Makefile Names\7f42918
+Node: Include\7f44525
+Ref: Include-Footnote-1\7f48269
+Node: MAKEFILES Variable\7f48403
+Node: Remaking Makefiles\7f49944
+Node: Overriding Makefiles\7f54169
+Node: Reading Makefiles\7f56197
+Node: Secondary Expansion\7f59659
+Node: Rules\7f67120
+Node: Rule Example\7f69793
+Node: Rule Syntax\7f70646
+Node: Prerequisite Types\7f73241
+Node: Wildcards\7f76108
+Node: Wildcard Examples\7f77827
+Node: Wildcard Pitfall\7f79177
+Node: Wildcard Function\7f80966
+Node: Directory Search\7f82750
+Node: General Search\7f83885
+Node: Selective Search\7f85592
+Node: Search Algorithm\7f88582
+Node: Recipes/Search\7f91100
+Node: Implicit/Search\7f92423
+Node: Libraries/Search\7f93365
+Node: Phony Targets\7f95336
+Node: Force Targets\7f100173
+Node: Empty Targets\7f101210
+Node: Special Targets\7f102512
+Node: Multiple Targets\7f110385
+Node: Multiple Rules\7f112245
+Node: Static Pattern\7f114463
+Node: Static Usage\7f115115
+Node: Static versus Implicit\7f118834
+Node: Double-Colon\7f120574
+Node: Automatic Prerequisites\7f122334
+Node: Recipes\7f126595
+Node: Recipe Syntax\7f127767
+Node: Splitting Recipe Lines\7f129882
+Node: Variables in Recipes\7f133035
+Node: Echoing\7f134361
+Node: Execution\7f135636
+Ref: Execution-Footnote-1\7f137049
+Node: One Shell\7f137194
+Node: Choosing the Shell\7f140509
+Node: Parallel\7f144653
+Node: Parallel Output\7f147322
+Node: Parallel Input\7f151749
+Node: Errors\7f152868
+Node: Interrupts\7f156532
+Node: Recursion\7f158115
+Node: MAKE Variable\7f160212
+Node: Variables/Recursion\7f162455
+Node: Options/Recursion\7f167900
+Node: -w Option\7f173918
+Node: Canned Recipes\7f174913
+Node: Empty Recipes\7f177896
+Node: Using Variables\7f179044
+Node: Reference\7f182472
+Node: Flavors\7f184030
+Node: Advanced\7f190009
+Node: Substitution Refs\7f190514
+Node: Computed Names\7f192067
+Node: Values\7f196615
+Node: Setting\7f197532
+Node: Appending\7f200441
+Node: Override Directive\7f204383
+Node: Multi-Line\7f206010
+Node: Undefine Directive\7f208834
+Node: Environment\7f209923
+Node: Target-specific\7f212175
+Node: Pattern-specific\7f215202
+Node: Suppressing Inheritance\7f217049
+Node: Special Variables\7f218502
+Node: Conditionals\7f224911
+Node: Conditional Example\7f225624
+Node: Conditional Syntax\7f228187
+Node: Testing Flags\7f233944
+Node: Functions\7f235045
+Node: Syntax of Functions\7f236605
+Node: Text Functions\7f238939
+Node: File Name Functions\7f247504
+Node: Conditional Functions\7f252730
+Node: Foreach Function\7f255105
+Node: File Function\7f258318
+Node: Call Function\7f260396
+Node: Value Function\7f263281
+Node: Eval Function\7f264718
+Node: Origin Function\7f266994
+Node: Flavor Function\7f270220
+Node: Make Control Functions\7f271264
+Node: Shell Function\7f272950
+Node: Guile Function\7f274583
+Node: Running\7f275333
+Node: Makefile Arguments\7f277314
+Node: Goals\7f278030
+Node: Instead of Execution\7f282769
+Node: Avoiding Compilation\7f286484
+Node: Overriding\7f288459
+Node: Testing\7f290771
+Node: Options Summary\7f292655
+Node: Implicit Rules\7f305689
+Node: Using Implicit\7f307826
+Node: Catalogue of Rules\7f311345
+Node: Implicit Variables\7f320689
+Node: Chained Rules\7f325762
+Node: Pattern Rules\7f329772
+Node: Pattern Intro\7f331306
+Node: Pattern Examples\7f333888
+Node: Automatic Variables\7f335695
+Node: Pattern Match\7f343045
+Node: Match-Anything Rules\7f346368
+Node: Canceling Rules\7f350247
+Node: Last Resort\7f350961
+Node: Suffix Rules\7f352790
+Node: Implicit Rule Search\7f356515
+Node: Archives\7f360014
+Node: Archive Members\7f360719
+Node: Archive Update\7f362329
+Node: Archive Symbols\7f364240
+Node: Archive Pitfalls\7f365473
+Node: Archive Suffix Rules\7f366195
+Node: Extending make\7f367743
+Node: Guile Integration\7f368880
+Node: Guile Types\7f370108
+Node: Guile Interface\7f372528
+Node: Guile Example\7f373814
+Node: Loading Objects\7f376005
+Node: load Directive\7f377495
+Node: Remaking Loaded Objects\7f380249
+Node: Loaded Object API\7f380883
+Node: Loaded Object Example\7f387645
+Node: Features\7f389892
+Node: Missing\7f399059
+Node: Makefile Conventions\7f402784
+Node: Makefile Basics\7f403763
+Node: Utilities in Makefiles\7f406930
+Node: Command Variables\7f409429
+Node: DESTDIR\7f412669
+Node: Directory Variables\7f414836
+Node: Standard Targets\7f430192
+Node: Install Command Categories\7f444298
+Node: Quick Reference\7f448824
+Node: Error Messages\7f461529
+Node: Complex Makefile\7f469425
+Node: GNU Free Documentation License\7f478043
+Node: Concept Index\7f503185
+Node: Name Index\7f573971
 \1f
 End Tag Table
index 4025d3ee52ff19785ac5d60af186d9f3c50bf5b3..2a1a922433a4acfe43087ac87449e638dda3a84c 100644 (file)
@@ -1,15 +1,15 @@
-This is make.info, produced by makeinfo version 4.13 from make.texi.
+This is make.info, produced by makeinfo version 5.2 from make.texi.
 
-This file documents the GNU `make' utility, which determines
-automatically which pieces of a large program need to be recompiled,
-and issues the commands to recompile them.
+This file documents the GNU 'make' utility, which determines
+automatically which pieces of a large program need to be recompiled, and
+issues the commands to recompile them.
 
-   This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
-Manual', for GNU `make' version 4.0.
+   This is Edition 0.73, last updated 5 October 2014, of 'The GNU Make
+Manual', for GNU 'make' version 4.1.
 
    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -22,7 +22,6 @@ Manual', for GNU `make' version 4.0.
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
      modify this GNU manual.  Buying copies from the FSF supports it in
      developing GNU and promoting software freedom."
-
 INFO-DIR-SECTION Software development
 START-INFO-DIR-ENTRY
 * Make: (make).            Remake files automatically.
@@ -31,19 +30,19 @@ END-INFO-DIR-ENTRY
 \1f
 File: make.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
 
-GNU `make'
+GNU 'make'
 **********
 
-This file documents the GNU `make' utility, which determines
-automatically which pieces of a large program need to be recompiled,
-and issues the commands to recompile them.
+This file documents the GNU 'make' utility, which determines
+automatically which pieces of a large program need to be recompiled, and
+issues the commands to recompile them.
 
-   This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
-Manual', for GNU `make' version 4.0.
+   This is Edition 0.73, last updated 5 October 2014, of 'The GNU Make
+Manual', for GNU 'make' version 4.1.
 
    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -59,26 +58,26 @@ Manual', for GNU `make' version 4.0.
 
 * Menu:
 
-* Overview::                    Overview of `make'.
-* Introduction::                An introduction to `make'.
-* Makefiles::                   Makefiles tell `make' what to do.
+* Overview::                    Overview of 'make'.
+* Introduction::                An introduction to 'make'.
+* Makefiles::                   Makefiles tell 'make' what to do.
 * Rules::                       Rules describe when a file must be remade.
 * Recipes::                     Recipes say how to remake a file.
 * Using Variables::             You can use variables to avoid repetition.
 * Conditionals::                Use or ignore parts of the makefile based
                                   on the values of variables.
 * Functions::                   Many powerful ways to manipulate text.
-* Invoking make: Running.       How to invoke `make' on the command line.
+* Invoking make: Running.       How to invoke 'make' on the command line.
 * Implicit Rules::              Use implicit rules to treat many files alike,
                                   based on their file names.
-* Archives::                    How `make' can update library archives.
-* Extending make::              Using extensions to `make'.
-* Features::                    Features GNU `make' has over other `make's.
-* Missing::                     What GNU `make' lacks from other `make's.
+* Archives::                    How 'make' can update library archives.
+* Extending make::              Using extensions to 'make'.
+* Features::                    Features GNU 'make' has over other 'make's.
+* Missing::                     What GNU 'make' lacks from other 'make's.
 * Makefile Conventions::        Conventions for writing makefiles for
                                   GNU programs.
 * Quick Reference::             A quick reference for experienced users.
-* Error Messages::              A list of common errors generated by `make'.
+* Error Messages::              A list of common errors generated by 'make'.
 * Complex Makefile::            A real example of a straightforward,
                                   but nontrivial, makefile.
 
@@ -86,11 +85,11 @@ Manual', for GNU `make' version 4.0.
 * Concept Index::               Index of Concepts.
 * Name Index::                  Index of Functions, Variables, & Directives.
 
- --- The Detailed Node Listing ---
+ -- The Detailed Node Listing --
 
-Overview of `make'
+Overview of 'make'
 
-* Preparing::                   Preparing and running `make'.
+* Preparing::                   Preparing and running 'make'.
 * Reading::                     On reading this text.
 * Bugs::                        Problems and bugs.
 
@@ -98,9 +97,9 @@ An Introduction to Makefiles
 
 * Rule Introduction::           What a rule looks like.
 * Simple Makefile::             A simple makefile.
-* How Make Works::              How `make' processes this makefile.
+* How Make Works::              How 'make' processes this makefile.
 * Variables Simplify::          Variables make makefiles simpler.
-* make Deduces::                Letting `make' deduce the recipes.
+* make Deduces::                Letting 'make' deduce the recipes.
 * Combine By Prerequisite::     Another style of makefile.
 * Cleanup::                     Rules for cleaning the directory.
 
@@ -125,7 +124,7 @@ Writing Rules
 * Rule Example::                An example explained.
 * Rule Syntax::                 General syntax explained.
 * Prerequisite Types::          There are two types of prerequisites.
-* Wildcards::                   Using wildcard characters such as `*'.
+* Wildcards::                   Using wildcard characters such as '*'.
 * Directory Search::            Searching other directories for source files.
 * Phony Targets::               Using a target that is not a real file's name.
 * Force Targets::               You can use a target without a recipe
@@ -176,19 +175,19 @@ Writing Recipes in Rules
 * Parallel::                    How recipes can be executed in parallel.
 * Errors::                      What happens after a recipe execution error.
 * Interrupts::                  What happens when a recipe is interrupted.
-* Recursion::                   Invoking `make' from makefiles.
+* Recursion::                   Invoking 'make' from makefiles.
 * Canned Recipes::              Defining canned recipes.
 * Empty Recipes::               Defining useful, do-nothing recipes.
 
 Recipe Syntax
 
 * Splitting Recipe Lines::      Breaking long recipe lines for readability.
-* Variables in Recipes::        Using `make' variables in recipes.
+* Variables in Recipes::        Using 'make' variables in recipes.
 
 Recipe Execution
 
 * One Shell::                   One shell for all lines in a recipe.
-* Choosing the Shell::          How `make' chooses the shell used
+* Choosing the Shell::          How 'make' chooses the shell used
                                   to run recipes.
 
 Parallel Execution
@@ -196,13 +195,13 @@ Parallel Execution
 * Parallel Output::             Handling output during parallel execution
 * Parallel Input::              Handling input during parallel execution
 
-Recursive Use of `make'
+Recursive Use of 'make'
 
-* MAKE Variable::               The special effects of using `$(MAKE)'.
-* Variables/Recursion::         How to communicate variables to a sub-`make'.
-* Options/Recursion::           How to communicate options to a sub-`make'.
-* -w Option::                   How the `-w' or `--print-directory' option
-                                  helps debug use of recursive `make' commands.
+* MAKE Variable::               The special effects of using '$(MAKE)'.
+* Variables/Recursion::         How to communicate variables to a sub-'make'.
+* Options/Recursion::           How to communicate options to a sub-'make'.
+* -w Option::                   How the '-w' or '--print-directory' option
+                                  helps debug use of recursive 'make' commands.
 
 How to Use Variables
 
@@ -256,7 +255,7 @@ Functions for Transforming Text
 * Shell Function::              Substitute the output of a shell command.
 * Guile Function::              Use GNU Guile embedded scripting language.
 
-How to Run `make'
+How to Run 'make'
 
 * Makefile Arguments::          How to specify which makefile to use.
 * Goals::                       How to use goal arguments to specify which
@@ -276,7 +275,7 @@ Using Implicit Rules
 
 * Using Implicit::              How to use an existing implicit rule
                                   to get the recipes for updating a file.
-* Catalogue of Rules::          A list of built-in implicit rules.
+* Catalogue of Rules::          A list of built-in rules.
 * Implicit Variables::          How to change what predefined rules do.
 * Chained Rules::               How to use a chain of implicit rules.
 * Pattern Rules::               How to define new implicit rules.
@@ -298,7 +297,7 @@ Defining and Redefining Pattern Rules
                                   target file whatever.
 * Canceling Rules::             How to override or cancel built-in rules.
 
-Using `make' to Update Archive Files
+Using 'make' to Update Archive Files
 
 * Archive Members::             Archive members as targets.
 * Archive Update::              The implicit rule for archive member targets.
@@ -310,16 +309,16 @@ Implicit Rule for Archive Member Targets
 
 * Archive Symbols::             How to update archive symbol directories.
 
-Extending GNU `make'
+Extending GNU 'make'
 
 * Guile Integration::           Using Guile as an embedded scripting language.
 * Loading Objects::             Loading dynamic objects as extensions.
 
 GNU Guile Integration
 
-* Guile Types::                 Converting Guile types to `make' strings.
-* Guile Interface::             Invoking `make' functions from Guile.
-* Guile Example::               Example using Guile in `make'.
+* Guile Types::                 Converting Guile types to 'make' strings.
+* Guile Interface::             Invoking 'make' functions from Guile.
+* Guile Example::               Example using Guile in 'make'.
 
 Loading Dynamic Objects
 
@@ -328,30 +327,31 @@ Loading Dynamic Objects
 * Loaded Object API::           Programmatic interface for loaded objects.
 * Loaded Object Example::       Example of a loaded object
 
+
 \1f
 File: make.info,  Node: Overview,  Next: Introduction,  Prev: Top,  Up: Top
 
-1 Overview of `make'
+1 Overview of 'make'
 ********************
 
-The `make' utility automatically determines which pieces of a large
+The 'make' utility automatically determines which pieces of a large
 program need to be recompiled, and issues commands to recompile them.
-This manual describes GNU `make', which was implemented by Richard
+This manual describes GNU 'make', which was implemented by Richard
 Stallman and Roland McGrath.  Development since Version 3.76 has been
 handled by Paul D. Smith.
 
-   GNU `make' conforms to section 6.2 of `IEEE Standard 1003.2-1992'
-(POSIX.2).  
+   GNU 'make' conforms to section 6.2 of 'IEEE Standard 1003.2-1992'
+(POSIX.2).
 
-   Our examples show C programs, since they are most common, but you
-can use `make' with any programming language whose compiler can be run
-with a shell command.  Indeed, `make' is not limited to programs.  You
-can use it to describe any task where some files must be updated
+   Our examples show C programs, since they are most common, but you can
+use 'make' with any programming language whose compiler can be run with
+a shell command.  Indeed, 'make' is not limited to programs.  You can
+use it to describe any task where some files must be updated
 automatically from others whenever the others change.
 
 * Menu:
 
-* Preparing::                   Preparing and running `make'.
+* Preparing::                   Preparing and running 'make'.
 * Reading::                     On reading this text.
 * Bugs::                        Problems and bugs.
 
@@ -361,24 +361,24 @@ File: make.info,  Node: Preparing,  Next: Reading,  Prev: Overview,  Up: Overvie
 Preparing and Running Make
 ==========================
 
-   To prepare to use `make', you must write a file called the
-"makefile" that describes the relationships among files in your program
-and provides commands for updating each file.  In a program, typically,
-the executable file is updated from object files, which are in turn
-made by compiling source files.
+To prepare to use 'make', you must write a file called the "makefile"
+that describes the relationships among files in your program and
+provides commands for updating each file.  In a program, typically, the
+executable file is updated from object files, which are in turn made by
+compiling source files.
 
    Once a suitable makefile exists, each time you change some source
 files, this simple shell command:
 
      make
 
-suffices to perform all necessary recompilations.  The `make' program
-uses the makefile data base and the last-modification times of the
-files to decide which of the files need to be updated.  For each of
-those files, it issues the recipes recorded in the data base.
+suffices to perform all necessary recompilations.  The 'make' program
+uses the makefile data base and the last-modification times of the files
+to decide which of the files need to be updated.  For each of those
+files, it issues the recipes recorded in the data base.
 
-   You can provide command line arguments to `make' to control which
-files should be recompiled, or how.  *Note How to Run `make': Running.
+   You can provide command line arguments to 'make' to control which
+files should be recompiled, or how.  *Note How to Run 'make': Running.
 
 \1f
 File: make.info,  Node: Reading,  Next: Bugs,  Prev: Preparing,  Up: Overview
@@ -386,17 +386,17 @@ File: make.info,  Node: Reading,  Next: Bugs,  Prev: Preparing,  Up: Overview
 1.1 How to Read This Manual
 ===========================
 
-If you are new to `make', or are looking for a general introduction,
+If you are new to 'make', or are looking for a general introduction,
 read the first few sections of each chapter, skipping the later
 sections.  In each chapter, the first few sections contain introductory
 or general information and the later sections contain specialized or
 technical information.  The exception is the second chapter, *note An
 Introduction to Makefiles: Introduction, all of which is introductory.
 
-   If you are familiar with other `make' programs, see *note Features
-of GNU `make': Features, which lists the enhancements GNU `make' has,
-and *note Incompatibilities and Missing Features: Missing, which
-explains the few things GNU `make' lacks that others have.
+   If you are familiar with other 'make' programs, see *note Features of
+GNU 'make': Features, which lists the enhancements GNU 'make' has, and
+*note Incompatibilities and Missing Features: Missing, which explains
+the few things GNU 'make' lacks that others have.
 
    For a quick summary, see *note Options Summary::, *note Quick
 Reference::, and *note Special Targets::.
@@ -407,9 +407,9 @@ File: make.info,  Node: Bugs,  Prev: Reading,  Up: Overview
 1.2 Problems and Bugs
 =====================
 
-If you have problems with GNU `make' or think you've found a bug,
-please report it to the developers; we cannot promise to do anything but
-we might well want to fix it.
+If you have problems with GNU 'make' or think you've found a bug, please
+report it to the developers; we cannot promise to do anything but we
+might well want to fix it.
 
    Before reporting a bug, make sure you've actually found a real bug.
 Carefully reread the documentation and see if it really says you can do
@@ -419,14 +419,14 @@ documentation!
 
    Before reporting a bug or trying to fix it yourself, try to isolate
 it to the smallest possible makefile that reproduces the problem.  Then
-send us the makefile and the exact results `make' gave you, including
+send us the makefile and the exact results 'make' gave you, including
 any error or warning messages.  Please don't paraphrase these messages:
 it's best to cut and paste them into your report.  When generating this
-small makefile, be sure to not use any non-free or unusual tools in
-your recipes: you can almost always emulate what such a tool would do
-with simple shell commands.  Finally, be sure to explain what you
-expected to occur; this will help us decide whether the problem was
-really in the documentation.
+small makefile, be sure to not use any non-free or unusual tools in your
+recipes: you can almost always emulate what such a tool would do with
+simple shell commands.  Finally, be sure to explain what you expected to
+occur; this will help us decide whether the problem was really in the
+documentation.
 
    Once you have a precise problem you can report it in one of two ways.
 Either send electronic mail to:
@@ -438,11 +438,11 @@ or use our Web-based project management tool, at:
          http://savannah.gnu.org/projects/make/
 
 In addition to the information above, please be careful to include the
-version number of `make' you are using.  You can get this information
-with the command `make --version'.  Be sure also to include the type of
+version number of 'make' you are using.  You can get this information
+with the command 'make --version'.  Be sure also to include the type of
 machine and operating system you are using.  One way to obtain this
 information is by looking at the final lines of output from the command
-`make --help'.
+'make --help'.
 
 \1f
 File: make.info,  Node: Introduction,  Next: Makefiles,  Prev: Overview,  Up: Top
@@ -450,31 +450,31 @@ File: make.info,  Node: Introduction,  Next: Makefiles,  Prev: Overview,  Up: To
 2 An Introduction to Makefiles
 ******************************
 
-You need a file called a "makefile" to tell `make' what to do.  Most
-often, the makefile tells `make' how to compile and link a program.  
+You need a file called a "makefile" to tell 'make' what to do.  Most
+often, the makefile tells 'make' how to compile and link a program.
 
-   In this chapter, we will discuss a simple makefile that describes
-how to compile and link a text editor which consists of eight C source
-files and three header files.  The makefile can also tell `make' how to
-run miscellaneous commands when explicitly asked (for example, to remove
+   In this chapter, we will discuss a simple makefile that describes how
+to compile and link a text editor which consists of eight C source files
+and three header files.  The makefile can also tell 'make' how to run
+miscellaneous commands when explicitly asked (for example, to remove
 certain files as a clean-up operation).  To see a more complex example
 of a makefile, see *note Complex Makefile::.
 
-   When `make' recompiles the editor, each changed C source file must
-be recompiled.  If a header file has changed, each C source file that
+   When 'make' recompiles the editor, each changed C source file must be
+recompiled.  If a header file has changed, each C source file that
 includes the header file must be recompiled to be safe.  Each
 compilation produces an object file corresponding to the source file.
 Finally, if any source file has been recompiled, all the object files,
 whether newly made or saved from previous compilations, must be linked
-together to produce the new executable editor.  
+together to produce the new executable editor.
 
 * Menu:
 
 * Rule Introduction::           What a rule looks like.
 * Simple Makefile::             A simple makefile.
-* How Make Works::              How `make' processes this makefile.
+* How Make Works::              How 'make' processes this makefile.
 * Variables Simplify::          Variables make makefiles simpler.
-* make Deduces::                Letting `make' deduce the recipes.
+* make Deduces::                Letting 'make' deduce the recipes.
 * Combine By Prerequisite::     Another style of makefile.
 * Cleanup::                     Rules for cleaning the directory.
 
@@ -493,36 +493,36 @@ A simple makefile consists of "rules" with the following shape:
 
    A "target" is usually the name of a file that is generated by a
 program; examples of targets are executable or object files.  A target
-can also be the name of an action to carry out, such as `clean' (*note
+can also be the name of an action to carry out, such as 'clean' (*note
 Phony Targets::).
 
    A "prerequisite" is a file that is used as input to create the
 target.  A target often depends on several files.
 
-   A "recipe" is an action that `make' carries out.  A recipe may have
+   A "recipe" is an action that 'make' carries out.  A recipe may have
 more than one command, either on the same line or each on its own line.
-*Please note:* you need to put a tab character at the beginning of
-every recipe line!  This is an obscurity that catches the unwary.  If
-you prefer to prefix your recipes with a character other than tab, you
-can set the `.RECIPEPREFIX' variable to an alternate character (*note
+*Please note:* you need to put a tab character at the beginning of every
+recipe line!  This is an obscurity that catches the unwary.  If you
+prefer to prefix your recipes with a character other than tab, you can
+set the '.RECIPEPREFIX' variable to an alternate character (*note
 Special Variables::).
 
-   Usually a recipe is in a rule with prerequisites and serves to
-create a target file if any of the prerequisites change.  However, the
-rule that specifies a recipe for the target need not have
-prerequisites.  For example, the rule containing the delete command
-associated with the target `clean' does not have prerequisites.
+   Usually a recipe is in a rule with prerequisites and serves to create
+a target file if any of the prerequisites change.  However, the rule
+that specifies a recipe for the target need not have prerequisites.  For
+example, the rule containing the delete command associated with the
+target 'clean' does not have prerequisites.
 
    A "rule", then, explains how and when to remake certain files which
-are the targets of the particular rule.  `make' carries out the recipe
+are the targets of the particular rule.  'make' carries out the recipe
 on the prerequisites to create or update the target.  A rule can also
 explain how and when to carry out an action.  *Note Writing Rules:
 Rules.
 
    A makefile may contain other text besides rules, but a simple
 makefile need only contain rules.  Rules may look somewhat more
-complicated than shown in this template, but all fit the pattern more
-or less.
+complicated than shown in this template, but all fit the pattern more or
+less.
 
 \1f
 File: make.info,  Node: Simple Makefile,  Next: How Make Works,  Prev: Rule Introduction,  Up: Introduction
@@ -531,12 +531,12 @@ File: make.info,  Node: Simple Makefile,  Next: How Make Works,  Prev: Rule Intr
 =====================
 
 Here is a straightforward makefile that describes the way an executable
-file called `edit' depends on eight object files which, in turn, depend
+file called 'edit' depends on eight object files which, in turn, depend
 on eight C source and three header files.
 
-   In this example, all the C files include `defs.h', but only those
-defining editing commands include `command.h', and only low level files
-that change the editor buffer include `buffer.h'.
+   In this example, all the C files include 'defs.h', but only those
+defining editing commands include 'command.h', and only low level files
+that change the editor buffer include 'buffer.h'.
 
      edit : main.o kbd.o command.o display.o \
             insert.o search.o files.o utils.o
@@ -565,9 +565,9 @@ that change the editor buffer include `buffer.h'.
 
 We split each long line into two lines using backslash/newline; this is
 like using one long line, but is easier to read.  *Note Splitting Long
-Lines: Splitting Lines.  
+Lines: Splitting Lines.
 
-   To use this makefile to create the executable file called `edit',
+   To use this makefile to create the executable file called 'edit',
 type:
 
      make
@@ -578,92 +578,92 @@ files from the directory, type:
      make clean
 
    In the example makefile, the targets include the executable file
-`edit', and the object files `main.o' and `kbd.o'.  The prerequisites
-are files such as `main.c' and `defs.h'.  In fact, each `.o' file is
-both a target and a prerequisite.  Recipes include `cc -c main.c' and
-`cc -c kbd.c'.
+'edit', and the object files 'main.o' and 'kbd.o'.  The prerequisites
+are files such as 'main.c' and 'defs.h'.  In fact, each '.o' file is
+both a target and a prerequisite.  Recipes include 'cc -c main.c' and
+'cc -c kbd.c'.
 
    When a target is a file, it needs to be recompiled or relinked if any
 of its prerequisites change.  In addition, any prerequisites that are
 themselves automatically generated should be updated first.  In this
-example, `edit' depends on each of the eight object files; the object
-file `main.o' depends on the source file `main.c' and on the header
-file `defs.h'.
+example, 'edit' depends on each of the eight object files; the object
+file 'main.o' depends on the source file 'main.c' and on the header file
+'defs.h'.
 
    A recipe may follow each line that contains a target and
 prerequisites.  These recipes say how to update the target file.  A tab
-character (or whatever character is specified by the `.RECIPEPREFIX'
-variable; *note Special Variables::) must come at the beginning of
-every line in the recipe to distinguish recipes from other lines in the
-makefile.  (Bear in mind that `make' does not know anything about how
+character (or whatever character is specified by the '.RECIPEPREFIX'
+variable; *note Special Variables::) must come at the beginning of every
+line in the recipe to distinguish recipes from other lines in the
+makefile.  (Bear in mind that 'make' does not know anything about how
 the recipes work.  It is up to you to supply recipes that will update
-the target file properly.  All `make' does is execute the recipe you
-have specified when the target file needs to be updated.)  
+the target file properly.  All 'make' does is execute the recipe you
+have specified when the target file needs to be updated.)
 
-   The target `clean' is not a file, but merely the name of an action.
+   The target 'clean' is not a file, but merely the name of an action.
 Since you normally do not want to carry out the actions in this rule,
-`clean' is not a prerequisite of any other rule.  Consequently, `make'
+'clean' is not a prerequisite of any other rule.  Consequently, 'make'
 never does anything with it unless you tell it specifically.  Note that
 this rule not only is not a prerequisite, it also does not have any
 prerequisites, so the only purpose of the rule is to run the specified
 recipe.  Targets that do not refer to files but are just actions are
 called "phony targets".  *Note Phony Targets::, for information about
 this kind of target.  *Note Errors in Recipes: Errors, to see how to
-cause `make' to ignore errors from `rm' or any other command.  
+cause 'make' to ignore errors from 'rm' or any other command.
 
 \1f
 File: make.info,  Node: How Make Works,  Next: Variables Simplify,  Prev: Simple Makefile,  Up: Introduction
 
-2.3 How `make' Processes a Makefile
+2.3 How 'make' Processes a Makefile
 ===================================
 
-By default, `make' starts with the first target (not targets whose
-names start with `.').  This is called the "default goal".  ("Goals"
-are the targets that `make' strives ultimately to update.    You can
-override this behavior using the command line (*note Arguments to
-Specify the Goals: Goals.) or with the `.DEFAULT_GOAL' special variable
-(*note Other Special Variables: Special Variables.).  
+By default, 'make' starts with the first target (not targets whose names
+start with '.').  This is called the "default goal".  ("Goals" are the
+targets that 'make' strives ultimately to update.  You can override this
+behavior using the command line (*note Arguments to Specify the Goals:
+Goals.) or with the '.DEFAULT_GOAL' special variable (*note Other
+Special Variables: Special Variables.).
 
    In the simple example of the previous section, the default goal is to
-update the executable program `edit'; therefore, we put that rule first.
+update the executable program 'edit'; therefore, we put that rule first.
 
    Thus, when you give the command:
 
      make
 
-`make' reads the makefile in the current directory and begins by
+'make' reads the makefile in the current directory and begins by
 processing the first rule.  In the example, this rule is for relinking
-`edit'; but before `make' can fully process this rule, it must process
-the rules for the files that `edit' depends on, which in this case are
-the object files.  Each of these files is processed according to its
-own rule.  These rules say to update each `.o' file by compiling its
-source file.  The recompilation must be done if the source file, or any
-of the header files named as prerequisites, is more recent than the
-object file, or if the object file does not exist.
+'edit'; but before 'make' can fully process this rule, it must process
+the rules for the files that 'edit' depends on, which in this case are
+the object files.  Each of these files is processed according to its own
+rule.  These rules say to update each '.o' file by compiling its source
+file.  The recompilation must be done if the source file, or any of the
+header files named as prerequisites, is more recent than the object
+file, or if the object file does not exist.
 
    The other rules are processed because their targets appear as
 prerequisites of the goal.  If some other rule is not depended on by the
 goal (or anything it depends on, etc.), that rule is not processed,
-unless you tell `make' to do so (with a command such as `make clean').
+unless you tell 'make' to do so (with a command such as 'make clean').
 
-   Before recompiling an object file, `make' considers updating its
+   Before recompiling an object file, 'make' considers updating its
 prerequisites, the source file and header files.  This makefile does not
-specify anything to be done for them--the `.c' and `.h' files are not
-the targets of any rules--so `make' does nothing for these files.  But
-`make' would update automatically generated C programs, such as those
+specify anything to be done for them--the '.c' and '.h' files are not
+the targets of any rules--so 'make' does nothing for these files.  But
+'make' would update automatically generated C programs, such as those
 made by Bison or Yacc, by their own rules at this time.
 
-   After recompiling whichever object files need it, `make' decides
-whether to relink `edit'.  This must be done if the file `edit' does
-not exist, or if any of the object files are newer than it.  If an
-object file was just recompiled, it is now newer than `edit', so `edit'
-is relinked.  
+   After recompiling whichever object files need it, 'make' decides
+whether to relink 'edit'.  This must be done if the file 'edit' does not
+exist, or if any of the object files are newer than it.  If an object
+file was just recompiled, it is now newer than 'edit', so 'edit' is
+relinked.
 
-   Thus, if we change the file `insert.c' and run `make', `make' will
-compile that file to update `insert.o', and then link `edit'.  If we
-change the file `command.h' and run `make', `make' will recompile the
-object files `kbd.o', `command.o' and `files.o' and then link the file
-`edit'.
+   Thus, if we change the file 'insert.c' and run 'make', 'make' will
+compile that file to update 'insert.o', and then link 'edit'.  If we
+change the file 'command.h' and run 'make', 'make' will recompile the
+object files 'kbd.o', 'command.o' and 'files.o' and then link the file
+'edit'.
 
 \1f
 File: make.info,  Node: Variables Simplify,  Next: make Deduces,  Prev: How Make Works,  Up: Introduction
@@ -672,7 +672,7 @@ File: make.info,  Node: Variables Simplify,  Next: make Deduces,  Prev: How Make
 ====================================
 
 In our example, we had to list all the object files twice in the rule
-for `edit' (repeated here):
+for 'edit' (repeated here):
 
      edit : main.o kbd.o command.o display.o \
                    insert.o search.o files.o utils.o
@@ -686,15 +686,15 @@ eliminate the risk and simplify the makefile by using a variable.
 multiple places later (*note How to Use Variables: Using Variables.).
 
    It is standard practice for every makefile to have a variable named
-`objects', `OBJECTS', `objs', `OBJS', `obj', or `OBJ' which is a list
-of all object file names.  We would define such a variable `objects'
-with a line like this in the makefile:
+'objects', 'OBJECTS', 'objs', 'OBJS', 'obj', or 'OBJ' which is a list of
+all object file names.  We would define such a variable 'objects' with a
+line like this in the makefile:
 
      objects = main.o kbd.o command.o display.o \
                insert.o search.o files.o utils.o
 
 Then, each place we want to put a list of the object file names, we can
-substitute the variable's value by writing `$(objects)' (*note How to
+substitute the variable's value by writing '$(objects)' (*note How to
 Use Variables: Using Variables.).
 
    Here is how the complete simple makefile looks when you use a
@@ -727,23 +727,23 @@ variable for the object files:
 \1f
 File: make.info,  Node: make Deduces,  Next: Combine By Prerequisite,  Prev: Variables Simplify,  Up: Introduction
 
-2.5 Letting `make' Deduce the Recipes
+2.5 Letting 'make' Deduce the Recipes
 =====================================
 
 It is not necessary to spell out the recipes for compiling the
-individual C source files, because `make' can figure them out: it has an
-"implicit rule" for updating a `.o' file from a correspondingly named
-`.c' file using a `cc -c' command.  For example, it will use the recipe
-`cc -c main.c -o main.o' to compile `main.c' into `main.o'.  We can
+individual C source files, because 'make' can figure them out: it has an
+"implicit rule" for updating a '.o' file from a correspondingly named
+'.c' file using a 'cc -c' command.  For example, it will use the recipe
+'cc -c main.c -o main.o' to compile 'main.c' into 'main.o'.  We can
 therefore omit the recipes from the rules for the object files.  *Note
 Using Implicit Rules: Implicit Rules.
 
-   When a `.c' file is used automatically in this way, it is also
+   When a '.c' file is used automatically in this way, it is also
 automatically added to the list of prerequisites.  We can therefore omit
-the `.c' files from the prerequisites, provided we omit the recipe.
+the '.c' files from the prerequisites, provided we omit the recipe.
 
    Here is the entire example, with both of these changes, and a
-variable `objects' as suggested above:
+variable 'objects' as suggested above:
 
      objects = main.o kbd.o command.o display.o \
                insert.o search.o files.o utils.o
@@ -765,7 +765,7 @@ variable `objects' as suggested above:
              rm edit $(objects)
 
 This is how we would write the makefile in actual practice.  (The
-complications associated with `clean' are described elsewhere.  See
+complications associated with 'clean' are described elsewhere.  See
 *note Phony Targets::, and *note Errors in Recipes: Errors.)
 
    Because implicit rules are so convenient, they are important.  You
@@ -792,8 +792,8 @@ Here is what one looks like:
      kbd.o command.o files.o : command.h
      display.o insert.o search.o files.o : buffer.h
 
-Here `defs.h' is given as a prerequisite of all the object files;
-`command.h' and `buffer.h' are prerequisites of the specific object
+Here 'defs.h' is given as a prerequisite of all the object files;
+'command.h' and 'buffer.h' are prerequisites of the specific object
 files listed for them.
 
    Whether this is better is a matter of taste: it is more compact, but
@@ -808,10 +808,10 @@ File: make.info,  Node: Cleanup,  Prev: Combine By Prerequisite,  Up: Introducti
 
 Compiling a program is not the only thing you might want to write rules
 for.  Makefiles commonly tell how to do a few other things besides
-compiling a program: for example, how to delete all the object files
-and executables so that the directory is `clean'.
+compiling a program: for example, how to delete all the object files and
+executables so that the directory is 'clean'.
 
-   Here is how we could write a `make' rule for cleaning our example
+   Here is how we could write a 'make' rule for cleaning our example
 editor:
 
      clean:
@@ -825,19 +825,19 @@ this:
      clean :
              -rm edit $(objects)
 
-This prevents `make' from getting confused by an actual file called
-`clean' and causes it to continue in spite of errors from `rm'.  (See
+This prevents 'make' from getting confused by an actual file called
+'clean' and causes it to continue in spite of errors from 'rm'.  (See
 *note Phony Targets::, and *note Errors in Recipes: Errors.)
 
 A rule such as this should not be placed at the beginning of the
 makefile, because we do not want it to run by default!  Thus, in the
-example makefile, we want the rule for `edit', which recompiles the
+example makefile, we want the rule for 'edit', which recompiles the
 editor, to remain the default goal.
 
-   Since `clean' is not a prerequisite of `edit', this rule will not
-run at all if we give the command `make' with no arguments.  In order
-to make the rule run, we have to type `make clean'.  *Note How to Run
-`make': Running.
+   Since 'clean' is not a prerequisite of 'edit', this rule will not run
+at all if we give the command 'make' with no arguments.  In order to
+make the rule run, we have to type 'make clean'.  *Note How to Run
+'make': Running.
 
 \1f
 File: make.info,  Node: Makefiles,  Next: Rules,  Prev: Introduction,  Up: Top
@@ -845,7 +845,7 @@ File: make.info,  Node: Makefiles,  Next: Rules,  Prev: Introduction,  Up: Top
 3 Writing Makefiles
 *******************
 
-The information that tells `make' how to recompile a system comes from
+The information that tells 'make' how to recompile a system comes from
 reading a data base called the "makefile".
 
 * Menu:
@@ -878,17 +878,17 @@ variables, and directives are described at length in later chapters.
 
    * An "implicit rule" says when and how to remake a class of files
      based on their names.  It describes how a target may depend on a
-     file with a name similar to the target and gives a recipe to
-     create or update such a target.  *Note Using Implicit Rules:
-     Implicit Rules.
+     file with a name similar to the target and gives a recipe to create
+     or update such a target.  *Note Using Implicit Rules: Implicit
+     Rules.
 
    * A "variable definition" is a line that specifies a text string
      value for a variable that can be substituted into the text later.
      The simple makefile example shows a variable definition for
-     `objects' as a list of all object files (*note Variables Make
+     'objects' as a list of all object files (*note Variables Make
      Makefiles Simpler: Variables Simplify.).
 
-   * A "directive" is an instruction for `make' to do something special
+   * A "directive" is an instruction for 'make' to do something special
      while reading the makefile.  These include:
 
         * Reading another makefile (*note Including Other Makefiles:
@@ -898,21 +898,20 @@ variables, and directives are described at length in later chapters.
           ignore a part of the makefile (*note Conditional Parts of
           Makefiles: Conditionals.).
 
-        * Defining a variable from a verbatim string containing
-          multiple lines (*note Defining Multi-Line Variables:
-          Multi-Line.).
+        * Defining a variable from a verbatim string containing multiple
+          lines (*note Defining Multi-Line Variables: Multi-Line.).
 
-   * `#' in a line of a makefile starts a "comment".  It and the rest
-     of the line are ignored, except that a trailing backslash not
-     escaped by another backslash will continue the comment across
-     multiple lines.  A line containing just a comment (with perhaps
-     spaces before it) is effectively blank, and is ignored.  If you
-     want a literal `#', escape it with a backslash (e.g., `\#').
-     Comments may appear on any line in the makefile, although they are
-     treated specially in certain situations.
+   * '#' in a line of a makefile starts a "comment".  It and the rest of
+     the line are ignored, except that a trailing backslash not escaped
+     by another backslash will continue the comment across multiple
+     lines.  A line containing just a comment (with perhaps spaces
+     before it) is effectively blank, and is ignored.  If you want a
+     literal '#', escape it with a backslash (e.g., '\#').  Comments may
+     appear on any line in the makefile, although they are treated
+     specially in certain situations.
 
      You cannot use comments within variable references or function
-     calls: any instance of `#' will be treated literally (rather than
+     calls: any instance of '#' will be treated literally (rather than
      as the start of a comment) inside a variable reference or function
      call.
 
@@ -920,10 +919,10 @@ variables, and directives are described at length in later chapters.
      other recipe text.  The shell decides how to interpret it: whether
      or not this is a comment is up to the shell.
 
-     Within a `define' directive, comments are not ignored during the
+     Within a 'define' directive, comments are not ignored during the
      definition of the variable, but rather kept intact in the value of
      the variable.  When the variable is expanded they will either be
-     treated as `make' comments or as recipe text, depending on the
+     treated as 'make' comments or as recipe text, depending on the
      context in which the variable is evaluated.
 
 * Menu:
@@ -937,23 +936,23 @@ File: make.info,  Node: Splitting Lines,  Prev: Makefile Contents,  Up: Makefile
 --------------------------
 
 Makefiles use a "line-based" syntax in which the newline character is
-special and marks the end of a statement.  GNU `make' has no limit on
+special and marks the end of a statement.  GNU 'make' has no limit on
 the length of a statement line, up to the amount of memory in your
 computer.
 
    However, it is difficult to read lines which are too long to display
 without wrapping or scrolling.  So, you can format your makefiles for
 readability by adding newlines into the middle of a statement: you do
-this by escaping the internal newlines with a backslash (`\')
-character.  Where we need to make a distinction we will refer to
-"physical lines" as a single line ending with a newline (regardless of
-whether it is escaped) and a "logical line" being a complete statement
-including all escaped newlines up to the first non-escaped newline.
+this by escaping the internal newlines with a backslash ('\') character.
+Where we need to make a distinction we will refer to "physical lines" as
+a single line ending with a newline (regardless of whether it is
+escaped) and a "logical line" being a complete statement including all
+escaped newlines up to the first non-escaped newline.
 
    The way in which backslash/newline combinations are handled depends
 on whether the statement is a recipe line or a non-recipe line.
-Handling of backslash/newline in a recipe line is discussed later
-(*note Splitting Recipe Lines::).
+Handling of backslash/newline in a recipe line is discussed later (*note
+Splitting Recipe Lines::).
 
    Outside of recipe lines, backslash/newlines are converted into a
 single space character.  Once that is done, all whitespace around the
@@ -962,7 +961,7 @@ whitespace preceding the backslash, all whitespace at the beginning of
 the line after the backslash/newline, and any consecutive
 backslash/newline combinations.
 
-   If the `.POSIX' special target is defined then backslash/newline
+   If the '.POSIX' special target is defined then backslash/newline
 handling is modified slightly to conform to POSIX.2: first, whitespace
 preceding a backslash is not removed and second, consecutive
 backslash/newlines are not condensed.
@@ -973,31 +972,31 @@ File: make.info,  Node: Makefile Names,  Next: Include,  Prev: Makefile Contents
 3.2 What Name to Give Your Makefile
 ===================================
 
-By default, when `make' looks for the makefile, it tries the following
-names, in order: `GNUmakefile', `makefile' and `Makefile'.  
+By default, when 'make' looks for the makefile, it tries the following
+names, in order: 'GNUmakefile', 'makefile' and 'Makefile'.
 
-   Normally you should call your makefile either `makefile' or
-`Makefile'.  (We recommend `Makefile' because it appears prominently
+   Normally you should call your makefile either 'makefile' or
+'Makefile'.  (We recommend 'Makefile' because it appears prominently
 near the beginning of a directory listing, right near other important
-files such as `README'.)  The first name checked, `GNUmakefile', is not
+files such as 'README'.)  The first name checked, 'GNUmakefile', is not
 recommended for most makefiles.  You should use this name if you have a
-makefile that is specific to GNU `make', and will not be understood by
-other versions of `make'.  Other `make' programs look for `makefile' and
-`Makefile', but not `GNUmakefile'.
+makefile that is specific to GNU 'make', and will not be understood by
+other versions of 'make'.  Other 'make' programs look for 'makefile' and
+'Makefile', but not 'GNUmakefile'.
 
-   If `make' finds none of these names, it does not use any makefile.
-Then you must specify a goal with a command argument, and `make' will
+   If 'make' finds none of these names, it does not use any makefile.
+Then you must specify a goal with a command argument, and 'make' will
 attempt to figure out how to remake it using only its built-in implicit
 rules.  *Note Using Implicit Rules: Implicit Rules.
 
    If you want to use a nonstandard name for your makefile, you can
-specify the makefile name with the `-f' or `--file' option.  The
-arguments `-f NAME' or `--file=NAME' tell `make' to read the file NAME
-as the makefile.  If you use more than one `-f' or `--file' option, you
+specify the makefile name with the '-f' or '--file' option.  The
+arguments '-f NAME' or '--file=NAME' tell 'make' to read the file NAME
+as the makefile.  If you use more than one '-f' or '--file' option, you
 can specify several makefiles.  All the makefiles are effectively
 concatenated in the order specified.  The default makefile names
-`GNUmakefile', `makefile' and `Makefile' are not checked automatically
-if you specify `-f' or `--file'.  
+'GNUmakefile', 'makefile' and 'Makefile' are not checked automatically
+if you specify '-f' or '--file'.
 
 \1f
 File: make.info,  Node: Include,  Next: MAKEFILES Variable,  Prev: Makefile Names,  Up: Makefiles
@@ -1005,27 +1004,27 @@ File: make.info,  Node: Include,  Next: MAKEFILES Variable,  Prev: Makefile Name
 3.3 Including Other Makefiles
 =============================
 
-The `include' directive tells `make' to suspend reading the current
+The 'include' directive tells 'make' to suspend reading the current
 makefile and read one or more other makefiles before continuing.  The
 directive is a line in the makefile that looks like this:
 
      include FILENAMES...
 
 FILENAMES can contain shell file name patterns.  If FILENAMES is empty,
-nothing is included and no error is printed.  
+nothing is included and no error is printed.
 
    Extra spaces are allowed and ignored at the beginning of the line,
 but the first character must not be a tab (or the value of
-`.RECIPEPREFIX')--if the line begins with a tab, it will be considered
-a recipe line.  Whitespace is required between `include' and the file
+'.RECIPEPREFIX')--if the line begins with a tab, it will be considered a
+recipe line.  Whitespace is required between 'include' and the file
 names, and between file names; extra whitespace is ignored there and at
-the end of the directive.  A comment starting with `#' is allowed at
-the end of the line.  If the file names contain any variable or
-function references, they are expanded.  *Note How to Use Variables:
-Using Variables.
+the end of the directive.  A comment starting with '#' is allowed at the
+end of the line.  If the file names contain any variable or function
+references, they are expanded.  *Note How to Use Variables: Using
+Variables.
 
-   For example, if you have three `.mk' files, `a.mk', `b.mk', and
-`c.mk', and `$(bar)' expands to `bish bash', then the following
+   For example, if you have three '.mk' files, 'a.mk', 'b.mk', and
+'c.mk', and '$(bar)' expands to 'bish bash', then the following
 expression
 
      include foo *.mk $(bar)
@@ -1034,12 +1033,12 @@ expression
 
      include foo a.mk b.mk c.mk bish bash
 
-   When `make' processes an `include' directive, it suspends reading of
+   When 'make' processes an 'include' directive, it suspends reading of
 the containing makefile and reads from each listed file in turn.  When
-that is finished, `make' resumes reading the makefile in which the
+that is finished, 'make' resumes reading the makefile in which the
 directive appears.
 
-   One occasion for using `include' directives is when several programs,
+   One occasion for using 'include' directives is when several programs,
 handled by individual makefiles in various directories, need to use a
 common set of variable definitions (*note Setting Variables: Setting.)
 or pattern rules (*note Defining and Redefining Pattern Rules: Pattern
@@ -1049,38 +1048,38 @@ Rules.).
 source files automatically; the prerequisites can be put in a file that
 is included by the main makefile.  This practice is generally cleaner
 than that of somehow appending the prerequisites to the end of the main
-makefile as has been traditionally done with other versions of `make'.
-*Note Automatic Prerequisites::.  
+makefile as has been traditionally done with other versions of 'make'.
+*Note Automatic Prerequisites::.
 
    If the specified name does not start with a slash, and the file is
 not found in the current directory, several other directories are
-searched.  First, any directories you have specified with the `-I' or
-`--include-dir' option are searched (*note Summary of Options: Options
-Summary.).  Then the following directories (if they exist) are
-searched, in this order: `PREFIX/include' (normally `/usr/local/include'
-(1)) `/usr/gnu/include', `/usr/local/include', `/usr/include'.
+searched.  First, any directories you have specified with the '-I' or
+'--include-dir' option are searched (*note Summary of Options: Options
+Summary.).  Then the following directories (if they exist) are searched,
+in this order: 'PREFIX/include' (normally '/usr/local/include' (1))
+'/usr/gnu/include', '/usr/local/include', '/usr/include'.
 
    If an included makefile cannot be found in any of these directories,
 a warning message is generated, but it is not an immediately fatal
-error; processing of the makefile containing the `include' continues.
-Once it has finished reading makefiles, `make' will try to remake any
+error; processing of the makefile containing the 'include' continues.
+Once it has finished reading makefiles, 'make' will try to remake any
 that are out of date or don't exist.  *Note How Makefiles Are Remade:
 Remaking Makefiles.  Only after it has tried to find a way to remake a
-makefile and failed, will `make' diagnose the missing makefile as a
+makefile and failed, will 'make' diagnose the missing makefile as a
 fatal error.
 
-   If you want `make' to simply ignore a makefile which does not exist
-or cannot be remade, with no error message, use the `-include'
-directive instead of `include', like this:
+   If you want 'make' to simply ignore a makefile which does not exist
+or cannot be remade, with no error message, use the '-include' directive
+instead of 'include', like this:
 
      -include FILENAMES...
 
-   This acts like `include' in every way except that there is no error
+   This acts like 'include' in every way except that there is no error
 (not even a warning) if any of the FILENAMES (or any prerequisites of
 any of the FILENAMES) do not exist or cannot be remade.
 
-   For compatibility with some other `make' implementations, `sinclude'
-is another name for `-include'.
+   For compatibility with some other 'make' implementations, 'sinclude'
+is another name for '-include'.
 
    ---------- Footnotes ----------
 
@@ -1090,31 +1089,31 @@ has been defined to be the root of the DJGPP tree hierarchy.
 \1f
 File: make.info,  Node: MAKEFILES Variable,  Next: Remaking Makefiles,  Prev: Include,  Up: Makefiles
 
-3.4 The Variable `MAKEFILES'
+3.4 The Variable 'MAKEFILES'
 ============================
 
-If the environment variable `MAKEFILES' is defined, `make' considers
-its value as a list of names (separated by whitespace) of additional
+If the environment variable 'MAKEFILES' is defined, 'make' considers its
+value as a list of names (separated by whitespace) of additional
 makefiles to be read before the others.  This works much like the
-`include' directive: various directories are searched for those files
+'include' directive: various directories are searched for those files
 (*note Including Other Makefiles: Include.).  In addition, the default
 goal is never taken from one of these makefiles (or any makefile
 included by them) and it is not an error if the files listed in
-`MAKEFILES' are not found.
+'MAKEFILES' are not found.
 
-   The main use of `MAKEFILES' is in communication between recursive
-invocations of `make' (*note Recursive Use of `make': Recursion.).  It
+   The main use of 'MAKEFILES' is in communication between recursive
+invocations of 'make' (*note Recursive Use of 'make': Recursion.).  It
 usually is not desirable to set the environment variable before a
-top-level invocation of `make', because it is usually better not to
-mess with a makefile from outside.  However, if you are running `make'
-without a specific makefile, a makefile in `MAKEFILES' can do useful
-things to help the built-in implicit rules work better, such as
-defining search paths (*note Directory Search::).
+top-level invocation of 'make', because it is usually better not to mess
+with a makefile from outside.  However, if you are running 'make'
+without a specific makefile, a makefile in 'MAKEFILES' can do useful
+things to help the built-in implicit rules work better, such as defining
+search paths (*note Directory Search::).
 
-   Some users are tempted to set `MAKEFILES' in the environment
+   Some users are tempted to set 'MAKEFILES' in the environment
 automatically on login, and program makefiles to expect this to be done.
-This is a very bad idea, because such makefiles will fail to work if
-run by anyone else.  It is much better to write explicit `include'
+This is a very bad idea, because such makefiles will fail to work if run
+by anyone else.  It is much better to write explicit 'include'
 directives in the makefiles.  *Note Including Other Makefiles: Include.
 
 \1f
@@ -1125,22 +1124,22 @@ File: make.info,  Node: Remaking Makefiles,  Next: Overriding Makefiles,  Prev:
 
 Sometimes makefiles can be remade from other files, such as RCS or SCCS
 files.  If a makefile can be remade from other files, you probably want
-`make' to get an up-to-date version of the makefile to read in.
+'make' to get an up-to-date version of the makefile to read in.
 
-   To this end, after reading in all makefiles, `make' will consider
+   To this end, after reading in all makefiles, 'make' will consider
 each as a goal target and attempt to update it.  If a makefile has a
 rule which says how to update it (found either in that very makefile or
 in another one) or if an implicit rule applies to it (*note Using
 Implicit Rules: Implicit Rules.), it will be updated if necessary.
 After all makefiles have been checked, if any have actually been
-changed, `make' starts with a clean slate and reads all the makefiles
+changed, 'make' starts with a clean slate and reads all the makefiles
 over again.  (It will also attempt to update each of them over again,
 but normally this will not change them again, since they are already up
 to date.)
 
    If you know that one or more of your makefiles cannot be remade and
-you want to keep `make' from performing an implicit rule search on
-them, perhaps for efficiency reasons, you can use any normal method of
+you want to keep 'make' from performing an implicit rule search on them,
+perhaps for efficiency reasons, you can use any normal method of
 preventing implicit rule look-up to do so.  For example, you can write
 an explicit rule with the makefile as the target, and an empty recipe
 (*note Using Empty Recipes: Empty Recipes.).
@@ -1149,51 +1148,51 @@ an explicit rule with the makefile as the target, and an empty recipe
 recipe but no prerequisites, that file will always be remade (*note
 Double-Colon::).  In the case of makefiles, a makefile that has a
 double-colon rule with a recipe but no prerequisites will be remade
-every time `make' is run, and then again after `make' starts over and
-reads the makefiles in again.  This would cause an infinite loop:
-`make' would constantly remake the makefile, and never do anything
-else.  So, to avoid this, `make' will *not* attempt to remake makefiles
-which are specified as targets of a double-colon rule with a recipe but
-no prerequisites.
-
-   If you do not specify any makefiles to be read with `-f' or `--file'
-options, `make' will try the default makefile names; *note What Name to
+every time 'make' is run, and then again after 'make' starts over and
+reads the makefiles in again.  This would cause an infinite loop: 'make'
+would constantly remake the makefile, and never do anything else.  So,
+to avoid this, 'make' will *not* attempt to remake makefiles which are
+specified as targets of a double-colon rule with a recipe but no
+prerequisites.
+
+   If you do not specify any makefiles to be read with '-f' or '--file'
+options, 'make' will try the default makefile names; *note What Name to
 Give Your Makefile: Makefile Names.  Unlike makefiles explicitly
-requested with `-f' or `--file' options, `make' is not certain that
+requested with '-f' or '--file' options, 'make' is not certain that
 these makefiles should exist.  However, if a default makefile does not
-exist but can be created by running `make' rules, you probably want the
+exist but can be created by running 'make' rules, you probably want the
 rules to be run so that the makefile can be used.
 
-   Therefore, if none of the default makefiles exists, `make' will try
+   Therefore, if none of the default makefiles exists, 'make' will try
 to make each of them in the same order in which they are searched for
-(*note What Name to Give Your Makefile: Makefile Names.)  until it
-succeeds in making one, or it runs out of names to try.  Note that it
-is not an error if `make' cannot find or make any makefile; a makefile
-is not always necessary.
-
-   When you use the `-t' or `--touch' option (*note Instead of
-Executing Recipes: Instead of Execution.), you would not want to use an
-out-of-date makefile to decide which targets to touch.  So the `-t'
-option has no effect on updating makefiles; they are really updated
-even if `-t' is specified.  Likewise, `-q' (or `--question') and `-n'
-(or `--just-print') do not prevent updating of makefiles, because an
+(*note What Name to Give Your Makefile: Makefile Names.) until it
+succeeds in making one, or it runs out of names to try.  Note that it is
+not an error if 'make' cannot find or make any makefile; a makefile is
+not always necessary.
+
+   When you use the '-t' or '--touch' option (*note Instead of Executing
+Recipes: Instead of Execution.), you would not want to use an
+out-of-date makefile to decide which targets to touch.  So the '-t'
+option has no effect on updating makefiles; they are really updated even
+if '-t' is specified.  Likewise, '-q' (or '--question') and '-n' (or
+'--just-print') do not prevent updating of makefiles, because an
 out-of-date makefile would result in the wrong output for other targets.
-Thus, `make -f mfile -n foo' will update `mfile', read it in, and then
-print the recipe to update `foo' and its prerequisites without running
-it.  The recipe printed for `foo' will be the one specified in the
-updated contents of `mfile'.
+Thus, 'make -f mfile -n foo' will update 'mfile', read it in, and then
+print the recipe to update 'foo' and its prerequisites without running
+it.  The recipe printed for 'foo' will be the one specified in the
+updated contents of 'mfile'.
 
    However, on occasion you might actually wish to prevent updating of
 even the makefiles.  You can do this by specifying the makefiles as
-goals in the command line as well as specifying them as makefiles.
-When the makefile name is specified explicitly as a goal, the options
-`-t' and so on do apply to them.
+goals in the command line as well as specifying them as makefiles.  When
+the makefile name is specified explicitly as a goal, the options '-t'
+and so on do apply to them.
 
-   Thus, `make -f mfile -n mfile foo' would read the makefile `mfile',
+   Thus, 'make -f mfile -n mfile foo' would read the makefile 'mfile',
 print the recipe needed to update it without actually running it, and
-then print the recipe needed to update `foo' without running that.  The
-recipe for `foo' will be the one specified by the existing contents of
-`mfile'.
+then print the recipe needed to update 'foo' without running that.  The
+recipe for 'foo' will be the one specified by the existing contents of
+'mfile'.
 
 \1f
 File: make.info,  Node: Overriding Makefiles,  Next: Reading Makefiles,  Prev: Remaking Makefiles,  Up: Makefiles
@@ -1202,7 +1201,7 @@ File: make.info,  Node: Overriding Makefiles,  Next: Reading Makefiles,  Prev: R
 =======================================
 
 Sometimes it is useful to have a makefile that is mostly just like
-another makefile.  You can often use the `include' directive to include
+another makefile.  You can often use the 'include' directive to include
 one in the other, and add more targets or variable definitions.
 However, it is invalid for two makefiles to give different recipes for
 the same target.  But there is another way.
@@ -1210,12 +1209,12 @@ the same target.  But there is another way.
    In the containing makefile (the one that wants to include the other),
 you can use a match-anything pattern rule to say that to remake any
 target that cannot be made from the information in the containing
-makefile, `make' should look in another makefile.  *Note Pattern
+makefile, 'make' should look in another makefile.  *Note Pattern
 Rules::, for more information on pattern rules.
 
-   For example, if you have a makefile called `Makefile' that says how
-to make the target `foo' (and other targets), you can write a makefile
-called `GNUmakefile' that contains:
+   For example, if you have a makefile called 'Makefile' that says how
+to make the target 'foo' (and other targets), you can write a makefile
+called 'GNUmakefile' that contains:
 
      foo:
              frobnicate > foo
@@ -1224,33 +1223,33 @@ called `GNUmakefile' that contains:
              @$(MAKE) -f Makefile $@
      force: ;
 
-   If you say `make foo', `make' will find `GNUmakefile', read it, and
-see that to make `foo', it needs to run the recipe `frobnicate > foo'.
-If you say `make bar', `make' will find no way to make `bar' in
-`GNUmakefile', so it will use the recipe from the pattern rule: `make
--f Makefile bar'.  If `Makefile' provides a rule for updating `bar',
-`make' will apply the rule.  And likewise for any other target that
-`GNUmakefile' does not say how to make.
+   If you say 'make foo', 'make' will find 'GNUmakefile', read it, and
+see that to make 'foo', it needs to run the recipe 'frobnicate > foo'.
+If you say 'make bar', 'make' will find no way to make 'bar' in
+'GNUmakefile', so it will use the recipe from the pattern rule: 'make -f
+Makefile bar'.  If 'Makefile' provides a rule for updating 'bar', 'make'
+will apply the rule.  And likewise for any other target that
+'GNUmakefile' does not say how to make.
 
    The way this works is that the pattern rule has a pattern of just
-`%', so it matches any target whatever.  The rule specifies a
-prerequisite `force', to guarantee that the recipe will be run even if
-the target file already exists.  We give the `force' target an empty
-recipe to prevent `make' from searching for an implicit rule to build
-it--otherwise it would apply the same match-anything rule to `force'
+'%', so it matches any target whatever.  The rule specifies a
+prerequisite 'force', to guarantee that the recipe will be run even if
+the target file already exists.  We give the 'force' target an empty
+recipe to prevent 'make' from searching for an implicit rule to build
+it--otherwise it would apply the same match-anything rule to 'force'
 itself and create a prerequisite loop!
 
 \1f
 File: make.info,  Node: Reading Makefiles,  Next: Secondary Expansion,  Prev: Overriding Makefiles,  Up: Makefiles
 
-3.7 How `make' Reads a Makefile
+3.7 How 'make' Reads a Makefile
 ===============================
 
-GNU `make' does its work in two distinct phases.  During the first
-phase it reads all the makefiles, included makefiles, etc. and
-internalizes all the variables and their values, implicit and explicit
-rules, and constructs a dependency graph of all the targets and their
-prerequisites.  During the second phase, `make' uses these internal
+GNU 'make' does its work in two distinct phases.  During the first phase
+it reads all the makefiles, included makefiles, etc.  and internalizes
+all the variables and their values, implicit and explicit rules, and
+constructs a dependency graph of all the targets and their
+prerequisites.  During the second phase, 'make' uses these internal
 structures to determine what targets will need to be rebuilt and to
 invoke the rules necessary to do so.
 
@@ -1258,11 +1257,11 @@ invoke the rules necessary to do so.
 direct impact on how variable and function expansion happens; this is
 often a source of some confusion when writing makefiles.  Here we will
 present a summary of the phases in which expansion happens for different
-constructs within the makefile.  We say that expansion is "immediate"
-if it happens during the first phase: in this case `make' will expand
-any variables or functions in that section of a construct as the
-makefile is parsed.  We say that expansion is "deferred" if expansion
-is not performed immediately.  Expansion of a deferred construct is not
+constructs within the makefile.  We say that expansion is "immediate" if
+it happens during the first phase: in this case 'make' will expand any
+variables or functions in that section of a construct as the makefile is
+parsed.  We say that expansion is "deferred" if expansion is not
+performed immediately.  Expansion of a deferred construct is not
 performed until either the construct appears later in an immediate
 context, or until the second phase.
 
@@ -1310,11 +1309,11 @@ Variable definitions are parsed as follows:
        IMMEDIATE
      endef
 
-   For the append operator, `+=', the right-hand side is considered
-immediate if the variable was previously set as a simple variable (`:='
-or `::='), and deferred otherwise.
+   For the append operator, '+=', the right-hand side is considered
+immediate if the variable was previously set as a simple variable (':='
+or '::='), and deferred otherwise.
 
-   For the shell assignment operator, `!=', the right-hand side is
+   For the shell assignment operator, '!=', the right-hand side is
 evaluated immediately and handed to the shell.  The result is stored in
 the variable named on the left, and that variable becomes a simple
 variable (and will thus be re-evaluated on each reference).
@@ -1322,12 +1321,12 @@ variable (and will thus be re-evaluated on each reference).
 Conditional Directives
 ----------------------
 
-Conditional directives are parsed immediately.  This means, for
-example, that automatic variables cannot be used in conditional
-directives, as automatic variables are not set until the recipe for
-that rule is invoked.  If you need to use automatic variables in a
-conditional directive you _must_ move the condition into the recipe and
-use shell conditional syntax instead.
+Conditional directives are parsed immediately.  This means, for example,
+that automatic variables cannot be used in conditional directives, as
+automatic variables are not set until the recipe for that rule is
+invoked.  If you need to use automatic variables in a conditional
+directive you _must_ move the condition into the recipe and use shell
+conditional syntax instead.
 
 Rule Definition
 ---------------
@@ -1335,7 +1334,7 @@ Rule Definition
 A rule is always expanded the same way, regardless of the form:
 
      IMMEDIATE : IMMEDIATE ; DEFERRED
-       DEFERRED
+             DEFERRED
 
    That is, the target and prerequisite sections are expanded
 immediately, and the recipe used to construct the target is always
@@ -1348,14 +1347,13 @@ File: make.info,  Node: Secondary Expansion,  Prev: Reading Makefiles,  Up: Make
 3.8 Secondary Expansion
 =======================
 
-In the previous section we learned that GNU `make' works in two
-distinct phases: a read-in phase and a target-update phase (*note How
-`make' Reads a Makefile: Reading Makefiles.).  GNU make also has the
-ability to enable a _second expansion_ of the prerequisites (only) for
-some or all targets defined in the makefile.  In order for this second
-expansion to occur, the special target `.SECONDEXPANSION' must be
-defined before the first prerequisite list that makes use of this
-feature.
+In the previous section we learned that GNU 'make' works in two distinct
+phases: a read-in phase and a target-update phase (*note How 'make'
+Reads a Makefile: Reading Makefiles.).  GNU make also has the ability to
+enable a _second expansion_ of the prerequisites (only) for some or all
+targets defined in the makefile.  In order for this second expansion to
+occur, the special target '.SECONDEXPANSION' must be defined before the
+first prerequisite list that makes use of this feature.
 
    If that special target is defined then in between the two phases
 mentioned above, right at the end of the read-in phase, all the
@@ -1364,11 +1362,10 @@ expanded a _second time_.  In most circumstances this secondary
 expansion will have no effect, since all variable and function
 references will have been expanded during the initial parsing of the
 makefiles.  In order to take advantage of the secondary expansion phase
-of the parser, then, it's necessary to _escape_ the variable or
-function reference in the makefile.  In this case the first expansion
-merely un-escapes the reference but doesn't expand it, and expansion is
-left to the secondary expansion phase.  For example, consider this
-makefile:
+of the parser, then, it's necessary to _escape_ the variable or function
+reference in the makefile.  In this case the first expansion merely
+un-escapes the reference but doesn't expand it, and expansion is left to
+the secondary expansion phase.  For example, consider this makefile:
 
      .SECONDEXPANSION:
      ONEVAR = onefile
@@ -1376,15 +1373,15 @@ makefile:
      myfile: $(ONEVAR) $$(TWOVAR)
 
    After the first expansion phase the prerequisites list of the
-`myfile' target will be `onefile' and `$(TWOVAR)'; the first
-(unescaped) variable reference to ONEVAR is expanded, while the second
-(escaped) variable reference is simply unescaped, without being
-recognized as a variable reference.  Now during the secondary expansion
-the first word is expanded again but since it contains no variable or
-function references it remains the value `onefile', while the second
-word is now a normal reference to the variable TWOVAR, which is
-expanded to the value `twofile'.  The final result is that there are
-two prerequisites, `onefile' and `twofile'.
+'myfile' target will be 'onefile' and '$(TWOVAR)'; the first (unescaped)
+variable reference to ONEVAR is expanded, while the second (escaped)
+variable reference is simply unescaped, without being recognized as a
+variable reference.  Now during the secondary expansion the first word
+is expanded again but since it contains no variable or function
+references it remains the value 'onefile', while the second word is now
+a normal reference to the variable TWOVAR, which is expanded to the
+value 'twofile'.  The final result is that there are two prerequisites,
+'onefile' and 'twofile'.
 
    Obviously, this is not a very interesting case since the same result
 could more easily have been achieved simply by having both variables
@@ -1397,19 +1394,19 @@ apparent if the variables are reset; consider this example:
      twofile: $$(AVAR)
      AVAR = bottom
 
-   Here the prerequisite of `onefile' will be expanded immediately, and
-resolve to the value `top', while the prerequisite of `twofile' will
-not be full expanded until the secondary expansion and yield a value of
-`bottom'.
+   Here the prerequisite of 'onefile' will be expanded immediately, and
+resolve to the value 'top', while the prerequisite of 'twofile' will not
+be full expanded until the secondary expansion and yield a value of
+'bottom'.
 
    This is marginally more exciting, but the true power of this feature
-only becomes apparent when you discover that secondary expansions
-always take place within the scope of the automatic variables for that
-target.  This means that you can use variables such as `$@', `$*', etc.
-during the second expansion and they will have their expected values,
-just as in the recipe.  All you have to do is defer the expansion by
-escaping the `$'.  Also, secondary expansion occurs for both explicit
-and implicit (pattern) rules.  Knowing this, the possible uses for this
+only becomes apparent when you discover that secondary expansions always
+take place within the scope of the automatic variables for that target.
+This means that you can use variables such as '$@', '$*', etc.  during
+the second expansion and they will have their expected values, just as
+in the recipe.  All you have to do is defer the expansion by escaping
+the '$'.  Also, secondary expansion occurs for both explicit and
+implicit (pattern) rules.  Knowing this, the possible uses for this
 feature increase dramatically.  For example:
 
      .SECONDEXPANSION:
@@ -1419,11 +1416,11 @@ feature increase dramatically.  For example:
      main lib: $$($$@_OBJS)
 
    Here, after the initial expansion the prerequisites of both the
-`main' and `lib' targets will be `$($@_OBJS)'.  During the secondary
-expansion, the `$@' variable is set to the name of the target and so
-the expansion for the `main' target will yield `$(main_OBJS)', or
-`main.o try.o test.o', while the secondary expansion for the `lib'
-target will yield `$(lib_OBJS)', or `lib.o api.o'.
+'main' and 'lib' targets will be '$($@_OBJS)'.  During the secondary
+expansion, the '$@' variable is set to the name of the target and so the
+expansion for the 'main' target will yield '$(main_OBJS)', or 'main.o
+try.o test.o', while the secondary expansion for the 'lib' target will
+yield '$(lib_OBJS)', or 'lib.o api.o'.
 
    You can also mix in functions here, as long as they are properly
 escaped:
@@ -1439,23 +1436,23 @@ files, but gives the same resulting prerequisites list as the previous
 example.
 
    Evaluation of automatic variables during the secondary expansion
-phase, especially of the target name variable `$$@', behaves similarly
+phase, especially of the target name variable '$$@', behaves similarly
 to evaluation within recipes.  However, there are some subtle
 differences and "corner cases" which come into play for the different
-types of rule definitions that `make' understands.  The subtleties of
+types of rule definitions that 'make' understands.  The subtleties of
 using the different automatic variables are described below.
 
 Secondary Expansion of Explicit Rules
 -------------------------------------
 
-During the secondary expansion of explicit rules, `$$@' and `$$%'
+During the secondary expansion of explicit rules, '$$@' and '$$%'
 evaluate, respectively, to the file name of the target and, when the
-target is an archive member, the target member name.  The `$$<'
-variable evaluates to the first prerequisite in the first rule for this
-target.  `$$^' and `$$+' evaluate to the list of all prerequisites of
-rules _that have already appeared_ for the same target (`$$+' with
-repetitions and `$$^' without).  The following example will help
-illustrate these behaviors:
+target is an archive member, the target member name.  The '$$<' variable
+evaluates to the first prerequisite in the first rule for this target.
+'$$^' and '$$+' evaluate to the list of all prerequisites of rules _that
+have already appeared_ for the same target ('$$+' with repetitions and
+'$$^' without).  The following example will help illustrate these
+behaviors:
 
      .SECONDEXPANSION:
 
@@ -1465,16 +1462,16 @@ illustrate these behaviors:
 
      foo: foo.3 bar.3 $$< $$^ $$+    # line #3
 
-   In the first prerequisite list, all three variables (`$$<', `$$^',
-and `$$+') expand to the empty string.  In the second, they will have
-values `foo.1', `foo.1 bar.1', and `foo.1 bar.1' respectively.  In the
-third they will have values `foo.1', `foo.1 bar.1 foo.2 bar.2', and
-`foo.1 bar.1 foo.2 bar.2 foo.1 foo.1 bar.1 foo.1 bar.1' respectively.
+   In the first prerequisite list, all three variables ('$$<', '$$^',
+and '$$+') expand to the empty string.  In the second, they will have
+values 'foo.1', 'foo.1 bar.1', and 'foo.1 bar.1' respectively.  In the
+third they will have values 'foo.1', 'foo.1 bar.1 foo.2 bar.2', and
+'foo.1 bar.1 foo.2 bar.2 foo.1 foo.1 bar.1 foo.1 bar.1' respectively.
 
    Rules undergo secondary expansion in makefile order, except that the
 rule with the recipe is always evaluated last.
 
-   The variables `$$?' and `$$*' are not available and expand to the
+   The variables '$$?' and '$$*' are not available and expand to the
 empty string.
 
 Secondary Expansion of Static Pattern Rules
@@ -1482,13 +1479,13 @@ Secondary Expansion of Static Pattern Rules
 
 Rules for secondary expansion of static pattern rules are identical to
 those for explicit rules, above, with one exception: for static pattern
-rules the `$$*' variable is set to the pattern stem.  As with explicit
-rules, `$$?' is not available and expands to the empty string.
+rules the '$$*' variable is set to the pattern stem.  As with explicit
+rules, '$$?' is not available and expands to the empty string.
 
 Secondary Expansion of Implicit Rules
 -------------------------------------
 
-As `make' searches for an implicit rule, it substitutes the stem and
+As 'make' searches for an implicit rule, it substitutes the stem and
 then performs secondary expansion for every rule with a matching target
 pattern.  The value of the automatic variables is derived in the same
 fashion as for static pattern rules.  As an example:
@@ -1501,9 +1498,9 @@ fashion as for static pattern rules.  As an example:
 
      %oo: $$< $$^ $$+ $$*
 
-   When the implicit rule is tried for target `foo', `$$<' expands to
-`bar', `$$^' expands to `bar boo', `$$+' also expands to `bar boo', and
-`$$*' expands to `f'.
+   When the implicit rule is tried for target 'foo', '$$<' expands to
+'bar', '$$^' expands to 'bar boo', '$$+' also expands to 'bar boo', and
+'$$*' expands to 'f'.
 
    Note that the directory prefix (D), as described in *note Implicit
 Rule Search Algorithm: Implicit Rule Search, is appended (after
@@ -1518,9 +1515,9 @@ example:
              @echo $^
 
    The prerequisite list printed, after the secondary expansion and
-directory prefix reconstruction, will be `/tmp/foo/foo.c /tmp/bar/foo.c
+directory prefix reconstruction, will be '/tmp/foo/foo.c /tmp/bar/foo.c
 foo.h'.  If you are not interested in this reconstruction, you can use
-`$$*' instead of `%' in the prerequisites list.
+'$$*' instead of '%' in the prerequisites list.
 
 \1f
 File: make.info,  Node: Rules,  Next: Recipes,  Prev: Makefiles,  Up: Top
@@ -1528,24 +1525,24 @@ File: make.info,  Node: Rules,  Next: Recipes,  Prev: Makefiles,  Up: Top
 4 Writing Rules
 ***************
 
-A "rule" appears in the makefile and says when and how to remake
-certain files, called the rule's "targets" (most often only one per
-rule).  It lists the other files that are the "prerequisites" of the
-target, and the "recipe" to use to create or update the target.
+A "rule" appears in the makefile and says when and how to remake certain
+files, called the rule's "targets" (most often only one per rule).  It
+lists the other files that are the "prerequisites" of the target, and
+the "recipe" to use to create or update the target.
 
    The order of rules is not significant, except for determining the
-"default goal": the target for `make' to consider, if you do not
-otherwise specify one.  The default goal is the target of the first
-rule in the first makefile.  If the first rule has multiple targets,
-only the first target is taken as the default.  There are two
-exceptions: a target starting with a period is not a default unless it
-contains one or more slashes, `/', as well; and, a target that defines
-a pattern rule has no effect on the default goal.  (*Note Defining and
-Redefining Pattern Rules: Pattern Rules.)
+"default goal": the target for 'make' to consider, if you do not
+otherwise specify one.  The default goal is the target of the first rule
+in the first makefile.  If the first rule has multiple targets, only the
+first target is taken as the default.  There are two exceptions: a
+target starting with a period is not a default unless it contains one or
+more slashes, '/', as well; and, a target that defines a pattern rule
+has no effect on the default goal.  (*Note Defining and Redefining
+Pattern Rules: Pattern Rules.)
 
    Therefore, we usually write the makefile so that the first rule is
 the one for compiling the entire program or all the programs described
-by the makefile (often with a target called `all').  *Note Arguments to
+by the makefile (often with a target called 'all').  *Note Arguments to
 Specify the Goals: Goals.
 
 * Menu:
@@ -1553,7 +1550,7 @@ Specify the Goals: Goals.
 * Rule Example::                An example explained.
 * Rule Syntax::                 General syntax explained.
 * Prerequisite Types::          There are two types of prerequisites.
-* Wildcards::                   Using wildcard characters such as `*'.
+* Wildcards::                   Using wildcard characters such as '*'.
 * Directory Search::            Searching other directories for source files.
 * Phony Targets::               Using a target that is not a real file's name.
 * Force Targets::               You can use a target without a recipe
@@ -1583,20 +1580,20 @@ Here is an example of a rule:
      foo.o : foo.c defs.h       # module for twiddling the frobs
              cc -c -g foo.c
 
-   Its target is `foo.o' and its prerequisites are `foo.c' and
-`defs.h'.  It has one command in the recipe: `cc -c -g foo.c'.  The
-recipe starts with a tab to identify it as a recipe.
+   Its target is 'foo.o' and its prerequisites are 'foo.c' and 'defs.h'.
+It has one command in the recipe: 'cc -c -g foo.c'.  The recipe starts
+with a tab to identify it as a recipe.
 
    This rule says two things:
 
-   * How to decide whether `foo.o' is out of date: it is out of date if
-     it does not exist, or if either `foo.c' or `defs.h' is more recent
+   * How to decide whether 'foo.o' is out of date: it is out of date if
+     it does not exist, or if either 'foo.c' or 'defs.h' is more recent
      than it.
 
-   * How to update the file `foo.o': by running `cc' as stated.  The
-     recipe does not explicitly mention `defs.h', but we presume that
-     `foo.c' includes it, and that that is why `defs.h' was added to
-     the prerequisites.
+   * How to update the file 'foo.o': by running 'cc' as stated.  The
+     recipe does not explicitly mention 'defs.h', but we presume that
+     'foo.c' includes it, and that that is why 'defs.h' was added to the
+     prerequisites.
 
 \1f
 File: make.info,  Node: Rule Syntax,  Next: Prerequisite Types,  Prev: Rule Example,  Up: Rules
@@ -1616,35 +1613,34 @@ or like this:
              RECIPE
              ...
 
-   The TARGETS are file names, separated by spaces.  Wildcard
-characters may be used (*note Using Wildcard Characters in File Names:
-Wildcards.) and a name of the form `A(M)' represents member M in
-archive file A (*note Archive Members as Targets: Archive Members.).
-Usually there is only one target per rule, but occasionally there is a
-reason to have more (*note Multiple Targets in a Rule: Multiple
-Targets.).
+   The TARGETS are file names, separated by spaces.  Wildcard characters
+may be used (*note Using Wildcard Characters in File Names: Wildcards.)
+and a name of the form 'A(M)' represents member M in archive file A
+(*note Archive Members as Targets: Archive Members.).  Usually there is
+only one target per rule, but occasionally there is a reason to have
+more (*note Multiple Targets in a Rule: Multiple Targets.).
 
    The RECIPE lines start with a tab character (or the first character
-in the value of the `.RECIPEPREFIX' variable; *note Special
+in the value of the '.RECIPEPREFIX' variable; *note Special
 Variables::).  The first recipe line may appear on the line after the
 prerequisites, with a tab character, or may appear on the same line,
 with a semicolon.  Either way, the effect is the same.  There are other
 differences in the syntax of recipes.  *Note Writing Recipes in Rules:
 Recipes.
 
-   Because dollar signs are used to start `make' variable references,
-if you really want a dollar sign in a target or prerequisite you must
-write two of them, `$$' (*note How to Use Variables: Using Variables.).
-If you have enabled secondary expansion (*note Secondary Expansion::)
-and you want a literal dollar sign in the prerequisites list, you must
-actually write _four_ dollar signs (`$$$$').
+   Because dollar signs are used to start 'make' variable references, if
+you really want a dollar sign in a target or prerequisite you must write
+two of them, '$$' (*note How to Use Variables: Using Variables.).  If
+you have enabled secondary expansion (*note Secondary Expansion::) and
+you want a literal dollar sign in the prerequisites list, you must
+actually write _four_ dollar signs ('$$$$').
 
    You may split a long line by inserting a backslash followed by a
-newline, but this is not required, as `make' places no limit on the
+newline, but this is not required, as 'make' places no limit on the
 length of a line in a makefile.
 
-   A rule tells `make' two things: when the targets are out of date,
-and how to update them when necessary.
+   A rule tells 'make' two things: when the targets are out of date, and
+how to update them when necessary.
 
    The criterion for being out of date is specified in terms of the
 PREREQUISITES, which consist of file names separated by spaces.
@@ -1656,9 +1652,9 @@ information in the prerequisites, so if any of the prerequisites
 changes, the contents of the existing target file are no longer
 necessarily valid.
 
-   How to update is specified by a RECIPE.  This is one or more lines
-to be executed by the shell (normally `sh'), but with some extra
-features (*note Writing Recipes in Rules: Recipes.).
+   How to update is specified by a RECIPE.  This is one or more lines to
+be executed by the shell (normally 'sh'), but with some extra features
+(*note Writing Recipes in Rules: Recipes.).
 
 \1f
 File: make.info,  Node: Prerequisite Types,  Next: Wildcards,  Prev: Rule Syntax,  Up: Rules
@@ -1667,13 +1663,13 @@ File: make.info,  Node: Prerequisite Types,  Next: Wildcards,  Prev: Rule Syntax
 ==========================
 
 There are actually two different types of prerequisites understood by
-GNU `make': normal prerequisites such as described in the previous
+GNU 'make': normal prerequisites such as described in the previous
 section, and "order-only" prerequisites.  A normal prerequisite makes
 two statements: first, it imposes an order in which recipes will be
-invoked: the recipes for all prerequisites of a target will be
-completed before the recipe for the target is run.  Second, it imposes
-a dependency relationship: if any prerequisite is newer than the
-target, then the target is considered out-of-date and must be rebuilt.
+invoked: the recipes for all prerequisites of a target will be completed
+before the recipe for the target is run.  Second, it imposes a
+dependency relationship: if any prerequisite is newer than the target,
+then the target is considered out-of-date and must be rebuilt.
 
    Normally, this is exactly what you want: if a target's prerequisite
 is updated, then the target should also be updated.
@@ -1681,10 +1677,10 @@ is updated, then the target should also be updated.
    Occasionally, however, you have a situation where you want to impose
 a specific ordering on the rules to be invoked _without_ forcing the
 target to be updated if one of those rules is executed.  In that case,
-you want to define "order-only" prerequisites.  Order-only
-prerequisites can be specified by placing a pipe symbol (`|') in the
-prerequisites list: any prerequisites to the left of the pipe symbol
-are normal; any prerequisites to the right are order-only:
+you want to define "order-only" prerequisites.  Order-only prerequisites
+can be specified by placing a pipe symbol ('|') in the prerequisites
+list: any prerequisites to the left of the pipe symbol are normal; any
+prerequisites to the right are order-only:
 
      TARGETS : NORMAL-PREREQUISITES | ORDER-ONLY-PREREQUISITES
 
@@ -1693,12 +1689,12 @@ may still declare multiple lines of prerequisites for the same target:
 they are appended appropriately (normal prerequisites are appended to
 the list of normal prerequisites; order-only prerequisites are appended
 to the list of order-only prerequisites).  Note that if you declare the
-same file to be both a normal and an order-only prerequisite, the
-normal prerequisite takes precedence (since they have a strict superset
-of the behavior of an order-only prerequisite).
+same file to be both a normal and an order-only prerequisite, the normal
+prerequisite takes precedence (since they have a strict superset of the
+behavior of an order-only prerequisite).
 
    Consider an example where your targets are to be placed in a separate
-directory, and that directory might not exist before `make' is run.  In
+directory, and that directory might not exist before 'make' is run.  In
 this situation, you want the directory to be created before any targets
 are placed into it but, because the timestamps on directories change
 whenever a file is added, removed, or renamed, we certainly don't want
@@ -1719,9 +1715,9 @@ directory an order-only prerequisite on all the targets:
      $(OBJDIR):
              mkdir $(OBJDIR)
 
-   Now the rule to create the `objdir' directory will be run, if
-needed, before any `.o' is built, but no `.o' will be built because the
-`objdir' directory timestamp changed.
+   Now the rule to create the 'objdir' directory will be run, if needed,
+before any '.o' is built, but no '.o' will be built because the 'objdir'
+directory timestamp changed.
 
 \1f
 File: make.info,  Node: Wildcards,  Next: Directory Search,  Prev: Prerequisite Types,  Up: Rules
@@ -1730,27 +1726,27 @@ File: make.info,  Node: Wildcards,  Next: Directory Search,  Prev: Prerequisite
 ===========================================
 
 A single file name can specify many files using "wildcard characters".
-The wildcard characters in `make' are `*', `?' and `[...]', the same as
-in the Bourne shell.  For example, `*.c' specifies a list of all the
-files (in the working directory) whose names end in `.c'.
+The wildcard characters in 'make' are '*', '?' and '[...]', the same as
+in the Bourne shell.  For example, '*.c' specifies a list of all the
+files (in the working directory) whose names end in '.c'.
 
-   The character `~' at the beginning of a file name also has special
+   The character '~' at the beginning of a file name also has special
 significance.  If alone, or followed by a slash, it represents your home
-directory.  For example `~/bin' expands to `/home/you/bin'.  If the `~'
+directory.  For example '~/bin' expands to '/home/you/bin'.  If the '~'
 is followed by a word, the string represents the home directory of the
-user named by that word.  For example `~john/bin' expands to
-`/home/john/bin'.  On systems which don't have a home directory for
-each user (such as MS-DOS or MS-Windows), this functionality can be
-simulated by setting the environment variable HOME.
+user named by that word.  For example '~john/bin' expands to
+'/home/john/bin'.  On systems which don't have a home directory for each
+user (such as MS-DOS or MS-Windows), this functionality can be simulated
+by setting the environment variable HOME.
 
-   Wildcard expansion is performed by `make' automatically in targets
-and in prerequisites.  In recipes, the shell is responsible for
-wildcard expansion.  In other contexts, wildcard expansion happens only
-if you request it explicitly with the `wildcard' function.
+   Wildcard expansion is performed by 'make' automatically in targets
+and in prerequisites.  In recipes, the shell is responsible for wildcard
+expansion.  In other contexts, wildcard expansion happens only if you
+request it explicitly with the 'wildcard' function.
 
    The special significance of a wildcard character can be turned off by
-preceding it with a backslash.  Thus, `foo\*bar' would refer to a
-specific file whose name consists of `foo', an asterisk, and `bar'.
+preceding it with a backslash.  Thus, 'foo\*bar' would refer to a
+specific file whose name consists of 'foo', an asterisk, and 'bar'.
 
 * Menu:
 
@@ -1773,28 +1769,28 @@ files:
              rm -f *.o
 
    Wildcards are also useful in the prerequisites of a rule.  With the
-following rule in the makefile, `make print' will print all the `.c'
+following rule in the makefile, 'make print' will print all the '.c'
 files that have changed since the last time you printed them:
 
      print: *.c
              lpr -p $?
              touch print
 
-This rule uses `print' as an empty target file; see *note Empty Target
-Files to Record Events: Empty Targets.  (The automatic variable `$?' is
+This rule uses 'print' as an empty target file; see *note Empty Target
+Files to Record Events: Empty Targets.  (The automatic variable '$?' is
 used to print only those files that have changed; see *note Automatic
 Variables::.)
 
-   Wildcard expansion does not happen when you define a variable.
-Thus, if you write this:
+   Wildcard expansion does not happen when you define a variable.  Thus,
+if you write this:
 
      objects = *.o
 
-then the value of the variable `objects' is the actual string `*.o'.
-However, if you use the value of `objects' in a target or prerequisite,
+then the value of the variable 'objects' is the actual string '*.o'.
+However, if you use the value of 'objects' in a target or prerequisite,
 wildcard expansion will take place there.  If you use the value of
-`objects' in a recipe, the shell may perform wildcard expansion when
-the recipe runs.  To set `objects' to the expansion, instead use:
+'objects' in a recipe, the shell may perform wildcard expansion when the
+recipe runs.  To set 'objects' to the expansion, instead use:
 
      objects := $(wildcard *.o)
 
@@ -1808,7 +1804,7 @@ File: make.info,  Node: Wildcard Pitfall,  Next: Wildcard Function,  Prev: Wildc
 
 Now here is an example of a naive way of using wildcard expansion, that
 does not do what you would intend.  Suppose you would like to say that
-the executable file `foo' is made from all the object files in the
+the executable file 'foo' is made from all the object files in the
 directory, and you write this:
 
      objects = *.o
@@ -1816,66 +1812,65 @@ directory, and you write this:
      foo : $(objects)
              cc -o foo $(CFLAGS) $(objects)
 
-The value of `objects' is the actual string `*.o'.  Wildcard expansion
-happens in the rule for `foo', so that each _existing_ `.o' file
-becomes a prerequisite of `foo' and will be recompiled if necessary.
+The value of 'objects' is the actual string '*.o'.  Wildcard expansion
+happens in the rule for 'foo', so that each _existing_ '.o' file becomes
+a prerequisite of 'foo' and will be recompiled if necessary.
 
-   But what if you delete all the `.o' files?  When a wildcard matches
-no files, it is left as it is, so then `foo' will depend on the
-oddly-named file `*.o'.  Since no such file is likely to exist, `make'
-will give you an error saying it cannot figure out how to make `*.o'.
+   But what if you delete all the '.o' files?  When a wildcard matches
+no files, it is left as it is, so then 'foo' will depend on the
+oddly-named file '*.o'.  Since no such file is likely to exist, 'make'
+will give you an error saying it cannot figure out how to make '*.o'.
 This is not what you want!
 
    Actually it is possible to obtain the desired result with wildcard
 expansion, but you need more sophisticated techniques, including the
-`wildcard' function and string substitution.  *Note The Function
-`wildcard': Wildcard Function.
+'wildcard' function and string substitution.  *Note The Function
+'wildcard': Wildcard Function.
 
    Microsoft operating systems (MS-DOS and MS-Windows) use backslashes
 to separate directories in pathnames, like so:
 
        c:\foo\bar\baz.c
 
-   This is equivalent to the Unix-style `c:/foo/bar/baz.c' (the `c:'
-part is the so-called drive letter).  When `make' runs on these
-systems, it supports backslashes as well as the Unix-style forward
-slashes in pathnames.  However, this support does _not_ include the
-wildcard expansion, where backslash is a quote character.  Therefore,
-you _must_ use Unix-style slashes in these cases.
+   This is equivalent to the Unix-style 'c:/foo/bar/baz.c' (the 'c:'
+part is the so-called drive letter).  When 'make' runs on these systems,
+it supports backslashes as well as the Unix-style forward slashes in
+pathnames.  However, this support does _not_ include the wildcard
+expansion, where backslash is a quote character.  Therefore, you _must_
+use Unix-style slashes in these cases.
 
 \1f
 File: make.info,  Node: Wildcard Function,  Prev: Wildcard Pitfall,  Up: Wildcards
 
-4.4.3 The Function `wildcard'
+4.4.3 The Function 'wildcard'
 -----------------------------
 
 Wildcard expansion happens automatically in rules.  But wildcard
-expansion does not normally take place when a variable is set, or
-inside the arguments of a function.  If you want to do wildcard
-expansion in such places, you need to use the `wildcard' function, like
-this:
+expansion does not normally take place when a variable is set, or inside
+the arguments of a function.  If you want to do wildcard expansion in
+such places, you need to use the 'wildcard' function, like this:
 
      $(wildcard PATTERN...)
 
 This string, used anywhere in a makefile, is replaced by a
 space-separated list of names of existing files that match one of the
 given file name patterns.  If no existing file name matches a pattern,
-then that pattern is omitted from the output of the `wildcard'
-function.  Note that this is different from how unmatched wildcards
-behave in rules, where they are used verbatim rather than ignored
-(*note Wildcard Pitfall::).
+then that pattern is omitted from the output of the 'wildcard' function.
+Note that this is different from how unmatched wildcards behave in
+rules, where they are used verbatim rather than ignored (*note Wildcard
+Pitfall::).
 
-   One use of the `wildcard' function is to get a list of all the C
+   One use of the 'wildcard' function is to get a list of all the C
 source files in a directory, like this:
 
      $(wildcard *.c)
 
    We can change the list of C source files into a list of object files
-by replacing the `.c' suffix with `.o' in the result, like this:
+by replacing the '.c' suffix with '.o' in the result, like this:
 
      $(patsubst %.c,%.o,$(wildcard *.c))
 
-(Here we have used another function, `patsubst'.  *Note Functions for
+(Here we have used another function, 'patsubst'.  *Note Functions for
 String Substitution and Analysis: Text Functions.)
 
    Thus, a makefile to compile all C source files in the directory and
@@ -1887,9 +1882,9 @@ then link them together could be written as follows:
              cc -o foo $(objects)
 
 (This takes advantage of the implicit rule for compiling C programs, so
-there is no need to write explicit rules for compiling the files.
-*Note The Two Flavors of Variables: Flavors, for an explanation of
-`:=', which is a variant of `='.)
+there is no need to write explicit rules for compiling the files.  *Note
+The Two Flavors of Variables: Flavors, for an explanation of ':=', which
+is a variant of '='.)
 
 \1f
 File: make.info,  Node: Directory Search,  Next: Phony Targets,  Prev: Wildcards,  Up: Rules
@@ -1898,10 +1893,10 @@ File: make.info,  Node: Directory Search,  Next: Phony Targets,  Prev: Wildcards
 ===========================================
 
 For large systems, it is often desirable to put sources in a separate
-directory from the binaries.  The "directory search" features of `make'
-facilitate this by searching several directories automatically to find
-a prerequisite.  When you redistribute the files among directories, you
-do not need to change the individual rules, just the search paths.
+directory from the binaries.  The "directory search" features of 'make'
+facilitate this by searching several directories automatically to find a
+prerequisite.  When you redistribute the files among directories, you do
+not need to change the individual rules, just the search paths.
 
 * Menu:
 
@@ -1918,37 +1913,37 @@ do not need to change the individual rules, just the search paths.
 \1f
 File: make.info,  Node: General Search,  Next: Selective Search,  Prev: Directory Search,  Up: Directory Search
 
-4.5.1 `VPATH': Search Path for All Prerequisites
+4.5.1 'VPATH': Search Path for All Prerequisites
 ------------------------------------------------
 
-The value of the `make' variable `VPATH' specifies a list of
-directories that `make' should search.  Most often, the directories are
-expected to contain prerequisite files that are not in the current
-directory; however, `make' uses `VPATH' as a search list for both
-prerequisites and targets of rules.
+The value of the 'make' variable 'VPATH' specifies a list of directories
+that 'make' should search.  Most often, the directories are expected to
+contain prerequisite files that are not in the current directory;
+however, 'make' uses 'VPATH' as a search list for both prerequisites and
+targets of rules.
 
    Thus, if a file that is listed as a target or prerequisite does not
-exist in the current directory, `make' searches the directories listed
-in `VPATH' for a file with that name.  If a file is found in one of
+exist in the current directory, 'make' searches the directories listed
+in 'VPATH' for a file with that name.  If a file is found in one of
 them, that file may become the prerequisite (see below).  Rules may then
 specify the names of files in the prerequisite list as if they all
 existed in the current directory.  *Note Writing Recipes with Directory
 Search: Recipes/Search.
 
-   In the `VPATH' variable, directory names are separated by colons or
+   In the 'VPATH' variable, directory names are separated by colons or
 blanks.  The order in which directories are listed is the order followed
-by `make' in its search.  (On MS-DOS and MS-Windows, semi-colons are
-used as separators of directory names in `VPATH', since the colon can
-be used in the pathname itself, after the drive letter.)
+by 'make' in its search.  (On MS-DOS and MS-Windows, semi-colons are
+used as separators of directory names in 'VPATH', since the colon can be
+used in the pathname itself, after the drive letter.)
 
    For example,
 
      VPATH = src:../headers
 
-specifies a path containing two directories, `src' and `../headers',
-which `make' searches in that order.
+specifies a path containing two directories, 'src' and '../headers',
+which 'make' searches in that order.
 
-   With this value of `VPATH', the following rule,
+   With this value of 'VPATH', the following rule,
 
      foo.o : foo.c
 
@@ -1956,71 +1951,72 @@ is interpreted as if it were written like this:
 
      foo.o : src/foo.c
 
-assuming the file `foo.c' does not exist in the current directory but
-is found in the directory `src'.
+assuming the file 'foo.c' does not exist in the current directory but is
+found in the directory 'src'.
 
 \1f
 File: make.info,  Node: Selective Search,  Next: Search Algorithm,  Prev: General Search,  Up: Directory Search
 
-4.5.2 The `vpath' Directive
+4.5.2 The 'vpath' Directive
 ---------------------------
 
-Similar to the `VPATH' variable, but more selective, is the `vpath'
+Similar to the 'VPATH' variable, but more selective, is the 'vpath'
 directive (note lower case), which allows you to specify a search path
 for a particular class of file names: those that match a particular
 pattern.  Thus you can supply certain search directories for one class
 of file names and other directories (or none) for other file names.
 
-   There are three forms of the `vpath' directive:
+   There are three forms of the 'vpath' directive:
 
-`vpath PATTERN DIRECTORIES'
+'vpath PATTERN DIRECTORIES'
      Specify the search path DIRECTORIES for file names that match
      PATTERN.
 
      The search path, DIRECTORIES, is a list of directories to be
      searched, separated by colons (semi-colons on MS-DOS and
      MS-Windows) or blanks, just like the search path used in the
-     `VPATH' variable.
+     'VPATH' variable.
 
-`vpath PATTERN'
+'vpath PATTERN'
      Clear out the search path associated with PATTERN.
 
-`vpath'
-     Clear all search paths previously specified with `vpath'
+'vpath'
+
+     Clear all search paths previously specified with 'vpath'
      directives.
 
-   A `vpath' pattern is a string containing a `%' character.  The
-string must match the file name of a prerequisite that is being searched
-for, the `%' character matching any sequence of zero or more characters
-(as in pattern rules; *note Defining and Redefining Pattern Rules:
-Pattern Rules.).  For example, `%.h' matches files that end in `.h'.
-(If there is no `%', the pattern must match the prerequisite exactly,
-which is not useful very often.)
-
-   `%' characters in a `vpath' directive's pattern can be quoted with
-preceding backslashes (`\').  Backslashes that would otherwise quote
-`%' characters can be quoted with more backslashes.  Backslashes that
-quote `%' characters or other backslashes are removed from the pattern
-before it is compared to file names.  Backslashes that are not in
-danger of quoting `%' characters go unmolested.
+   A 'vpath' pattern is a string containing a '%' character.  The string
+must match the file name of a prerequisite that is being searched for,
+the '%' character matching any sequence of zero or more characters (as
+in pattern rules; *note Defining and Redefining Pattern Rules: Pattern
+Rules.).  For example, '%.h' matches files that end in '.h'.  (If there
+is no '%', the pattern must match the prerequisite exactly, which is not
+useful very often.)
+
+   '%' characters in a 'vpath' directive's pattern can be quoted with
+preceding backslashes ('\').  Backslashes that would otherwise quote '%'
+characters can be quoted with more backslashes.  Backslashes that quote
+'%' characters or other backslashes are removed from the pattern before
+it is compared to file names.  Backslashes that are not in danger of
+quoting '%' characters go unmolested.
 
    When a prerequisite fails to exist in the current directory, if the
-PATTERN in a `vpath' directive matches the name of the prerequisite
-file, then the DIRECTORIES in that directive are searched just like
-(and before) the directories in the `VPATH' variable.
+PATTERN in a 'vpath' directive matches the name of the prerequisite
+file, then the DIRECTORIES in that directive are searched just like (and
+before) the directories in the 'VPATH' variable.
 
    For example,
 
      vpath %.h ../headers
 
-tells `make' to look for any prerequisite whose name ends in `.h' in
-the directory `../headers' if the file is not found in the current
+tells 'make' to look for any prerequisite whose name ends in '.h' in the
+directory '../headers' if the file is not found in the current
 directory.
 
-   If several `vpath' patterns match the prerequisite file's name, then
-`make' processes each matching `vpath' directive one by one, searching
-all the directories mentioned in each directive.  `make' handles
-multiple `vpath' directives in the order in which they appear in the
+   If several 'vpath' patterns match the prerequisite file's name, then
+'make' processes each matching 'vpath' directive one by one, searching
+all the directories mentioned in each directive.  'make' handles
+multiple 'vpath' directives in the order in which they appear in the
 makefile; multiple directives with the same pattern are independent of
 each other.
 
@@ -2030,13 +2026,13 @@ each other.
      vpath %   blish
      vpath %.c bar
 
-will look for a file ending in `.c' in `foo', then `blish', then `bar',
+will look for a file ending in '.c' in 'foo', then 'blish', then 'bar',
 while
 
      vpath %.c foo:bar
      vpath %   blish
 
-will look for a file ending in `.c' in `foo', then `bar', then `blish'.
+will look for a file ending in '.c' in 'foo', then 'bar', then 'blish'.
 
 \1f
 File: make.info,  Node: Search Algorithm,  Next: Recipes/Search,  Prev: Selective Search,  Up: Directory Search
@@ -2046,11 +2042,11 @@ File: make.info,  Node: Search Algorithm,  Next: Recipes/Search,  Prev: Selectiv
 
 When a prerequisite is found through directory search, regardless of
 type (general or selective), the pathname located may not be the one
-that `make' actually provides you in the prerequisite list.  Sometimes
+that 'make' actually provides you in the prerequisite list.  Sometimes
 the path discovered through directory search is thrown away.
 
-   The algorithm `make' uses to decide whether to keep or abandon a
-path found via directory search is as follows:
+   The algorithm 'make' uses to decide whether to keep or abandon a path
+found via directory search is as follows:
 
   1. If a target file does not exist at the path specified in the
      makefile, directory search is performed.
@@ -2067,32 +2063,32 @@ path found via directory search is as follows:
        a. If the target does _not_ need to be rebuilt, the path to the
           file found during directory search is used for any
           prerequisite lists which contain this target.  In short, if
-          `make' doesn't need to rebuild the target then you use the
+          'make' doesn't need to rebuild the target then you use the
           path found via directory search.
 
        b. If the target _does_ need to be rebuilt (is out-of-date), the
           pathname found during directory search is _thrown away_, and
           the target is rebuilt using the file name specified in the
-          makefile.  In short, if `make' must rebuild, then the target
+          makefile.  In short, if 'make' must rebuild, then the target
           is rebuilt locally, not in the directory found via directory
           search.
 
    This algorithm may seem complex, but in practice it is quite often
 exactly what you want.
 
-   Other versions of `make' use a simpler algorithm: if the file does
+   Other versions of 'make' use a simpler algorithm: if the file does
 not exist, and it is found via directory search, then that pathname is
 always used whether or not the target needs to be built.  Thus, if the
 target is rebuilt it is created at the pathname discovered during
 directory search.
 
    If, in fact, this is the behavior you want for some or all of your
-directories, you can use the `GPATH' variable to indicate this to
-`make'.
+directories, you can use the 'GPATH' variable to indicate this to
+'make'.
 
-   `GPATH' has the same syntax and format as `VPATH' (that is, a space-
+   'GPATH' has the same syntax and format as 'VPATH' (that is, a space-
 or colon-delimited list of pathnames).  If an out-of-date target is
-found by directory search in a directory that also appears in `GPATH',
+found by directory search in a directory that also appears in 'GPATH',
 then that pathname is not thrown away.  The target is rebuilt using the
 expanded path.
 
@@ -2104,25 +2100,25 @@ File: make.info,  Node: Recipes/Search,  Next: Implicit/Search,  Prev: Search Al
 
 When a prerequisite is found in another directory through directory
 search, this cannot change the recipe of the rule; they will execute as
-written.  Therefore, you must write the recipe with care so that it
-will look for the prerequisite in the directory where `make' finds it.
+written.  Therefore, you must write the recipe with care so that it will
+look for the prerequisite in the directory where 'make' finds it.
 
-   This is done with the "automatic variables" such as `$^' (*note
-Automatic Variables::).  For instance, the value of `$^' is a list of
+   This is done with the "automatic variables" such as '$^' (*note
+Automatic Variables::).  For instance, the value of '$^' is a list of
 all the prerequisites of the rule, including the names of the
-directories in which they were found, and the value of `$@' is the
+directories in which they were found, and the value of '$@' is the
 target.  Thus:
 
      foo.o : foo.c
              cc -c $(CFLAGS) $^ -o $@
 
-(The variable `CFLAGS' exists so you can specify flags for C
-compilation by implicit rules; we use it here for consistency so it will
-affect all C compilations uniformly; *note Variables Used by Implicit
-Rules: Implicit Variables.)
+(The variable 'CFLAGS' exists so you can specify flags for C compilation
+by implicit rules; we use it here for consistency so it will affect all
+C compilations uniformly; *note Variables Used by Implicit Rules:
+Implicit Variables.)
 
    Often the prerequisites include header files as well, which you do
-not want to mention in the recipe.  The automatic variable `$<' is just
+not want to mention in the recipe.  The automatic variable '$<' is just
 the first prerequisite:
 
      VPATH = src:../headers
@@ -2135,14 +2131,14 @@ File: make.info,  Node: Implicit/Search,  Next: Libraries/Search,  Prev: Recipes
 4.5.5 Directory Search and Implicit Rules
 -----------------------------------------
 
-The search through the directories specified in `VPATH' or with `vpath'
+The search through the directories specified in 'VPATH' or with 'vpath'
 also happens during consideration of implicit rules (*note Using
 Implicit Rules: Implicit Rules.).
 
-   For example, when a file `foo.o' has no explicit rule, `make'
-considers implicit rules, such as the built-in rule to compile `foo.c'
+   For example, when a file 'foo.o' has no explicit rule, 'make'
+considers implicit rules, such as the built-in rule to compile 'foo.c'
 if that file exists.  If such a file is lacking in the current
-directory, the appropriate directories are searched for it.  If `foo.c'
+directory, the appropriate directories are searched for it.  If 'foo.c'
 exists (or is mentioned in the makefile) in any of the directories, the
 implicit rule for C compilation is applied.
 
@@ -2158,38 +2154,38 @@ File: make.info,  Node: Libraries/Search,  Prev: Implicit/Search,  Up: Directory
 
 Directory search applies in a special way to libraries used with the
 linker.  This special feature comes into play when you write a
-prerequisite whose name is of the form `-lNAME'.  (You can tell
+prerequisite whose name is of the form '-lNAME'.  (You can tell
 something strange is going on here because the prerequisite is normally
 the name of a file, and the _file name_ of a library generally looks
-like `libNAME.a', not like `-lNAME'.)
+like 'libNAME.a', not like '-lNAME'.)
 
-   When a prerequisite's name has the form `-lNAME', `make' handles it
-specially by searching for the file `libNAME.so', and, if it is not
-found, for the file `libNAME.a' in the current directory, in
-directories specified by matching `vpath' search paths and the `VPATH'
-search path, and then in the directories `/lib', `/usr/lib', and
-`PREFIX/lib' (normally `/usr/local/lib', but MS-DOS/MS-Windows versions
-of `make' behave as if PREFIX is defined to be the root of the DJGPP
-installation tree).
+   When a prerequisite's name has the form '-lNAME', 'make' handles it
+specially by searching for the file 'libNAME.so', and, if it is not
+found, for the file 'libNAME.a' in the current directory, in directories
+specified by matching 'vpath' search paths and the 'VPATH' search path,
+and then in the directories '/lib', '/usr/lib', and 'PREFIX/lib'
+(normally '/usr/local/lib', but MS-DOS/MS-Windows versions of 'make'
+behave as if PREFIX is defined to be the root of the DJGPP installation
+tree).
 
-   For example, if there is a `/usr/lib/libcurses.a' library on your
-system (and no `/usr/lib/libcurses.so' file), then
+   For example, if there is a '/usr/lib/libcurses.a' library on your
+system (and no '/usr/lib/libcurses.so' file), then
 
      foo : foo.c -lcurses
              cc $^ -o $@
 
-would cause the command `cc foo.c /usr/lib/libcurses.a -o foo' to be
-executed when `foo' is older than `foo.c' or than
-`/usr/lib/libcurses.a'.
+would cause the command 'cc foo.c /usr/lib/libcurses.a -o foo' to be
+executed when 'foo' is older than 'foo.c' or than
+'/usr/lib/libcurses.a'.
 
-   Although the default set of files to be searched for is `libNAME.so'
-and `libNAME.a', this is customizable via the `.LIBPATTERNS' variable.
+   Although the default set of files to be searched for is 'libNAME.so'
+and 'libNAME.a', this is customizable via the '.LIBPATTERNS' variable.
 Each word in the value of this variable is a pattern string.  When a
-prerequisite like `-lNAME' is seen, `make' will replace the percent in
+prerequisite like '-lNAME' is seen, 'make' will replace the percent in
 each pattern in the list with NAME and perform the above directory
 searches using each library file name.
 
-   The default value for `.LIBPATTERNS' is `lib%.so lib%.a', which
+   The default value for '.LIBPATTERNS' is 'lib%.so lib%.a', which
 provides the default behavior described above.
 
    You can turn off link library expansion completely by setting this
@@ -2213,41 +2209,31 @@ Here is an example:
      clean:
              rm *.o temp
 
-Because the `rm' command does not create a file named `clean', probably
-no such file will ever exist.  Therefore, the `rm' command will be
-executed every time you say `make clean'.  
-
-   The phony target will cease to work if anything ever does create a
-file named `clean' in this directory.  Since it has no prerequisites,
-the file `clean' would inevitably be considered up to date, and its
-recipe would not be executed.  To avoid this problem, you can explicitly
-declare the target to be phony, using the special target `.PHONY'
-(*note Special Built-in Target Names: Special Targets.) as follows:
-
-     .PHONY : clean
-
-Once this is done, `make clean' will run the recipe regardless of
-whether there is a file named `clean'.
-
-   Since it knows that phony targets do not name actual files that
-could be remade from other files, `make' skips the implicit rule search
-for phony targets (*note Implicit Rules::).  This is why declaring a
-target phony is good for performance, even if you are not worried about
-the actual file existing.
+Because the 'rm' command does not create a file named 'clean', probably
+no such file will ever exist.  Therefore, the 'rm' command will be
+executed every time you say 'make clean'.
 
-   Thus, you first write the line that states that `clean' is a phony
-target, then you write the rule, like this:
+   In this example, the 'clean' target will not work properly if a file
+named 'clean' is ever created in this directory.  Since it has no
+prerequisites, 'clean' would always be considered up to date and its
+recipe would not be executed.  To avoid this problem you can explicitly
+declare the target to be phony by making it a prerequisite of the
+special target '.PHONY' (*note Special Built-in Target Names: Special
+Targets.) as follows:
 
      .PHONY: clean
      clean:
              rm *.o temp
 
-   Another example of the usefulness of phony targets is in conjunction
-with recursive invocations of `make' (for more information, see *note
-Recursive Use of `make': Recursion.).  In this case the makefile will
-often contain a variable which lists a number of sub-directories to be
-built.  One way to handle this is with one rule whose recipe is a shell
-loop over the sub-directories, like this:
+Once this is done, 'make clean' will run the recipe regardless of
+whether there is a file named 'clean'.
+
+   Phony targets are also useful in conjunction with recursive
+invocations of 'make' (*note Recursive Use of 'make': Recursion.).  In
+this situation the makefile will often contain a variable which lists a
+number of sub-directories to be built.  A simplistic way to handle this
+is to define one rule with a recipe that loops over the sub-directories,
+like this:
 
      SUBDIRS = foo bar baz
 
@@ -2260,13 +2246,13 @@ loop over the sub-directories, like this:
 detected in a sub-make is ignored by this rule, so it will continue to
 build the rest of the directories even when one fails.  This can be
 overcome by adding shell commands to note the error and exit, but then
-it will do so even if `make' is invoked with the `-k' option, which is
+it will do so even if 'make' is invoked with the '-k' option, which is
 unfortunate.  Second, and perhaps more importantly, you cannot take
-advantage of `make''s ability to build targets in parallel (*note
+advantage of 'make''s ability to build targets in parallel (*note
 Parallel Execution: Parallel.), since there is only one rule.
 
-   By declaring the sub-directories as phony targets (you must do this
-as the sub-directory obviously always exists; otherwise it won't be
+   By declaring the sub-directories as '.PHONY' targets (you must do
+this as the sub-directory obviously always exists; otherwise it won't be
 built) you can remove these problems:
 
      SUBDIRS = foo bar baz
@@ -2280,24 +2266,29 @@ built) you can remove these problems:
 
      foo: baz
 
-   Here we've also declared that the `foo' sub-directory cannot be
-built until after the `baz' sub-directory is complete; this kind of
+   Here we've also declared that the 'foo' sub-directory cannot be built
+until after the 'baz' sub-directory is complete; this kind of
 relationship declaration is particularly important when attempting
 parallel builds.
 
-   A phony target should not be a prerequisite of a real target file;
-if it is, its recipe will be run every time `make' goes to update that
+   The implicit rule search (*note Implicit Rules::) is skipped for
+'.PHONY' targets.  This is why declaring a target as '.PHONY' is good
+for performance, even if you are not worried about the actual file
+existing.
+
+   A phony target should not be a prerequisite of a real target file; if
+it is, its recipe will be run every time 'make' goes to update that
 file.  As long as a phony target is never a prerequisite of a real
 target, the phony target recipe will be executed only when the phony
 target is a specified goal (*note Arguments to Specify the Goals:
 Goals.).
 
    Phony targets can have prerequisites.  When one directory contains
-multiple programs, it is most convenient to describe all of the
-programs in one makefile `./Makefile'.  Since the target remade by
-default will be the first one in the makefile, it is common to make
-this a phony target named `all' and give it, as prerequisites, all the
-individual programs.  For example:
+multiple programs, it is most convenient to describe all of the programs
+in one makefile './Makefile'.  Since the target remade by default will
+be the first one in the makefile, it is common to make this a phony
+target named 'all' and give it, as prerequisites, all the individual
+programs.  For example:
 
      all : prog1 prog2 prog3
      .PHONY : all
@@ -2311,14 +2302,14 @@ individual programs.  For example:
      prog3 : prog3.o sort.o utils.o
              cc -o prog3 prog3.o sort.o utils.o
 
-Now you can say just `make' to remake all three programs, or specify as
-arguments the ones to remake (as in `make prog1 prog3').  Phoniness is
+Now you can say just 'make' to remake all three programs, or specify as
+arguments the ones to remake (as in 'make prog1 prog3').  Phoniness is
 not inherited: the prerequisites of a phony target are not themselves
 phony, unless explicitly declared to be so.
 
    When one phony target is a prerequisite of another, it serves as a
-subroutine of the other.  For example, here `make cleanall' will delete
-the object files, the difference files, and the file `program':
+subroutine of the other.  For example, here 'make cleanall' will delete
+the object files, the difference files, and the file 'program':
 
      .PHONY: cleanall cleanobj cleandiff
 
@@ -2338,7 +2329,7 @@ File: make.info,  Node: Force Targets,  Next: Empty Targets,  Prev: Phony Target
 ==========================================
 
 If a rule has no prerequisites or recipe, and the target of the rule is
-a nonexistent file, then `make' imagines this target to have been
+a nonexistent file, then 'make' imagines this target to have been
 updated whenever its rule is run.  This implies that all targets
 depending on this one will always have their recipe run.
 
@@ -2348,17 +2339,17 @@ depending on this one will always have their recipe run.
              rm $(objects)
      FORCE:
 
-   Here the target `FORCE' satisfies the special conditions, so the
-target `clean' that depends on it is forced to run its recipe.  There
-is nothing special about the name `FORCE', but that is one name
-commonly used this way.
+   Here the target 'FORCE' satisfies the special conditions, so the
+target 'clean' that depends on it is forced to run its recipe.  There is
+nothing special about the name 'FORCE', but that is one name commonly
+used this way.
 
-   As you can see, using `FORCE' this way has the same results as using
-`.PHONY: clean'.
+   As you can see, using 'FORCE' this way has the same results as using
+'.PHONY: clean'.
 
-   Using `.PHONY' is more explicit and more efficient.  However, other
-versions of `make' do not support `.PHONY'; thus `FORCE' appears in
-many makefiles.  *Note Phony Targets::.
+   Using '.PHONY' is more explicit and more efficient.  However, other
+versions of 'make' do not support '.PHONY'; thus 'FORCE' appears in many
+makefiles.  *Note Phony Targets::.
 
 \1f
 File: make.info,  Node: Empty Targets,  Next: Special Targets,  Prev: Force Targets,  Up: Rules
@@ -2373,7 +2364,7 @@ contents do not matter, and usually are empty.
 
    The purpose of the empty target file is to record, with its
 last-modification time, when the rule's recipe was last executed.  It
-does so because one of the commands in the recipe is a `touch' command
+does so because one of the commands in the recipe is a 'touch' command
 to update the target file.
 
    The empty target file should have some prerequisites (otherwise it
@@ -2385,11 +2376,11 @@ remade the target.  Here is an example:
      print: foo.c bar.c
              lpr -p $?
              touch print
-   
-With this rule, `make print' will execute the `lpr' command if either
-source file has changed since the last `make print'.  The automatic
-variable `$?' is used to print only those files that have changed
-(*note Automatic Variables::).
+
+With this rule, 'make print' will execute the 'lpr' command if either
+source file has changed since the last 'make print'.  The automatic
+variable '$?' is used to print only those files that have changed (*note
+Automatic Variables::).
 
 \1f
 File: make.info,  Node: Special Targets,  Next: Multiple Targets,  Prev: Empty Targets,  Up: Rules
@@ -2399,160 +2390,175 @@ File: make.info,  Node: Special Targets,  Next: Multiple Targets,  Prev: Empty T
 
 Certain names have special meanings if they appear as targets.
 
-`.PHONY'
-     The prerequisites of the special target `.PHONY' are considered to
+'.PHONY'
+
+     The prerequisites of the special target '.PHONY' are considered to
      be phony targets.  When it is time to consider such a target,
-     `make' will run its recipe unconditionally, regardless of whether
-     a file with that name exists or what its last-modification time
-     is.  *Note Phony Targets: Phony Targets.
+     'make' will run its recipe unconditionally, regardless of whether a
+     file with that name exists or what its last-modification time is.
+     *Note Phony Targets: Phony Targets.
 
-`.SUFFIXES'
-     The prerequisites of the special target `.SUFFIXES' are the list
-     of suffixes to be used in checking for suffix rules.  *Note
+'.SUFFIXES'
+
+     The prerequisites of the special target '.SUFFIXES' are the list of
+     suffixes to be used in checking for suffix rules.  *Note
      Old-Fashioned Suffix Rules: Suffix Rules.
 
-`.DEFAULT'
-     The recipe specified for `.DEFAULT' is used for any target for
+'.DEFAULT'
+
+     The recipe specified for '.DEFAULT' is used for any target for
      which no rules are found (either explicit rules or implicit rules).
-     *Note Last Resort::.  If a `.DEFAULT' recipe is specified, every
+     *Note Last Resort::.  If a '.DEFAULT' recipe is specified, every
      file mentioned as a prerequisite, but not as a target in a rule,
      will have that recipe executed on its behalf.  *Note Implicit Rule
      Search Algorithm: Implicit Rule Search.
 
-`.PRECIOUS'
-     The targets which `.PRECIOUS' depends on are given the following
-     special treatment: if `make' is killed or interrupted during the
+'.PRECIOUS'
+
+     The targets which '.PRECIOUS' depends on are given the following
+     special treatment: if 'make' is killed or interrupted during the
      execution of their recipes, the target is not deleted.  *Note
-     Interrupting or Killing `make': Interrupts.  Also, if the target
-     is an intermediate file, it will not be deleted after it is no
-     longer needed, as is normally done.  *Note Chains of Implicit
-     Rules: Chained Rules.  In this latter respect it overlaps with the
-     `.SECONDARY' special target.
+     Interrupting or Killing 'make': Interrupts.  Also, if the target is
+     an intermediate file, it will not be deleted after it is no longer
+     needed, as is normally done.  *Note Chains of Implicit Rules:
+     Chained Rules.  In this latter respect it overlaps with the
+     '.SECONDARY' special target.
 
      You can also list the target pattern of an implicit rule (such as
-     `%.o') as a prerequisite file of the special target `.PRECIOUS' to
+     '%.o') as a prerequisite file of the special target '.PRECIOUS' to
      preserve intermediate files created by rules whose target patterns
      match that file's name.
 
-`.INTERMEDIATE'
-     The targets which `.INTERMEDIATE' depends on are treated as
+'.INTERMEDIATE'
+
+     The targets which '.INTERMEDIATE' depends on are treated as
      intermediate files.  *Note Chains of Implicit Rules: Chained Rules.
-     `.INTERMEDIATE' with no prerequisites has no effect.
+     '.INTERMEDIATE' with no prerequisites has no effect.
+
+'.SECONDARY'
 
-`.SECONDARY'
-     The targets which `.SECONDARY' depends on are treated as
+     The targets which '.SECONDARY' depends on are treated as
      intermediate files, except that they are never automatically
      deleted.  *Note Chains of Implicit Rules: Chained Rules.
 
-     `.SECONDARY' with no prerequisites causes all targets to be treated
+     '.SECONDARY' with no prerequisites causes all targets to be treated
      as secondary (i.e., no target is removed because it is considered
      intermediate).
 
-`.SECONDEXPANSION'
-     If `.SECONDEXPANSION' is mentioned as a target anywhere in the
+'.SECONDEXPANSION'
+
+     If '.SECONDEXPANSION' is mentioned as a target anywhere in the
      makefile, then all prerequisite lists defined _after_ it appears
      will be expanded a second time after all makefiles have been read
      in.  *Note Secondary Expansion: Secondary Expansion.
 
-`.DELETE_ON_ERROR'
-     If `.DELETE_ON_ERROR' is mentioned as a target anywhere in the
-     makefile, then `make' will delete the target of a rule if it has
+'.DELETE_ON_ERROR'
+
+     If '.DELETE_ON_ERROR' is mentioned as a target anywhere in the
+     makefile, then 'make' will delete the target of a rule if it has
      changed and its recipe exits with a nonzero exit status, just as it
      does when it receives a signal.  *Note Errors in Recipes: Errors.
 
-`.IGNORE'
-     If you specify prerequisites for `.IGNORE', then `make' will
-     ignore errors in execution of the recipe for those particular
-     files.  The recipe for `.IGNORE' (if any) is ignored.
+'.IGNORE'
+
+     If you specify prerequisites for '.IGNORE', then 'make' will ignore
+     errors in execution of the recipe for those particular files.  The
+     recipe for '.IGNORE' (if any) is ignored.
 
-     If mentioned as a target with no prerequisites, `.IGNORE' says to
+     If mentioned as a target with no prerequisites, '.IGNORE' says to
      ignore errors in execution of recipes for all files.  This usage of
-     `.IGNORE' is supported only for historical compatibility.  Since
+     '.IGNORE' is supported only for historical compatibility.  Since
      this affects every recipe in the makefile, it is not very useful;
      we recommend you use the more selective ways to ignore errors in
      specific recipes.  *Note Errors in Recipes: Errors.
 
-`.LOW_RESOLUTION_TIME'
-     If you specify prerequisites for `.LOW_RESOLUTION_TIME', `make'
+'.LOW_RESOLUTION_TIME'
+
+     If you specify prerequisites for '.LOW_RESOLUTION_TIME', 'make'
      assumes that these files are created by commands that generate low
-     resolution time stamps.  The recipe for the `.LOW_RESOLUTION_TIME'
+     resolution time stamps.  The recipe for the '.LOW_RESOLUTION_TIME'
      target are ignored.
 
      The high resolution file time stamps of many modern file systems
-     lessen the chance of `make' incorrectly concluding that a file is
+     lessen the chance of 'make' incorrectly concluding that a file is
      up to date.  Unfortunately, some hosts do not provide a way to set
-     a high resolution file time stamp, so commands like `cp -p' that
+     a high resolution file time stamp, so commands like 'cp -p' that
      explicitly set a file's time stamp must discard its sub-second
      part.  If a file is created by such a command, you should list it
-     as a prerequisite of `.LOW_RESOLUTION_TIME' so that `make' does
-     not mistakenly conclude that the file is out of date.  For example:
+     as a prerequisite of '.LOW_RESOLUTION_TIME' so that 'make' does not
+     mistakenly conclude that the file is out of date.  For example:
 
           .LOW_RESOLUTION_TIME: dst
           dst: src
                   cp -p src dst
 
-     Since `cp -p' discards the sub-second part of `src''s time stamp,
-     `dst' is typically slightly older than `src' even when it is up to
-     date.  The `.LOW_RESOLUTION_TIME' line causes `make' to consider
-     `dst' to be up to date if its time stamp is at the start of the
-     same second that `src''s time stamp is in.
+     Since 'cp -p' discards the sub-second part of 'src''s time stamp,
+     'dst' is typically slightly older than 'src' even when it is up to
+     date.  The '.LOW_RESOLUTION_TIME' line causes 'make' to consider
+     'dst' to be up to date if its time stamp is at the start of the
+     same second that 'src''s time stamp is in.
 
      Due to a limitation of the archive format, archive member time
      stamps are always low resolution.  You need not list archive
-     members as prerequisites of `.LOW_RESOLUTION_TIME', as `make' does
+     members as prerequisites of '.LOW_RESOLUTION_TIME', as 'make' does
      this automatically.
 
-`.SILENT'
-     If you specify prerequisites for `.SILENT', then `make' will not
+'.SILENT'
+
+     If you specify prerequisites for '.SILENT', then 'make' will not
      print the recipe used to remake those particular files before
-     executing them.  The recipe for `.SILENT' is ignored.
+     executing them.  The recipe for '.SILENT' is ignored.
 
-     If mentioned as a target with no prerequisites, `.SILENT' says not
+     If mentioned as a target with no prerequisites, '.SILENT' says not
      to print any recipes before executing them.  This usage of
-     `.SILENT' is supported only for historical compatibility.  We
+     '.SILENT' is supported only for historical compatibility.  We
      recommend you use the more selective ways to silence specific
      recipes.  *Note Recipe Echoing: Echoing.  If you want to silence
-     all recipes for a particular run of `make', use the `-s' or
-     `--silent' option (*note Options Summary::).
+     all recipes for a particular run of 'make', use the '-s' or '--silent'
+     option (*note Options Summary::).
+
+'.EXPORT_ALL_VARIABLES'
 
-`.EXPORT_ALL_VARIABLES'
-     Simply by being mentioned as a target, this tells `make' to export
+     Simply by being mentioned as a target, this tells 'make' to export
      all variables to child processes by default.  *Note Communicating
-     Variables to a Sub-`make': Variables/Recursion.
+     Variables to a Sub-'make': Variables/Recursion.
 
-`.NOTPARALLEL'
-     If `.NOTPARALLEL' is mentioned as a target, then this invocation
-     of `make' will be run serially, even if the `-j' option is given.
-     Any recursively invoked `make' command will still run recipes in
+'.NOTPARALLEL'
+
+     If '.NOTPARALLEL' is mentioned as a target, then this invocation of
+     'make' will be run serially, even if the '-j' option is given.  Any
+     recursively invoked 'make' command will still run recipes in
      parallel (unless its makefile also contains this target).  Any
      prerequisites on this target are ignored.
 
-`.ONESHELL'
-     If `.ONESHELL' is mentioned as a target, then when a target is
+'.ONESHELL'
+
+     If '.ONESHELL' is mentioned as a target, then when a target is
      built all lines of the recipe will be given to a single invocation
      of the shell rather than each line being invoked separately (*note
      Recipe Execution: Execution.).
 
-`.POSIX'
-     If `.POSIX' is mentioned as a target, then the makefile will be
-     parsed and run in POSIX-conforming mode.  This does _not_ mean
-     that only POSIX-conforming makefiles will be accepted: all advanced
-     GNU `make' features are still available.  Rather, this target
-     causes `make' to behave as required by POSIX in those areas where
-     `make''s default behavior differs.
+'.POSIX'
+
+     If '.POSIX' is mentioned as a target, then the makefile will be
+     parsed and run in POSIX-conforming mode.  This does _not_ mean that
+     only POSIX-conforming makefiles will be accepted: all advanced GNU
+     'make' features are still available.  Rather, this target causes
+     'make' to behave as required by POSIX in those areas where 'make''s
+     default behavior differs.
 
      In particular, if this target is mentioned then recipes will be
-     invoked as if the shell had been passed the `-e' flag: the first
+     invoked as if the shell had been passed the '-e' flag: the first
      failing command in a recipe will cause the recipe to fail
      immediately.
 
    Any defined implicit rule suffix also counts as a special target if
 it appears as a target, and so does the concatenation of two suffixes,
-such as `.c.o'.  These targets are suffix rules, an obsolete way of
+such as '.c.o'.  These targets are suffix rules, an obsolete way of
 defining implicit rules (but a way still widely used).  In principle,
 any target name could be special in this way if you break it in two and
 add both pieces to the suffix list.  In practice, suffixes normally
-begin with `.', so these special target names also begin with `.'.
+begin with '.', so these special target names also begin with '.'.
 *Note Old-Fashioned Suffix Rules: Suffix Rules.
 
 \1f
@@ -2564,7 +2570,7 @@ File: make.info,  Node: Multiple Targets,  Next: Multiple Rules,  Prev: Special
 A rule with multiple targets is equivalent to writing many rules, each
 with one target, and all identical aside from that.  The same recipe
 applies to all the targets, but its effect may vary because you can
-substitute the actual target name into the recipe using `$@'.  The rule
+substitute the actual target name into the recipe using '$@'.  The rule
 contributes the same prerequisites to all the targets also.
 
    This is useful in two cases.
@@ -2577,13 +2583,13 @@ contributes the same prerequisites to all the targets also.
      mentioned.
 
    * Similar recipes work for all the targets.  The recipes do not need
-     to be absolutely identical, since the automatic variable `$@' can
+     to be absolutely identical, since the automatic variable '$@' can
      be used to substitute the particular target to be remade into the
      commands (*note Automatic Variables::).  For example:
 
           bigoutput littleoutput : text.g
                   generate text.g -$(subst output,,$@) > $@
-     
+
      is equivalent to
 
           bigoutput : text.g
@@ -2591,15 +2597,15 @@ contributes the same prerequisites to all the targets also.
           littleoutput : text.g
                   generate text.g -little > littleoutput
 
-     Here we assume the hypothetical program `generate' makes two types
-     of output, one if given `-big' and one if given `-little'.  *Note
-     Functions for String Substitution and Analysis: Text Functions,
-     for an explanation of the `subst' function.
+     Here we assume the hypothetical program 'generate' makes two types
+     of output, one if given '-big' and one if given '-little'.  *Note
+     Functions for String Substitution and Analysis: Text Functions, for
+     an explanation of the 'subst' function.
 
    Suppose you would like to vary the prerequisites according to the
-target, much as the variable `$@' allows you to vary the recipe.  You
-cannot do this with multiple targets in an ordinary rule, but you can
-do it with a "static pattern rule".  *Note Static Pattern Rules: Static
+target, much as the variable '$@' allows you to vary the recipe.  You
+cannot do this with multiple targets in an ordinary rule, but you can do
+it with a "static pattern rule".  *Note Static Pattern Rules: Static
 Pattern.
 
 \1f
@@ -2614,10 +2620,10 @@ the target.  If the target is older than any prerequisite from any rule,
 the recipe is executed.
 
    There can only be one recipe to be executed for a file.  If more than
-one rule gives a recipe for the same file, `make' uses the last one
+one rule gives a recipe for the same file, 'make' uses the last one
 given and prints an error message.  (As a special case, if the file's
 name begins with a dot, no error message is printed.  This odd behavior
-is only for compatibility with other implementations of `make'... you
+is only for compatibility with other implementations of 'make'... you
 should avoid using it).  Occasionally it is useful to have the same
 target invoke multiple recipes which are defined in different parts of
 your makefile; you can use "double-colon rules" (*note Double-Colon::)
@@ -2625,9 +2631,9 @@ for this.
 
    An extra rule with just prerequisites can be used to give a few extra
 prerequisites to many files at once.  For example, makefiles often have
-a variable, such as `objects', containing a list of all the compiler
+a variable, such as 'objects', containing a list of all the compiler
 output files in the system being made.  An easy way to say that all of
-them must be recompiled if `config.h' changes is to write the following:
+them must be recompiled if 'config.h' changes is to write the following:
 
      objects = foo.o bar.o
      foo.o : defs.h
@@ -2635,21 +2641,20 @@ them must be recompiled if `config.h' changes is to write the following:
      $(objects) : config.h
 
    This could be inserted or taken out without changing the rules that
-really specify how to make the object files, making it a convenient
-form to use if you wish to add the additional prerequisite
-intermittently.
+really specify how to make the object files, making it a convenient form
+to use if you wish to add the additional prerequisite intermittently.
 
    Another wrinkle is that the additional prerequisites could be
 specified with a variable that you set with a command line argument to
-`make' (*note Overriding Variables: Overriding.).  For example,
+'make' (*note Overriding Variables: Overriding.).  For example,
 
      extradeps=
      $(objects) : $(extradeps)
 
-means that the command `make extradeps=foo.h' will consider `foo.h' as
-a prerequisite of each object file, but plain `make' will not.
+means that the command 'make extradeps=foo.h' will consider 'foo.h' as a
+prerequisite of each object file, but plain 'make' will not.
 
-   If none of the explicit rules for a target has a recipe, then `make'
+   If none of the explicit rules for a target has a recipe, then 'make'
 searches for an applicable implicit rule to find one *note Using
 Implicit Rules: Implicit Rules.).
 
@@ -2693,33 +2698,33 @@ TARGET-PATTERN to extract a part of the target name, called the "stem".
 This stem is substituted into each of the PREREQ-PATTERNS to make the
 prerequisite names (one from each PREREQ-PATTERN).
 
-   Each pattern normally contains the character `%' just once.  When the
-TARGET-PATTERN matches a target, the `%' can match any part of the
+   Each pattern normally contains the character '%' just once.  When the
+TARGET-PATTERN matches a target, the '%' can match any part of the
 target name; this part is called the "stem".  The rest of the pattern
-must match exactly.  For example, the target `foo.o' matches the
-pattern `%.o', with `foo' as the stem.  The targets `foo.c' and
-`foo.out' do not match that pattern.
+must match exactly.  For example, the target 'foo.o' matches the pattern
+'%.o', with 'foo' as the stem.  The targets 'foo.c' and 'foo.out' do not
+match that pattern.
 
    The prerequisite names for each target are made by substituting the
-stem for the `%' in each prerequisite pattern.  For example, if one
-prerequisite pattern is `%.c', then substitution of the stem `foo'
-gives the prerequisite name `foo.c'.  It is legitimate to write a
-prerequisite pattern that does not contain `%'; then this prerequisite
-is the same for all targets.
-
-   `%' characters in pattern rules can be quoted with preceding
-backslashes (`\').  Backslashes that would otherwise quote `%'
+stem for the '%' in each prerequisite pattern.  For example, if one
+prerequisite pattern is '%.c', then substitution of the stem 'foo' gives
+the prerequisite name 'foo.c'.  It is legitimate to write a prerequisite
+pattern that does not contain '%'; then this prerequisite is the same
+for all targets.
+
+   '%' characters in pattern rules can be quoted with preceding
+backslashes ('\').  Backslashes that would otherwise quote '%'
 characters can be quoted with more backslashes.  Backslashes that quote
-`%' characters or other backslashes are removed from the pattern before
+'%' characters or other backslashes are removed from the pattern before
 it is compared to file names or has a stem substituted into it.
-Backslashes that are not in danger of quoting `%' characters go
-unmolested.  For example, the pattern `the\%weird\\%pattern\\' has
-`the%weird\' preceding the operative `%' character, and `pattern\\'
+Backslashes that are not in danger of quoting '%' characters go
+unmolested.  For example, the pattern 'the\%weird\\%pattern\\' has
+'the%weird\' preceding the operative '%' character, and 'pattern\\'
 following it.  The final two backslashes are left alone because they
-cannot affect any `%' character.
+cannot affect any '%' character.
 
-   Here is an example, which compiles each of `foo.o' and `bar.o' from
-the corresponding `.c' file:
+   Here is an example, which compiles each of 'foo.o' and 'bar.o' from
+the corresponding '.c' file:
 
      objects = foo.o bar.o
 
@@ -2728,14 +2733,14 @@ the corresponding `.c' file:
      $(objects): %.o: %.c
              $(CC) -c $(CFLAGS) $< -o $@
 
-Here `$<' is the automatic variable that holds the name of the
-prerequisite and `$@' is the automatic variable that holds the name of
+Here '$<' is the automatic variable that holds the name of the
+prerequisite and '$@' is the automatic variable that holds the name of
 the target; see *note Automatic Variables::.
 
    Each target specified must match the target pattern; a warning is
-issued for each target that does not.  If you have a list of files,
-only some of which will match the pattern, you can use the `filter'
-function to remove non-matching file names (*note Functions for String
+issued for each target that does not.  If you have a list of files, only
+some of which will match the pattern, you can use the 'filter' function
+to remove non-matching file names (*note Functions for String
 Substitution and Analysis: Text Functions.):
 
      files = foo.elc bar.o lose.o
@@ -2745,19 +2750,19 @@ Substitution and Analysis: Text Functions.):
      $(filter %.elc,$(files)): %.elc: %.el
              emacs -f batch-byte-compile $<
 
-In this example the result of `$(filter %.o,$(files))' is `bar.o
+In this example the result of '$(filter %.o,$(files))' is 'bar.o
 lose.o', and the first static pattern rule causes each of these object
 files to be updated by compiling the corresponding C source file.  The
-result of `$(filter %.elc,$(files))' is `foo.elc', so that file is made
-from `foo.el'.
+result of '$(filter %.elc,$(files))' is 'foo.elc', so that file is made
+from 'foo.el'.
 
-   Another example shows how to use `$*' in static pattern rules: 
+   Another example shows how to use '$*' in static pattern rules:
 
      bigoutput littleoutput : %output : text.g
              generate text.g -$* > $@
 
-When the `generate' command is run, `$*' will expand to the stem,
-either `big' or `little'.
+When the 'generate' command is run, '$*' will expand to the stem, either
+'big' or 'little'.
 
 \1f
 File: make.info,  Node: Static versus Implicit,  Prev: Static Usage,  Up: Static Pattern
@@ -2769,7 +2774,7 @@ A static pattern rule has much in common with an implicit rule defined
 as a pattern rule (*note Defining and Redefining Pattern Rules: Pattern
 Rules.).  Both have a pattern for the target and patterns for
 constructing the names of prerequisites.  The difference is in how
-`make' decides _when_ the rule applies.
+'make' decides _when_ the rule applies.
 
    An implicit rule _can_ apply to any target that matches its pattern,
 but it _does_ apply only when the target has no recipe otherwise
@@ -2786,15 +2791,15 @@ If two conflicting rules apply, and both have recipes, that's an error.
 reasons:
 
    * You may wish to override the usual implicit rule for a few files
-     whose names cannot be categorized syntactically but can be given
-     in an explicit list.
+     whose names cannot be categorized syntactically but can be given in
+     an explicit list.
 
    * If you cannot be sure of the precise contents of the directories
      you are using, you may not be sure which other irrelevant files
-     might lead `make' to use the wrong implicit rule.  The choice
-     might depend on the order in which the implicit rule search is
-     done.  With static pattern rules, there is no uncertainty: each
-     rule applies to precisely the targets specified.
+     might lead 'make' to use the wrong implicit rule.  The choice might
+     depend on the order in which the implicit rule search is done.
+     With static pattern rules, there is no uncertainty: each rule
+     applies to precisely the targets specified.
 
 \1f
 File: make.info,  Node: Double-Colon,  Next: Automatic Prerequisites,  Prev: Static Pattern,  Up: Rules
@@ -2802,20 +2807,19 @@ File: make.info,  Node: Double-Colon,  Next: Automatic Prerequisites,  Prev: Sta
 4.13 Double-Colon Rules
 =======================
 
-"Double-colon" rules are explicit rules written with `::' instead of
-`:' after the target names.  They are handled differently from ordinary
-rules when the same target appears in more than one rule.  Pattern
-rules with double-colons have an entirely different meaning (*note
+"Double-colon" rules are explicit rules written with '::' instead of ':'
+after the target names.  They are handled differently from ordinary
+rules when the same target appears in more than one rule.  Pattern rules
+with double-colons have an entirely different meaning (*note
 Match-Anything Rules::).
 
    When a target appears in multiple rules, all the rules must be the
-same type: all ordinary, or all double-colon.  If they are
-double-colon, each of them is independent of the others.  Each
-double-colon rule's recipe is executed if the target is older than any
-prerequisites of that rule.  If there are no prerequisites for that
-rule, its recipe is always executed (even if the target already
-exists).  This can result in executing none, any, or all of the
-double-colon rules.
+same type: all ordinary, or all double-colon.  If they are double-colon,
+each of them is independent of the others.  Each double-colon rule's
+recipe is executed if the target is older than any prerequisites of that
+rule.  If there are no prerequisites for that rule, its recipe is always
+executed (even if the target already exists).  This can result in
+executing none, any, or all of the double-colon rules.
 
    Double-colon rules with the same target are in fact completely
 separate from one another.  Each double-colon rule is processed
@@ -2843,20 +2847,20 @@ File: make.info,  Node: Automatic Prerequisites,  Prev: Double-Colon,  Up: Rules
 
 In the makefile for a program, many of the rules you need to write often
 say only that some object file depends on some header file.  For
-example, if `main.c' uses `defs.h' via an `#include', you would write:
+example, if 'main.c' uses 'defs.h' via an '#include', you would write:
 
      main.o: defs.h
 
-You need this rule so that `make' knows that it must remake `main.o'
-whenever `defs.h' changes.  You can see that for a large program you
+You need this rule so that 'make' knows that it must remake 'main.o'
+whenever 'defs.h' changes.  You can see that for a large program you
 would have to write dozens of such rules in your makefile.  And, you
-must always be very careful to update the makefile every time you add
-or remove an `#include'.  
+must always be very careful to update the makefile every time you add or
+remove an '#include'.
 
    To avoid this hassle, most modern C compilers can write these rules
-for you, by looking at the `#include' lines in the source files.
-Usually this is done with the `-M' option to the compiler.  For
-example, the command:
+for you, by looking at the '#include' lines in the source files.
+Usually this is done with the '-M' option to the compiler.  For example,
+the command:
 
      cc -M main.c
 
@@ -2864,34 +2868,33 @@ generates the output:
 
      main.o : main.c defs.h
 
-Thus you no longer have to write all those rules yourself.  The
-compiler will do it for you.
+Thus you no longer have to write all those rules yourself.  The compiler
+will do it for you.
 
-   Note that such a rule constitutes mentioning `main.o' in a makefile,
+   Note that such a rule constitutes mentioning 'main.o' in a makefile,
 so it can never be considered an intermediate file by implicit rule
-search.  This means that `make' won't ever remove the file after using
+search.  This means that 'make' won't ever remove the file after using
 it; *note Chains of Implicit Rules: Chained Rules.
 
-   With old `make' programs, it was traditional practice to use this
+   With old 'make' programs, it was traditional practice to use this
 compiler feature to generate prerequisites on demand with a command like
-`make depend'.  That command would create a file `depend' containing
-all the automatically-generated prerequisites; then the makefile could
-use `include' to read them in (*note Include::).
-
-   In GNU `make', the feature of remaking makefiles makes this practice
-obsolete--you need never tell `make' explicitly to regenerate the
-prerequisites, because it always regenerates any makefile that is out
-of date.  *Note Remaking Makefiles::.
-
-   The practice we recommend for automatic prerequisite generation is
-to have one makefile corresponding to each source file.  For each
-source file `NAME.c' there is a makefile `NAME.d' which lists what
-files the object file `NAME.o' depends on.  That way only the source
-files that have changed need to be rescanned to produce the new
-prerequisites.
+'make depend'.  That command would create a file 'depend' containing all
+the automatically-generated prerequisites; then the makefile could use
+'include' to read them in (*note Include::).
+
+   In GNU 'make', the feature of remaking makefiles makes this practice
+obsolete--you need never tell 'make' explicitly to regenerate the
+prerequisites, because it always regenerates any makefile that is out of
+date.  *Note Remaking Makefiles::.
+
+   The practice we recommend for automatic prerequisite generation is to
+have one makefile corresponding to each source file.  For each source
+file 'NAME.c' there is a makefile 'NAME.d' which lists what files the
+object file 'NAME.o' depends on.  That way only the source files that
+have changed need to be rescanned to produce the new prerequisites.
 
-   Here is the pattern rule to generate a file of prerequisites (i.e.,
-a makefile) called `NAME.d' from a C source file called `NAME.c':
+   Here is the pattern rule to generate a file of prerequisites (i.e., a
+makefile) called 'NAME.d' from a C source file called 'NAME.c':
 
      %.d: %.c
              @set -e; rm -f $@; \
@@ -2900,15 +2903,15 @@ a makefile) called `NAME.d' from a C source file called `NAME.c':
               rm -f $@.$$$$
 
 *Note Pattern Rules::, for information on defining pattern rules.  The
-`-e' flag to the shell causes it to exit immediately if the `$(CC)'
-command (or any other command) fails (exits with a nonzero status).  
+'-e' flag to the shell causes it to exit immediately if the '$(CC)'
+command (or any other command) fails (exits with a nonzero status).
 
-   With the GNU C compiler, you may wish to use the `-MM' flag instead
-of `-M'.  This omits prerequisites on system header files.  *Note
+   With the GNU C compiler, you may wish to use the '-MM' flag instead
+of '-M'.  This omits prerequisites on system header files.  *Note
 Options Controlling the Preprocessor: (gcc)Preprocessor Options, for
 details.
 
-   The purpose of the `sed' command is to translate (for example):
+   The purpose of the 'sed' command is to translate (for example):
 
      main.o : main.c defs.h
 
@@ -2916,13 +2919,13 @@ into:
 
      main.o main.d : main.c defs.h
 
-This makes each `.d' file depend on all the source and header files
-that the corresponding `.o' file depends on.  `make' then knows it must
+This makes each '.d' file depend on all the source and header files that
+the corresponding '.o' file depends on.  'make' then knows it must
 regenerate the prerequisites whenever any of the source or header files
 changes.
 
-   Once you've defined the rule to remake the `.d' files, you then use
-the `include' directive to read them all in.  *Note Include::.  For
+   Once you've defined the rule to remake the '.d' files, you then use
+the 'include' directive to read them all in.  *Note Include::.  For
 example:
 
      sources = foo.c bar.c
@@ -2930,16 +2933,16 @@ example:
      include $(sources:.c=.d)
 
 (This example uses a substitution variable reference to translate the
-list of source files `foo.c bar.c' into a list of prerequisite
-makefiles, `foo.d bar.d'.  *Note Substitution Refs::, for full
-information on substitution references.)  Since the `.d' files are
-makefiles like any others, `make' will remake them as necessary with no
+list of source files 'foo.c bar.c' into a list of prerequisite
+makefiles, 'foo.d bar.d'.  *Note Substitution Refs::, for full
+information on substitution references.)  Since the '.d' files are
+makefiles like any others, 'make' will remake them as necessary with no
 further work from you.  *Note Remaking Makefiles::.
 
-   Note that the `.d' files contain target definitions; you should be
-sure to place the `include' directive _after_ the first, default goal
-in your makefiles or run the risk of having a random object file become
-the default goal.  *Note How Make Works::.
+   Note that the '.d' files contain target definitions; you should be
+sure to place the 'include' directive _after_ the first, default goal in
+your makefiles or run the risk of having a random object file become the
+default goal.  *Note How Make Works::.
 
 \1f
 File: make.info,  Node: Recipes,  Next: Using Variables,  Prev: Rules,  Up: Top
@@ -2953,8 +2956,8 @@ result of executing these commands is that the target of the rule is
 brought up to date.
 
    Users use many different shell programs, but recipes in makefiles are
-always interpreted by `/bin/sh' unless the makefile specifies
-otherwise.  *Note Recipe Execution: Execution.
+always interpreted by '/bin/sh' unless the makefile specifies otherwise.
+*Note Recipe Execution: Execution.
 
 * Menu:
 
@@ -2964,7 +2967,7 @@ otherwise.  *Note Recipe Execution: Execution.
 * Parallel::                    How recipes can be executed in parallel.
 * Errors::                      What happens after a recipe execution error.
 * Interrupts::                  What happens when a recipe is interrupted.
-* Recursion::                   Invoking `make' from makefiles.
+* Recursion::                   Invoking 'make' from makefiles.
 * Canned Recipes::              Defining canned recipes.
 * Empty Recipes::               Defining useful, do-nothing recipes.
 
@@ -2975,47 +2978,46 @@ File: make.info,  Node: Recipe Syntax,  Next: Echoing,  Prev: Recipes,  Up: Reci
 =================
 
 Makefiles have the unusual property that there are really two distinct
-syntaxes in one file.  Most of the makefile uses `make' syntax (*note
+syntaxes in one file.  Most of the makefile uses 'make' syntax (*note
 Writing Makefiles: Makefiles.).  However, recipes are meant to be
 interpreted by the shell and so they are written using shell syntax.
-The `make' program does not try to understand shell syntax: it performs
+The 'make' program does not try to understand shell syntax: it performs
 only a very few specific translations on the content of the recipe
 before handing it to the shell.
 
    Each line in the recipe must start with a tab (or the first character
-in the value of the `.RECIPEPREFIX' variable; *note Special
+in the value of the '.RECIPEPREFIX' variable; *note Special
 Variables::), except that the first recipe line may be attached to the
 target-and-prerequisites line with a semicolon in between.  _Any_ line
 in the makefile that begins with a tab and appears in a "rule context"
 (that is, after a rule has been started until another rule or variable
 definition) will be considered part of a recipe for that rule.  Blank
-lines and lines of just comments may appear among the recipe lines;
-they are ignored.
+lines and lines of just comments may appear among the recipe lines; they
+are ignored.
 
    Some consequences of these rules include:
 
    * A blank line that begins with a tab is not blank: it's an empty
      recipe (*note Empty Recipes::).
 
-   * A comment in a recipe is not a `make' comment; it will be passed
-     to the shell as-is.  Whether the shell treats it as a comment or
-     not depends on your shell.
+   * A comment in a recipe is not a 'make' comment; it will be passed to
+     the shell as-is.  Whether the shell treats it as a comment or not
+     depends on your shell.
 
    * A variable definition in a "rule context" which is indented by a
      tab as the first character on the line, will be considered part of
-     a recipe, not a `make' variable definition, and passed to the
+     a recipe, not a 'make' variable definition, and passed to the
      shell.
 
-   * A conditional expression (`ifdef', `ifeq', etc. *note Syntax of
+   * A conditional expression ('ifdef', 'ifeq', etc.  *note Syntax of
      Conditionals: Conditional Syntax.) in a "rule context" which is
      indented by a tab as the first character on the line, will be
      considered part of a recipe and be passed to the shell.
 
-
 * Menu:
 
 * Splitting Recipe Lines::      Breaking long recipe lines for readability.
-* Variables in Recipes::        Using `make' variables in recipes.
+* Variables in Recipes::        Using 'make' variables in recipes.
 
 \1f
 File: make.info,  Node: Splitting Recipe Lines,  Next: Variables in Recipes,  Prev: Recipe Syntax,  Up: Recipe Syntax
@@ -3023,7 +3025,7 @@ File: make.info,  Node: Splitting Recipe Lines,  Next: Variables in Recipes,  Pr
 5.1.1 Splitting Recipe Lines
 ----------------------------
 
-One of the few ways in which `make' does interpret recipes is checking
+One of the few ways in which 'make' does interpret recipes is checking
 for a backslash just before the newline.  As in normal makefile syntax,
 a single logical recipe line can be split into multiple physical lines
 in the makefile by placing a backslash before each newline.  A sequence
@@ -3079,20 +3081,20 @@ output:
      hello     world
 
 Notice how the backslash/newline pair was removed inside the string
-quoted with double quotes (`"..."'), but not from the string quoted
-with single quotes (`'...'').  This is the way the default shell
-(`/bin/sh') handles backslash/newline pairs.  If you specify a
-different shell in your makefiles it may treat them differently.
+quoted with double quotes ('"..."'), but not from the string quoted with
+single quotes (''...'').  This is the way the default shell ('/bin/sh')
+handles backslash/newline pairs.  If you specify a different shell in
+your makefiles it may treat them differently.
 
    Sometimes you want to split a long line inside of single quotes, but
 you don't want the backslash/newline to appear in the quoted content.
 This is often the case when passing scripts to languages such as Perl,
-where extraneous backslashes inside the script can change its meaning
-or even be a syntax error.  One simple way of handling this is to place
-the quoted string, or even the entire command, into a `make' variable
-then use the variable in the recipe.  In this situation the newline
-quoting rules for makefiles will be used, and the backslash/newline
-will be removed.  If we rewrite our example above using this method:
+where extraneous backslashes inside the script can change its meaning or
+even be a syntax error.  One simple way of handling this is to place the
+quoted string, or even the entire command, into a 'make' variable then
+use the variable in the recipe.  In this situation the newline quoting
+rules for makefiles will be used, and the backslash/newline will be
+removed.  If we rewrite our example above using this method:
 
      HELLO = 'hello \
      world'
@@ -3113,7 +3115,7 @@ File: make.info,  Node: Variables in Recipes,  Prev: Splitting Recipe Lines,  Up
 5.1.2 Using Variables in Recipes
 --------------------------------
 
-The other way in which `make' processes recipes is by expanding any
+The other way in which 'make' processes recipes is by expanding any
 variable references in them (*note Basics of Variable References:
 Reference.).  This occurs after make has finished reading all the
 makefiles and the target is determined to be out of date; so, the
@@ -3122,9 +3124,9 @@ recipes for targets which are not rebuilt are never expanded.
    Variable and function references in recipes have identical syntax and
 semantics to references elsewhere in the makefile.  They also have the
 same quoting rules: if you want a dollar sign to appear in your recipe,
-you must double it (`$$').  For shells like the default shell, that use
+you must double it ('$$').  For shells like the default shell, that use
 dollar signs to introduce variables, it's important to keep clear in
-your mind whether the variable you want to reference is a `make'
+your mind whether the variable you want to reference is a 'make'
 variable (use a single dollar sign) or a shell variable (use two dollar
 signs).  For example:
 
@@ -3152,29 +3154,29 @@ File: make.info,  Node: Echoing,  Next: Execution,  Prev: Recipe Syntax,  Up: Re
 5.2 Recipe Echoing
 ==================
 
-Normally `make' prints each line of the recipe before it is executed.
+Normally 'make' prints each line of the recipe before it is executed.
 We call this "echoing" because it gives the appearance that you are
 typing the lines yourself.
 
-   When a line starts with `@', the echoing of that line is suppressed.
-The `@' is discarded before the line is passed to the shell.  Typically
+   When a line starts with '@', the echoing of that line is suppressed.
+The '@' is discarded before the line is passed to the shell.  Typically
 you would use this for a command whose only effect is to print
-something, such as an `echo' command to indicate progress through the
+something, such as an 'echo' command to indicate progress through the
 makefile:
 
      @echo About to make distribution files
 
-   When `make' is given the flag `-n' or `--just-print' it only echoes
-most recipes, without executing them.  *Note Summary of Options:
-Options Summary.  In this case even the recipe lines starting with `@'
-are printed.  This flag is useful for finding out which recipes `make'
+   When 'make' is given the flag '-n' or '--just-print' it only echoes
+most recipes, without executing them.  *Note Summary of Options: Options
+Summary.  In this case even the recipe lines starting with '@' are
+printed.  This flag is useful for finding out which recipes 'make'
 thinks are necessary without actually doing them.
 
-   The `-s' or `--silent' flag to `make' prevents all echoing, as if
-all recipes started with `@'.  A rule in the makefile for the special
-target `.SILENT' without prerequisites has the same effect (*note
-Special Built-in Target Names: Special Targets.).  `.SILENT' is
-essentially obsolete since `@' is more flexible.
+   The '-s' or '--silent' flag to 'make' prevents all echoing, as if all
+recipes started with '@'.  A rule in the makefile for the special target
+'.SILENT' without prerequisites has the same effect (*note Special
+Built-in Target Names: Special Targets.).  '.SILENT' is essentially
+obsolete since '@' is more flexible.
 
 \1f
 File: make.info,  Node: Execution,  Next: Parallel,  Prev: Echoing,  Up: Recipes
@@ -3182,32 +3184,31 @@ File: make.info,  Node: Execution,  Next: Parallel,  Prev: Echoing,  Up: Recipes
 5.3 Recipe Execution
 ====================
 
-When it is time to execute recipes to update a target, they are
-executed by invoking a new sub-shell for each line of the recipe,
-unless the `.ONESHELL' special target is in effect (*note Using One
-Shell: One Shell.)  (In practice, `make' may take shortcuts that do not
-affect the results.)
-
-   *Please note:* this implies that setting shell variables and
-invoking shell commands such as `cd' that set a context local to each
-process will not affect the following lines in the recipe.(1)  If you
-want to use `cd' to affect the next statement, put both statements in a
-single recipe line.  Then `make' will invoke one shell to run the
-entire line, and the shell will execute the statements in sequence.
-For example:
+When it is time to execute recipes to update a target, they are executed
+by invoking a new sub-shell for each line of the recipe, unless the
+'.ONESHELL' special target is in effect (*note Using One Shell: One
+Shell.) (In practice, 'make' may take shortcuts that do not affect the
+results.)
+
+   *Please note:* this implies that setting shell variables and invoking
+shell commands such as 'cd' that set a context local to each process
+will not affect the following lines in the recipe.(1)  If you want to
+use 'cd' to affect the next statement, put both statements in a single
+recipe line.  Then 'make' will invoke one shell to run the entire line,
+and the shell will execute the statements in sequence.  For example:
 
      foo : bar/lose
              cd $(@D) && gobble $(@F) > ../$@
 
-Here we use the shell AND operator (`&&') so that if the `cd' command
-fails, the script will fail without trying to invoke the `gobble'
-command in the wrong directory, which could cause problems (in this
-case it would certainly cause `../foo' to be truncated, at least).
+Here we use the shell AND operator ('&&') so that if the 'cd' command
+fails, the script will fail without trying to invoke the 'gobble'
+command in the wrong directory, which could cause problems (in this case
+it would certainly cause '../foo' to be truncated, at least).
 
 * Menu:
 
 * One Shell::                   One shell for all lines in a recipe.
-* Choosing the Shell::          How `make' chooses the shell used
+* Choosing the Shell::          How 'make' chooses the shell used
                                   to run recipes.
 
    ---------- Footnotes ----------
@@ -3221,16 +3222,16 @@ File: make.info,  Node: One Shell,  Next: Choosing the Shell,  Prev: Execution,
 5.3.1 Using One Shell
 ---------------------
 
-Sometimes you would prefer that all the lines in the recipe be passed
-to a single invocation of the shell.  There are generally two
-situations where this is useful: first, it can improve performance in
-makefiles where recipes consist of many command lines, by avoiding
-extra processes.  Second, you might want newlines to be included in
-your recipe command (for example perhaps you are using a very different
-interpreter as your `SHELL').  If the `.ONESHELL' special target
-appears anywhere in the makefile then _all_ recipe lines for each
-target will be provided to a single invocation of the shell.  Newlines
-between recipe lines will be preserved.  For example:
+Sometimes you would prefer that all the lines in the recipe be passed to
+a single invocation of the shell.  There are generally two situations
+where this is useful: first, it can improve performance in makefiles
+where recipes consist of many command lines, by avoiding extra
+processes.  Second, you might want newlines to be included in your
+recipe command (for example perhaps you are using a very different
+interpreter as your 'SHELL').  If the '.ONESHELL' special target appears
+anywhere in the makefile then _all_ recipe lines for each target will be
+provided to a single invocation of the shell.  Newlines between recipe
+lines will be preserved.  For example:
 
      .ONESHELL:
      foo : bar/lose
@@ -3240,14 +3241,14 @@ between recipe lines will be preserved.  For example:
 would now work as expected even though the commands are on different
 recipe lines.
 
-   If `.ONESHELL' is provided, then only the first line of the recipe
-will be checked for the special prefix characters (`@', `-', and `+').
+   If '.ONESHELL' is provided, then only the first line of the recipe
+will be checked for the special prefix characters ('@', '-', and '+').
 Subsequent lines will include the special characters in the recipe line
-when the `SHELL' is invoked.  If you want your recipe to start with one
+when the 'SHELL' is invoked.  If you want your recipe to start with one
 of these special characters you'll need to arrange for them to not be
 the first characters on the first line, perhaps by adding a comment or
 similar.  For example, this would be a syntax error in Perl because the
-first `@' is removed by make:
+first '@' is removed by make:
 
      .ONESHELL:
      SHELL = /usr/bin/perl
@@ -3275,30 +3276,30 @@ or
              my @f = qw(a b c);
              print "@f\n";
 
-   As a special feature, if `SHELL' is determined to be a POSIX-style
+   As a special feature, if 'SHELL' is determined to be a POSIX-style
 shell, the special prefix characters in "internal" recipe lines will
 _removed_ before the recipe is processed.  This feature is intended to
-allow existing makefiles to add the `.ONESHELL' special target and
-still run properly without extensive modifications.  Since the special
-prefix characters are not legal at the beginning of a line in a POSIX
-shell script this is not a loss in functionality.  For example, this
-works as expected:
+allow existing makefiles to add the '.ONESHELL' special target and still
+run properly without extensive modifications.  Since the special prefix
+characters are not legal at the beginning of a line in a POSIX shell
+script this is not a loss in functionality.  For example, this works as
+expected:
 
      .ONESHELL:
      foo : bar/lose
              @cd $(@D)
              @gobble $(@F) > ../$@
 
-   Even with this special feature, however, makefiles with `.ONESHELL'
+   Even with this special feature, however, makefiles with '.ONESHELL'
 will behave differently in ways that could be noticeable.  For example,
 normally if any line in the recipe fails, that causes the rule to fail
-and no more recipe lines are processed.  Under `.ONESHELL' a failure of
-any but the final recipe line will not be noticed by `make'.  You can
-modify `.SHELLFLAGS' to add the `-e' option to the shell which will
+and no more recipe lines are processed.  Under '.ONESHELL' a failure of
+any but the final recipe line will not be noticed by 'make'.  You can
+modify '.SHELLFLAGS' to add the '-e' option to the shell which will
 cause any failure anywhere in the command line to cause the shell to
 fail, but this could itself cause your recipe to behave differently.
 Ultimately you may need to harden your recipe lines to allow them to
-work with `.ONESHELL'.
+work with '.ONESHELL'.
 
 \1f
 File: make.info,  Node: Choosing the Shell,  Prev: One Shell,  Up: Execution
@@ -3306,34 +3307,34 @@ File: make.info,  Node: Choosing the Shell,  Prev: One Shell,  Up: Execution
 5.3.2 Choosing the Shell
 ------------------------
 
-The program used as the shell is taken from the variable `SHELL'.  If
-this variable is not set in your makefile, the program `/bin/sh' is
-used as the shell.  The argument(s) passed to the shell are taken from
-the variable `.SHELLFLAGS'.  The default value of `.SHELLFLAGS' is `-c'
-normally, or `-ec' in POSIX-conforming mode.
+The program used as the shell is taken from the variable 'SHELL'.  If
+this variable is not set in your makefile, the program '/bin/sh' is used
+as the shell.  The argument(s) passed to the shell are taken from the
+variable '.SHELLFLAGS'.  The default value of '.SHELLFLAGS' is '-c'
+normally, or '-ec' in POSIX-conforming mode.
 
-   Unlike most variables, the variable `SHELL' is never set from the
-environment.  This is because the `SHELL' environment variable is used
+   Unlike most variables, the variable 'SHELL' is never set from the
+environment.  This is because the 'SHELL' environment variable is used
 to specify your personal choice of shell program for interactive use.
 It would be very bad for personal choices like this to affect the
 functioning of makefiles.  *Note Variables from the Environment:
 Environment.
 
-   Furthermore, when you do set `SHELL' in your makefile that value is
-_not_ exported in the environment to recipe lines that `make' invokes.
+   Furthermore, when you do set 'SHELL' in your makefile that value is
+_not_ exported in the environment to recipe lines that 'make' invokes.
 Instead, the value inherited from the user's environment, if any, is
 exported.  You can override this behavior by explicitly exporting
-`SHELL' (*note Communicating Variables to a Sub-`make':
+'SHELL' (*note Communicating Variables to a Sub-'make':
 Variables/Recursion.), forcing it to be passed in the environment to
 recipe lines.
 
-   However, on MS-DOS and MS-Windows the value of `SHELL' in the
-environment *is* used, since on those systems most users do not set
-this variable, and therefore it is most likely set specifically to be
-used by `make'.  On MS-DOS, if the setting of `SHELL' is not suitable
-for `make', you can set the variable `MAKESHELL' to the shell that
-`make' should use; if set it will be used as the shell instead of the
-value of `SHELL'.
+   However, on MS-DOS and MS-Windows the value of 'SHELL' in the
+environment *is* used, since on those systems most users do not set this
+variable, and therefore it is most likely set specifically to be used by
+'make'.  On MS-DOS, if the setting of 'SHELL' is not suitable for
+'make', you can set the variable 'MAKESHELL' to the shell that 'make'
+should use; if set it will be used as the shell instead of the value of
+'SHELL'.
 
 Choosing a Shell in DOS and Windows
 ...................................
@@ -3341,53 +3342,52 @@ Choosing a Shell in DOS and Windows
 Choosing a shell in MS-DOS and MS-Windows is much more complex than on
 other systems.
 
-   On MS-DOS, if `SHELL' is not set, the value of the variable
-`COMSPEC' (which is always set) is used instead.
+   On MS-DOS, if 'SHELL' is not set, the value of the variable 'COMSPEC'
+(which is always set) is used instead.
 
-   The processing of lines that set the variable `SHELL' in Makefiles
-is different on MS-DOS.  The stock shell, `command.com', is
-ridiculously limited in its functionality and many users of `make' tend
-to install a replacement shell.  Therefore, on MS-DOS, `make' examines
-the value of `SHELL', and changes its behavior based on whether it
-points to a Unix-style or DOS-style shell.  This allows reasonable
-functionality even if `SHELL' points to `command.com'.
+   The processing of lines that set the variable 'SHELL' in Makefiles is
+different on MS-DOS. The stock shell, 'command.com', is ridiculously
+limited in its functionality and many users of 'make' tend to install a
+replacement shell.  Therefore, on MS-DOS, 'make' examines the value of
+'SHELL', and changes its behavior based on whether it points to a
+Unix-style or DOS-style shell.  This allows reasonable functionality
+even if 'SHELL' points to 'command.com'.
 
-   If `SHELL' points to a Unix-style shell, `make' on MS-DOS
+   If 'SHELL' points to a Unix-style shell, 'make' on MS-DOS
 additionally checks whether that shell can indeed be found; if not, it
-ignores the line that sets `SHELL'.  In MS-DOS, GNU `make' searches for
+ignores the line that sets 'SHELL'.  In MS-DOS, GNU 'make' searches for
 the shell in the following places:
 
-  1. In the precise place pointed to by the value of `SHELL'.  For
-     example, if the makefile specifies `SHELL = /bin/sh', `make' will
-     look in the directory `/bin' on the current drive.
+  1. In the precise place pointed to by the value of 'SHELL'.  For
+     example, if the makefile specifies 'SHELL = /bin/sh', 'make' will
+     look in the directory '/bin' on the current drive.
 
   2. In the current directory.
 
-  3. In each of the directories in the `PATH' variable, in order.
-
+  3. In each of the directories in the 'PATH' variable, in order.
 
-   In every directory it examines, `make' will first look for the
-specific file (`sh' in the example above).  If this is not found, it
+   In every directory it examines, 'make' will first look for the
+specific file ('sh' in the example above).  If this is not found, it
 will also look in that directory for that file with one of the known
-extensions which identify executable files.  For example `.exe',
-`.com', `.bat', `.btm', `.sh', and some others.
+extensions which identify executable files.  For example '.exe', '.com',
+'.bat', '.btm', '.sh', and some others.
 
-   If any of these attempts is successful, the value of `SHELL' will be
+   If any of these attempts is successful, the value of 'SHELL' will be
 set to the full pathname of the shell as found.  However, if none of
-these is found, the value of `SHELL' will not be changed, and thus the
-line that sets it will be effectively ignored.  This is so `make' will
+these is found, the value of 'SHELL' will not be changed, and thus the
+line that sets it will be effectively ignored.  This is so 'make' will
 only support features specific to a Unix-style shell if such a shell is
-actually installed on the system where `make' runs.
+actually installed on the system where 'make' runs.
 
    Note that this extended search for the shell is limited to the cases
-where `SHELL' is set from the Makefile; if it is set in the environment
+where 'SHELL' is set from the Makefile; if it is set in the environment
 or command line, you are expected to set it to the full pathname of the
 shell, exactly as things are on Unix.
 
    The effect of the above DOS-specific processing is that a Makefile
-that contains `SHELL = /bin/sh' (as many Unix makefiles do), will work
-on MS-DOS unaltered if you have e.g. `sh.exe' installed in some
-directory along your `PATH'.
+that contains 'SHELL = /bin/sh' (as many Unix makefiles do), will work
+on MS-DOS unaltered if you have e.g. 'sh.exe' installed in some
+directory along your 'PATH'.
 
 \1f
 File: make.info,  Node: Parallel,  Next: Errors,  Prev: Execution,  Up: Recipes
@@ -3395,50 +3395,50 @@ File: make.info,  Node: Parallel,  Next: Errors,  Prev: Execution,  Up: Recipes
 5.4 Parallel Execution
 ======================
 
-GNU `make' knows how to execute several recipes at once.  Normally,
-`make' will execute only one recipe at a time, waiting for it to finish
-before executing the next.  However, the `-j' or `--jobs' option tells
-`make' to execute many recipes simultaneously.  You can inhibit
-parallelism in a particular makefile with the `.NOTPARALLEL'
+GNU 'make' knows how to execute several recipes at once.  Normally,
+'make' will execute only one recipe at a time, waiting for it to finish
+before executing the next.  However, the '-j' or '--jobs' option tells
+'make' to execute many recipes simultaneously.  You can inhibit
+parallelism in a particular makefile with the '.NOTPARALLEL'
 pseudo-target (*note Special Built-in Target Names: Special Targets.).
 
-   On MS-DOS, the `-j' option has no effect, since that system doesn't
+   On MS-DOS, the '-j' option has no effect, since that system doesn't
 support multi-processing.
 
-   If the `-j' option is followed by an integer, this is the number of
+   If the '-j' option is followed by an integer, this is the number of
 recipes to execute at once; this is called the number of "job slots".
-If there is nothing looking like an integer after the `-j' option,
-there is no limit on the number of job slots.  The default number of job
-slots is one, which means serial execution (one thing at a time).
+If there is nothing looking like an integer after the '-j' option, there
+is no limit on the number of job slots.  The default number of job slots
+is one, which means serial execution (one thing at a time).
 
-   Handling recursive `make' invocations raises issues for parallel
+   Handling recursive 'make' invocations raises issues for parallel
 execution.  For more information on this, see *note Communicating
-Options to a Sub-`make': Options/Recursion.
+Options to a Sub-'make': Options/Recursion.
 
    If a recipe fails (is killed by a signal or exits with a nonzero
 status), and errors are not ignored for that recipe (*note Errors in
 Recipes: Errors.), the remaining recipe lines to remake the same target
-will not be run.  If a recipe fails and the `-k' or `--keep-going'
+will not be run.  If a recipe fails and the '-k' or '--keep-going'
 option was not given (*note Summary of Options: Options Summary.),
-`make' aborts execution.  If make terminates for any reason (including
-a signal) with child processes running, it waits for them to finish
-before actually exiting.
+'make' aborts execution.  If make terminates for any reason (including a
+signal) with child processes running, it waits for them to finish before
+actually exiting.
 
    When the system is heavily loaded, you will probably want to run
-fewer jobs than when it is lightly loaded.  You can use the `-l' option
-to tell `make' to limit the number of jobs to run at once, based on the
-load average.  The `-l' or `--max-load' option is followed by a
+fewer jobs than when it is lightly loaded.  You can use the '-l' option
+to tell 'make' to limit the number of jobs to run at once, based on the
+load average.  The '-l' or '--max-load' option is followed by a
 floating-point number.  For example,
 
      -l 2.5
 
-will not let `make' start more than one job if the load average is
-above 2.5.  The `-l' option with no following number removes the load
-limit, if one was given with a previous `-l' option.
+will not let 'make' start more than one job if the load average is above
+2.5.  The '-l' option with no following number removes the load limit,
+if one was given with a previous '-l' option.
 
-   More precisely, when `make' goes to start up a job, and it already
+   More precisely, when 'make' goes to start up a job, and it already
 has at least one job running, it checks the current load average; if it
-is not lower than the limit given with `-l', `make' waits until the load
+is not lower than the limit given with '-l', 'make' waits until the load
 average goes below that limit, or until all the other jobs finish.
 
    By default, there is no load limit.
@@ -3459,57 +3459,56 @@ appears as soon as it is generated, with the result that messages from
 different recipes may be interspersed, sometimes even appearing on the
 same line.  This can make reading the output very difficult.
 
-   To avoid this you can use the `--output-sync' (`-O') option.  This
-option instructs `make' to save the output from the commands it invokes
+   To avoid this you can use the '--output-sync' ('-O') option.  This
+option instructs 'make' to save the output from the commands it invokes
 and print it all once the commands are completed.  Additionally, if
-there are multiple recursive `make' invocations running in parallel,
-they will communicate so that only one of them is generating output at
-time.
+there are multiple recursive 'make' invocations running in parallel,
+they will communicate so that only one of them is generating output at a
+time.
 
    If working directory printing is enabled (*note The
-`--print-directory' Option: -w Option.), the enter/leave messages are
+'--print-directory' Option: -w Option.), the enter/leave messages are
 printed around each output grouping.  If you prefer not to see these
-messages add the `--no-print-directory' option to `MAKEFLAGS'.
+messages add the '--no-print-directory' option to 'MAKEFLAGS'.
 
    There are four levels of granularity when synchronizing output,
-specified by giving an argument to the option (e.g.,  `-Oline' or
-`--output-sync=recurse').
+specified by giving an argument to the option (e.g., '-Oline' or
+'--output-sync=recurse').
 
-`none'
-     This is the default: all output is sent directly as it is
-     generated and no synchronization is performed.
+'none'
+     This is the default: all output is sent directly as it is generated
+     and no synchronization is performed.
 
-`line'
+'line'
      Output from each individual line of the recipe is grouped and
      printed as soon as that line is complete.  If a recipe consists of
      multiple lines, they may be interspersed with lines from other
      recipes.
 
-`target'
+'target'
      Output from the entire recipe for each target is grouped and
      printed once the target is complete.  This is the default if the
-     `--output-sync' or `-O' option is given with no argument.
+     '--output-sync' or '-O' option is given with no argument.
 
-`recurse'
-     Output from each recursive invocation of `make' is grouped and
+'recurse'
+     Output from each recursive invocation of 'make' is grouped and
      printed once the recursive invocation is complete.
 
-
    Regardless of the mode chosen, the total build time will be the same.
 The only difference is in how the output appears.
 
-   The `target' and `recurse' modes both collect the output of the
+   The 'target' and 'recurse' modes both collect the output of the
 entire recipe of a target and display it uninterrupted when the recipe
 completes.  The difference between them is in how recipes that contain
-recursive invocations of `make' are treated (*note Recursive Use of
-`make': Recursion.).  For all recipes which have no recursive lines,
-the `target' and `recurse' modes behave identically.
+recursive invocations of 'make' are treated (*note Recursive Use of
+'make': Recursion.).  For all recipes which have no recursive lines, the
+'target' and 'recurse' modes behave identically.
 
-   If the `recurse' mode is chosen, recipes that contain recursive
-`make' invocations are treated the same as other targets: the output
-from the recipe, including the output from the recursive `make', is
+   If the 'recurse' mode is chosen, recipes that contain recursive
+'make' invocations are treated the same as other targets: the output
+from the recipe, including the output from the recursive 'make', is
 saved and printed after the entire recipe is complete.  This ensures
-output from all the targets built by a given recursive `make' instance
+output from all the targets built by a given recursive 'make' instance
 are grouped together, which may make the output easier to understand.
 However it also leads to long periods of time during the build where no
 output is seen, followed by large bursts of output.  If you are not
@@ -3517,26 +3516,26 @@ watching the build as it proceeds, but instead viewing a log of the
 build after the fact, this may be the best option for you.
 
    If you are watching the output, the long gaps of quiet during the
-build can be frustrating.  The `target' output synchronization mode
-detects when `make' is going to be invoked recursively, using the
-standard methods, and it will not synchronize the output of those
-lines.  The recursive `make' will perform the synchronization for its
-targets and the output from each will be displayed immediately when it
+build can be frustrating.  The 'target' output synchronization mode
+detects when 'make' is going to be invoked recursively, using the
+standard methods, and it will not synchronize the output of those lines.
+The recursive 'make' will perform the synchronization for its targets
+and the output from each will be displayed immediately when it
 completes.  Be aware that output from recursive lines of the recipe are
 not synchronized (for example if the recursive line prints a message
-before running `make', that message will not be synchronized).
+before running 'make', that message will not be synchronized).
 
-   The `line' mode can be useful for front-ends that are watching the
-output of `make' to track when recipes are started and completed.
+   The 'line' mode can be useful for front-ends that are watching the
+output of 'make' to track when recipes are started and completed.
 
-   Some programs invoked by `make' may behave differently if they
+   Some programs invoked by 'make' may behave differently if they
 determine they're writing output to a terminal versus a file (often
-described as "interactive" vs. "non-interactive" modes).  For example,
+described as "interactive" vs.  "non-interactive" modes).  For example,
 many programs that can display colorized output will not do so if they
 determine they are not writing to a terminal.  If your makefile invokes
 a program like this then using the output synchronization options will
-cause the program to believe it's running in "non-interactive" mode
-even though the output will ultimately go to the terminal.
+cause the program to believe it's running in "non-interactive" mode even
+though the output will ultimately go to the terminal.
 
 \1f
 File: make.info,  Node: Parallel Input,  Prev: Parallel Output,  Up: Parallel
@@ -3546,18 +3545,18 @@ File: make.info,  Node: Parallel Input,  Prev: Parallel Output,  Up: Parallel
 
 Two processes cannot both take input from the same device at the same
 time.  To make sure that only one recipe tries to take input from the
-terminal at once, `make' will invalidate the standard input streams of
+terminal at once, 'make' will invalidate the standard input streams of
 all but one running recipe.  If another recipe attempts to read from
-standard input it will usually incur a fatal error (a `Broken pipe'
-signal).  
+standard input it will usually incur a fatal error (a 'Broken pipe'
+signal).
 
    It is unpredictable which recipe will have a valid standard input
 stream (which will come from the terminal, or wherever you redirect the
-standard input of `make').  The first recipe run will always get it
+standard input of 'make').  The first recipe run will always get it
 first, and the first recipe started after that one finishes will get it
 next, and so on.
 
-   We will change how this aspect of `make' works if we find a better
+   We will change how this aspect of 'make' works if we find a better
 alternative.  In the mean time, you should not rely on any recipe using
 standard input at all if you are using the parallel execution feature;
 but if you are not using this feature, then standard input works
@@ -3569,21 +3568,21 @@ File: make.info,  Node: Errors,  Next: Interrupts,  Prev: Parallel,  Up: Recipes
 5.5 Errors in Recipes
 =====================
 
-After each shell invocation returns, `make' looks at its exit status.
+After each shell invocation returns, 'make' looks at its exit status.
 If the shell completed successfully (the exit status is zero), the next
 line in the recipe is executed in a new shell; after the last line is
 finished, the rule is finished.
 
-   If there is an error (the exit status is nonzero), `make' gives up on
+   If there is an error (the exit status is nonzero), 'make' gives up on
 the current rule, and perhaps on all rules.
 
    Sometimes the failure of a certain recipe line does not indicate a
-problem.  For example, you may use the `mkdir' command to ensure that a
-directory exists.  If the directory already exists, `mkdir' will report
-an error, but you probably want `make' to continue regardless.
+problem.  For example, you may use the 'mkdir' command to ensure that a
+directory exists.  If the directory already exists, 'mkdir' will report
+an error, but you probably want 'make' to continue regardless.
 
-   To ignore errors in a recipe line, write a `-' at the beginning of
-the line's text (after the initial tab).  The `-' is discarded before
+   To ignore errors in a recipe line, write a '-' at the beginning of
+the line's text (after the initial tab).  The '-' is discarded before
 the line is passed to the shell for execution.
 
    For example,
@@ -3591,81 +3590,80 @@ the line is passed to the shell for execution.
      clean:
              -rm -f *.o
 
-This causes `make' to continue even if `rm' is unable to remove a file.
+This causes 'make' to continue even if 'rm' is unable to remove a file.
 
-   When you run `make' with the `-i' or `--ignore-errors' flag, errors
-are ignored in all recipes of all rules.  A rule in the makefile for
-the special target `.IGNORE' has the same effect, if there are no
-prerequisites.  These ways of ignoring errors are obsolete because `-'
+   When you run 'make' with the '-i' or '--ignore-errors' flag, errors
+are ignored in all recipes of all rules.  A rule in the makefile for the
+special target '.IGNORE' has the same effect, if there are no
+prerequisites.  These ways of ignoring errors are obsolete because '-'
 is more flexible.
 
-   When errors are to be ignored, because of either a `-' or the `-i'
-flag, `make' treats an error return just like success, except that it
+   When errors are to be ignored, because of either a '-' or the '-i'
+flag, 'make' treats an error return just like success, except that it
 prints out a message that tells you the status code the shell exited
 with, and says that the error has been ignored.
 
-   When an error happens that `make' has not been told to ignore, it
+   When an error happens that 'make' has not been told to ignore, it
 implies that the current target cannot be correctly remade, and neither
 can any other that depends on it either directly or indirectly.  No
 further recipes will be executed for these targets, since their
 preconditions have not been achieved.
 
-   Normally `make' gives up immediately in this circumstance, returning
-a nonzero status.  However, if the `-k' or `--keep-going' flag is
-specified, `make' continues to consider the other prerequisites of the
+   Normally 'make' gives up immediately in this circumstance, returning
+a nonzero status.  However, if the '-k' or '--keep-going' flag is
+specified, 'make' continues to consider the other prerequisites of the
 pending targets, remaking them if necessary, before it gives up and
 returns nonzero status.  For example, after an error in compiling one
-object file, `make -k' will continue compiling other object files even
+object file, 'make -k' will continue compiling other object files even
 though it already knows that linking them will be impossible.  *Note
 Summary of Options: Options Summary.
 
    The usual behavior assumes that your purpose is to get the specified
-targets up to date; once `make' learns that this is impossible, it
-might as well report the failure immediately.  The `-k' option says
-that the real purpose is to test as many of the changes made in the
-program as possible, perhaps to find several independent problems so
-that you can correct them all before the next attempt to compile.  This
-is why Emacs' `compile' command passes the `-k' flag by default.  
+targets up to date; once 'make' learns that this is impossible, it might
+as well report the failure immediately.  The '-k' option says that the
+real purpose is to test as many of the changes made in the program as
+possible, perhaps to find several independent problems so that you can
+correct them all before the next attempt to compile.  This is why Emacs'
+'compile' command passes the '-k' flag by default.
 
    Usually when a recipe line fails, if it has changed the target file
 at all, the file is corrupted and cannot be used--or at least it is not
 completely updated.  Yet the file's time stamp says that it is now up to
-date, so the next time `make' runs, it will not try to update that
-file.  The situation is just the same as when the shell is killed by a
-signal; *note Interrupts::.  So generally the right thing to do is to
-delete the target file if the recipe fails after beginning to change
-the file.  `make' will do this if `.DELETE_ON_ERROR' appears as a
-target.  This is almost always what you want `make' to do, but it is
-not historical practice; so for compatibility, you must explicitly
-request it.
+date, so the next time 'make' runs, it will not try to update that file.
+The situation is just the same as when the shell is killed by a signal;
+*note Interrupts::.  So generally the right thing to do is to delete the
+target file if the recipe fails after beginning to change the file.
+'make' will do this if '.DELETE_ON_ERROR' appears as a target.  This is
+almost always what you want 'make' to do, but it is not historical
+practice; so for compatibility, you must explicitly request it.
 
 \1f
 File: make.info,  Node: Interrupts,  Next: Recursion,  Prev: Errors,  Up: Recipes
 
-5.6 Interrupting or Killing `make'
+5.6 Interrupting or Killing 'make'
 ==================================
 
-If `make' gets a fatal signal while a shell is executing, it may delete
-the target file that the recipe was supposed to update.  This is done
-if the target file's last-modification time has changed since `make'
-first checked it.
+If 'make' gets a fatal signal while a shell is executing, it may delete
+the target file that the recipe was supposed to update.  This is done if
+the target file's last-modification time has changed since 'make' first
+checked it.
 
    The purpose of deleting the target is to make sure that it is remade
-from scratch when `make' is next run.  Why is this?  Suppose you type
-`Ctrl-c' while a compiler is running, and it has begun to write an
-object file `foo.o'.  The `Ctrl-c' kills the compiler, resulting in an
+from scratch when 'make' is next run.  Why is this?  Suppose you type
+'Ctrl-c' while a compiler is running, and it has begun to write an
+object file 'foo.o'.  The 'Ctrl-c' kills the compiler, resulting in an
 incomplete file whose last-modification time is newer than the source
-file `foo.c'.  But `make' also receives the `Ctrl-c' signal and deletes
-this incomplete file.  If `make' did not do this, the next invocation
-of `make' would think that `foo.o' did not require updating--resulting
-in a strange error message from the linker when it tries to link an
-object file half of which is missing.
+file 'foo.c'.  But 'make' also receives the 'Ctrl-c' signal and deletes
+this incomplete file.  If 'make' did not do this, the next invocation of
+'make' would think that 'foo.o' did not require updating--resulting in a
+strange error message from the linker when it tries to link an object
+file half of which is missing.
 
    You can prevent the deletion of a target file in this way by making
-the special target `.PRECIOUS' depend on it.  Before remaking a target,
-`make' checks to see whether it appears on the prerequisites of
-`.PRECIOUS', and thereby decides whether the target should be deleted
-if a signal happens.  Some reasons why you might do this are that the
+the special target '.PRECIOUS' depend on it.  Before remaking a target,
+'make' checks to see whether it appears on the prerequisites of
+'.PRECIOUS', and thereby decides whether the target should be deleted if
+a signal happens.  Some reasons why you might do this are that the
 target is updated in some atomic fashion, or exists only to record a
 modification-time (its contents do not matter), or must exist at all
 times to prevent other sorts of trouble.
@@ -3673,14 +3671,14 @@ times to prevent other sorts of trouble.
 \1f
 File: make.info,  Node: Recursion,  Next: Canned Recipes,  Prev: Interrupts,  Up: Recipes
 
-5.7 Recursive Use of `make'
+5.7 Recursive Use of 'make'
 ===========================
 
-Recursive use of `make' means using `make' as a command in a makefile.
+Recursive use of 'make' means using 'make' as a command in a makefile.
 This technique is useful when you want separate makefiles for various
 subsystems that compose a larger system.  For example, suppose you have
-a sub-directory `subdir' which has its own makefile, and you would like
-the containing directory's makefile to run `make' on the sub-directory.
+a sub-directory 'subdir' which has its own makefile, and you would like
+the containing directory's makefile to run 'make' on the sub-directory.
 You can do it by writing this:
 
      subsystem:
@@ -3690,131 +3688,130 @@ or, equivalently, this (*note Summary of Options: Options Summary.):
 
      subsystem:
              $(MAKE) -C subdir
-   
-   You can write recursive `make' commands just by copying this example,
+
+   You can write recursive 'make' commands just by copying this example,
 but there are many things to know about how they work and why, and about
-how the sub-`make' relates to the top-level `make'.  You may also find
-it useful to declare targets that invoke recursive `make' commands as
-`.PHONY' (for more discussion on when this is useful, see *note Phony
+how the sub-'make' relates to the top-level 'make'.  You may also find
+it useful to declare targets that invoke recursive 'make' commands as
+'.PHONY' (for more discussion on when this is useful, see *note Phony
 Targets::).
 
-   For your convenience, when GNU `make' starts (after it has processed
-any `-C' options) it sets the variable `CURDIR' to the pathname of the
-current working directory.  This value is never touched by `make'
-again: in particular note that if you include files from other
-directories the value of `CURDIR' does not change.  The value has the
-same precedence it would have if it were set in the makefile (by
-default, an environment variable `CURDIR' will not override this
-value).  Note that setting this variable has no impact on the operation
-of `make' (it does not cause `make' to change its working directory,
-for example).
+   For your convenience, when GNU 'make' starts (after it has processed
+any '-C' options) it sets the variable 'CURDIR' to the pathname of the
+current working directory.  This value is never touched by 'make' again:
+in particular note that if you include files from other directories the
+value of 'CURDIR' does not change.  The value has the same precedence it
+would have if it were set in the makefile (by default, an environment
+variable 'CURDIR' will not override this value).  Note that setting this
+variable has no impact on the operation of 'make' (it does not cause
+'make' to change its working directory, for example).
 
 * Menu:
 
-* MAKE Variable::               The special effects of using `$(MAKE)'.
-* Variables/Recursion::         How to communicate variables to a sub-`make'.
-* Options/Recursion::           How to communicate options to a sub-`make'.
-* -w Option::                   How the `-w' or `--print-directory' option
-                                  helps debug use of recursive `make' commands.
+* MAKE Variable::               The special effects of using '$(MAKE)'.
+* Variables/Recursion::         How to communicate variables to a sub-'make'.
+* Options/Recursion::           How to communicate options to a sub-'make'.
+* -w Option::                   How the '-w' or '--print-directory' option
+                                  helps debug use of recursive 'make' commands.
 
 \1f
 File: make.info,  Node: MAKE Variable,  Next: Variables/Recursion,  Prev: Recursion,  Up: Recursion
 
-5.7.1 How the `MAKE' Variable Works
+5.7.1 How the 'MAKE' Variable Works
 -----------------------------------
 
-Recursive `make' commands should always use the variable `MAKE', not
-the explicit command name `make', as shown here:
+Recursive 'make' commands should always use the variable 'MAKE', not the
+explicit command name 'make', as shown here:
 
      subsystem:
              cd subdir && $(MAKE)
 
-   The value of this variable is the file name with which `make' was
-invoked.  If this file name was `/bin/make', then the recipe executed
-is `cd subdir && /bin/make'.  If you use a special version of `make' to
-run the top-level makefile, the same special version will be executed
-for recursive invocations.  
+   The value of this variable is the file name with which 'make' was
+invoked.  If this file name was '/bin/make', then the recipe executed is
+'cd subdir && /bin/make'.  If you use a special version of 'make' to run
+the top-level makefile, the same special version will be executed for
+recursive invocations.
 
-   As a special feature, using the variable `MAKE' in the recipe of a
-rule alters the effects of the `-t' (`--touch'), `-n' (`--just-print'),
-or `-q' (`--question') option.  Using the `MAKE' variable has the same
-effect as using a `+' character at the beginning of the recipe line.
+   As a special feature, using the variable 'MAKE' in the recipe of a
+rule alters the effects of the '-t' ('--touch'), '-n' ('--just-print'),
+or '-q' ('--question') option.  Using the 'MAKE' variable has the same
+effect as using a '+' character at the beginning of the recipe line.
 *Note Instead of Executing the Recipes: Instead of Execution.  This
-special feature is only enabled if the `MAKE' variable appears directly
-in the recipe: it does not apply if the `MAKE' variable is referenced
+special feature is only enabled if the 'MAKE' variable appears directly
+in the recipe: it does not apply if the 'MAKE' variable is referenced
 through expansion of another variable.  In the latter case you must use
-the `+' token to get these special effects.
+the '+' token to get these special effects.
 
-   Consider the command `make -t' in the above example.  (The `-t'
-option marks targets as up to date without actually running any
-recipes; see *note Instead of Execution::.)  Following the usual
-definition of `-t', a `make -t' command in the example would create a
-file named `subsystem' and do nothing else.  What you really want it to
-do is run `cd subdir && make -t'; but that would require executing the
-recipe, and `-t' says not to execute recipes.  
+   Consider the command 'make -t' in the above example.  (The '-t'
+option marks targets as up to date without actually running any recipes;
+see *note Instead of Execution::.)  Following the usual definition of
+'-t', a 'make -t' command in the example would create a file named
+'subsystem' and do nothing else.  What you really want it to do is run 'cd subdir &&
+make -t'; but that would require executing the recipe, and '-t' says not
+to execute recipes.
 
    The special feature makes this do what you want: whenever a recipe
-line of a rule contains the variable `MAKE', the flags `-t', `-n' and
-`-q' do not apply to that line.  Recipe lines containing `MAKE' are
+line of a rule contains the variable 'MAKE', the flags '-t', '-n' and
+'-q' do not apply to that line.  Recipe lines containing 'MAKE' are
 executed normally despite the presence of a flag that causes most
-recipes not to be run.  The usual `MAKEFLAGS' mechanism passes the
-flags to the sub-`make' (*note Communicating Options to a Sub-`make':
+recipes not to be run.  The usual 'MAKEFLAGS' mechanism passes the flags
+to the sub-'make' (*note Communicating Options to a Sub-'make':
 Options/Recursion.), so your request to touch the files, or print the
 recipes, is propagated to the subsystem.
 
 \1f
 File: make.info,  Node: Variables/Recursion,  Next: Options/Recursion,  Prev: MAKE Variable,  Up: Recursion
 
-5.7.2 Communicating Variables to a Sub-`make'
+5.7.2 Communicating Variables to a Sub-'make'
 ---------------------------------------------
 
-Variable values of the top-level `make' can be passed to the sub-`make'
+Variable values of the top-level 'make' can be passed to the sub-'make'
 through the environment by explicit request.  These variables are
-defined in the sub-`make' as defaults, but they do not override
-variables defined in the makefile used by the sub-`make' unless you use
-the `-e' switch (*note Summary of Options: Options Summary.).
+defined in the sub-'make' as defaults, but they do not override
+variables defined in the makefile used by the sub-'make' unless you use
+the '-e' switch (*note Summary of Options: Options Summary.).
 
-   To pass down, or "export", a variable, `make' adds the variable and
+   To pass down, or "export", a variable, 'make' adds the variable and
 its value to the environment for running each line of the recipe.  The
-sub-`make', in turn, uses the environment to initialize its table of
+sub-'make', in turn, uses the environment to initialize its table of
 variable values.  *Note Variables from the Environment: Environment.
 
-   Except by explicit request, `make' exports a variable only if it is
+   Except by explicit request, 'make' exports a variable only if it is
 either defined in the environment initially or set on the command line,
 and if its name consists only of letters, numbers, and underscores.
 Some shells cannot cope with environment variable names consisting of
 characters other than letters, numbers, and underscores.
 
-   The value of the `make' variable `SHELL' is not exported.  Instead,
-the value of the `SHELL' variable from the invoking environment is
-passed to the sub-`make'.  You can force `make' to export its value for
-`SHELL' by using the `export' directive, described below.  *Note
+   The value of the 'make' variable 'SHELL' is not exported.  Instead,
+the value of the 'SHELL' variable from the invoking environment is
+passed to the sub-'make'.  You can force 'make' to export its value for
+'SHELL' by using the 'export' directive, described below.  *Note
 Choosing the Shell::.
 
-   The special variable `MAKEFLAGS' is always exported (unless you
-unexport it).  `MAKEFILES' is exported if you set it to anything.
+   The special variable 'MAKEFLAGS' is always exported (unless you
+unexport it).  'MAKEFILES' is exported if you set it to anything.
 
-   `make' automatically passes down variable values that were defined
-on the command line, by putting them in the `MAKEFLAGS' variable.
-*Note Options/Recursion::.
+   'make' automatically passes down variable values that were defined on
+the command line, by putting them in the 'MAKEFLAGS' variable.  *Note
+Options/Recursion::.
 
    Variables are _not_ normally passed down if they were created by
-default by `make' (*note Variables Used by Implicit Rules: Implicit
-Variables.).  The sub-`make' will define these for itself.
+default by 'make' (*note Variables Used by Implicit Rules: Implicit
+Variables.).  The sub-'make' will define these for itself.
 
-   If you want to export specific variables to a sub-`make', use the
-`export' directive, like this:
+   If you want to export specific variables to a sub-'make', use the
+'export' directive, like this:
 
      export VARIABLE ...
 
 If you want to _prevent_ a variable from being exported, use the
-`unexport' directive, like this:
+'unexport' directive, like this:
 
      unexport VARIABLE ...
 
-In both of these forms, the arguments to `export' and `unexport' are
-expanded, and so could be variables or functions which expand to a
-(list of) variable names to be (un)exported.
+In both of these forms, the arguments to 'export' and 'unexport' are
+expanded, and so could be variables or functions which expand to a (list
+of) variable names to be (un)exported.
 
    As a convenience, you can define a variable and export it at the same
 time by doing:
@@ -3846,189 +3843,186 @@ is just like:
 
 *Note Appending More Text to Variables: Appending.
 
-   You may notice that the `export' and `unexport' directives work in
-`make' in the same way they work in the shell, `sh'.
+   You may notice that the 'export' and 'unexport' directives work in
+'make' in the same way they work in the shell, 'sh'.
 
    If you want all variables to be exported by default, you can use
-`export' by itself:
+'export' by itself:
 
      export
 
-This tells `make' that variables which are not explicitly mentioned in
-an `export' or `unexport' directive should be exported.  Any variable
-given in an `unexport' directive will still _not_ be exported.  If you
-use `export' by itself to export variables by default, variables whose
+This tells 'make' that variables which are not explicitly mentioned in
+an 'export' or 'unexport' directive should be exported.  Any variable
+given in an 'unexport' directive will still _not_ be exported.  If you
+use 'export' by itself to export variables by default, variables whose
 names contain characters other than alphanumerics and underscores will
-not be exported unless specifically mentioned in an `export' directive.
+not be exported unless specifically mentioned in an 'export' directive.
 
-   The behavior elicited by an `export' directive by itself was the
-default in older versions of GNU `make'.  If your makefiles depend on
-this behavior and you want to be compatible with old versions of
-`make', you can write a rule for the special target
-`.EXPORT_ALL_VARIABLES' instead of using the `export' directive.  This
-will be ignored by old `make's, while the `export' directive will cause
-a syntax error.  
+   The behavior elicited by an 'export' directive by itself was the
+default in older versions of GNU 'make'.  If your makefiles depend on
+this behavior and you want to be compatible with old versions of 'make',
+you can write a rule for the special target '.EXPORT_ALL_VARIABLES'
+instead of using the 'export' directive.  This will be ignored by old
+'make's, while the 'export' directive will cause a syntax error.
 
-   Likewise, you can use `unexport' by itself to tell `make' _not_ to
+   Likewise, you can use 'unexport' by itself to tell 'make' _not_ to
 export variables by default.  Since this is the default behavior, you
-would only need to do this if `export' had been used by itself earlier
-(in an included makefile, perhaps).  You *cannot* use `export' and
-`unexport' by themselves to have variables exported for some recipes
-and not for others.  The last `export' or `unexport' directive that
-appears by itself determines the behavior for the entire run of `make'.
+would only need to do this if 'export' had been used by itself earlier
+(in an included makefile, perhaps).  You *cannot* use 'export' and
+'unexport' by themselves to have variables exported for some recipes and
+not for others.  The last 'export' or 'unexport' directive that appears
+by itself determines the behavior for the entire run of 'make'.
 
-   As a special feature, the variable `MAKELEVEL' is changed when it is
+   As a special feature, the variable 'MAKELEVEL' is changed when it is
 passed down from level to level.  This variable's value is a string
-which is the depth of the level as a decimal number.  The value is `0'
-for the top-level `make'; `1' for a sub-`make', `2' for a
-sub-sub-`make', and so on.  The incrementation happens when `make' sets
+which is the depth of the level as a decimal number.  The value is '0'
+for the top-level 'make'; '1' for a sub-'make', '2' for a
+sub-sub-'make', and so on.  The incrementation happens when 'make' sets
 up the environment for a recipe.
 
-   The main use of `MAKELEVEL' is to test it in a conditional directive
+   The main use of 'MAKELEVEL' is to test it in a conditional directive
 (*note Conditional Parts of Makefiles: Conditionals.); this way you can
-write a makefile that behaves one way if run recursively and another
-way if run directly by you.
+write a makefile that behaves one way if run recursively and another way
+if run directly by you.
 
-   You can use the variable `MAKEFILES' to cause all sub-`make'
-commands to use additional makefiles.  The value of `MAKEFILES' is a
+   You can use the variable 'MAKEFILES' to cause all sub-'make' commands
+to use additional makefiles.  The value of 'MAKEFILES' is a
 whitespace-separated list of file names.  This variable, if defined in
 the outer-level makefile, is passed down through the environment; then
-it serves as a list of extra makefiles for the sub-`make' to read
-before the usual or specified ones.  *Note The Variable `MAKEFILES':
-MAKEFILES Variable.
+it serves as a list of extra makefiles for the sub-'make' to read before
+the usual or specified ones.  *Note The Variable 'MAKEFILES': MAKEFILES
+Variable.
 
 \1f
 File: make.info,  Node: Options/Recursion,  Next: -w Option,  Prev: Variables/Recursion,  Up: Recursion
 
-5.7.3 Communicating Options to a Sub-`make'
+5.7.3 Communicating Options to a Sub-'make'
 -------------------------------------------
 
-Flags such as `-s' and `-k' are passed automatically to the sub-`make'
-through the variable `MAKEFLAGS'.  This variable is set up
-automatically by `make' to contain the flag letters that `make'
-received.  Thus, if you do `make -ks' then `MAKEFLAGS' gets the value
-`ks'.
+Flags such as '-s' and '-k' are passed automatically to the sub-'make'
+through the variable 'MAKEFLAGS'.  This variable is set up automatically
+by 'make' to contain the flag letters that 'make' received.  Thus, if
+you do 'make -ks' then 'MAKEFLAGS' gets the value 'ks'.
 
-   As a consequence, every sub-`make' gets a value for `MAKEFLAGS' in
+   As a consequence, every sub-'make' gets a value for 'MAKEFLAGS' in
 its environment.  In response, it takes the flags from that value and
-processes them as if they had been given as arguments.  *Note Summary
-of Options: Options Summary.
+processes them as if they had been given as arguments.  *Note Summary of
+Options: Options Summary.
 
    Likewise variables defined on the command line are passed to the
-sub-`make' through `MAKEFLAGS'.  Words in the value of `MAKEFLAGS' that
-contain `=', `make' treats as variable definitions just as if they
+sub-'make' through 'MAKEFLAGS'.  Words in the value of 'MAKEFLAGS' that
+contain '=', 'make' treats as variable definitions just as if they
 appeared on the command line.  *Note Overriding Variables: Overriding.
 
-   The options `-C', `-f', `-o', and `-W' are not put into `MAKEFLAGS';
+   The options '-C', '-f', '-o', and '-W' are not put into 'MAKEFLAGS';
 these options are not passed down.
 
-   The `-j' option is a special case (*note Parallel Execution:
-Parallel.).  If you set it to some numeric value `N' and your operating
+   The '-j' option is a special case (*note Parallel Execution:
+Parallel.).  If you set it to some numeric value 'N' and your operating
 system supports it (most any UNIX system will; others typically won't),
-the parent `make' and all the sub-`make's will communicate to ensure
-that there are only `N' jobs running at the same time between them all.
+the parent 'make' and all the sub-'make's will communicate to ensure
+that there are only 'N' jobs running at the same time between them all.
 Note that any job that is marked recursive (*note Instead of Executing
-Recipes: Instead of Execution.)  doesn't count against the total jobs
-(otherwise we could get `N' sub-`make's running and have no slots left
+Recipes: Instead of Execution.) doesn't count against the total jobs
+(otherwise we could get 'N' sub-'make's running and have no slots left
 over for any real work!)
 
    If your operating system doesn't support the above communication,
-then `-j 1' is always put into `MAKEFLAGS' instead of the value you
-specified.  This is because if the `-j' option were passed down to
-sub-`make's, you would get many more jobs running in parallel than you
-asked for.  If you give `-j' with no numeric argument, meaning to run
-as many jobs as possible in parallel, this is passed down, since
-multiple infinities are no more than one.
+then '-j 1' is always put into 'MAKEFLAGS' instead of the value you
+specified.  This is because if the '-j' option were passed down to
+sub-'make's, you would get many more jobs running in parallel than you
+asked for.  If you give '-j' with no numeric argument, meaning to run as
+many jobs as possible in parallel, this is passed down, since multiple
+infinities are no more than one.
 
    If you do not want to pass the other flags down, you must change the
-value of `MAKEFLAGS', like this:
+value of 'MAKEFLAGS', like this:
 
      subsystem:
              cd subdir && $(MAKE) MAKEFLAGS=
 
    The command line variable definitions really appear in the variable
-`MAKEOVERRIDES', and `MAKEFLAGS' contains a reference to this variable.
+'MAKEOVERRIDES', and 'MAKEFLAGS' contains a reference to this variable.
 If you do want to pass flags down normally, but don't want to pass down
-the command line variable definitions, you can reset `MAKEOVERRIDES' to
+the command line variable definitions, you can reset 'MAKEOVERRIDES' to
 empty, like this:
 
      MAKEOVERRIDES =
 
 This is not usually useful to do.  However, some systems have a small
 fixed limit on the size of the environment, and putting so much
-information into the value of `MAKEFLAGS' can exceed it.  If you see
-the error message `Arg list too long', this may be the problem.  (For
-strict compliance with POSIX.2, changing `MAKEOVERRIDES' does not
-affect `MAKEFLAGS' if the special target `.POSIX' appears in the
-makefile.  You probably do not care about this.)
-
-   A similar variable `MFLAGS' exists also, for historical
-compatibility.  It has the same value as `MAKEFLAGS' except that it
-does not contain the command line variable definitions, and it always
-begins with a hyphen unless it is empty (`MAKEFLAGS' begins with a
-hyphen only when it begins with an option that has no single-letter
-version, such as `--warn-undefined-variables').  `MFLAGS' was
-traditionally used explicitly in the recursive `make' command, like
-this:
+information into the value of 'MAKEFLAGS' can exceed it.  If you see the
+error message 'Arg list too long', this may be the problem.  (For strict
+compliance with POSIX.2, changing 'MAKEOVERRIDES' does not affect
+'MAKEFLAGS' if the special target '.POSIX' appears in the makefile.  You
+probably do not care about this.)
+
+   A similar variable 'MFLAGS' exists also, for historical
+compatibility.  It has the same value as 'MAKEFLAGS' except that it does
+not contain the command line variable definitions, and it always begins
+with a hyphen unless it is empty ('MAKEFLAGS' begins with a hyphen only
+when it begins with an option that has no single-letter version, such as
+'--warn-undefined-variables').  'MFLAGS' was traditionally used
+explicitly in the recursive 'make' command, like this:
 
      subsystem:
              cd subdir && $(MAKE) $(MFLAGS)
 
-but now `MAKEFLAGS' makes this usage redundant.  If you want your
-makefiles to be compatible with old `make' programs, use this
-technique; it will work fine with more modern `make' versions too.
+but now 'MAKEFLAGS' makes this usage redundant.  If you want your
+makefiles to be compatible with old 'make' programs, use this technique;
+it will work fine with more modern 'make' versions too.
 
-   The `MAKEFLAGS' variable can also be useful if you want to have
-certain options, such as `-k' (*note Summary of Options: Options
-Summary.), set each time you run `make'.  You simply put a value for
-`MAKEFLAGS' in your environment.  You can also set `MAKEFLAGS' in a
+   The 'MAKEFLAGS' variable can also be useful if you want to have
+certain options, such as '-k' (*note Summary of Options: Options
+Summary.), set each time you run 'make'.  You simply put a value for
+'MAKEFLAGS' in your environment.  You can also set 'MAKEFLAGS' in a
 makefile, to specify additional flags that should also be in effect for
-that makefile.  (Note that you cannot use `MFLAGS' this way.  That
-variable is set only for compatibility; `make' does not interpret a
+that makefile.  (Note that you cannot use 'MFLAGS' this way.  That
+variable is set only for compatibility; 'make' does not interpret a
 value you set for it in any way.)
 
-   When `make' interprets the value of `MAKEFLAGS' (either from the
+   When 'make' interprets the value of 'MAKEFLAGS' (either from the
 environment or from a makefile), it first prepends a hyphen if the value
 does not already begin with one.  Then it chops the value into words
 separated by blanks, and parses these words as if they were options
-given on the command line (except that `-C', `-f', `-h', `-o', `-W',
-and their long-named versions are ignored; and there is no error for an
+given on the command line (except that '-C', '-f', '-h', '-o', '-W', and
+their long-named versions are ignored; and there is no error for an
 invalid option).
 
-   If you do put `MAKEFLAGS' in your environment, you should be sure not
+   If you do put 'MAKEFLAGS' in your environment, you should be sure not
 to include any options that will drastically affect the actions of
-`make' and undermine the purpose of makefiles and of `make' itself.
-For instance, the `-t', `-n', and `-q' options, if put in one of these
+'make' and undermine the purpose of makefiles and of 'make' itself.  For
+instance, the '-t', '-n', and '-q' options, if put in one of these
 variables, could have disastrous consequences and would certainly have
 at least surprising and probably annoying effects.
 
-   If you'd like to run other implementations of `make' in addition to
-GNU `make', and hence do not want to add GNU `make'-specific flags to
-the `MAKEFLAGS' variable, you can add them to the `GNUMAKEFLAGS'
-variable instead.  This variable is parsed just before `MAKEFLAGS', in
-the same way as `MAKEFLAGS'.  When `make' constructs `MAKEFLAGS' to
-pass to a recursive `make' it will include all flags, even those taken
-from `GNUMAKEFLAGS'.  As a result, after parsing `GNUMAKEFLAGS' GNU
-`make' sets this variable to the empty string to avoid duplicating
-flags during recursion.
-
-   It's best to use `GNUMAKEFLAGS' only with flags which won't
+   If you'd like to run other implementations of 'make' in addition to
+GNU 'make', and hence do not want to add GNU 'make'-specific flags to
+the 'MAKEFLAGS' variable, you can add them to the 'GNUMAKEFLAGS'
+variable instead.  This variable is parsed just before 'MAKEFLAGS', in
+the same way as 'MAKEFLAGS'.  When 'make' constructs 'MAKEFLAGS' to pass
+to a recursive 'make' it will include all flags, even those taken from
+'GNUMAKEFLAGS'.  As a result, after parsing 'GNUMAKEFLAGS' GNU 'make'
+sets this variable to the empty string to avoid duplicating flags during
+recursion.
+
+   It's best to use 'GNUMAKEFLAGS' only with flags which won't
 materially change the behavior of your makefiles.  If your makefiles
-require GNU make anyway then simply use `MAKEFLAGS'.  Flags such as
-`--no-print-directory' or `--output-sync' may be appropriate for
-`GNUMAKEFLAGS'.
+require GNU make anyway then simply use 'MAKEFLAGS'.  Flags such as
+'--no-print-directory' or '--output-sync' may be appropriate for
+'GNUMAKEFLAGS'.
 
 \1f
 File: make.info,  Node: -w Option,  Prev: Options/Recursion,  Up: Recursion
 
-5.7.4 The `--print-directory' Option
+5.7.4 The '--print-directory' Option
 ------------------------------------
 
-If you use several levels of recursive `make' invocations, the `-w' or
-`--print-directory' option can make the output a lot easier to
-understand by showing each directory as `make' starts processing it and
-as `make' finishes processing it.  For example, if `make -w' is run in
-the directory `/u/gnu/make', `make' will print a line of the form:
+If you use several levels of recursive 'make' invocations, the '-w' or '--print-directory'
+option can make the output a lot easier to understand by showing each
+directory as 'make' starts processing it and as 'make' finishes
+processing it.  For example, if 'make -w' is run in the directory
+'/u/gnu/make', 'make' will print a line of the form:
 
      make: Entering directory `/u/gnu/make'.
 
@@ -4038,11 +4032,11 @@ before doing anything else, and a line of the form:
 
 when processing is completed.
 
-   Normally, you do not need to specify this option because `make' does
-it for you: `-w' is turned on automatically when you use the `-C'
-option, and in sub-`make's.  `make' will not automatically turn on `-w'
-if you also use `-s', which says to be silent, or if you use
-`--no-print-directory' to explicitly disable it.
+   Normally, you do not need to specify this option because 'make' does
+it for you: '-w' is turned on automatically when you use the '-C'
+option, and in sub-'make's.  'make' will not automatically turn on '-w'
+if you also use '-s', which says to be silent, or if you use
+'--no-print-directory' to explicitly disable it.
 
 \1f
 File: make.info,  Node: Canned Recipes,  Next: Empty Recipes,  Prev: Recursion,  Up: Recipes
@@ -4051,7 +4045,7 @@ File: make.info,  Node: Canned Recipes,  Next: Empty Recipes,  Prev: Recursion,
 ===========================
 
 When the same sequence of commands is useful in making various targets,
-you can define it as a canned sequence with the `define' directive, and
+you can define it as a canned sequence with the 'define' directive, and
 refer to the canned sequence from the recipes for those targets.  The
 canned sequence is actually a variable, so the name must not conflict
 with other variable names.
@@ -4062,42 +4056,42 @@ with other variable names.
      yacc $(firstword $^)
      mv y.tab.c $@
      endef
-   
-Here `run-yacc' is the name of the variable being defined; `endef'
-marks the end of the definition; the lines in between are the commands.
-The `define' directive does not expand variable references and function
-calls in the canned sequence; the `$' characters, parentheses, variable
+
+Here 'run-yacc' is the name of the variable being defined; 'endef' marks
+the end of the definition; the lines in between are the commands.  The
+'define' directive does not expand variable references and function
+calls in the canned sequence; the '$' characters, parentheses, variable
 names, and so on, all become part of the value of the variable you are
 defining.  *Note Defining Multi-Line Variables: Multi-Line, for a
-complete explanation of `define'.
+complete explanation of 'define'.
 
-   The first command in this example runs Yacc on the first
-prerequisite of whichever rule uses the canned sequence.  The output
-file from Yacc is always named `y.tab.c'.  The second command moves the
-output to the rule's target file name.
+   The first command in this example runs Yacc on the first prerequisite
+of whichever rule uses the canned sequence.  The output file from Yacc
+is always named 'y.tab.c'.  The second command moves the output to the
+rule's target file name.
 
    To use the canned sequence, substitute the variable into the recipe
 of a rule.  You can substitute it like any other variable (*note Basics
 of Variable References: Reference.).  Because variables defined by
-`define' are recursively expanded variables, all the variable
-references you wrote inside the `define' are expanded now.  For example:
+'define' are recursively expanded variables, all the variable references
+you wrote inside the 'define' are expanded now.  For example:
 
      foo.c : foo.y
              $(run-yacc)
 
-`foo.y' will be substituted for the variable `$^' when it occurs in
-`run-yacc''s value, and `foo.c' for `$@'.
+'foo.y' will be substituted for the variable '$^' when it occurs in
+'run-yacc''s value, and 'foo.c' for '$@'.
 
    This is a realistic example, but this particular one is not needed in
-practice because `make' has an implicit rule to figure out these
+practice because 'make' has an implicit rule to figure out these
 commands based on the file names involved (*note Using Implicit Rules:
 Implicit Rules.).
 
    In recipe execution, each line of a canned sequence is treated just
 as if the line appeared on its own in the rule, preceded by a tab.  In
-particular, `make' invokes a separate sub-shell for each line.  You can
-use the special prefix characters that affect command lines (`@', `-',
-and `+') on each line of a canned sequence.  *Note Writing Recipes in
+particular, 'make' invokes a separate sub-shell for each line.  You can
+use the special prefix characters that affect command lines ('@', '-',
+and '+') on each line of a canned sequence.  *Note Writing Recipes in
 Rules: Recipes.  For example, using this canned sequence:
 
      define frobnicate =
@@ -4106,7 +4100,7 @@ Rules: Recipes.  For example, using this canned sequence:
      frob-step-2 $@-step-1 -o $@
      endef
 
-`make' will not echo the first line, the `echo' command.  But it _will_
+'make' will not echo the first line, the 'echo' command.  But it _will_
 echo the following two recipe lines.
 
    On the other hand, prefix characters on the recipe line that refers
@@ -4115,8 +4109,8 @@ to a canned sequence apply to every line in the sequence.  So the rule:
      frob.out: frob.in
              @$(frobnicate)
 
-does not echo _any_ recipe lines.  (*Note Recipe Echoing: Echoing, for
-a full explanation of `@'.)
+does not echo _any_ recipe lines.  (*Note Recipe Echoing: Echoing, for a
+full explanation of '@'.)
 
 \1f
 File: make.info,  Node: Empty Recipes,  Prev: Canned Recipes,  Up: Recipes
@@ -4130,13 +4124,13 @@ example:
 
      target: ;
 
-defines an empty recipe for `target'.  You could also use a line
+defines an empty recipe for 'target'.  You could also use a line
 beginning with a recipe prefix character to define an empty recipe, but
 this would be confusing because such a line looks empty.
 
    You may be wondering why you would want to define a recipe that does
 nothing.  The only reason this is useful is to prevent a target from
-getting implicit recipes (from implicit rules or the `.DEFAULT' special
+getting implicit recipes (from implicit rules or the '.DEFAULT' special
 target; *note Implicit Rules:: and *note Defining Last-Resort Default
 Rules: Last Resort.).
 
@@ -4155,29 +4149,29 @@ File: make.info,  Node: Using Variables,  Next: Conditionals,  Prev: Recipes,  U
 A "variable" is a name defined in a makefile to represent a string of
 text, called the variable's "value".  These values are substituted by
 explicit request into targets, prerequisites, recipes, and other parts
-of the makefile.  (In some other versions of `make', variables are
-called "macros".)  
+of the makefile.  (In some other versions of 'make', variables are
+called "macros".)
 
    Variables and functions in all parts of a makefile are expanded when
 read, except for in recipes, the right-hand sides of variable
-definitions using `=', and the bodies of variable definitions using the
-`define' directive.
+definitions using '=', and the bodies of variable definitions using the
+'define' directive.
 
    Variables can represent lists of file names, options to pass to
 compilers, programs to run, directories to look in for source files,
 directories to write output in, or anything else you can imagine.
 
-   A variable name may be any sequence of characters not containing
-`:', `#', `=', or whitespace.  However, variable names containing
-characters other than letters, numbers, and underscores should be
-considered carefully, as in some shells they cannot be passed through
-the environment to a sub-`make' (*note Communicating Variables to a
-Sub-`make': Variables/Recursion.).  Variable names beginning with `.'
+   A variable name may be any sequence of characters not containing ':',
+'#', '=', or whitespace.  However, variable names containing characters
+other than letters, numbers, and underscores should be considered
+carefully, as in some shells they cannot be passed through the
+environment to a sub-'make' (*note Communicating Variables to a
+Sub-'make': Variables/Recursion.).  Variable names beginning with '.'
 and an uppercase letter may be given special meaning in future versions
-of `make'.
+of 'make'.
 
-   Variable names are case-sensitive.  The names `foo', `FOO', and
-`Foo' all refer to different variables.
+   Variable names are case-sensitive.  The names 'foo', 'FOO', and 'Foo'
+all refer to different variables.
 
    It is traditional to use upper case letters in variable names, but we
 recommend using lower case letters for variable names that serve
@@ -4220,9 +4214,9 @@ File: make.info,  Node: Reference,  Next: Flavors,  Prev: Using Variables,  Up:
 =================================
 
 To substitute a variable's value, write a dollar sign followed by the
-name of the variable in parentheses or braces: either `$(foo)' or
-`${foo}' is a valid reference to the variable `foo'.  This special
-significance of `$' is why you must write `$$' to have the effect of a
+name of the variable in parentheses or braces: either '$(foo)' or
+'${foo}' is a valid reference to the variable 'foo'.  This special
+significance of '$' is why you must write '$$' to have the effect of a
 single dollar sign in a file name or recipe.
 
    Variable references can be used in any context: targets,
@@ -4243,13 +4237,13 @@ rule
      prog.o : prog.$(foo)
              $(foo)$(foo) -$(foo) prog.$(foo)
 
-could be used to compile a C program `prog.c'.  Since spaces before the
-variable value are ignored in variable assignments, the value of `foo'
-is precisely `c'.  (Don't actually write your makefiles this way!)
+could be used to compile a C program 'prog.c'.  Since spaces before the
+variable value are ignored in variable assignments, the value of 'foo'
+is precisely 'c'.  (Don't actually write your makefiles this way!)
 
    A dollar sign followed by a character other than a dollar sign,
 open-parenthesis or open-brace treats that single character as the
-variable name.  Thus, you could reference the variable `x' with `$x'.
+variable name.  Thus, you could reference the variable 'x' with '$x'.
 However, this practice is strongly discouraged, except in the case of
 the automatic variables (*note Automatic Variables::).
 
@@ -4259,18 +4253,18 @@ File: make.info,  Node: Flavors,  Next: Advanced,  Prev: Reference,  Up: Using V
 6.2 The Two Flavors of Variables
 ================================
 
-There are two ways that a variable in GNU `make' can have a value; we
+There are two ways that a variable in GNU 'make' can have a value; we
 call them the two "flavors" of variables.  The two flavors are
 distinguished in how they are defined and in what they do when expanded.
 
    The first flavor of variable is a "recursively expanded" variable.
-Variables of this sort are defined by lines using `=' (*note Setting
-Variables: Setting.) or by the `define' directive (*note Defining
+Variables of this sort are defined by lines using '=' (*note Setting
+Variables: Setting.) or by the 'define' directive (*note Defining
 Multi-Line Variables: Multi-Line.).  The value you specify is installed
-verbatim; if it contains references to other variables, these
-references are expanded whenever this variable is substituted (in the
-course of expanding some other string).  When this happens, it is
-called "recursive expansion".
+verbatim; if it contains references to other variables, these references
+are expanded whenever this variable is substituted (in the course of
+expanding some other string).  When this happens, it is called
+"recursive expansion".
 
    For example,
 
@@ -4280,47 +4274,47 @@ called "recursive expansion".
 
      all:;echo $(foo)
 
-will echo `Huh?': `$(foo)' expands to `$(bar)' which expands to
-`$(ugh)' which finally expands to `Huh?'.
+will echo 'Huh?': '$(foo)' expands to '$(bar)' which expands to '$(ugh)'
+which finally expands to 'Huh?'.
 
    This flavor of variable is the only sort supported by most other
-versions of `make'.  It has its advantages and its disadvantages.  An
+versions of 'make'.  It has its advantages and its disadvantages.  An
 advantage (most would say) is that:
 
      CFLAGS = $(include_dirs) -O
      include_dirs = -Ifoo -Ibar
 
-will do what was intended: when `CFLAGS' is expanded in a recipe, it
-will expand to `-Ifoo -Ibar -O'.  A major disadvantage is that you
+will do what was intended: when 'CFLAGS' is expanded in a recipe, it
+will expand to '-Ifoo -Ibar -O'.  A major disadvantage is that you
 cannot append something on the end of a variable, as in
 
      CFLAGS = $(CFLAGS) -O
 
 because it will cause an infinite loop in the variable expansion.
-(Actually `make' detects the infinite loop and reports an error.)  
+(Actually 'make' detects the infinite loop and reports an error.)
 
    Another disadvantage is that any functions (*note Functions for
-Transforming Text: Functions.)  referenced in the definition will be
-executed every time the variable is expanded.  This makes `make' run
-slower; worse, it causes the `wildcard' and `shell' functions to give
+Transforming Text: Functions.) referenced in the definition will be
+executed every time the variable is expanded.  This makes 'make' run
+slower; worse, it causes the 'wildcard' and 'shell' functions to give
 unpredictable results because you cannot easily control when they are
 called, or even how many times.
 
    To avoid all the problems and inconveniences of recursively expanded
 variables, there is another flavor: simply expanded variables.
 
-   "Simply expanded variables" are defined by lines using `:=' or `::='
+   "Simply expanded variables" are defined by lines using ':=' or '::='
 (*note Setting Variables: Setting.).  Both forms are equivalent in GNU
-`make'; however only the `::=' form is described by the POSIX standard
-(support for `::=' was added to the POSIX standard in 2012, so older
-versions of `make' won't accept this form either).
+'make'; however only the '::=' form is described by the POSIX standard
+(support for '::=' was added to the POSIX standard in 2012, so older
+versions of 'make' won't accept this form either).
 
    The value of a simply expanded variable is scanned once and for all,
 expanding any references to other variables and functions, when the
 variable is defined.  The actual value of the simply expanded variable
-is the result of expanding the text that you write.  It does not
-contain any references to other variables; it contains their values _as
-of the time this variable was defined_.  Therefore,
+is the result of expanding the text that you write.  It does not contain
+any references to other variables; it contains their values _as of the
+time this variable was defined_.  Therefore,
 
      x := foo
      y := $(x) bar
@@ -4335,11 +4329,11 @@ is equivalent to
 substituted verbatim.
 
    Here is a somewhat more complicated example, illustrating the use of
-`:=' in conjunction with the `shell' function.  (*Note The `shell'
+':=' in conjunction with the 'shell' function.  (*Note The 'shell'
 Function: Shell Function.)  This example also shows use of the variable
-`MAKELEVEL', which is changed when it is passed down from level to
-level.  (*Note Communicating Variables to a Sub-`make':
-Variables/Recursion, for information about `MAKELEVEL'.)
+'MAKELEVEL', which is changed when it is passed down from level to
+level.  (*Note Communicating Variables to a Sub-'make':
+Variables/Recursion, for information about 'MAKELEVEL'.)
 
      ifeq (0,${MAKELEVEL})
      whoami    := $(shell whoami)
@@ -4347,7 +4341,7 @@ Variables/Recursion, for information about `MAKELEVEL'.)
      MAKE := ${MAKE} host-type=${host-type} whoami=${whoami}
      endif
 
-An advantage of this use of `:=' is that a typical `descend into a
+An advantage of this use of ':=' is that a typical 'descend into a
 directory' recipe then looks like this:
 
      ${subdirs}:
@@ -4369,37 +4363,37 @@ protecting them with variable references, like this:
      nullstring :=
      space := $(nullstring) # end of the line
 
-Here the value of the variable `space' is precisely one space.  The
-comment `# end of the line' is included here just for clarity.  Since
+Here the value of the variable 'space' is precisely one space.  The
+comment '# end of the line' is included here just for clarity.  Since
 trailing space characters are _not_ stripped from variable values, just
-a space at the end of the line would have the same effect (but be
-rather hard to read).  If you put whitespace at the end of a variable
-value, it is a good idea to put a comment like that at the end of the
-line to make your intent clear.  Conversely, if you do _not_ want any
-whitespace characters at the end of your variable value, you must
-remember not to put a random comment on the end of the line after some
-whitespace, such as this:
+a space at the end of the line would have the same effect (but be rather
+hard to read).  If you put whitespace at the end of a variable value, it
+is a good idea to put a comment like that at the end of the line to make
+your intent clear.  Conversely, if you do _not_ want any whitespace
+characters at the end of your variable value, you must remember not to
+put a random comment on the end of the line after some whitespace, such
+as this:
 
      dir := /foo/bar    # directory to put the frobs in
 
-Here the value of the variable `dir' is `/foo/bar    ' (with four
+Here the value of the variable 'dir' is '/foo/bar    ' (with four
 trailing spaces), which was probably not the intention.  (Imagine
-something like `$(dir)/file' with this definition!)
+something like '$(dir)/file' with this definition!)
 
-   There is another assignment operator for variables, `?='.  This is
+   There is another assignment operator for variables, '?='.  This is
 called a conditional variable assignment operator, because it only has
 an effect if the variable is not yet defined.  This statement:
 
      FOO ?= bar
 
-is exactly equivalent to this (*note The `origin' Function: Origin
+is exactly equivalent to this (*note The 'origin' Function: Origin
 Function.):
 
      ifeq ($(origin FOO), undefined)
        FOO = bar
      endif
 
-   Note that a variable set to an empty value is still defined, so `?='
+   Note that a variable set to an empty value is still defined, so '?='
 will not set that variable.
 
 \1f
@@ -4424,40 +4418,40 @@ File: make.info,  Node: Substitution Refs,  Next: Computed Names,  Prev: Advance
 -----------------------------
 
 A "substitution reference" substitutes the value of a variable with
-alterations that you specify.  It has the form `$(VAR:A=B)' (or
-`${VAR:A=B}') and its meaning is to take the value of the variable VAR,
+alterations that you specify.  It has the form '$(VAR:A=B)' (or
+'${VAR:A=B}') and its meaning is to take the value of the variable VAR,
 replace every A at the end of a word with B in that value, and
 substitute the resulting string.
 
-   When we say "at the end of a word", we mean that A must appear
-either followed by whitespace or at the end of the value in order to be
+   When we say "at the end of a word", we mean that A must appear either
+followed by whitespace or at the end of the value in order to be
 replaced; other occurrences of A in the value are unaltered.  For
 example:
 
      foo := a.o b.o c.o
      bar := $(foo:.o=.c)
 
-sets `bar' to `a.c b.c c.c'.  *Note Setting Variables: Setting.
+sets 'bar' to 'a.c b.c c.c'.  *Note Setting Variables: Setting.
 
    A substitution reference is actually an abbreviation for use of the
-`patsubst' expansion function (*note Functions for String Substitution
+'patsubst' expansion function (*note Functions for String Substitution
 and Analysis: Text Functions.).  We provide substitution references as
-well as `patsubst' for compatibility with other implementations of
-`make'.
+well as 'patsubst' for compatibility with other implementations of
+'make'.
 
    Another type of substitution reference lets you use the full power of
-the `patsubst' function.  It has the same form `$(VAR:A=B)' described
-above, except that now A must contain a single `%' character.  This
-case is equivalent to `$(patsubst A,B,$(VAR))'.  *Note Functions for
-String Substitution and Analysis: Text Functions, for a description of
-the `patsubst' function.
+the 'patsubst' function.  It has the same form '$(VAR:A=B)' described
+above, except that now A must contain a single '%' character.  This case
+is equivalent to '$(patsubst A,B,$(VAR))'.  *Note Functions for String
+Substitution and Analysis: Text Functions, for a description of the
+'patsubst' function.
 
 For example:
 
      foo := a.o b.o c.o
      bar := $(foo:%.o=%.c)
 
-sets `bar' to `a.c b.c c.c'.
+sets 'bar' to 'a.c b.c c.c'.
 
 \1f
 File: make.info,  Node: Computed Names,  Prev: Substitution Refs,  Up: Advanced
@@ -4473,18 +4467,18 @@ that wants to understand everything, or you are actually interested in
 what they do, read on.
 
    Variables may be referenced inside the name of a variable.  This is
-called a "computed variable name" or a "nested variable reference".
-For example,
+called a "computed variable name" or a "nested variable reference".  For
+example,
 
      x = y
      y = z
      a := $($(x))
 
-defines `a' as `z': the `$(x)' inside `$($(x))' expands to `y', so
-`$($(x))' expands to `$(y)' which in turn expands to `z'.  Here the
-name of the variable to reference is not stated explicitly; it is
-computed by expansion of `$(x)'.  The reference `$(x)' here is nested
-within the outer variable reference.
+defines 'a' as 'z': the '$(x)' inside '$($(x))' expands to 'y', so
+'$($(x))' expands to '$(y)' which in turn expands to 'z'.  Here the name
+of the variable to reference is not stated explicitly; it is computed by
+expansion of '$(x)'.  The reference '$(x)' here is nested within the
+outer variable reference.
 
    The previous example shows two levels of nesting, but any number of
 levels is possible.  For example, here are three levels:
@@ -4494,9 +4488,8 @@ levels is possible.  For example, here are three levels:
      z = u
      a := $($($(x)))
 
-Here the innermost `$(x)' expands to `y', so `$($(x))' expands to
-`$(y)' which in turn expands to `z'; now we have `$(z)', which becomes
-`u'.
+Here the innermost '$(x)' expands to 'y', so '$($(x))' expands to '$(y)'
+which in turn expands to 'z'; now we have '$(z)', which becomes 'u'.
 
    References to recursively-expanded variables within a variable name
 are re-expanded in the usual fashion.  For example:
@@ -4506,13 +4499,13 @@ are re-expanded in the usual fashion.  For example:
      z = Hello
      a := $($(x))
 
-defines `a' as `Hello': `$($(x))' becomes `$($(y))' which becomes
-`$(z)' which becomes `Hello'.
+defines 'a' as 'Hello': '$($(x))' becomes '$($(y))' which becomes '$(z)'
+which becomes 'Hello'.
 
    Nested variable references can also contain modified references and
 function invocations (*note Functions for Transforming Text:
 Functions.), just like any other reference.  For example, using the
-`subst' function (*note Functions for String Substitution and Analysis:
+'subst' function (*note Functions for String Substitution and Analysis:
 Text Functions.):
 
      x = variable1
@@ -4521,16 +4514,16 @@ Text Functions.):
      z = y
      a := $($($(z)))
 
-eventually defines `a' as `Hello'.  It is doubtful that anyone would
+eventually defines 'a' as 'Hello'.  It is doubtful that anyone would
 ever want to write a nested reference as convoluted as this one, but it
-works: `$($($(z)))' expands to `$($(y))' which becomes `$($(subst
-1,2,$(x)))'.  This gets the value `variable1' from `x' and changes it
-by substitution to `variable2', so that the entire string becomes
-`$(variable2)', a simple variable reference whose value is `Hello'.
+works: '$($($(z)))' expands to '$($(y))' which becomes '$($(subst
+1,2,$(x)))'.  This gets the value 'variable1' from 'x' and changes it by
+substitution to 'variable2', so that the entire string becomes
+'$(variable2)', a simple variable reference whose value is 'Hello'.
 
    A computed variable name need not consist entirely of a single
-variable reference.  It can contain several variable references, as
-well as some invariant text.  For example,
+variable reference.  It can contain several variable references, as well
+as some invariant text.  For example,
 
      a_dirs := dira dirb
      1_dirs := dir1 dir2
@@ -4552,8 +4545,8 @@ well as some invariant text.  For example,
 
      dirs := $($(a1)_$(df))
 
-will give `dirs' the same value as `a_dirs', `1_dirs', `a_files' or
-`1_files' depending on the settings of `use_a' and `use_dirs'.
+will give 'dirs' the same value as 'a_dirs', '1_dirs', 'a_files' or
+'1_files' depending on the settings of 'use_a' and 'use_dirs'.
 
    Computed variable names can also be used in substitution references:
 
@@ -4562,13 +4555,13 @@ will give `dirs' the same value as `a_dirs', `1_dirs', `a_files' or
 
      sources := $($(a1)_objects:.o=.c)
 
-defines `sources' as either `a.c b.c c.c' or `1.c 2.c 3.c', depending
-on the value of `a1'.
+defines 'sources' as either 'a.c b.c c.c' or '1.c 2.c 3.c', depending on
+the value of 'a1'.
 
    The only restriction on this sort of use of nested variable
-references is that they cannot specify part of the name of a function
-to be called.  This is because the test for a recognized function name
-is done before the expansion of nested references.  For example,
+references is that they cannot specify part of the name of a function to
+be called.  This is because the test for a recognized function name is
+done before the expansion of nested references.  For example,
 
      ifdef do_sort
      func := sort
@@ -4580,13 +4573,13 @@ is done before the expansion of nested references.  For example,
 
      foo := $($(func) $(bar))
 
-attempts to give `foo' the value of the variable `sort a d b g q c' or
-`strip a d b g q c', rather than giving `a d b g q c' as the argument
-to either the `sort' or the `strip' function.  This restriction could
-be removed in the future if that change is shown to be a good idea.
+attempts to give 'foo' the value of the variable 'sort a d b g q c' or
+'strip a d b g q c', rather than giving 'a d b g q c' as the argument to
+either the 'sort' or the 'strip' function.  This restriction could be
+removed in the future if that change is shown to be a good idea.
 
    You can also use computed variable names in the left-hand side of a
-variable assignment, or in a `define' directive, as in:
+variable assignment, or in a 'define' directive, as in:
 
      dir = foo
      $(dir)_sources := $(wildcard $(dir)/*.c)
@@ -4594,8 +4587,8 @@ variable assignment, or in a `define' directive, as in:
      lpr $($(dir)_sources)
      endef
 
-This example defines the variables `dir', `foo_sources', and
-`foo_print'.
+This example defines the variables 'dir', 'foo_sources', and
+'foo_print'.
 
    Note that "nested variable references" are quite different from
 "recursively expanded variables" (*note The Two Flavors of Variables:
@@ -4610,14 +4603,14 @@ File: make.info,  Node: Values,  Next: Setting,  Prev: Advanced,  Up: Using Vari
 
 Variables can get values in several different ways:
 
-   * You can specify an overriding value when you run `make'.  *Note
+   * You can specify an overriding value when you run 'make'.  *Note
      Overriding Variables: Overriding.
 
    * You can specify a value in the makefile, either with an assignment
      (*note Setting Variables: Setting.) or with a verbatim definition
      (*note Defining Multi-Line Variables: Multi-Line.).
 
-   * Variables in the environment become `make' variables.  *Note
+   * Variables in the environment become 'make' variables.  *Note
      Variables from the Environment: Environment.
 
    * Several "automatic" variables are given new values for each rule.
@@ -4634,28 +4627,28 @@ File: make.info,  Node: Setting,  Next: Appending,  Prev: Values,  Up: Using Var
 =====================
 
 To set a variable from the makefile, write a line starting with the
-variable name followed by `=' `:=', or `::='.  Whatever follows the
-`=', `:=', or `::=' on the line becomes the value.  For example,
+variable name followed by '=' ':=', or '::='.  Whatever follows the '=',
+':=', or '::=' on the line becomes the value.  For example,
 
      objects = main.o foo.o bar.o utils.o
 
-defines a variable named `objects'.  Whitespace around the variable
-name and immediately after the `=' is ignored.
+defines a variable named 'objects'.  Whitespace around the variable name
+and immediately after the '=' is ignored.
 
-   Variables defined with `=' are "recursively expanded" variables.
-Variables defined with `:=' or `::=' are "simply expanded" variables;
-these definitions can contain variable references which will be
-expanded before the definition is made.  *Note The Two Flavors of
-Variables: Flavors.
+   Variables defined with '=' are "recursively expanded" variables.
+Variables defined with ':=' or '::=' are "simply expanded" variables;
+these definitions can contain variable references which will be expanded
+before the definition is made.  *Note The Two Flavors of Variables:
+Flavors.
 
    The variable name may contain function and variable references, which
 are expanded when the line is read to find the actual variable name to
 use.
 
    There is no limit on the length of the value of a variable except the
-amount of memory on the computer.  You can split the value of a
-variable into multiple physical lines for readability (*note Splitting
-Long Lines: Splitting Lines.).
+amount of memory on the computer.  You can split the value of a variable
+into multiple physical lines for readability (*note Splitting Long
+Lines: Splitting Lines.).
 
    Most variable names are considered to have the empty string as a
 value if you have never set them.  Several variables have built-in
@@ -4666,9 +4659,9 @@ rule; these are called the "automatic" variables (*note Automatic
 Variables::).
 
    If you'd like a variable to be set to a value only if it's not
-already set, then you can use the shorthand operator `?=' instead of
-`='.  These two settings of the variable `FOO' are identical (*note The
-`origin' Function: Origin Function.):
+already set, then you can use the shorthand operator '?=' instead of
+'='.  These two settings of the variable 'FOO' are identical (*note The
+'origin' Function: Origin Function.):
 
      FOO ?= bar
 
@@ -4678,23 +4671,23 @@ and
      FOO = bar
      endif
 
-   The shell assignment operator `!=' can be used to execute a program
+   The shell assignment operator '!=' can be used to execute a program
 and set a variable to its output.  This operator first evaluates the
-right-hand side, then passes that result to the shell for execution.
-If the result of the execution ends in a newline, that one newline is
+right-hand side, then passes that result to the shell for execution.  If
+the result of the execution ends in a newline, that one newline is
 removed; all other newlines are replaced by spaces.  The resulting
-string is then placed into the named recursively-expanded variable.
-For example:
+string is then placed into the named recursively-expanded variable.  For
+example:
 
      hash != printf '\043'
      file_list != find . -name '*.c'
 
-   If the result of the execution could produce a `$', and you don't
+   If the result of the execution could produce a '$', and you don't
 intend what follows that to be interpreted as a make variable or
-function reference, then you must replace every `$' with `$$' as part
-of the execution.  Alternatively, you can set a simply expanded
-variable to the result of running a program using the `shell' function
-call.  *Note The `shell' Function: Shell Function.  For example:
+function reference, then you must replace every '$' with '$$' as part of
+the execution.  Alternatively, you can set a simply expanded variable to
+the result of running a program using the 'shell' function call.  *Note
+The 'shell' Function: Shell Function.  For example:
 
      hash := $(shell printf '\043')
      var := $(shell find . -name "*.c")
@@ -4706,19 +4699,19 @@ File: make.info,  Node: Appending,  Next: Override Directive,  Prev: Setting,  U
 ====================================
 
 Often it is useful to add more text to the value of a variable already
-defined.  You do this with a line containing `+=', like this:
+defined.  You do this with a line containing '+=', like this:
 
      objects += another.o
 
-This takes the value of the variable `objects', and adds the text
-`another.o' to it (preceded by a single space).  Thus:
+This takes the value of the variable 'objects', and adds the text
+'another.o' to it (preceded by a single space).  Thus:
 
      objects = main.o foo.o bar.o utils.o
      objects += another.o
 
-sets `objects' to `main.o foo.o bar.o utils.o another.o'.
+sets 'objects' to 'main.o foo.o bar.o utils.o another.o'.
 
-   Using `+=' is similar to:
+   Using '+=' is similar to:
 
      objects = main.o foo.o bar.o utils.o
      objects := $(objects) another.o
@@ -4726,39 +4719,38 @@ sets `objects' to `main.o foo.o bar.o utils.o another.o'.
 but differs in ways that become important when you use more complex
 values.
 
-   When the variable in question has not been defined before, `+=' acts
-just like normal `=': it defines a recursively-expanded variable.
-However, when there _is_ a previous definition, exactly what `+=' does
+   When the variable in question has not been defined before, '+=' acts
+just like normal '=': it defines a recursively-expanded variable.
+However, when there _is_ a previous definition, exactly what '+=' does
 depends on what flavor of variable you defined originally.  *Note The
-Two Flavors of Variables: Flavors, for an explanation of the two
-flavors of variables.
+Two Flavors of Variables: Flavors, for an explanation of the two flavors
+of variables.
 
-   When you add to a variable's value with `+=', `make' acts
-essentially as if you had included the extra text in the initial
-definition of the variable.  If you defined it first with `:=' or
-`::=', making it a simply-expanded variable, `+=' adds to that
-simply-expanded definition, and expands the new text before appending
-it to the old value just as `:=' does (see *note Setting Variables:
-Setting, for a full explanation of `:=' or `::=').  In fact,
+   When you add to a variable's value with '+=', 'make' acts essentially
+as if you had included the extra text in the initial definition of the
+variable.  If you defined it first with ':=' or '::=', making it a
+simply-expanded variable, '+=' adds to that simply-expanded definition,
+and expands the new text before appending it to the old value just as
+':=' does (see *note Setting Variables: Setting, for a full explanation
+of ':=' or '::=').  In fact,
 
      variable := value
      variable += more
 
 is exactly equivalent to:
 
-
      variable := value
      variable := $(variable) more
 
-   On the other hand, when you use `+=' with a variable that you defined
-first to be recursively-expanded using plain `=', `make' does something
+   On the other hand, when you use '+=' with a variable that you defined
+first to be recursively-expanded using plain '=', 'make' does something
 a bit different.  Recall that when you define a recursively-expanded
-variable, `make' does not expand the value you set for variable and
+variable, 'make' does not expand the value you set for variable and
 function references immediately.  Instead it stores the text verbatim,
 and saves these variable and function references to be expanded later,
 when you refer to the new variable (*note The Two Flavors of Variables:
-Flavors.).  When you use `+=' on a recursively-expanded variable, it is
-this unexpanded text to which `make' appends the new text you specify.
+Flavors.).  When you use '+=' on a recursively-expanded variable, it is
+this unexpanded text to which 'make' appends the new text you specify.
 
      variable = value
      variable += more
@@ -4768,46 +4760,46 @@ is roughly equivalent to:
      temp = value
      variable = $(temp) more
 
-except that of course it never defines a variable called `temp'.  The
-importance of this comes when the variable's old value contains
-variable references.  Take this common example:
+except that of course it never defines a variable called 'temp'.  The
+importance of this comes when the variable's old value contains variable
+references.  Take this common example:
 
      CFLAGS = $(includes) -O
      ...
      CFLAGS += -pg # enable profiling
 
-The first line defines the `CFLAGS' variable with a reference to another
-variable, `includes'.  (`CFLAGS' is used by the rules for C
-compilation; *note Catalogue of Implicit Rules: Catalogue of Rules.)
-Using `=' for the definition makes `CFLAGS' a recursively-expanded
-variable, meaning `$(includes) -O' is _not_ expanded when `make'
-processes the definition of `CFLAGS'.  Thus, `includes' need not be
-defined yet for its value to take effect.  It only has to be defined
-before any reference to `CFLAGS'.  If we tried to append to the value
-of `CFLAGS' without using `+=', we might do it like this:
+The first line defines the 'CFLAGS' variable with a reference to another
+variable, 'includes'.  ('CFLAGS' is used by the rules for C compilation;
+*note Catalogue of Built-In Rules: Catalogue of Rules.)  Using '=' for
+the definition makes 'CFLAGS' a recursively-expanded variable, meaning '$(includes) -O'
+is _not_ expanded when 'make' processes the definition of 'CFLAGS'.
+Thus, 'includes' need not be defined yet for its value to take effect.
+It only has to be defined before any reference to 'CFLAGS'.  If we tried
+to append to the value of 'CFLAGS' without using '+=', we might do it
+like this:
 
      CFLAGS := $(CFLAGS) -pg # enable profiling
 
-This is pretty close, but not quite what we want.  Using `:=' redefines
-`CFLAGS' as a simply-expanded variable; this means `make' expands the
-text `$(CFLAGS) -pg' before setting the variable.  If `includes' is not
-yet defined, we get ` -O -pg', and a later definition of `includes'
-will have no effect.  Conversely, by using `+=' we set `CFLAGS' to the
-_unexpanded_ value `$(includes) -O -pg'.  Thus we preserve the
-reference to `includes', so if that variable gets defined at any later
-point, a reference like `$(CFLAGS)' still uses its value.
+This is pretty close, but not quite what we want.  Using ':=' redefines
+'CFLAGS' as a simply-expanded variable; this means 'make' expands the
+text '$(CFLAGS) -pg' before setting the variable.  If 'includes' is not
+yet defined, we get ' -O -pg', and a later definition of 'includes' will
+have no effect.  Conversely, by using '+=' we set 'CFLAGS' to the
+_unexpanded_ value '$(includes) -O -pg'.  Thus we preserve the reference
+to 'includes', so if that variable gets defined at any later point, a
+reference like '$(CFLAGS)' still uses its value.
 
 \1f
 File: make.info,  Node: Override Directive,  Next: Multi-Line,  Prev: Appending,  Up: Using Variables
 
-6.7 The `override' Directive
+6.7 The 'override' Directive
 ============================
 
 If a variable has been set with a command argument (*note Overriding
 Variables: Overriding.), then ordinary assignments in the makefile are
-ignored.  If you want to set the variable in the makefile even though
-it was set with a command argument, you can use an `override'
-directive, which is a line that looks like this:
+ignored.  If you want to set the variable in the makefile even though it
+was set with a command argument, you can use an 'override' directive,
+which is a line that looks like this:
 
      override VARIABLE = VALUE
 
@@ -4821,23 +4813,23 @@ or
 
 *Note Appending More Text to Variables: Appending.
 
-   Variable assignments marked with the `override' flag have a higher
-priority than all other assignments, except another `override'.
+   Variable assignments marked with the 'override' flag have a higher
+priority than all other assignments, except another 'override'.
 Subsequent assignments or appends to this variable which are not marked
-`override' will be ignored.
+'override' will be ignored.
 
-   The `override' directive was not invented for escalation in the war
+   The 'override' directive was not invented for escalation in the war
 between makefiles and command arguments.  It was invented so you can
 alter and add to values that the user specifies with command arguments.
 
-   For example, suppose you always want the `-g' switch when you run the
+   For example, suppose you always want the '-g' switch when you run the
 C compiler, but you would like to allow the user to specify the other
 switches with a command argument just as usual.  You could use this
-`override' directive:
+'override' directive:
 
      override CFLAGS += -g
 
-   You can also use `override' directives with `define' directives.
+   You can also use 'override' directives with 'define' directives.
 This is done as you might expect:
 
      override define foo =
@@ -4852,34 +4844,34 @@ File: make.info,  Node: Multi-Line,  Next: Undefine Directive,  Prev: Override D
 6.8 Defining Multi-Line Variables
 =================================
 
-Another way to set the value of a variable is to use the `define'
+Another way to set the value of a variable is to use the 'define'
 directive.  This directive has an unusual syntax which allows newline
-characters to be included in the value, which is convenient for
-defining both canned sequences of commands (*note Defining Canned
-Recipes: Canned Recipes.), and also sections of makefile syntax to use
-with `eval' (*note Eval Function::).
+characters to be included in the value, which is convenient for defining
+both canned sequences of commands (*note Defining Canned Recipes: Canned
+Recipes.), and also sections of makefile syntax to use with 'eval'
+(*note Eval Function::).
 
-   The `define' directive is followed on the same line by the name of
+   The 'define' directive is followed on the same line by the name of
 the variable being defined and an (optional) assignment operator, and
 nothing more.  The value to give the variable appears on the following
 lines.  The end of the value is marked by a line containing just the
-word `endef'.  Aside from this difference in syntax, `define' works
-just like any other variable definition.  The variable name may contain
+word 'endef'.  Aside from this difference in syntax, 'define' works just
+like any other variable definition.  The variable name may contain
 function and variable references, which are expanded when the directive
 is read to find the actual variable name to use.
 
    You may omit the variable assignment operator if you prefer.  If
-omitted, `make' assumes it to be `=' and creates a recursively-expanded
+omitted, 'make' assumes it to be '=' and creates a recursively-expanded
 variable (*note The Two Flavors of Variables: Flavors.).  When using a
-`+=' operator, the value is appended to the previous value as with any
+'+=' operator, the value is appended to the previous value as with any
 other append operation: with a single space separating the old and new
 values.
 
-   You may nest `define' directives: `make' will keep track of nested
+   You may nest 'define' directives: 'make' will keep track of nested
 directives and report an error if they are not all properly closed with
-`endef'.  Note that lines beginning with the recipe prefix character
-are considered part of a recipe, so any `define' or `endef' strings
-appearing on such a line will not be considered `make' directives.
+'endef'.  Note that lines beginning with the recipe prefix character are
+considered part of a recipe, so any 'define' or 'endef' strings
+appearing on such a line will not be considered 'make' directives.
 
      define two-lines =
      echo foo
@@ -4887,9 +4879,9 @@ appearing on such a line will not be considered `make' directives.
      endef
 
    The value in an ordinary assignment cannot contain a newline; but the
-newlines that separate the lines of the value in a `define' become part
-of the variable's value (except for the final newline which precedes
-the `endef' and is not considered part of the value).
+newlines that separate the lines of the value in a 'define' become part
+of the variable's value (except for the final newline which precedes the
+'endef' and is not considered part of the value).
 
    When used in a recipe, the previous example is functionally
 equivalent to this:
@@ -4898,19 +4890,19 @@ equivalent to this:
 
 since two commands separated by semicolon behave much like two separate
 shell commands.  However, note that using two separate lines means
-`make' will invoke the shell twice, running an independent sub-shell
-for each line.  *Note Recipe Execution: Execution.
+'make' will invoke the shell twice, running an independent sub-shell for
+each line.  *Note Recipe Execution: Execution.
 
-   If you want variable definitions made with `define' to take
+   If you want variable definitions made with 'define' to take
 precedence over command-line variable definitions, you can use the
-`override' directive together with `define':
+'override' directive together with 'define':
 
      override define two-lines =
      foo
      $(bar)
      endef
 
-*Note The `override' Directive: Override Directive.
+*Note The 'override' Directive: Override Directive.
 
 \1f
 File: make.info,  Node: Undefine Directive,  Next: Environment,  Prev: Multi-Line,  Up: Using Variables
@@ -4919,13 +4911,13 @@ File: make.info,  Node: Undefine Directive,  Next: Environment,  Prev: Multi-Lin
 ========================
 
 If you want to clear a variable, setting its value to empty is usually
-sufficient. Expanding such a variable will yield the same result (empty
-string) regardless of whether it was set or not. However, if you are
-using the `flavor' (*note Flavor Function::) and `origin' (*note Origin
-Function::) functions, there is a difference between a variable that
-was never set and a variable with an empty value.  In such situations
-you may want to use the `undefine' directive to make a variable appear
-as if it was never set. For example:
+sufficient.  Expanding such a variable will yield the same result (empty
+string) regardless of whether it was set or not.  However, if you are
+using the 'flavor' (*note Flavor Function::) and 'origin' (*note Origin
+Function::) functions, there is a difference between a variable that was
+never set and a variable with an empty value.  In such situations you
+may want to use the 'undefine' directive to make a variable appear as if
+it was never set.  For example:
 
      foo := foo
      bar = bar
@@ -4939,7 +4931,7 @@ as if it was never set. For example:
    This example will print "undefined" for both variables.
 
    If you want to undefine a command-line variable definition, you can
-use the `override' directive together with `undefine', similar to how
+use the 'override' directive together with 'undefine', similar to how
 this is done for variable definitions:
 
      override undefine CFLAGS
@@ -4950,41 +4942,41 @@ File: make.info,  Node: Environment,  Next: Target-specific,  Prev: Undefine Dir
 6.10 Variables from the Environment
 ===================================
 
-Variables in `make' can come from the environment in which `make' is
-run.  Every environment variable that `make' sees when it starts up is
-transformed into a `make' variable with the same name and value.
+Variables in 'make' can come from the environment in which 'make' is
+run.  Every environment variable that 'make' sees when it starts up is
+transformed into a 'make' variable with the same name and value.
 However, an explicit assignment in the makefile, or with a command
-argument, overrides the environment.  (If the `-e' flag is specified,
+argument, overrides the environment.  (If the '-e' flag is specified,
 then values from the environment override assignments in the makefile.
 *Note Summary of Options: Options Summary.  But this is not recommended
 practice.)
 
-   Thus, by setting the variable `CFLAGS' in your environment, you can
+   Thus, by setting the variable 'CFLAGS' in your environment, you can
 cause all C compilations in most makefiles to use the compiler switches
 you prefer.  This is safe for variables with standard or conventional
 meanings because you know that no makefile will use them for other
-things.  (Note this is not totally reliable; some makefiles set
-`CFLAGS' explicitly and therefore are not affected by the value in the
+things.  (Note this is not totally reliable; some makefiles set 'CFLAGS'
+explicitly and therefore are not affected by the value in the
 environment.)
 
-   When `make' runs a recipe, variables defined in the makefile are
+   When 'make' runs a recipe, variables defined in the makefile are
 placed into the environment of each shell.  This allows you to pass
-values to sub-`make' invocations (*note Recursive Use of `make':
+values to sub-'make' invocations (*note Recursive Use of 'make':
 Recursion.).  By default, only variables that came from the environment
 or the command line are passed to recursive invocations.  You can use
-the `export' directive to pass other variables.  *Note Communicating
-Variables to a Sub-`make': Variables/Recursion, for full details.
+the 'export' directive to pass other variables.  *Note Communicating
+Variables to a Sub-'make': Variables/Recursion, for full details.
 
    Other use of variables from the environment is not recommended.  It
-is not wise for makefiles to depend for their functioning on
-environment variables set up outside their control, since this would
-cause different users to get different results from the same makefile.
-This is against the whole purpose of most makefiles.
+is not wise for makefiles to depend for their functioning on environment
+variables set up outside their control, since this would cause different
+users to get different results from the same makefile.  This is against
+the whole purpose of most makefiles.
 
-   Such problems would be especially likely with the variable `SHELL',
+   Such problems would be especially likely with the variable 'SHELL',
 which is normally present in the environment to specify the user's
 choice of interactive shell.  It would be very undesirable for this
-choice to affect `make'; so, `make' handles the `SHELL' environment
+choice to affect 'make'; so, 'make' handles the 'SHELL' environment
 variable in a special way; see *note Choosing the Shell::.
 
 \1f
@@ -4993,14 +4985,14 @@ File: make.info,  Node: Target-specific,  Next: Pattern-specific,  Prev: Environ
 6.11 Target-specific Variable Values
 ====================================
 
-Variable values in `make' are usually global; that is, they are the
-same regardless of where they are evaluated (unless they're reset, of
+Variable values in 'make' are usually global; that is, they are the same
+regardless of where they are evaluated (unless they're reset, of
 course).  One exception to that is automatic variables (*note Automatic
 Variables::).
 
    The other exception is "target-specific variable values".  This
 feature allows you to define different values for the same variable,
-based on the target that `make' is currently building.  As with
+based on the target that 'make' is currently building.  As with
 automatic variables, these values are only available within the context
 of a target's recipe (and in other target-specific assignments).
 
@@ -5009,15 +5001,15 @@ of a target's recipe (and in other target-specific assignments).
      TARGET ... : VARIABLE-ASSIGNMENT
 
    Target-specific variable assignments can be prefixed with any or all
-of the special keywords `export', `override', or `private'; these apply
+of the special keywords 'export', 'override', or 'private'; these apply
 their normal behavior to this instance of the variable only.
 
    Multiple TARGET values create a target-specific variable value for
 each member of the target list individually.
 
    The VARIABLE-ASSIGNMENT can be any valid form of assignment;
-recursive (`='), simple (`:=' or `::='), appending (`+='), or
-conditional (`?=').  All variables that appear within the
+recursive ('='), simple (':=' or '::='), appending ('+='), or
+conditional ('?=').  All variables that appear within the
 VARIABLE-ASSIGNMENT are evaluated within the context of the target:
 thus, any previously-defined target-specific variable values will be in
 effect.  Note that this variable is actually distinct from any "global"
@@ -5026,8 +5018,8 @@ vs. simple).
 
    Target-specific variables have the same priority as any other
 makefile variable.  Variables provided on the command line (and in the
-environment if the `-e' option is in force) will take precedence.
-Specifying the `override' directive will allow the target-specific
+environment if the '-e' option is in force) will take precedence.
+Specifying the 'override' directive will allow the target-specific
 variable value to be preferred.
 
    There is one more special feature of target-specific variables: when
@@ -5040,17 +5032,17 @@ statement like this:
      prog : CFLAGS = -g
      prog : prog.o foo.o bar.o
 
-will set `CFLAGS' to `-g' in the recipe for `prog', but it will also
-set `CFLAGS' to `-g' in the recipes that create `prog.o', `foo.o', and
-`bar.o', and any recipes which create their prerequisites.
+will set 'CFLAGS' to '-g' in the recipe for 'prog', but it will also set
+'CFLAGS' to '-g' in the recipes that create 'prog.o', 'foo.o', and
+'bar.o', and any recipes which create their prerequisites.
 
    Be aware that a given prerequisite will only be built once per
 invocation of make, at most.  If the same file is a prerequisite of
 multiple targets, and each of those targets has a different value for
 the same target-specific variable, then the first target to be built
 will cause that prerequisite to be built and the prerequisite will
-inherit the target-specific value from the first target.  It will
-ignore the target-specific values from any other targets.
+inherit the target-specific value from the first target.  It will ignore
+the target-specific values from any other targets.
 
 \1f
 File: make.info,  Node: Pattern-specific,  Next: Suppressing Inheritance,  Prev: Target-specific,  Up: Using Variables
@@ -5059,25 +5051,25 @@ File: make.info,  Node: Pattern-specific,  Next: Suppressing Inheritance,  Prev:
 =====================================
 
 In addition to target-specific variable values (*note Target-specific
-Variable Values: Target-specific.), GNU `make' supports
-pattern-specific variable values.  In this form, the variable is
-defined for any target that matches the pattern specified.
+Variable Values: Target-specific.), GNU 'make' supports pattern-specific
+variable values.  In this form, the variable is defined for any target
+that matches the pattern specified.
 
    Set a pattern-specific variable value like this:
 
      PATTERN ... : VARIABLE-ASSIGNMENT
    where PATTERN is a %-pattern.  As with target-specific variable
-values, multiple PATTERN values create a pattern-specific variable
-value for each pattern individually.  The VARIABLE-ASSIGNMENT can be
-any valid form of assignment.  Any command line variable setting will
-take precedence, unless `override' is specified.
+values, multiple PATTERN values create a pattern-specific variable value
+for each pattern individually.  The VARIABLE-ASSIGNMENT can be any valid
+form of assignment.  Any command line variable setting will take
+precedence, unless 'override' is specified.
 
    For example:
 
      %.o : CFLAGS = -O
 
-will assign `CFLAGS' the value of `-O' for all targets matching the
-pattern `%.o'.
+will assign 'CFLAGS' the value of '-O' for all targets matching the
+pattern '%.o'.
 
    If a target matches more than one pattern, the matching
 pattern-specific variables with longer stems are interpreted first.
@@ -5092,11 +5084,11 @@ generic ones, for example:
 
      all: foo.o lib/bar.o
 
-   In this example the first definition of the `CFLAGS' variable will
-be used to update `lib/bar.o' even though the second one also applies
-to this target. Pattern-specific variables which result in the same
-stem length are considered in the order in which they were defined in
-the makefile.
+   In this example the first definition of the 'CFLAGS' variable will be
+used to update 'lib/bar.o' even though the second one also applies to
+this target.  Pattern-specific variables which result in the same stem
+length are considered in the order in which they were defined in the
+makefile.
 
    Pattern-specific variables are searched after any target-specific
 variables defined explicitly for that target, and before target-specific
@@ -5108,22 +5100,22 @@ File: make.info,  Node: Suppressing Inheritance,  Next: Special Variables,  Prev
 6.13 Suppressing Inheritance
 ============================
 
-As described in previous sections, `make' variables are inherited by
+As described in previous sections, 'make' variables are inherited by
 prerequisites.  This capability allows you to modify the behavior of a
 prerequisite based on which targets caused it to be rebuilt.  For
-example, you might set a target-specific variable on a `debug' target,
-then running `make debug' will cause that variable to be inherited by
-all prerequisites of `debug', while just running `make all' (for
+example, you might set a target-specific variable on a 'debug' target,
+then running 'make debug' will cause that variable to be inherited by
+all prerequisites of 'debug', while just running 'make all' (for
 example) would not have that assignment.
 
    Sometimes, however, you may not want a variable to be inherited.  For
-these situations, `make' provides the `private' modifier.  Although
-this modifier can be used with any variable assignment, it makes the
-most sense with target- and pattern-specific variables.  Any variable
-marked `private' will be visible to its local target but will not be
-inherited by prerequisites of that target.  A global variable marked
-`private' will be visible in the global scope but will not be inherited
-by any target, and hence will not be visible in any recipe.
+these situations, 'make' provides the 'private' modifier.  Although this
+modifier can be used with any variable assignment, it makes the most
+sense with target- and pattern-specific variables.  Any variable marked
+'private' will be visible to its local target but will not be inherited
+by prerequisites of that target.  A global variable marked 'private'
+will be visible in the global scope but will not be inherited by any
+target, and hence will not be visible in any recipe.
 
    As an example, consider this makefile:
      EXTRA_CFLAGS =
@@ -5131,8 +5123,8 @@ by any target, and hence will not be visible in any recipe.
      prog: private EXTRA_CFLAGS = -L/usr/local/lib
      prog: a.o b.o
 
-   Due to the `private' modifier, `a.o' and `b.o' will not inherit the
-`EXTRA_CFLAGS' variable assignment from the `prog' target.
+   Due to the 'private' modifier, 'a.o' and 'b.o' will not inherit the
+'EXTRA_CFLAGS' variable assignment from the 'prog' target.
 
 \1f
 File: make.info,  Node: Special Variables,  Prev: Suppressing Inheritance,  Up: Using Variables
@@ -5140,18 +5132,18 @@ File: make.info,  Node: Special Variables,  Prev: Suppressing Inheritance,  Up:
 6.14 Other Special Variables
 ============================
 
-GNU `make' supports some variables that have special properties.
+GNU 'make' supports some variables that have special properties.
 
-`MAKEFILE_LIST'
-     Contains the name of each makefile that is parsed by `make', in
-     the order in which it was parsed.  The name is appended just
-     before `make' begins to parse the makefile.  Thus, if the first
-     thing a makefile does is examine the last word in this variable, it
-     will be the name of the current makefile.  Once the current
-     makefile has used `include', however, the last word will be the
-     just-included makefile.
+'MAKEFILE_LIST'
+     Contains the name of each makefile that is parsed by 'make', in the
+     order in which it was parsed.  The name is appended just before
+     'make' begins to parse the makefile.  Thus, if the first thing a
+     makefile does is examine the last word in this variable, it will be
+     the name of the current makefile.  Once the current makefile has
+     used 'include', however, the last word will be the just-included
+     makefile.
 
-     If a makefile named `Makefile' has this content:
+     If a makefile named 'Makefile' has this content:
 
           name1 := $(lastword $(MAKEFILE_LIST))
 
@@ -5168,10 +5160,10 @@ GNU `make' supports some variables that have special properties.
           name1 = Makefile
           name2 = inc.mk
 
-`.DEFAULT_GOAL'
+'.DEFAULT_GOAL'
      Sets the default goal to be used if no targets were specified on
      the command line (*note Arguments to Specify the Goals: Goals.).
-     The `.DEFAULT_GOAL' variable allows you to discover the current
+     The '.DEFAULT_GOAL' variable allows you to discover the current
      default goal, restart the default goal selection algorithm by
      clearing its value, or to explicitly set the default goal.  The
      following example illustrates these cases:
@@ -5204,17 +5196,36 @@ GNU `make' supports some variables that have special properties.
           default goal is bar
           foo
 
-     Note that assigning more than one target name to `.DEFAULT_GOAL' is
+     Note that assigning more than one target name to '.DEFAULT_GOAL' is
      invalid and will result in an error.
 
-`MAKE_RESTARTS'
-     This variable is set only if this instance of `make' has restarted
+'MAKE_RESTARTS'
+     This variable is set only if this instance of 'make' has restarted
      (*note How Makefiles Are Remade: Remaking Makefiles.): it will
-     contain the number of times this instance has restarted.  Note
-     this is not the same as recursion (counted by the `MAKELEVEL'
-     variable).  You should not set, modify, or export this variable.
-
-`.RECIPEPREFIX'
+     contain the number of times this instance has restarted.  Note this
+     is not the same as recursion (counted by the 'MAKELEVEL' variable).
+     You should not set, modify, or export this variable.
+
+'MAKE_TERMOUT'
+'MAKE_TERMERR'
+     When 'make' starts it will check whether stdout and stderr will
+     show their output on a terminal.  If so, it will set 'MAKE_TERMOUT'
+     and 'MAKE_TERMERR', respectively, to the name of the terminal
+     device (or 'true' if this cannot be determined).  If set these
+     variables will be marked for export.  These variables will not be
+     changed by 'make' and they will not be modified if already set.
+
+     These values can be used (particularly in combination with output
+     synchronization (*note Output During Parallel Execution: Parallel
+     Output.) to determine whether 'make' itself is writing to a
+     terminal; they can be tested to decide whether to force recipe
+     commands to generate colorized output for example.
+
+     If you invoke a sub-'make' and redirect its stdout or stderr it is
+     your responsibility to reset or unexport these variables as well,
+     if your makefiles rely on them.
+
+'.RECIPEPREFIX'
      The first character of the value of this variable is used as the
      character make assumes is introducing a recipe line.  If the
      variable is empty (as it is by default) that character is the
@@ -5224,76 +5235,75 @@ GNU `make' supports some variables that have special properties.
           all:
           > @echo Hello, world
 
-     The value of `.RECIPEPREFIX' can be changed multiple times; once
+     The value of '.RECIPEPREFIX' can be changed multiple times; once
      set it stays in effect for all rules parsed until it is modified.
 
-`.VARIABLES'
-     Expands to a list of the _names_ of all global variables defined
-     so far.  This includes variables which have empty values, as well
-     as built-in variables (*note Variables Used by Implicit Rules:
+'.VARIABLES'
+     Expands to a list of the _names_ of all global variables defined so
+     far.  This includes variables which have empty values, as well as
+     built-in variables (*note Variables Used by Implicit Rules:
      Implicit Variables.), but does not include any variables which are
-     only defined in a target-specific context.  Note that any value
-     you assign to this variable will be ignored; it will always return
-     its special value.
+     only defined in a target-specific context.  Note that any value you
+     assign to this variable will be ignored; it will always return its
+     special value.
 
-`.FEATURES'
+'.FEATURES'
      Expands to a list of special features supported by this version of
-     `make'.  Possible values include, but are not limited to:
+     'make'.  Possible values include, but are not limited to:
 
-    `archives'
-          Supports `ar' (archive) files using special file name syntax.
-          *Note Using `make' to Update Archive Files: Archives.
+     'archives'
+          Supports 'ar' (archive) files using special file name syntax.
+          *Note Using 'make' to Update Archive Files: Archives.
 
-    `check-symlink'
-          Supports the `-L' (`--check-symlink-times') flag.  *Note
+     'check-symlink'
+          Supports the '-L' ('--check-symlink-times') flag.  *Note
           Summary of Options: Options Summary.
 
-    `else-if'
+     'else-if'
           Supports "else if" non-nested conditionals.  *Note Syntax of
           Conditionals: Conditional Syntax.
 
-    `jobserver'
+     'jobserver'
           Supports "job server" enhanced parallel builds.  *Note
           Parallel Execution: Parallel.
 
-    `oneshell'
-          Supports the `.ONESHELL' special target.  *Note Using One
+     'oneshell'
+          Supports the '.ONESHELL' special target.  *Note Using One
           Shell: One Shell.
 
-    `order-only'
+     'order-only'
           Supports order-only prerequisites.  *Note Types of
           Prerequisites: Prerequisite Types.
 
-    `second-expansion'
+     'second-expansion'
           Supports secondary expansion of prerequisite lists.
 
-    `shortest-stem'
+     'shortest-stem'
           Uses the "shortest stem" method of choosing which pattern, of
-          multiple applicable options, will be used.  *Note How
-          Patterns Match: Pattern Match.
+          multiple applicable options, will be used.  *Note How Patterns
+          Match: Pattern Match.
 
-    `target-specific'
+     'target-specific'
           Supports target-specific and pattern-specific variable
           assignments.  *Note Target-specific Variable Values:
           Target-specific.
 
-    `undefine'
-          Supports the `undefine' directive.  *Note Undefine
+     'undefine'
+          Supports the 'undefine' directive.  *Note Undefine
           Directive::.
 
-    `guile'
+     'guile'
           Has GNU Guile available as an embedded extension language.
           *Note GNU Guile Integration: Guile Integration.
 
-    `load'
+     'load'
           Supports dynamically loadable objects for creating custom
           extensions.  *Note Loading Dynamic Objects: Loading Objects.
 
-`.INCLUDE_DIRS'
-     Expands to a list of directories that `make' searches for included
+'.INCLUDE_DIRS'
+     Expands to a list of directories that 'make' searches for included
      makefiles (*note Including Other Makefiles: Include.).
 
-
 \1f
 File: make.info,  Node: Conditionals,  Next: Functions,  Prev: Using Variables,  Up: Top
 
@@ -5303,9 +5313,9 @@ File: make.info,  Node: Conditionals,  Next: Functions,  Prev: Using Variables,
 A "conditional" directive causes part of a makefile to be obeyed or
 ignored depending on the values of variables.  Conditionals can compare
 the value of one variable to another, or the value of a variable to a
-constant string.  Conditionals control what `make' actually "sees" in
-the makefile, so they _cannot_ be used to control recipes at the time
-of execution.
+constant string.  Conditionals control what 'make' actually "sees" in
+the makefile, so they _cannot_ be used to control recipes at the time of
+execution.
 
 * Menu:
 
@@ -5319,11 +5329,11 @@ File: make.info,  Node: Conditional Example,  Next: Conditional Syntax,  Prev: C
 7.1 Example of a Conditional
 ============================
 
-The following example of a conditional tells `make' to use one set of
-libraries if the `CC' variable is `gcc', and a different set of
+The following example of a conditional tells 'make' to use one set of
+libraries if the 'CC' variable is 'gcc', and a different set of
 libraries otherwise.  It works by controlling which of two recipe lines
-will be used for the rule.  The result is that `CC=gcc' as an argument
-to `make' changes not only which compiler is used but also which
+will be used for the rule.  The result is that 'CC=gcc' as an argument
+to 'make' changes not only which compiler is used but also which
 libraries are linked.
 
      libs_for_gcc = -lgnu
@@ -5336,45 +5346,44 @@ libraries are linked.
              $(CC) -o foo $(objects) $(normal_libs)
      endif
 
-   This conditional uses three directives: one `ifeq', one `else' and
-one `endif'.
+   This conditional uses three directives: one 'ifeq', one 'else' and
+one 'endif'.
 
-   The `ifeq' directive begins the conditional, and specifies the
+   The 'ifeq' directive begins the conditional, and specifies the
 condition.  It contains two arguments, separated by a comma and
 surrounded by parentheses.  Variable substitution is performed on both
 arguments and then they are compared.  The lines of the makefile
-following the `ifeq' are obeyed if the two arguments match; otherwise
+following the 'ifeq' are obeyed if the two arguments match; otherwise
 they are ignored.
 
-   The `else' directive causes the following lines to be obeyed if the
+   The 'else' directive causes the following lines to be obeyed if the
 previous conditional failed.  In the example above, this means that the
 second alternative linking command is used whenever the first
-alternative is not used.  It is optional to have an `else' in a
+alternative is not used.  It is optional to have an 'else' in a
 conditional.
 
-   The `endif' directive ends the conditional.  Every conditional must
-end with an `endif'.  Unconditional makefile text follows.
+   The 'endif' directive ends the conditional.  Every conditional must
+end with an 'endif'.  Unconditional makefile text follows.
 
    As this example illustrates, conditionals work at the textual level:
 the lines of the conditional are treated as part of the makefile, or
 ignored, according to the condition.  This is why the larger syntactic
-units of the makefile, such as rules, may cross the beginning or the
-end of the conditional.
+units of the makefile, such as rules, may cross the beginning or the end
+of the conditional.
 
-   When the variable `CC' has the value `gcc', the above example has
+   When the variable 'CC' has the value 'gcc', the above example has
 this effect:
 
      foo: $(objects)
              $(CC) -o foo $(objects) $(libs_for_gcc)
 
-When the variable `CC' has any other value, the effect is this:
+When the variable 'CC' has any other value, the effect is this:
 
      foo: $(objects)
              $(CC) -o foo $(objects) $(normal_libs)
 
-   Equivalent results can be obtained in another way by
-conditionalizing a variable assignment and then using the variable
-unconditionally:
+   Equivalent results can be obtained in another way by conditionalizing
+a variable assignment and then using the variable unconditionally:
 
      libs_for_gcc = -lgnu
      normal_libs =
@@ -5394,7 +5403,7 @@ File: make.info,  Node: Conditional Syntax,  Next: Testing Flags,  Prev: Conditi
 7.2 Syntax of Conditionals
 ==========================
 
-The syntax of a simple conditional with no `else' is as follows:
+The syntax of a simple conditional with no 'else' is as follows:
 
      CONDITIONAL-DIRECTIVE
      TEXT-IF-TRUE
@@ -5422,58 +5431,57 @@ text is used instead.
      TEXT-IF-ONE-AND-TWO-ARE-FALSE
      endif
 
-There can be as many "`else' CONDITIONAL-DIRECTIVE" clauses as
+There can be as many "'else' CONDITIONAL-DIRECTIVE" clauses as
 necessary.  Once a given condition is true, TEXT-IF-TRUE is used and no
 other clause is used; if no condition is true then TEXT-IF-FALSE is
 used.  The TEXT-IF-TRUE and TEXT-IF-FALSE can be any number of lines of
 text.
 
    The syntax of the CONDITIONAL-DIRECTIVE is the same whether the
-conditional is simple or complex; after an `else' or not.  There are
+conditional is simple or complex; after an 'else' or not.  There are
 four different directives that test different conditions.  Here is a
 table of them:
 
-`ifeq (ARG1, ARG2)'
-`ifeq 'ARG1' 'ARG2''
-`ifeq "ARG1" "ARG2"'
-`ifeq "ARG1" 'ARG2''
-`ifeq 'ARG1' "ARG2"'
+'ifeq (ARG1, ARG2)'
+'ifeq 'ARG1' 'ARG2''
+'ifeq "ARG1" "ARG2"'
+'ifeq "ARG1" 'ARG2''
+'ifeq 'ARG1' "ARG2"'
      Expand all variable references in ARG1 and ARG2 and compare them.
      If they are identical, the TEXT-IF-TRUE is effective; otherwise,
      the TEXT-IF-FALSE, if any, is effective.
 
      Often you want to test if a variable has a non-empty value.  When
      the value results from complex expansions of variables and
-     functions, expansions you would consider empty may actually
-     contain whitespace characters and thus are not seen as empty.
-     However, you can use the `strip' function (*note Text Functions::)
-     to avoid interpreting whitespace as a non-empty value.  For
-     example:
+     functions, expansions you would consider empty may actually contain
+     whitespace characters and thus are not seen as empty.  However, you
+     can use the 'strip' function (*note Text Functions::) to avoid
+     interpreting whitespace as a non-empty value.  For example:
 
           ifeq ($(strip $(foo)),)
           TEXT-IF-EMPTY
           endif
 
-     will evaluate TEXT-IF-EMPTY even if the expansion of `$(foo)'
+     will evaluate TEXT-IF-EMPTY even if the expansion of '$(foo)'
      contains whitespace characters.
 
-`ifneq (ARG1, ARG2)'
-`ifneq 'ARG1' 'ARG2''
-`ifneq "ARG1" "ARG2"'
-`ifneq "ARG1" 'ARG2''
-`ifneq 'ARG1' "ARG2"'
+'ifneq (ARG1, ARG2)'
+'ifneq 'ARG1' 'ARG2''
+'ifneq "ARG1" "ARG2"'
+'ifneq "ARG1" 'ARG2''
+'ifneq 'ARG1' "ARG2"'
      Expand all variable references in ARG1 and ARG2 and compare them.
      If they are different, the TEXT-IF-TRUE is effective; otherwise,
      the TEXT-IF-FALSE, if any, is effective.
 
-`ifdef VARIABLE-NAME'
-     The `ifdef' form takes the _name_ of a variable as its argument,
+'ifdef VARIABLE-NAME'
+     The 'ifdef' form takes the _name_ of a variable as its argument,
      not a reference to a variable.  The value of that variable has a
      non-empty value, the TEXT-IF-TRUE is effective; otherwise, the
      TEXT-IF-FALSE, if any, is effective.  Variables that have never
      been defined have an empty value.  The text VARIABLE-NAME is
-     expanded, so it could be a variable or function that expands to
-     the name of a variable.  For example:
+     expanded, so it could be a variable or function that expands to the
+     name of a variable.  For example:
 
           bar = true
           foo = bar
@@ -5481,16 +5489,16 @@ table of them:
           frobozz = yes
           endif
 
-     The variable reference `$(foo)' is expanded, yielding `bar', which
-     is considered to be the name of a variable.  The variable `bar' is
+     The variable reference '$(foo)' is expanded, yielding 'bar', which
+     is considered to be the name of a variable.  The variable 'bar' is
      not expanded, but its value is examined to determine if it is
      non-empty.
 
-     Note that `ifdef' only tests whether a variable has a value.  It
+     Note that 'ifdef' only tests whether a variable has a value.  It
      does not expand the variable to see if that value is nonempty.
-     Consequently, tests using `ifdef' return true for all definitions
-     except those like `foo ='.  To test for an empty value, use
-     `ifeq ($(foo),)'.  For example,
+     Consequently, tests using 'ifdef' return true for all definitions
+     except those like 'foo ='.  To test for an empty value, use
+     'ifeq ($(foo),)'.  For example,
 
           bar =
           foo = $(bar)
@@ -5500,7 +5508,7 @@ table of them:
           frobozz = no
           endif
 
-     sets `frobozz' to `yes', while:
+     sets 'frobozz' to 'yes', while:
 
           foo =
           ifdef foo
@@ -5509,42 +5517,42 @@ table of them:
           frobozz = no
           endif
 
-     sets `frobozz' to `no'.
+     sets 'frobozz' to 'no'.
 
-`ifndef VARIABLE-NAME'
+'ifndef VARIABLE-NAME'
      If the variable VARIABLE-NAME has an empty value, the TEXT-IF-TRUE
      is effective; otherwise, the TEXT-IF-FALSE, if any, is effective.
      The rules for expansion and testing of VARIABLE-NAME are identical
-     to the `ifdef' directive.
+     to the 'ifdef' directive.
 
    Extra spaces are allowed and ignored at the beginning of the
 conditional directive line, but a tab is not allowed.  (If the line
 begins with a tab, it will be considered part of a recipe for a rule.)
 Aside from this, extra spaces or tabs may be inserted with no effect
 anywhere except within the directive name or within an argument.  A
-comment starting with `#' may appear at the end of the line.
+comment starting with '#' may appear at the end of the line.
 
-   The other two directives that play a part in a conditional are `else'
-and `endif'.  Each of these directives is written as one word, with no
+   The other two directives that play a part in a conditional are 'else'
+and 'endif'.  Each of these directives is written as one word, with no
 arguments.  Extra spaces are allowed and ignored at the beginning of the
-line, and spaces or tabs at the end.  A comment starting with `#' may
+line, and spaces or tabs at the end.  A comment starting with '#' may
 appear at the end of the line.
 
-   Conditionals affect which lines of the makefile `make' uses.  If the
-condition is true, `make' reads the lines of the TEXT-IF-TRUE as part
-of the makefile; if the condition is false, `make' ignores those lines
+   Conditionals affect which lines of the makefile 'make' uses.  If the
+condition is true, 'make' reads the lines of the TEXT-IF-TRUE as part of
+the makefile; if the condition is false, 'make' ignores those lines
 completely.  It follows that syntactic units of the makefile, such as
 rules, may safely be split across the beginning or the end of the
 conditional.
 
-   `make' evaluates conditionals when it reads a makefile.
+   'make' evaluates conditionals when it reads a makefile.
 Consequently, you cannot use automatic variables in the tests of
 conditionals because they are not defined until recipes are run (*note
 Automatic Variables::).
 
    To prevent intolerable confusion, it is not permitted to start a
 conditional in one makefile and end it in another.  However, you may
-write an `include' directive within a conditional, provided you do not
+write an 'include' directive within a conditional, provided you do not
 attempt to terminate the conditional inside the included file.
 
 \1f
@@ -5553,17 +5561,17 @@ File: make.info,  Node: Testing Flags,  Prev: Conditional Syntax,  Up: Condition
 7.3 Conditionals that Test Flags
 ================================
 
-You can write a conditional that tests `make' command flags such as
-`-t' by using the variable `MAKEFLAGS' together with the `findstring'
+You can write a conditional that tests 'make' command flags such as '-t'
+by using the variable 'MAKEFLAGS' together with the 'findstring'
 function (*note Functions for String Substitution and Analysis: Text
-Functions.).  This is useful when `touch' is not enough to make a file
+Functions.).  This is useful when 'touch' is not enough to make a file
 appear up to date.
 
-   The `findstring' function determines whether one string appears as a
-substring of another.  If you want to test for the `-t' flag, use `t'
-as the first string and the value of `MAKEFLAGS' as the other.
+   The 'findstring' function determines whether one string appears as a
+substring of another.  If you want to test for the '-t' flag, use 't' as
+the first string and the value of 'MAKEFLAGS' as the other.
 
-   For example, here is how to arrange to use `ranlib -t' to finish
+   For example, here is how to arrange to use 'ranlib -t' to finish
 marking an archive file up to date:
 
      archive.a: ...
@@ -5574,9 +5582,9 @@ marking an archive file up to date:
              ranlib archive.a
      endif
 
-The `+' prefix marks those recipe lines as "recursive" so that they
-will be executed despite use of the `-t' flag.  *Note Recursive Use of
-`make': Recursion.
+The '+' prefix marks those recipe lines as "recursive" so that they will
+be executed despite use of the '-t' flag.  *Note Recursive Use of
+'make': Recursion.
 
 \1f
 File: make.info,  Node: Functions,  Next: Running,  Prev: Conditionals,  Up: Top
@@ -5615,8 +5623,8 @@ File: make.info,  Node: Syntax of Functions,  Next: Text Functions,  Prev: Funct
 ========================
 
 A function call resembles a variable reference.  It can appear anywhere
-a variable reference can appear, and it is expanded using the same
-rules as variable references.  A function call looks like this:
+a variable reference can appear, and it is expanded using the same rules
+as variable references.  A function call looks like this:
 
      $(FUNCTION ARGUMENTS)
 
@@ -5625,8 +5633,8 @@ or like this:
      ${FUNCTION ARGUMENTS}
 
    Here FUNCTION is a function name; one of a short list of names that
-are part of `make'.  You can also essentially create your own functions
-by using the `call' built-in function.
+are part of 'make'.  You can also essentially create your own functions
+by using the 'call' built-in function.
 
    The ARGUMENTS are the arguments of the function.  They are separated
 from the function name by one or more spaces or tabs, and if there is
@@ -5637,32 +5645,31 @@ parentheses or braces, can appear in an argument only in matching pairs;
 the other kind of delimiters may appear singly.  If the arguments
 themselves contain other function calls or variable references, it is
 wisest to use the same kind of delimiters for all the references; write
-`$(subst a,b,$(x))', not `$(subst a,b,${x})'.  This is because it is
+'$(subst a,b,$(x))', not '$(subst a,b,${x})'.  This is because it is
 clearer, and because only one type of delimiter is matched to find the
 end of the reference.
 
    The text written for each argument is processed by substitution of
-variables and function calls to produce the argument value, which is
-the text on which the function acts.  The substitution is done in the
-order in which the arguments appear.
+variables and function calls to produce the argument value, which is the
+text on which the function acts.  The substitution is done in the order
+in which the arguments appear.
 
    Commas and unmatched parentheses or braces cannot appear in the text
 of an argument as written; leading spaces cannot appear in the text of
 the first argument as written.  These characters can be put into the
-argument value by variable substitution.  First define variables
-`comma' and `space' whose values are isolated comma and space
-characters, then substitute these variables where such characters are
-wanted, like this:
+argument value by variable substitution.  First define variables 'comma'
+and 'space' whose values are isolated comma and space characters, then
+substitute these variables where such characters are wanted, like this:
 
      comma:= ,
      empty:=
      space:= $(empty) $(empty)
      foo:= a b c
      bar:= $(subst $(space),$(comma),$(foo))
-     # bar is now `a,b,c'.
+     # bar is now 'a,b,c'.
 
-Here the `subst' function replaces each space with a comma, through the
-value of `foo', and substitutes the result.
+Here the 'subst' function replaces each space with a comma, through the
+value of 'foo', and substitutes the result.
 
 \1f
 File: make.info,  Node: Text Functions,  Next: File Name Functions,  Prev: Syntax of Functions,  Up: Functions
@@ -5672,34 +5679,34 @@ File: make.info,  Node: Text Functions,  Next: File Name Functions,  Prev: Synta
 
 Here are some functions that operate on strings:
 
-`$(subst FROM,TO,TEXT)'
-     Performs a textual replacement on the text TEXT: each occurrence
-     of FROM is replaced by TO.  The result is substituted for the
-     function call.  For example,
+'$(subst FROM,TO,TEXT)'
+     Performs a textual replacement on the text TEXT: each occurrence of
+     FROM is replaced by TO.  The result is substituted for the function
+     call.  For example,
 
           $(subst ee,EE,feet on the street)
 
-     substitutes the string `fEEt on the strEEt'.
+     substitutes the string 'fEEt on the strEEt'.
 
-`$(patsubst PATTERN,REPLACEMENT,TEXT)'
+'$(patsubst PATTERN,REPLACEMENT,TEXT)'
      Finds whitespace-separated words in TEXT that match PATTERN and
-     replaces them with REPLACEMENT.  Here PATTERN may contain a `%'
+     replaces them with REPLACEMENT.  Here PATTERN may contain a '%'
      which acts as a wildcard, matching any number of any characters
-     within a word.  If REPLACEMENT also contains a `%', the `%' is
-     replaced by the text that matched the `%' in PATTERN.  Only the
-     first `%' in the PATTERN and REPLACEMENT is treated this way; any
-     subsequent `%' is unchanged.
-
-     `%' characters in `patsubst' function invocations can be quoted
-     with preceding backslashes (`\').  Backslashes that would
-     otherwise quote `%' characters can be quoted with more backslashes.
-     Backslashes that quote `%' characters or other backslashes are
+     within a word.  If REPLACEMENT also contains a '%', the '%' is
+     replaced by the text that matched the '%' in PATTERN.  Only the
+     first '%' in the PATTERN and REPLACEMENT is treated this way; any
+     subsequent '%' is unchanged.
+
+     '%' characters in 'patsubst' function invocations can be quoted
+     with preceding backslashes ('\').  Backslashes that would otherwise
+     quote '%' characters can be quoted with more backslashes.
+     Backslashes that quote '%' characters or other backslashes are
      removed from the pattern before it is compared file names or has a
      stem substituted into it.  Backslashes that are not in danger of
-     quoting `%' characters go unmolested.  For example, the pattern
-     `the\%weird\\%pattern\\' has `the%weird\' preceding the operative
-     `%' character, and `pattern\\' following it.  The final two
-     backslashes are left alone because they cannot affect any `%'
+     quoting '%' characters go unmolested.  For example, the pattern
+     'the\%weird\\%pattern\\' has 'the%weird\' preceding the operative
+     '%' character, and 'pattern\\' following it.  The final two
+     backslashes are left alone because they cannot affect any '%'
      character.
 
      Whitespace between words is folded into single space characters;
@@ -5709,11 +5716,11 @@ Here are some functions that operate on strings:
 
           $(patsubst %.c,%.o,x.c.c bar.c)
 
-     produces the value `x.c.o bar.o'.
+     produces the value 'x.c.o bar.o'.
 
      Substitution references (*note Substitution References:
      Substitution Refs.) are a simpler way to get the effect of the
-     `patsubst' function:
+     'patsubst' function:
 
           $(VAR:PATTERN=REPLACEMENT)
 
@@ -5722,7 +5729,7 @@ Here are some functions that operate on strings:
           $(patsubst PATTERN,REPLACEMENT,$(VAR))
 
      The second shorthand simplifies one of the most common uses of
-     `patsubst': replacing the suffix at the end of file names.
+     'patsubst': replacing the suffix at the end of file names.
 
           $(VAR:SUFFIX=REPLACEMENT)
 
@@ -5743,14 +5750,14 @@ Here are some functions that operate on strings:
 
           $(patsubst %.o,%.c,$(objects))
 
-`$(strip STRING)'
+'$(strip STRING)'
      Removes leading and trailing whitespace from STRING and replaces
      each internal sequence of one or more whitespace characters with a
-     single space.  Thus, `$(strip a b  c )' results in `a b c'.
+     single space.  Thus, '$(strip a b c )' results in 'a b c'.
 
-     The function `strip' can be very useful when used in conjunction
+     The function 'strip' can be very useful when used in conjunction
      with conditionals.  When comparing something with the empty string
-     `' using `ifeq' or `ifneq', you usually want a string of just
+     '' using 'ifeq' or 'ifneq', you usually want a string of just
      whitespace to match the empty string (*note Conditionals::).
 
      Thus, the following may fail to have the desired results:
@@ -5762,43 +5769,43 @@ Here are some functions that operate on strings:
           all:;@echo 'Nothing to make!'
           endif
 
-     Replacing the variable reference `$(needs_made)' with the function
-     call `$(strip $(needs_made))' in the `ifneq' directive would make
+     Replacing the variable reference '$(needs_made)' with the function
+     call '$(strip $(needs_made))' in the 'ifneq' directive would make
      it more robust.
 
-`$(findstring FIND,IN)'
+'$(findstring FIND,IN)'
      Searches IN for an occurrence of FIND.  If it occurs, the value is
      FIND; otherwise, the value is empty.  You can use this function in
-     a conditional to test for the presence of a specific substring in
-     given string.  Thus, the two examples,
+     a conditional to test for the presence of a specific substring in a
+     given string.  Thus, the two examples,
 
           $(findstring a,a b c)
           $(findstring a,b c)
 
-     produce the values `a' and `' (the empty string), respectively.
-     *Note Testing Flags::, for a practical application of `findstring'.
+     produce the values 'a' and '' (the empty string), respectively.
+     *Note Testing Flags::, for a practical application of 'findstring'.
 
-`$(filter PATTERN...,TEXT)'
+'$(filter PATTERN...,TEXT)'
      Returns all whitespace-separated words in TEXT that _do_ match any
      of the PATTERN words, removing any words that _do not_ match.  The
-     patterns are written using `%', just like the patterns used in the
-     `patsubst' function above.
+     patterns are written using '%', just like the patterns used in the
+     'patsubst' function above.
 
-     The `filter' function can be used to separate out different types
+     The 'filter' function can be used to separate out different types
      of strings (such as file names) in a variable.  For example:
 
           sources := foo.c bar.c baz.s ugh.h
           foo: $(sources)
                   cc $(filter %.c %.s,$(sources)) -o foo
 
-     says that `foo' depends of `foo.c', `bar.c', `baz.s' and `ugh.h'
-     but only `foo.c', `bar.c' and `baz.s' should be specified in the
+     says that 'foo' depends of 'foo.c', 'bar.c', 'baz.s' and 'ugh.h'
+     but only 'foo.c', 'bar.c' and 'baz.s' should be specified in the
      command to the compiler.
 
-`$(filter-out PATTERN...,TEXT)'
+'$(filter-out PATTERN...,TEXT)'
      Returns all whitespace-separated words in TEXT that _do not_ match
-     any of the PATTERN words, removing the words that _do_ match one
-     or more.  This is the exact opposite of the `filter' function.
+     any of the PATTERN words, removing the words that _do_ match one or
+     more.  This is the exact opposite of the 'filter' function.
 
      For example, given:
 
@@ -5806,48 +5813,47 @@ Here are some functions that operate on strings:
           mains=main1.o main2.o
 
      the following generates a list which contains all the object files
-     not in `mains':
+     not in 'mains':
 
           $(filter-out $(mains),$(objects))
 
-`$(sort LIST)'
-     Sorts the words of LIST in lexical order, removing duplicate
-     words.  The output is a list of words separated by single spaces.
-     Thus,
+'$(sort LIST)'
+     Sorts the words of LIST in lexical order, removing duplicate words.
+     The output is a list of words separated by single spaces.  Thus,
 
           $(sort foo bar lose)
 
-     returns the value `bar foo lose'.
+     returns the value 'bar foo lose'.
 
-     Incidentally, since `sort' removes duplicate words, you can use it
+     Incidentally, since 'sort' removes duplicate words, you can use it
      for this purpose even if you don't care about the sort order.
 
-`$(word N,TEXT)'
+'$(word N,TEXT)'
      Returns the Nth word of TEXT.  The legitimate values of N start
-     from 1.  If N is bigger than the number of words in TEXT, the
-     value is empty.  For example,
+     from 1.  If N is bigger than the number of words in TEXT, the value
+     is empty.  For example,
 
           $(word 2, foo bar baz)
 
-     returns `bar'.
+     returns 'bar'.
 
-`$(wordlist S,E,TEXT)'
+'$(wordlist S,E,TEXT)'
      Returns the list of words in TEXT starting with word S and ending
      with word E (inclusive).  The legitimate values of S start from 1;
      E may start from 0.  If S is bigger than the number of words in
      TEXT, the value is empty.  If E is bigger than the number of words
-     in TEXT, words up to the end of TEXT are returned.  If S is
-     greater than E, nothing is returned.  For example,
+     in TEXT, words up to the end of TEXT are returned.  If S is greater
+     than E, nothing is returned.  For example,
 
           $(wordlist 2, 3, foo bar baz)
 
-     returns `bar baz'.
+     returns 'bar baz'.
 
-`$(words TEXT)'
+'$(words TEXT)'
      Returns the number of words in TEXT.  Thus, the last word of TEXT
-     is `$(word $(words TEXT),TEXT)'.
+     is '$(word $(words TEXT),TEXT)'.
 
-`$(firstword NAMES...)'
+'$(firstword NAMES...)'
      The argument NAMES is regarded as a series of names, separated by
      whitespace.  The value is the first name in the series.  The rest
      of the names are ignored.
@@ -5856,11 +5862,11 @@ Here are some functions that operate on strings:
 
           $(firstword foo bar)
 
-     produces the result `foo'.  Although `$(firstword TEXT)' is the
-     same as `$(word 1,TEXT)', the `firstword' function is retained for
+     produces the result 'foo'.  Although '$(firstword TEXT)' is the
+     same as '$(word 1,TEXT)', the 'firstword' function is retained for
      its simplicity.
 
-`$(lastword NAMES...)'
+'$(lastword NAMES...)'
      The argument NAMES is regarded as a series of names, separated by
      whitespace.  The value is the last name in the series.
 
@@ -5868,34 +5874,34 @@ Here are some functions that operate on strings:
 
           $(lastword foo bar)
 
-     produces the result `bar'.  Although `$(lastword TEXT)' is the
-     same as `$(word $(words TEXT),TEXT)', the `lastword' function was
-     added for its simplicity and better performance.
+     produces the result 'bar'.  Although '$(lastword TEXT)' is the same
+     as '$(word $(words TEXT),TEXT)', the 'lastword' function was added
+     for its simplicity and better performance.
 
-   Here is a realistic example of the use of `subst' and `patsubst'.
-Suppose that a makefile uses the `VPATH' variable to specify a list of
-directories that `make' should search for prerequisite files (*note
-`VPATH' Search Path for All Prerequisites: General Search.).  This
+   Here is a realistic example of the use of 'subst' and 'patsubst'.
+Suppose that a makefile uses the 'VPATH' variable to specify a list of
+directories that 'make' should search for prerequisite files (*note
+'VPATH' Search Path for All Prerequisites: General Search.).  This
 example shows how to tell the C compiler to search for header files in
 the same list of directories.
 
-   The value of `VPATH' is a list of directories separated by colons,
-such as `src:../headers'.  First, the `subst' function is used to
-change the colons to spaces:
+   The value of 'VPATH' is a list of directories separated by colons,
+such as 'src:../headers'.  First, the 'subst' function is used to change
+the colons to spaces:
 
      $(subst :, ,$(VPATH))
 
-This produces `src ../headers'.  Then `patsubst' is used to turn each
-directory name into a `-I' flag.  These can be added to the value of
-the variable `CFLAGS', which is passed automatically to the C compiler,
-like this:
+This produces 'src ../headers'.  Then 'patsubst' is used to turn each
+directory name into a '-I' flag.  These can be added to the value of the
+variable 'CFLAGS', which is passed automatically to the C compiler, like
+this:
 
      override CFLAGS += $(patsubst %,-I%,$(subst :, ,$(VPATH)))
 
-The effect is to append the text `-Isrc -I../headers' to the previously
-given value of `CFLAGS'.  The `override' directive is used so that the
-new value is assigned even if the previous value of `CFLAGS' was
-specified with a command argument (*note The `override' Directive:
+The effect is to append the text '-Isrc -I../headers' to the previously
+given value of 'CFLAGS'.  The 'override' directive is used so that the
+new value is assigned even if the previous value of 'CFLAGS' was
+specified with a command argument (*note The 'override' Directive:
 Override Directive.).
 
 \1f
@@ -5907,27 +5913,26 @@ File: make.info,  Node: File Name Functions,  Next: Conditional Functions,  Prev
 Several of the built-in expansion functions relate specifically to
 taking apart file names or lists of file names.
 
-   Each of the following functions performs a specific transformation
-on a file name.  The argument of the function is regarded as a series
-of file names, separated by whitespace.  (Leading and trailing
-whitespace is ignored.)  Each file name in the series is transformed in
-the same way and the results are concatenated with single spaces
-between them.
+   Each of the following functions performs a specific transformation on
+a file name.  The argument of the function is regarded as a series of
+file names, separated by whitespace.  (Leading and trailing whitespace
+is ignored.)  Each file name in the series is transformed in the same
+way and the results are concatenated with single spaces between them.
 
-`$(dir NAMES...)'
+'$(dir NAMES...)'
      Extracts the directory-part of each file name in NAMES.  The
      directory-part of the file name is everything up through (and
      including) the last slash in it.  If the file name contains no
-     slash, the directory part is the string `./'.  For example,
+     slash, the directory part is the string './'.  For example,
 
           $(dir src/foo.c hacks)
 
-     produces the result `src/ ./'.
+     produces the result 'src/ ./'.
 
-`$(notdir NAMES...)'
-     Extracts all but the directory-part of each file name in NAMES.
-     If the file name contains no slash, it is left unchanged.
-     Otherwise, everything through the last slash is removed from it.
+'$(notdir NAMES...)'
+     Extracts all but the directory-part of each file name in NAMES.  If
+     the file name contains no slash, it is left unchanged.  Otherwise,
+     everything through the last slash is removed from it.
 
      A file name that ends with a slash becomes an empty string.  This
      is unfortunate, because it means that the result does not always
@@ -5938,9 +5943,9 @@ between them.
 
           $(notdir src/foo.c hacks)
 
-     produces the result `foo.c hacks'.
+     produces the result 'foo.c hacks'.
 
-`$(suffix NAMES...)'
+'$(suffix NAMES...)'
      Extracts the suffix of each file name in NAMES.  If the file name
      contains a period, the suffix is everything starting with the last
      period.  Otherwise, the suffix is the empty string.  This
@@ -5952,42 +5957,42 @@ between them.
 
           $(suffix src/foo.c src-1.0/bar.c hacks)
 
-     produces the result `.c .c'.
+     produces the result '.c .c'.
 
-`$(basename NAMES...)'
+'$(basename NAMES...)'
      Extracts all but the suffix of each file name in NAMES.  If the
-     file name contains a period, the basename is everything starting
-     up to (and not including) the last period.  Periods in the
-     directory part are ignored.  If there is no period, the basename
-     is the entire file name.  For example,
+     file name contains a period, the basename is everything starting up
+     to (and not including) the last period.  Periods in the directory
+     part are ignored.  If there is no period, the basename is the
+     entire file name.  For example,
 
           $(basename src/foo.c src-1.0/bar hacks)
 
-     produces the result `src/foo src-1.0/bar hacks'.
+     produces the result 'src/foo src-1.0/bar hacks'.
 
-`$(addsuffix SUFFIX,NAMES...)'
+'$(addsuffix SUFFIX,NAMES...)'
      The argument NAMES is regarded as a series of names, separated by
      whitespace; SUFFIX is used as a unit.  The value of SUFFIX is
      appended to the end of each individual name and the resulting
-     larger names are concatenated with single spaces between them.
-     For example,
+     larger names are concatenated with single spaces between them.  For
+     example,
 
           $(addsuffix .c,foo bar)
 
-     produces the result `foo.c bar.c'.
+     produces the result 'foo.c bar.c'.
 
-`$(addprefix PREFIX,NAMES...)'
+'$(addprefix PREFIX,NAMES...)'
      The argument NAMES is regarded as a series of names, separated by
      whitespace; PREFIX is used as a unit.  The value of PREFIX is
      prepended to the front of each individual name and the resulting
-     larger names are concatenated with single spaces between them.
-     For example,
+     larger names are concatenated with single spaces between them.  For
+     example,
 
           $(addprefix src/,foo bar)
 
-     produces the result `src/foo src/bar'.
+     produces the result 'src/foo src/bar'.
 
-`$(join LIST1,LIST2)'
+'$(join LIST1,LIST2)'
      Concatenates the two arguments word by word: the two first words
      (one from each argument) concatenated form the first word of the
      result, the two second words form the second word of the result,
@@ -5995,36 +6000,36 @@ between them.
      of each argument.  If one argument has more words that the other,
      the extra words are copied unchanged into the result.
 
-     For example, `$(join a b,.c .o)' produces `a.c b.o'.
+     For example, '$(join a b,.c .o)' produces 'a.c b.o'.
 
      Whitespace between the words in the lists is not preserved; it is
      replaced with a single space.
 
-     This function can merge the results of the `dir' and `notdir'
-     functions, to produce the original list of files which was given
-     to those two functions.
+     This function can merge the results of the 'dir' and 'notdir'
+     functions, to produce the original list of files which was given to
+     those two functions.
 
-`$(wildcard PATTERN)'
+'$(wildcard PATTERN)'
      The argument PATTERN is a file name pattern, typically containing
      wildcard characters (as in shell file name patterns).  The result
-     of `wildcard' is a space-separated list of the names of existing
+     of 'wildcard' is a space-separated list of the names of existing
      files that match the pattern.  *Note Using Wildcard Characters in
      File Names: Wildcards.
 
-`$(realpath NAMES...)'
+'$(realpath NAMES...)'
      For each file name in NAMES return the canonical absolute name.  A
-     canonical name does not contain any `.' or `..' components, nor
-     any repeated path separators (`/') or symlinks.  In case of a
-     failure the empty string is returned.  Consult the `realpath(3)'
+     canonical name does not contain any '.' or '..' components, nor any
+     repeated path separators ('/') or symlinks.  In case of a failure
+     the empty string is returned.  Consult the 'realpath(3)'
      documentation for a list of possible failure causes.
 
-`$(abspath NAMES...)'
+'$(abspath NAMES...)'
      For each file name in NAMES return an absolute name that does not
-     contain any `.' or `..' components, nor any repeated path
-     separators (`/').  Note that, in contrast to `realpath' function,
-     `abspath' does not resolve symlinks and does not require the file
+     contain any '.' or '..' components, nor any repeated path
+     separators ('/').  Note that, in contrast to 'realpath' function,
+     'abspath' does not resolve symlinks and does not require the file
      names to refer to an existing file or directory.  Use the
-     `wildcard' function to test for existence.
+     'wildcard' function to test for existence.
 
 \1f
 File: make.info,  Node: Conditional Functions,  Next: Foreach Function,  Prev: File Name Functions,  Up: Functions
@@ -6037,87 +6042,85 @@ aspect of these functions is that not all of the arguments are expanded
 initially.  Only those arguments which need to be expanded, will be
 expanded.
 
-`$(if CONDITION,THEN-PART[,ELSE-PART])'
-     The `if' function provides support for conditional expansion in a
-     functional context (as opposed to the GNU `make' makefile
-     conditionals such as `ifeq' (*note Syntax of Conditionals:
+'$(if CONDITION,THEN-PART[,ELSE-PART])'
+     The 'if' function provides support for conditional expansion in a
+     functional context (as opposed to the GNU 'make' makefile
+     conditionals such as 'ifeq' (*note Syntax of Conditionals:
      Conditional Syntax.).
 
-     The first argument, CONDITION, first has all preceding and
-     trailing whitespace stripped, then is expanded.  If it expands to
-     any non-empty string, then the condition is considered to be true.
-     If it expands to an empty string, the condition is considered to
-     be false.
+     The first argument, CONDITION, first has all preceding and trailing
+     whitespace stripped, then is expanded.  If it expands to any
+     non-empty string, then the condition is considered to be true.  If
+     it expands to an empty string, the condition is considered to be
+     false.
 
      If the condition is true then the second argument, THEN-PART, is
      evaluated and this is used as the result of the evaluation of the
-     entire `if' function.
+     entire 'if' function.
 
      If the condition is false then the third argument, ELSE-PART, is
-     evaluated and this is the result of the `if' function.  If there is
-     no third argument, the `if' function evaluates to nothing (the
+     evaluated and this is the result of the 'if' function.  If there is
+     no third argument, the 'if' function evaluates to nothing (the
      empty string).
 
      Note that only one of the THEN-PART or the ELSE-PART will be
-     evaluated, never both.  Thus, either can contain side-effects
-     (such as `shell' function calls, etc.)
+     evaluated, never both.  Thus, either can contain side-effects (such
+     as 'shell' function calls, etc.)
 
-`$(or CONDITION1[,CONDITION2[,CONDITION3...]])'
-     The `or' function provides a "short-circuiting" OR operation.
-     Each argument is expanded, in order.  If an argument expands to a
+'$(or CONDITION1[,CONDITION2[,CONDITION3...]])'
+     The 'or' function provides a "short-circuiting" OR operation.  Each
+     argument is expanded, in order.  If an argument expands to a
      non-empty string the processing stops and the result of the
      expansion is that string.  If, after all arguments are expanded,
      all of them are false (empty), then the result of the expansion is
      the empty string.
 
-`$(and CONDITION1[,CONDITION2[,CONDITION3...]])'
-     The `and' function provides a "short-circuiting" AND operation.
+'$(and CONDITION1[,CONDITION2[,CONDITION3...]])'
+     The 'and' function provides a "short-circuiting" AND operation.
      Each argument is expanded, in order.  If an argument expands to an
      empty string the processing stops and the result of the expansion
-     is the empty string.  If all arguments expand to a non-empty
-     string then the result of the expansion is the expansion of the
-     last argument.
-
+     is the empty string.  If all arguments expand to a non-empty string
+     then the result of the expansion is the expansion of the last
+     argument.
 
 \1f
 File: make.info,  Node: Foreach Function,  Next: File Function,  Prev: Conditional Functions,  Up: Functions
 
-8.5 The `foreach' Function
+8.5 The 'foreach' Function
 ==========================
 
-The `foreach' function is very different from other functions.  It
+The 'foreach' function is very different from other functions.  It
 causes one piece of text to be used repeatedly, each time with a
-different substitution performed on it.  It resembles the `for' command
-in the shell `sh' and the `foreach' command in the C-shell `csh'.
+different substitution performed on it.  It resembles the 'for' command
+in the shell 'sh' and the 'foreach' command in the C-shell 'csh'.
 
-   The syntax of the `foreach' function is:
+   The syntax of the 'foreach' function is:
 
      $(foreach VAR,LIST,TEXT)
 
-The first two arguments, VAR and LIST, are expanded before anything
-else is done; note that the last argument, TEXT, is *not* expanded at
-the same time.  Then for each word of the expanded value of LIST, the
+The first two arguments, VAR and LIST, are expanded before anything else
+is done; note that the last argument, TEXT, is *not* expanded at the
+same time.  Then for each word of the expanded value of LIST, the
 variable named by the expanded value of VAR is set to that word, and
-TEXT is expanded.  Presumably TEXT contains references to that
-variable, so its expansion will be different each time.
+TEXT is expanded.  Presumably TEXT contains references to that variable,
+so its expansion will be different each time.
 
    The result is that TEXT is expanded as many times as there are
-whitespace-separated words in LIST.  The multiple expansions of TEXT
-are concatenated, with spaces between them, to make the result of
-`foreach'.
+whitespace-separated words in LIST.  The multiple expansions of TEXT are
+concatenated, with spaces between them, to make the result of 'foreach'.
 
-   This simple example sets the variable `files' to the list of all
-files in the directories in the list `dirs':
+   This simple example sets the variable 'files' to the list of all
+files in the directories in the list 'dirs':
 
      dirs := a b c d
      files := $(foreach dir,$(dirs),$(wildcard $(dir)/*))
 
-   Here TEXT is `$(wildcard $(dir)/*)'.  The first repetition finds the
-value `a' for `dir', so it produces the same result as `$(wildcard
-a/*)'; the second repetition produces the result of `$(wildcard b/*)';
-and the third, that of `$(wildcard c/*)'.
+   Here TEXT is '$(wildcard $(dir)/*)'.  The first repetition finds the
+value 'a' for 'dir', so it produces the same result as '$(wildcard
+a/*)'; the second repetition produces the result of '$(wildcard b/*)';
+and the third, that of '$(wildcard c/*)'.
 
-   This example has the same result (except for setting `dirs') as the
+   This example has the same result (except for setting 'dirs') as the
 following example:
 
      files := $(wildcard a/* b/* c/* d/*)
@@ -6129,18 +6132,18 @@ name, with an additional variable:
      dirs := a b c d
      files := $(foreach dir,$(dirs),$(find_files))
 
-Here we use the variable `find_files' this way.  We use plain `=' to
+Here we use the variable 'find_files' this way.  We use plain '=' to
 define a recursively-expanding variable, so that its value contains an
-actual function call to be re-expanded under the control of `foreach';
-a simply-expanded variable would not do, since `wildcard' would be
-called only once at the time of defining `find_files'.
-
-   The `foreach' function has no permanent effect on the variable VAR;
-its value and flavor after the `foreach' function call are the same as
-they were beforehand.  The other values which are taken from LIST are
-in effect only temporarily, during the execution of `foreach'.  The
+actual function call to be re-expanded under the control of 'foreach'; a
+simply-expanded variable would not do, since 'wildcard' would be called
+only once at the time of defining 'find_files'.
+
+   The 'foreach' function has no permanent effect on the variable VAR;
+its value and flavor after the 'foreach' function call are the same as
+they were beforehand.  The other values which are taken from LIST are in
+effect only temporarily, during the execution of 'foreach'.  The
 variable VAR is a simply-expanded variable during the execution of
-`foreach'.  If VAR was undefined before the `foreach' function call, it
+'foreach'.  If VAR was undefined before the 'foreach' function call, it
 is undefined after the call.  *Note The Two Flavors of Variables:
 Flavors.
 
@@ -6150,45 +6153,46 @@ names, but are probably not what you intended.  For example,
 
      files := $(foreach Esta-escrito-en-espanol!,b c ch,$(find_files))
 
-might be useful if the value of `find_files' references the variable
-whose name is `Esta-escrito-en-espanol!' (es un nombre bastante largo,
+might be useful if the value of 'find_files' references the variable
+whose name is 'Esta-escrito-en-espanol!' (es un nombre bastante largo,
 no?), but it is more likely to be a mistake.
 
 \1f
 File: make.info,  Node: File Function,  Next: Call Function,  Prev: Foreach Function,  Up: Functions
 
-8.6 The `file' Function
+8.6 The 'file' Function
 =======================
 
-The `file' function allows the makefile to write to a file.  Two modes
+The 'file' function allows the makefile to write to a file.  Two modes
 of writing are supported: overwrite, where the text is written to the
 beginning of the file and any existing content is lost, and append,
 where the text is written to the end of the file, preserving the
 existing content.  In all cases the file is created if it does not
 exist.
 
-   The syntax of the `file' function is:
+   The syntax of the 'file' function is:
 
-     $(file OP FILENAME,TEXT)
+     $(file OP FILENAME[,TEXT])
 
-   The operator OP can be either `>' which indicates overwrite mode, or
-`>>' which indicates append mode.  The FILENAME indicates the file to
-be written to.  There may optionally be whitespace between the operator
-and the file name.
+   The operator OP can be either '>' which indicates overwrite mode, or
+'>>' which indicates append mode.  The FILENAME indicates the file to be
+written to.  There may optionally be whitespace between the operator and
+the file name.
 
-   When the `file' function is expanded all its arguments are expanded
+   When the 'file' function is expanded all its arguments are expanded
 first, then the file indicated by FILENAME will be opened in the mode
 described by OP.  Finally TEXT will be written to the file.  If TEXT
-does not already end in a newline, a final newline will be written.
-The result of evaluating the `file' function is always the empty string.
+does not already end in a newline, even if empty, a final newline will
+be written.  If the TEXT argument is not given, nothing will be written.
+The result of evaluating the 'file' function is always the empty string.
 
    It is a fatal error if the file cannot be opened for writing, or if
 the write operation fails.
 
-   For example, the `file' function can be useful if your build system
+   For example, the 'file' function can be useful if your build system
 has a limited command line size and your recipe runs a command that can
 accept arguments from a file as well.  Many commands use the convention
-that an argument prefixed with an `@' specifies a file containing more
+that an argument prefixed with an '@' specifies a file containing more
 arguments.  Then you might write your recipe in this way:
 
      program: $(OBJECTS)
@@ -6200,47 +6204,46 @@ arguments.  Then you might write your recipe in this way:
 input file, you might write your recipe like this:
 
      program: $(OBJECTS)
-             $(file >$@.in,) $(foreach O,$^,$(file >>$@.in,$O))
+             $(file >$@.in) $(foreach O,$^,$(file >>$@.in,$O))
              $(CMD) $(CMDFLAGS) @$@.in
              @rm $@.in
 
 \1f
 File: make.info,  Node: Call Function,  Next: Value Function,  Prev: File Function,  Up: Functions
 
-8.7 The `call' Function
+8.7 The 'call' Function
 =======================
 
-The `call' function is unique in that it can be used to create new
+The 'call' function is unique in that it can be used to create new
 parameterized functions.  You can write a complex expression as the
-value of a variable, then use `call' to expand it with different values.
+value of a variable, then use 'call' to expand it with different values.
 
-   The syntax of the `call' function is:
+   The syntax of the 'call' function is:
 
      $(call VARIABLE,PARAM,PARAM,...)
 
-   When `make' expands this function, it assigns each PARAM to
-temporary variables `$(1)', `$(2)', etc.  The variable `$(0)' will
-contain VARIABLE.  There is no maximum number of parameter arguments.
-There is no minimum, either, but it doesn't make sense to use `call'
-with no parameters.
+   When 'make' expands this function, it assigns each PARAM to temporary
+variables '$(1)', '$(2)', etc.  The variable '$(0)' will contain
+VARIABLE.  There is no maximum number of parameter arguments.  There is
+no minimum, either, but it doesn't make sense to use 'call' with no
+parameters.
 
-   Then VARIABLE is expanded as a `make' variable in the context of
-these temporary assignments.  Thus, any reference to `$(1)' in the
-value of VARIABLE will resolve to the first PARAM in the invocation of
-`call'.
+   Then VARIABLE is expanded as a 'make' variable in the context of
+these temporary assignments.  Thus, any reference to '$(1)' in the value
+of VARIABLE will resolve to the first PARAM in the invocation of 'call'.
 
    Note that VARIABLE is the _name_ of a variable, not a _reference_ to
-that variable.  Therefore you would not normally use a `$' or
+that variable.  Therefore you would not normally use a '$' or
 parentheses when writing it.  (You can, however, use a variable
 reference in the name if you want the name not to be a constant.)
 
    If VARIABLE is the name of a built-in function, the built-in function
-is always invoked (even if a `make' variable by that name also exists).
+is always invoked (even if a 'make' variable by that name also exists).
 
-   The `call' function expands the PARAM arguments before assigning
-them to temporary variables.  This means that VARIABLE values
-containing references to built-in functions that have special expansion
-rules, like `foreach' or `if', may not work as you expect.
+   The 'call' function expands the PARAM arguments before assigning them
+to temporary variables.  This means that VARIABLE values containing
+references to built-in functions that have special expansion rules, like
+'foreach' or 'if', may not work as you expect.
 
    Some examples may make this clearer.
 
@@ -6250,56 +6253,56 @@ rules, like `foreach' or `if', may not work as you expect.
 
      foo = $(call reverse,a,b)
 
-Here FOO will contain `b a'.
+Here FOO will contain 'b a'.
 
    This one is slightly more interesting: it defines a macro to search
-for the first instance of a program in `PATH':
+for the first instance of a program in 'PATH':
 
      pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,$(PATH)))))
 
      LS := $(call pathsearch,ls)
 
-Now the variable LS contains `/bin/ls' or similar.
+Now the variable LS contains '/bin/ls' or similar.
 
-   The `call' function can be nested.  Each recursive invocation gets
-its own local values for `$(1)', etc. that mask the values of
-higher-level `call'.  For example, here is an implementation of a "map"
+   The 'call' function can be nested.  Each recursive invocation gets
+its own local values for '$(1)', etc. that mask the values of
+higher-level 'call'.  For example, here is an implementation of a "map"
 function:
 
      map = $(foreach a,$(2),$(call $(1),$(a)))
 
    Now you can MAP a function that normally takes only one argument,
-such as `origin', to multiple values in one step:
+such as 'origin', to multiple values in one step:
 
      o = $(call map,origin,o map MAKE)
 
-   and end up with O containing something like `file file default'.
+   and end up with O containing something like 'file file default'.
 
    A final caution: be careful when adding whitespace to the arguments
-to `call'.  As with other functions, any whitespace contained in the
-second and subsequent arguments is kept; this can cause strange
-effects.  It's generally safest to remove all extraneous whitespace when
-providing parameters to `call'.
+to 'call'.  As with other functions, any whitespace contained in the
+second and subsequent arguments is kept; this can cause strange effects.
+It's generally safest to remove all extraneous whitespace when providing
+parameters to 'call'.
 
 \1f
 File: make.info,  Node: Value Function,  Next: Eval Function,  Prev: Call Function,  Up: Functions
 
-8.8 The `value' Function
+8.8 The 'value' Function
 ========================
 
-The `value' function provides a way for you to use the value of a
+The 'value' function provides a way for you to use the value of a
 variable _without_ having it expanded.  Please note that this does not
-undo expansions which have already occurred; for example if you create
-a simply expanded variable its value is expanded during the definition;
-in that case the `value' function will return the same result as using
-the variable directly.
+undo expansions which have already occurred; for example if you create a
+simply expanded variable its value is expanded during the definition; in
+that case the 'value' function will return the same result as using the
+variable directly.
 
-   The syntax of the `value' function is:
+   The syntax of the 'value' function is:
 
      $(value VARIABLE)
 
    Note that VARIABLE is the _name_ of a variable, not a _reference_ to
-that variable.  Therefore you would not normally use a `$' or
+that variable.  Therefore you would not normally use a '$' or
 parentheses when writing it.  (You can, however, use a variable
 reference in the name if you want the name not to be a constant.)
 
@@ -6313,44 +6316,44 @@ makefile:
              @echo $(FOO)
              @echo $(value FOO)
 
-The first output line would be `ATH', since the "$P" would be expanded
-as a `make' variable, while the second output line would be the current
-value of your `$PATH' environment variable, since the `value' function
+The first output line would be 'ATH', since the "$P" would be expanded
+as a 'make' variable, while the second output line would be the current
+value of your '$PATH' environment variable, since the 'value' function
 avoided the expansion.
 
-   The `value' function is most often used in conjunction with the
-`eval' function (*note Eval Function::).
+   The 'value' function is most often used in conjunction with the
+'eval' function (*note Eval Function::).
 
 \1f
 File: make.info,  Node: Eval Function,  Next: Origin Function,  Prev: Value Function,  Up: Functions
 
-8.9 The `eval' Function
+8.9 The 'eval' Function
 =======================
 
-The `eval' function is very special: it allows you to define new
+The 'eval' function is very special: it allows you to define new
 makefile constructs that are not constant; which are the result of
-evaluating other variables and functions.  The argument to the `eval'
+evaluating other variables and functions.  The argument to the 'eval'
 function is expanded, then the results of that expansion are parsed as
-makefile syntax.  The expanded results can define new `make' variables,
+makefile syntax.  The expanded results can define new 'make' variables,
 targets, implicit or explicit rules, etc.
 
-   The result of the `eval' function is always the empty string; thus,
-it can be placed virtually anywhere in a makefile without causing
-syntax errors.
+   The result of the 'eval' function is always the empty string; thus,
+it can be placed virtually anywhere in a makefile without causing syntax
+errors.
 
-   It's important to realize that the `eval' argument is expanded
-_twice_; first by the `eval' function, then the results of that
+   It's important to realize that the 'eval' argument is expanded
+_twice_; first by the 'eval' function, then the results of that
 expansion are expanded again when they are parsed as makefile syntax.
 This means you may need to provide extra levels of escaping for "$"
-characters when using `eval'.  The `value' function (*note Value
+characters when using 'eval'.  The 'value' function (*note Value
 Function::) can sometimes be useful in these situations, to circumvent
 unwanted expansions.
 
-   Here is an example of how `eval' can be used; this example combines
-a number of concepts and other functions.  Although it might seem
-overly complex to use `eval' in this example, rather than just writing
-out the rules, consider two things: first, the template definition (in
-`PROGRAM_template') could need to be much more complex than it is here;
+   Here is an example of how 'eval' can be used; this example combines a
+number of concepts and other functions.  Although it might seem overly
+complex to use 'eval' in this example, rather than just writing out the
+rules, consider two things: first, the template definition (in
+'PROGRAM_template') could need to be much more complex than it is here;
 and second, you might put the complex, "generic" part of this example
 into another makefile, then include it in all the individual makefiles.
 Now your individual makefiles are quite straightforward.
@@ -6384,68 +6387,76 @@ Now your individual makefiles are quite straightforward.
 \1f
 File: make.info,  Node: Origin Function,  Next: Flavor Function,  Prev: Eval Function,  Up: Functions
 
-8.10 The `origin' Function
+8.10 The 'origin' Function
 ==========================
 
-The `origin' function is unlike most other functions in that it does
-not operate on the values of variables; it tells you something _about_
-variable.  Specifically, it tells you where it came from.
+The 'origin' function is unlike most other functions in that it does not
+operate on the values of variables; it tells you something _about_ a
+variable.  Specifically, it tells you where it came from.
 
-   The syntax of the `origin' function is:
+   The syntax of the 'origin' function is:
 
      $(origin VARIABLE)
 
    Note that VARIABLE is the _name_ of a variable to inquire about, not
 a _reference_ to that variable.  Therefore you would not normally use a
-`$' or parentheses when writing it.  (You can, however, use a variable
+'$' or parentheses when writing it.  (You can, however, use a variable
 reference in the name if you want the name not to be a constant.)
 
    The result of this function is a string telling you how the variable
 VARIABLE was defined:
 
-`undefined'
+'undefined'
+
      if VARIABLE was never defined.
 
-`default'
-     if VARIABLE has a default definition, as is usual with `CC' and so
+'default'
+
+     if VARIABLE has a default definition, as is usual with 'CC' and so
      on.  *Note Variables Used by Implicit Rules: Implicit Variables.
-     Note that if you have redefined a default variable, the `origin'
+     Note that if you have redefined a default variable, the 'origin'
      function will return the origin of the later definition.
 
-`environment'
-     if VARIABLE was inherited from the environment provided to `make'.
+'environment'
+
+     if VARIABLE was inherited from the environment provided to 'make'.
+
+'environment override'
 
-`environment override'
-     if VARIABLE was inherited from the environment provided to `make',
+     if VARIABLE was inherited from the environment provided to 'make',
      and is overriding a setting for VARIABLE in the makefile as a
-     result of the `-e' option (*note Summary of Options: Options
+     result of the '-e' option (*note Summary of Options: Options
      Summary.).
 
-`file'
+'file'
+
      if VARIABLE was defined in a makefile.
 
-`command line'
+'command line'
+
      if VARIABLE was defined on the command line.
 
-`override'
-     if VARIABLE was defined with an `override' directive in a makefile
-     (*note The `override' Directive: Override Directive.).
+'override'
+
+     if VARIABLE was defined with an 'override' directive in a makefile
+     (*note The 'override' Directive: Override Directive.).
+
+'automatic'
 
-`automatic'
      if VARIABLE is an automatic variable defined for the execution of
      the recipe for each rule (*note Automatic Variables::).
 
    This information is primarily useful (other than for your curiosity)
 to determine if you want to believe the value of a variable.  For
-example, suppose you have a makefile `foo' that includes another
-makefile `bar'.  You want a variable `bletch' to be defined in `bar' if
-you run the command `make -f bar', even if the environment contains a
-definition of `bletch'.  However, if `foo' defined `bletch' before
-including `bar', you do not want to override that definition.  This
-could be done by using an `override' directive in `foo', giving that
-definition precedence over the later definition in `bar';
-unfortunately, the `override' directive would also override any command
-line definitions.  So, `bar' could include:
+example, suppose you have a makefile 'foo' that includes another
+makefile 'bar'.  You want a variable 'bletch' to be defined in 'bar' if
+you run the command 'make -f bar', even if the environment contains a
+definition of 'bletch'.  However, if 'foo' defined 'bletch' before
+including 'bar', you do not want to override that definition.  This
+could be done by using an 'override' directive in 'foo', giving that
+definition precedence over the later definition in 'bar'; unfortunately,
+the 'override' directive would also override any command line
+definitions.  So, 'bar' could include:
 
      ifdef bletch
      ifeq "$(origin bletch)" "environment"
@@ -6453,52 +6464,54 @@ line definitions.  So, `bar' could include:
      endif
      endif
 
-If `bletch' has been defined from the environment, this will redefine
+If 'bletch' has been defined from the environment, this will redefine
 it.
 
-   If you want to override a previous definition of `bletch' if it came
-from the environment, even under `-e', you could instead write:
+   If you want to override a previous definition of 'bletch' if it came
+from the environment, even under '-e', you could instead write:
 
      ifneq "$(findstring environment,$(origin bletch))" ""
      bletch = barf, gag, etc.
      endif
 
-   Here the redefinition takes place if `$(origin bletch)' returns
-either `environment' or `environment override'.  *Note Functions for
+   Here the redefinition takes place if '$(origin bletch)' returns
+either 'environment' or 'environment override'.  *Note Functions for
 String Substitution and Analysis: Text Functions.
 
 \1f
 File: make.info,  Node: Flavor Function,  Next: Make Control Functions,  Prev: Origin Function,  Up: Functions
 
-8.11 The `flavor' Function
+8.11 The 'flavor' Function
 ==========================
 
-The `flavor' function, like the `origin' function, does not operate on
+The 'flavor' function, like the 'origin' function, does not operate on
 the values of variables but rather it tells you something _about_ a
 variable.  Specifically, it tells you the flavor of a variable (*note
 The Two Flavors of Variables: Flavors.).
 
-   The syntax of the `flavor' function is:
+   The syntax of the 'flavor' function is:
 
      $(flavor VARIABLE)
 
    Note that VARIABLE is the _name_ of a variable to inquire about, not
 a _reference_ to that variable.  Therefore you would not normally use a
-`$' or parentheses when writing it.  (You can, however, use a variable
+'$' or parentheses when writing it.  (You can, however, use a variable
 reference in the name if you want the name not to be a constant.)
 
-   The result of this function is a string that identifies the flavor
-of the variable VARIABLE:
+   The result of this function is a string that identifies the flavor of
+the variable VARIABLE:
+
+'undefined'
 
-`undefined'
      if VARIABLE was never defined.
 
-`recursive'
+'recursive'
+
      if VARIABLE is a recursively expanded variable.
 
-`simple'
-     if VARIABLE is a simply expanded variable.
+'simple'
 
+     if VARIABLE is a simply expanded variable.
 
 \1f
 File: make.info,  Node: Make Control Functions,  Next: Shell Function,  Prev: Flavor Function,  Up: Functions
@@ -6510,12 +6523,12 @@ These functions control the way make runs.  Generally, they are used to
 provide information to the user of the makefile or to cause make to stop
 if some sort of environmental error is detected.
 
-`$(error TEXT...)'
+'$(error TEXT...)'
      Generates a fatal error where the message is TEXT.  Note that the
-     error is generated whenever this function is evaluated.  So, if
-     you put it inside a recipe or on the right side of a recursive
-     variable assignment, it won't be evaluated until later.  The TEXT
-     will be expanded before the error is generated.
+     error is generated whenever this function is evaluated.  So, if you
+     put it inside a recipe or on the right side of a recursive variable
+     assignment, it won't be evaluated until later.  The TEXT will be
+     expanded before the error is generated.
 
      For example,
 
@@ -6524,114 +6537,111 @@ if some sort of environmental error is detected.
           endif
 
      will generate a fatal error during the read of the makefile if the
-     `make' variable `ERROR1' is defined.  Or,
+     'make' variable 'ERROR1' is defined.  Or,
 
           ERR = $(error found an error!)
 
           .PHONY: err
           err: ; $(ERR)
 
-     will generate a fatal error while `make' is running, if the `err'
+     will generate a fatal error while 'make' is running, if the 'err'
      target is invoked.
 
-`$(warning TEXT...)'
-     This function works similarly to the `error' function, above,
-     except that `make' doesn't exit.  Instead, TEXT is expanded and
-     the resulting message is displayed, but processing of the makefile
+'$(warning TEXT...)'
+     This function works similarly to the 'error' function, above,
+     except that 'make' doesn't exit.  Instead, TEXT is expanded and the
+     resulting message is displayed, but processing of the makefile
      continues.
 
      The result of the expansion of this function is the empty string.
 
-`$(info TEXT...)'
+'$(info TEXT...)'
      This function does nothing more than print its (expanded)
-     argument(s) to standard output.  No makefile name or line number
-     is added.  The result of the expansion of this function is the
-     empty string.
+     argument(s) to standard output.  No makefile name or line number is
+     added.  The result of the expansion of this function is the empty
+     string.
 
 \1f
 File: make.info,  Node: Shell Function,  Next: Guile Function,  Prev: Make Control Functions,  Up: Functions
 
-8.13 The `shell' Function
+8.13 The 'shell' Function
 =========================
 
-The `shell' function is unlike any other function other than the
-`wildcard' function (*note The Function `wildcard': Wildcard Function.)
-in that it communicates with the world outside of `make'.
+The 'shell' function is unlike any other function other than the
+'wildcard' function (*note The Function 'wildcard': Wildcard Function.)
+in that it communicates with the world outside of 'make'.
 
-   The `shell' function performs the same function that backquotes
-(``') perform in most shells: it does "command expansion".  This means
-that it takes as an argument a shell command and evaluates to the
-output of the command.  The only processing `make' does on the result
-is to convert each newline (or carriage-return / newline pair) to a
-single space.  If there is a trailing (carriage-return and) newline it
-will simply be removed.
+   The 'shell' function performs the same function that backquotes ('`')
+perform in most shells: it does "command expansion".  This means that it
+takes as an argument a shell command and evaluates to the output of the
+command.  The only processing 'make' does on the result is to convert
+each newline (or carriage-return / newline pair) to a single space.  If
+there is a trailing (carriage-return and) newline it will simply be
+removed.
 
-   The commands run by calls to the `shell' function are run when the
-function calls are expanded (*note How `make' Reads a Makefile: Reading
+   The commands run by calls to the 'shell' function are run when the
+function calls are expanded (*note How 'make' Reads a Makefile: Reading
 Makefiles.).  Because this function involves spawning a new shell, you
 should carefully consider the performance implications of using the
-`shell' function within recursively expanded variables vs. simply
+'shell' function within recursively expanded variables vs. simply
 expanded variables (*note The Two Flavors of Variables: Flavors.).
 
-   Here are some examples of the use of the `shell' function:
+   Here are some examples of the use of the 'shell' function:
 
      contents := $(shell cat foo)
 
-sets `contents' to the contents of the file `foo', with a space (rather
+sets 'contents' to the contents of the file 'foo', with a space (rather
 than a newline) separating each line.
 
      files := $(shell echo *.c)
 
-sets `files' to the expansion of `*.c'.  Unless `make' is using a very
-strange shell, this has the same result as `$(wildcard *.c)' (as long
-as at least one `.c' file exists).
+sets 'files' to the expansion of '*.c'.  Unless 'make' is using a very
+strange shell, this has the same result as '$(wildcard *.c)' (as long as
+at least one '.c' file exists).
 
 \1f
 File: make.info,  Node: Guile Function,  Prev: Shell Function,  Up: Functions
 
-8.14 The `guile' Function
+8.14 The 'guile' Function
 =========================
 
-If GNU `make' is built with support for GNU Guile as an embedded
-extension language then the `guile' function will be available.  The
-`guile' function takes one argument which is first expanded by `make'
-in the normal fashion, then passed to the GNU Guile evaluator.  The
-result of the evaluator is converted into a string and used as the
-expansion of the `guile' function in the makefile.  See *note GNU Guile
-Integration: Guile Integration. for details on writing extensions to
-`make' in Guile.
+If GNU 'make' is built with support for GNU Guile as an embedded
+extension language then the 'guile' function will be available.  The
+'guile' function takes one argument which is first expanded by 'make' in
+the normal fashion, then passed to the GNU Guile evaluator.  The result
+of the evaluator is converted into a string and used as the expansion of
+the 'guile' function in the makefile.  See *note GNU Guile Integration:
+Guile Integration. for details on writing extensions to 'make' in Guile.
 
    You can determine whether GNU Guile support is available by checking
-the `.FEATURES' variable for the word GUILE.
+the '.FEATURES' variable for the word GUILE.
 
 \1f
 File: make.info,  Node: Running,  Next: Implicit Rules,  Prev: Functions,  Up: Top
 
-9 How to Run `make'
+9 How to Run 'make'
 *******************
 
-A makefile that says how to recompile a program can be used in more
-than one way.  The simplest use is to recompile every file that is out
-of date.  Usually, makefiles are written so that if you run `make' with
-no arguments, it does just that.
+A makefile that says how to recompile a program can be used in more than
+one way.  The simplest use is to recompile every file that is out of
+date.  Usually, makefiles are written so that if you run 'make' with no
+arguments, it does just that.
 
    But you might want to update only some of the files; you might want
 to use a different compiler or different compiler options; you might
 want just to find out which files are out of date without changing them.
 
-   By giving arguments when you run `make', you can do any of these
+   By giving arguments when you run 'make', you can do any of these
 things and many others.
 
-   The exit status of `make' is always one of three values:
-`0'
-     The exit status is zero if `make' is successful.
-
-`2'
-     The exit status is two if `make' encounters any errors.  It will
+   The exit status of 'make' is always one of three values:
+'0'
+     The exit status is zero if 'make' is successful.
+'2'
+     The exit status is two if 'make' encounters any errors.  It will
      print messages describing the particular errors.
-
-`1'
-     The exit status is one if you use the `-q' flag and `make'
+'1'
+     The exit status is one if you use the '-q' flag and 'make'
      determines that some target is not already up to date.  *Note
      Instead of Executing Recipes: Instead of Execution.
 
@@ -6657,15 +6667,15 @@ File: make.info,  Node: Makefile Arguments,  Next: Goals,  Prev: Running,  Up: R
 9.1 Arguments to Specify the Makefile
 =====================================
 
-The way to specify the name of the makefile is with the `-f' or
-`--file' option (`--makefile' also works).  For example, `-f altmake'
-says to use the file `altmake' as the makefile.
+The way to specify the name of the makefile is with the '-f' or '--file'
+option ('--makefile' also works).  For example, '-f altmake' says to use
+the file 'altmake' as the makefile.
 
-   If you use the `-f' flag several times and follow each `-f' with an
+   If you use the '-f' flag several times and follow each '-f' with an
 argument, all the specified files are used jointly as makefiles.
 
-   If you do not use the `-f' or `--file' flag, the default is to try
-`GNUmakefile', `makefile', and `Makefile', in that order, and use the
+   If you do not use the '-f' or '--file' flag, the default is to try
+'GNUmakefile', 'makefile', and 'Makefile', in that order, and use the
 first of these three which exists or can be made (*note Writing
 Makefiles: Makefiles.).
 
@@ -6675,7 +6685,7 @@ File: make.info,  Node: Goals,  Next: Instead of Execution,  Prev: Makefile Argu
 9.2 Arguments to Specify the Goals
 ==================================
 
-The "goals" are the targets that `make' should strive ultimately to
+The "goals" are the targets that 'make' should strive ultimately to
 update.  Other targets are updated as well if they appear as
 prerequisites of goals, or prerequisites of prerequisites of goals, etc.
 
@@ -6685,28 +6695,28 @@ usually written so that the first target is for compiling the entire
 program or programs they describe.  If the first rule in the makefile
 has several targets, only the first target in the rule becomes the
 default goal, not the whole list.  You can manage the selection of the
-default goal from within your makefile using the `.DEFAULT_GOAL'
+default goal from within your makefile using the '.DEFAULT_GOAL'
 variable (*note Other Special Variables: Special Variables.).
 
    You can also specify a different goal or goals with command line
-arguments to `make'.  Use the name of the goal as an argument.  If you
-specify several goals, `make' processes each of them in turn, in the
+arguments to 'make'.  Use the name of the goal as an argument.  If you
+specify several goals, 'make' processes each of them in turn, in the
 order you name them.
 
    Any target in the makefile may be specified as a goal (unless it
-starts with `-' or contains an `=', in which case it will be parsed as
-a switch or variable definition, respectively).  Even targets not in
-the makefile may be specified, if `make' can find implicit rules that
-say how to make them.
+starts with '-' or contains an '=', in which case it will be parsed as a
+switch or variable definition, respectively).  Even targets not in the
+makefile may be specified, if 'make' can find implicit rules that say
+how to make them.
 
-   `Make' will set the special variable `MAKECMDGOALS' to the list of
+   'Make' will set the special variable 'MAKECMDGOALS' to the list of
 goals you specified on the command line.  If no goals were given on the
-command line, this variable is empty.  Note that this variable should
-be used only in special circumstances.
+command line, this variable is empty.  Note that this variable should be
+used only in special circumstances.
 
-   An example of appropriate use is to avoid including `.d' files
-during `clean' rules (*note Automatic Prerequisites::), so `make' won't
-create them only to immediately remove them again:
+   An example of appropriate use is to avoid including '.d' files during
+'clean' rules (*note Automatic Prerequisites::), so 'make' won't create
+them only to immediately remove them again:
 
      sources = foo.c bar.c
 
@@ -6722,68 +6732,68 @@ containing several programs, with a makefile that starts like this:
      .PHONY: all
      all: size nm ld ar as
 
-   If you are working on the program `size', you might want to say
-`make size' so that only the files of that program are recompiled.
+   If you are working on the program 'size', you might want to say 'make size'
+so that only the files of that program are recompiled.
 
    Another use of specifying a goal is to make files that are not
-normally made.  For example, there may be a file of debugging output,
-or a version of the program that is compiled specially for testing,
-which has a rule in the makefile but is not a prerequisite of the
-default goal.
+normally made.  For example, there may be a file of debugging output, or
+a version of the program that is compiled specially for testing, which
+has a rule in the makefile but is not a prerequisite of the default
+goal.
 
    Another use of specifying a goal is to run the recipe associated with
 a phony target (*note Phony Targets::) or empty target (*note Empty
 Target Files to Record Events: Empty Targets.).  Many makefiles contain
-a phony target named `clean' which deletes everything except source
+a phony target named 'clean' which deletes everything except source
 files.  Naturally, this is done only if you request it explicitly with
-`make clean'.  Following is a list of typical phony and empty target
+'make clean'.  Following is a list of typical phony and empty target
 names.  *Note Standard Targets::, for a detailed list of all the
 standard target names which GNU software packages use.
 
-`all'
+'all'
      Make all the top-level targets the makefile knows about.
 
-`clean'
-     Delete all files that are normally created by running `make'.
+'clean'
+     Delete all files that are normally created by running 'make'.
 
-`mostlyclean'
-     Like `clean', but may refrain from deleting a few files that people
-     normally don't want to recompile.  For example, the `mostlyclean'
-     target for GCC does not delete `libgcc.a', because recompiling it
+'mostlyclean'
+     Like 'clean', but may refrain from deleting a few files that people
+     normally don't want to recompile.  For example, the 'mostlyclean'
+     target for GCC does not delete 'libgcc.a', because recompiling it
      is rarely necessary and takes a lot of time.
 
-`distclean'
-`realclean'
-`clobber'
+'distclean'
+'realclean'
+'clobber'
      Any of these targets might be defined to delete _more_ files than
-     `clean' does.  For example, this would delete configuration files
+     'clean' does.  For example, this would delete configuration files
      or links that you would normally create as preparation for
      compilation, even if the makefile itself cannot create these files.
 
-`install'
+'install'
      Copy the executable file into a directory that users typically
      search for commands; copy any auxiliary files that the executable
      uses into the directories where it will look for them.
 
-`print'
+'print'
      Print listings of the source files that have changed.
 
-`tar'
+'tar'
      Create a tar file of the source files.
 
-`shar'
+'shar'
      Create a shell archive (shar file) of the source files.
 
-`dist'
+'dist'
      Create a distribution file of the source files.  This might be a
      tar file, or a shar file, or a compressed version of one of the
      above, or even more than one of the above.
 
-`TAGS'
+'TAGS'
      Update a tags table for this program.
 
-`check'
-`test'
+'check'
+'test'
      Perform self tests on the program this makefile builds.
 
 \1f
@@ -6792,88 +6802,92 @@ File: make.info,  Node: Instead of Execution,  Next: Avoiding Compilation,  Prev
 9.3 Instead of Executing Recipes
 ================================
 
-The makefile tells `make' how to tell whether a target is up to date,
+The makefile tells 'make' how to tell whether a target is up to date,
 and how to update each target.  But updating the targets is not always
-what you want.  Certain options specify other activities for `make'.
+what you want.  Certain options specify other activities for 'make'.
+
+'-n'
+'--just-print'
+'--dry-run'
+'--recon'
 
-`-n'
-`--just-print'
-`--dry-run'
-`--recon'
-     "No-op".  Causes `make' to print the recipes that are needed to
+     "No-op".  Causes 'make' to print the recipes that are needed to
      make the targets up to date, but not actually execute them.  Note
      that some recipes are still executed, even with this flag (*note
-     How the `MAKE' Variable Works: MAKE Variable.).  Also any recipes
+     How the 'MAKE' Variable Works: MAKE Variable.).  Also any recipes
      needed to update included makefiles are still executed (*note How
      Makefiles Are Remade: Remaking Makefiles.).
 
-`-t'
-`--touch'
+'-t'
+'--touch'
+
      "Touch".  Marks targets as up to date without actually changing
-     them.  In other words, `make' pretends to update the targets but
+     them.  In other words, 'make' pretends to update the targets but
      does not really change their contents; instead only their modified
      times are updated.
 
-`-q'
-`--question'
+'-q'
+'--question'
+
      "Question".  Silently check whether the targets are up to date, but
      do not execute recipes; the exit code shows whether any updates are
      needed.
 
-`-W FILE'
-`--what-if=FILE'
-`--assume-new=FILE'
-`--new-file=FILE'
-     "What if".  Each `-W' flag is followed by a file name.  The given
-     files' modification times are recorded by `make' as being the
+'-W FILE'
+'--what-if=FILE'
+'--assume-new=FILE'
+'--new-file=FILE'
+
+     "What if".  Each '-W' flag is followed by a file name.  The given
+     files' modification times are recorded by 'make' as being the
      present time, although the actual modification times remain the
-     same.  You can use the `-W' flag in conjunction with the `-n' flag
+     same.  You can use the '-W' flag in conjunction with the '-n' flag
      to see what would happen if you were to modify specific files.
 
-   With the `-n' flag, `make' prints the recipe that it would normally
+   With the '-n' flag, 'make' prints the recipe that it would normally
 execute but usually does not execute it.
 
-   With the `-t' flag, `make' ignores the recipes in the rules and uses
-(in effect) the command `touch' for each target that needs to be
-remade.  The `touch' command is also printed, unless `-s' or `.SILENT'
-is used.  For speed, `make' does not actually invoke the program
-`touch'.  It does the work directly.
+   With the '-t' flag, 'make' ignores the recipes in the rules and uses
+(in effect) the command 'touch' for each target that needs to be remade.
+The 'touch' command is also printed, unless '-s' or '.SILENT' is used.
+For speed, 'make' does not actually invoke the program 'touch'.  It does
+the work directly.
 
-   With the `-q' flag, `make' prints nothing and executes no recipes,
+   With the '-q' flag, 'make' prints nothing and executes no recipes,
 but the exit status code it returns is zero if and only if the targets
 to be considered are already up to date.  If the exit status is one,
-then some updating needs to be done.  If `make' encounters an error,
-the exit status is two, so you can distinguish an error from a target
-that is not up to date.
+then some updating needs to be done.  If 'make' encounters an error, the
+exit status is two, so you can distinguish an error from a target that
+is not up to date.
 
    It is an error to use more than one of these three flags in the same
-invocation of `make'.
+invocation of 'make'.
 
-   The `-n', `-t', and `-q' options do not affect recipe lines that
-begin with `+' characters or contain the strings `$(MAKE)' or
-`${MAKE}'.  Note that only the line containing the `+' character or the
-strings `$(MAKE)' or `${MAKE}' is run regardless of these options.
-Other lines in the same rule are not run unless they too begin with `+'
-or contain `$(MAKE)' or `${MAKE}' (*Note How the `MAKE' Variable Works:
-MAKE Variable.)
+   The '-n', '-t', and '-q' options do not affect recipe lines that
+begin with '+' characters or contain the strings '$(MAKE)' or '${MAKE}'.
+Note that only the line containing the '+' character or the strings
+'$(MAKE)' or '${MAKE}' is run regardless of these options.  Other lines
+in the same rule are not run unless they too begin with '+' or contain
+'$(MAKE)' or '${MAKE}' (*Note How the 'MAKE' Variable Works: MAKE
+Variable.)
 
-   The `-t' flag prevents phony targets (*note Phony Targets::) from
-being updated, unless there are recipe lines beginning with `+' or
-containing `$(MAKE)' or `${MAKE}'.
+   The '-t' flag prevents phony targets (*note Phony Targets::) from
+being updated, unless there are recipe lines beginning with '+' or
+containing '$(MAKE)' or '${MAKE}'.
 
-   The `-W' flag provides two features:
+   The '-W' flag provides two features:
 
-   * If you also use the `-n' or `-q' flag, you can see what `make'
+   * If you also use the '-n' or '-q' flag, you can see what 'make'
      would do if you were to modify some files.
 
-   * Without the `-n' or `-q' flag, when `make' is actually executing
-     recipes, the `-W' flag can direct `make' to act as if some files
+   * Without the '-n' or '-q' flag, when 'make' is actually executing
+     recipes, the '-W' flag can direct 'make' to act as if some files
      had been modified, without actually running the recipes for those
      files.
 
-   Note that the options `-p' and `-v' allow you to obtain other
-information about `make' or about the makefiles in use (*note Summary
-of Options: Options Summary.).
+   Note that the options '-p' and '-v' allow you to obtain other
+information about 'make' or about the makefiles in use (*note Summary of
+Options: Options Summary.).
 
 \1f
 File: make.info,  Node: Avoiding Compilation,  Next: Overriding,  Prev: Instead of Execution,  Up: Running
@@ -6884,39 +6898,39 @@ File: make.info,  Node: Avoiding Compilation,  Next: Overriding,  Prev: Instead
 Sometimes you may have changed a source file but you do not want to
 recompile all the files that depend on it.  For example, suppose you add
 a macro or a declaration to a header file that many other files depend
-on.  Being conservative, `make' assumes that any change in the header
+on.  Being conservative, 'make' assumes that any change in the header
 file requires recompilation of all dependent files, but you know that
 they do not need to be recompiled and you would rather not waste the
 time waiting for them to compile.
 
    If you anticipate the problem before changing the header file, you
-can use the `-t' flag.  This flag tells `make' not to run the recipes
-in the rules, but rather to mark the target up to date by changing its
+can use the '-t' flag.  This flag tells 'make' not to run the recipes in
+the rules, but rather to mark the target up to date by changing its
 last-modification date.  You would follow this procedure:
 
-  1. Use the command `make' to recompile the source files that really
+  1. Use the command 'make' to recompile the source files that really
      need recompilation, ensuring that the object files are up-to-date
      before you begin.
 
   2. Make the changes in the header files.
 
-  3. Use the command `make -t' to mark all the object files as up to
-     date.  The next time you run `make', the changes in the header
+  3. Use the command 'make -t' to mark all the object files as up to
+     date.  The next time you run 'make', the changes in the header
      files will not cause any recompilation.
 
    If you have already changed the header file at a time when some files
 do need recompilation, it is too late to do this.  Instead, you can use
-the `-o FILE' flag, which marks a specified file as "old" (*note
-Summary of Options: Options Summary.).  This means that the file itself
-will not be remade, and nothing else will be remade on its account.
-Follow this procedure:
+the '-o FILE' flag, which marks a specified file as "old" (*note Summary
+of Options: Options Summary.).  This means that the file itself will not
+be remade, and nothing else will be remade on its account.  Follow this
+procedure:
 
   1. Recompile the source files that need compilation for reasons
-     independent of the particular header file, with `make -o
+     independent of the particular header file, with 'make -o
      HEADERFILE'.  If several header files are involved, use a separate
-     `-o' option for each header file.
+     '-o' option for each header file.
 
-  2. Touch all the object files with `make -t'.
+  2. Touch all the object files with 'make -t'.
 
 \1f
 File: make.info,  Node: Overriding,  Next: Testing,  Prev: Avoiding Compilation,  Up: Running
@@ -6924,7 +6938,7 @@ File: make.info,  Node: Overriding,  Next: Testing,  Prev: Avoiding Compilation,
 9.5 Overriding Variables
 ========================
 
-An argument that contains `=' specifies the value of a variable: `V=X'
+An argument that contains '=' specifies the value of a variable: 'V=X'
 sets the value of the variable V to X.  If you specify a value in this
 way, all ordinary assignments of the same variable in the makefile are
 ignored; we say they have been "overridden" by the command line
@@ -6932,24 +6946,24 @@ argument.
 
    The most common way to use this facility is to pass extra flags to
 compilers.  For example, in a properly written makefile, the variable
-`CFLAGS' is included in each recipe that runs the C compiler, so a file
-`foo.c' would be compiled something like this:
+'CFLAGS' is included in each recipe that runs the C compiler, so a file
+'foo.c' would be compiled something like this:
 
      cc -c $(CFLAGS) foo.c
 
-   Thus, whatever value you set for `CFLAGS' affects each compilation
+   Thus, whatever value you set for 'CFLAGS' affects each compilation
 that occurs.  The makefile probably specifies the usual value for
-`CFLAGS', like this:
+'CFLAGS', like this:
 
      CFLAGS=-g
 
-   Each time you run `make', you can override this value if you wish.
-For example, if you say `make CFLAGS='-g -O'', each C compilation will
-be done with `cc -c -g -O'.  (This also illustrates how you can use
+   Each time you run 'make', you can override this value if you wish.
+For example, if you say 'make CFLAGS='-g -O'', each C compilation will
+be done with 'cc -c -g -O'.  (This also illustrates how you can use
 quoting in the shell to enclose spaces and other special characters in
 the value of a variable when you override it.)
 
-   The variable `CFLAGS' is only one of many standard variables that
+   The variable 'CFLAGS' is only one of many standard variables that
 exist just so that you can change them this way.  *Note Variables Used
 by Implicit Rules: Implicit Variables, for a complete list.
 
@@ -6960,15 +6974,15 @@ the makefile works by changing the variables.
    When you override a variable with a command line argument, you can
 define either a recursively-expanded variable or a simply-expanded
 variable.  The examples shown above make a recursively-expanded
-variable; to make a simply-expanded variable, write `:=' or `::='
-instead of `='.  But, unless you want to include a variable reference
-or function call in the _value_ that you specify, it makes no
-difference which kind of variable you create.
+variable; to make a simply-expanded variable, write ':=' or '::='
+instead of '='.  But, unless you want to include a variable reference or
+function call in the _value_ that you specify, it makes no difference
+which kind of variable you create.
 
    There is one way that the makefile can change a variable that you
-have overridden.  This is to use the `override' directive, which is a
-line that looks like this: `override VARIABLE = VALUE' (*note The
-`override' Directive: Override Directive.).
+have overridden.  This is to use the 'override' directive, which is a
+line that looks like this: 'override VARIABLE = VALUE' (*note The
+'override' Directive: Override Directive.).
 
 \1f
 File: make.info,  Node: Testing,  Next: Options Summary,  Prev: Overriding,  Up: Running
@@ -6976,33 +6990,327 @@ File: make.info,  Node: Testing,  Next: Options Summary,  Prev: Overriding,  Up:
 9.6 Testing the Compilation of a Program
 ========================================
 
-Normally, when an error happens in executing a shell command, `make'
+Normally, when an error happens in executing a shell command, 'make'
 gives up immediately, returning a nonzero status.  No further recipes
 are executed for any target.  The error implies that the goal cannot be
-correctly remade, and `make' reports this as soon as it knows.
+correctly remade, and 'make' reports this as soon as it knows.
 
    When you are compiling a program that you have just changed, this is
-not what you want.  Instead, you would rather that `make' try compiling
+not what you want.  Instead, you would rather that 'make' try compiling
 every file that can be tried, to show you as many compilation errors as
 possible.
 
-   On these occasions, you should use the `-k' or `--keep-going' flag.
-This tells `make' to continue to consider the other prerequisites of
-the pending targets, remaking them if necessary, before it gives up and
+   On these occasions, you should use the '-k' or '--keep-going' flag.
+This tells 'make' to continue to consider the other prerequisites of the
+pending targets, remaking them if necessary, before it gives up and
 returns nonzero status.  For example, after an error in compiling one
-object file, `make -k' will continue compiling other object files even
+object file, 'make -k' will continue compiling other object files even
 though it already knows that linking them will be impossible.  In
-addition to continuing after failed shell commands, `make -k' will
-continue as much as possible after discovering that it does not know
-how to make a target or prerequisite file.  This will always cause an
-error message, but without `-k', it is a fatal error (*note Summary of
+addition to continuing after failed shell commands, 'make -k' will
+continue as much as possible after discovering that it does not know how
+to make a target or prerequisite file.  This will always cause an error
+message, but without '-k', it is a fatal error (*note Summary of
 Options: Options Summary.).
 
-   The usual behavior of `make' assumes that your purpose is to get the
-goals up to date; once `make' learns that this is impossible, it might
-as well report the failure immediately.  The `-k' flag says that the
+   The usual behavior of 'make' assumes that your purpose is to get the
+goals up to date; once 'make' learns that this is impossible, it might
+as well report the failure immediately.  The '-k' flag says that the
 real purpose is to test as much as possible of the changes made in the
 program, perhaps to find several independent problems so that you can
 correct them all before the next attempt to compile.  This is why Emacs'
-`M-x compile' command passes the `-k' flag by default.
+'M-x compile' command passes the '-k' flag by default.
+
+\1f
+File: make.info,  Node: Options Summary,  Prev: Testing,  Up: Running
+
+9.7 Summary of Options
+======================
+
+Here is a table of all the options 'make' understands:
+
+'-b'
+'-m'
+     These options are ignored for compatibility with other versions of
+     'make'.
+
+'-B'
+'--always-make'
+     Consider all targets out-of-date.  GNU 'make' proceeds to consider
+     targets and their prerequisites using the normal algorithms;
+     however, all targets so considered are always remade regardless of
+     the status of their prerequisites.  To avoid infinite recursion, if
+     'MAKE_RESTARTS' (*note Other Special Variables: Special Variables.)
+     is set to a number greater than 0 this option is disabled when
+     considering whether to remake makefiles (*note How Makefiles Are
+     Remade: Remaking Makefiles.).
+
+'-C DIR'
+'--directory=DIR'
+     Change to directory DIR before reading the makefiles.  If multiple
+     '-C' options are specified, each is interpreted relative to the
+     previous one: '-C / -C etc' is equivalent to '-C /etc'.  This is
+     typically used with recursive invocations of 'make' (*note
+     Recursive Use of 'make': Recursion.).
+
+'-d'
+
+     Print debugging information in addition to normal processing.  The
+     debugging information says which files are being considered for
+     remaking, which file-times are being compared and with what
+     results, which files actually need to be remade, which implicit
+     rules are considered and which are applied--everything interesting
+     about how 'make' decides what to do.  The '-d' option is equivalent
+     to '--debug=a' (see below).
+
+'--debug[=OPTIONS]'
+
+     Print debugging information in addition to normal processing.
+     Various levels and types of output can be chosen.  With no
+     arguments, print the "basic" level of debugging.  Possible
+     arguments are below; only the first character is considered, and
+     values must be comma- or space-separated.
+
+     'a (all)'
+          All types of debugging output are enabled.  This is equivalent
+          to using '-d'.
+
+     'b (basic)'
+          Basic debugging prints each target that was found to be
+          out-of-date, and whether the build was successful or not.
+
+     'v (verbose)'
+          A level above 'basic'; includes messages about which makefiles
+          were parsed, prerequisites that did not need to be rebuilt,
+          etc.  This option also enables 'basic' messages.
+
+     'i (implicit)'
+          Prints messages describing the implicit rule searches for each
+          target.  This option also enables 'basic' messages.
+
+     'j (jobs)'
+          Prints messages giving details on the invocation of specific
+          sub-commands.
+
+     'm (makefile)'
+          By default, the above messages are not enabled while trying to
+          remake the makefiles.  This option enables messages while
+          rebuilding makefiles, too.  Note that the 'all' option does
+          enable this option.  This option also enables 'basic'
+          messages.
+
+     'n (none)'
+          Disable all debugging currently enabled.  If additional
+          debugging flags are encountered after this they will still
+          take effect.
+
+'-e'
+'--environment-overrides'
+     Give variables taken from the environment precedence over variables
+     from makefiles.  *Note Variables from the Environment: Environment.
+
+'--eval=STRING'
+
+     Evaluate STRING as makefile syntax.  This is a command-line version
+     of the 'eval' function (*note Eval Function::).  The evaluation is
+     performed after the default rules and variables have been defined,
+     but before any makefiles are read.
+
+'-f FILE'
+'--file=FILE'
+'--makefile=FILE'
+     Read the file named FILE as a makefile.  *Note Writing Makefiles:
+     Makefiles.
+
+'-h'
+'--help'
+
+     Remind you of the options that 'make' understands and then exit.
+
+'-i'
+'--ignore-errors'
+     Ignore all errors in recipes executed to remake files.  *Note
+     Errors in Recipes: Errors.
+
+'-I DIR'
+'--include-dir=DIR'
+     Specifies a directory DIR to search for included makefiles.  *Note
+     Including Other Makefiles: Include.  If several '-I' options are
+     used to specify several directories, the directories are searched
+     in the order specified.
+
+'-j [JOBS]'
+'--jobs[=JOBS]'
+     Specifies the number of recipes (jobs) to run simultaneously.  With
+     no argument, 'make' runs as many recipes simultaneously as
+     possible.  If there is more than one '-j' option, the last one is
+     effective.  *Note Parallel Execution: Parallel, for more
+     information on how recipes are run.  Note that this option is
+     ignored on MS-DOS.
+
+'-k'
+'--keep-going'
+     Continue as much as possible after an error.  While the target that
+     failed, and those that depend on it, cannot be remade, the other
+     prerequisites of these targets can be processed all the same.
+     *Note Testing the Compilation of a Program: Testing.
+
+'-l [LOAD]'
+'--load-average[=LOAD]'
+'--max-load[=LOAD]'
+     Specifies that no new recipes should be started if there are other
+     recipes running and the load average is at least LOAD (a
+     floating-point number).  With no argument, removes a previous load
+     limit.  *Note Parallel Execution: Parallel.
+
+'-L'
+'--check-symlink-times'
+     On systems that support symbolic links, this option causes 'make'
+     to consider the timestamps on any symbolic links in addition to the
+     timestamp on the file referenced by those links.  When this option
+     is provided, the most recent timestamp among the file and the
+     symbolic links is taken as the modification time for this target
+     file.
+
+'-n'
+'--just-print'
+'--dry-run'
+'--recon'
+
+     Print the recipe that would be executed, but do not execute it
+     (except in certain circumstances).  *Note Instead of Executing
+     Recipes: Instead of Execution.
+
+'-o FILE'
+'--old-file=FILE'
+'--assume-old=FILE'
+     Do not remake the file FILE even if it is older than its
+     prerequisites, and do not remake anything on account of changes in
+     FILE.  Essentially the file is treated as very old and its rules
+     are ignored.  *Note Avoiding Recompilation of Some Files: Avoiding
+     Compilation.
+
+'-O[TYPE]'
+'--output-sync[=TYPE]'
+     Ensure that the complete output from each recipe is printed in one
+     uninterrupted sequence.  This option is only useful when using the
+     '--jobs' option to run multiple recipes simultaneously (*note
+     Parallel Execution: Parallel.) Without this option output will be
+     displayed as it is generated by the recipes.
+
+     With no type or the type 'target', output from the entire recipe of
+     each target is grouped together.  With the type 'line', output from
+     each line in the recipe is grouped together.  With the type
+     'recurse', the output from an entire recursive make is grouped
+     together.  With the type 'none', no output synchronization is
+     performed.  *Note Output During Parallel Execution: Parallel
+     Output.
+
+'-p'
+'--print-data-base'
+     Print the data base (rules and variable values) that results from
+     reading the makefiles; then execute as usual or as otherwise
+     specified.  This also prints the version information given by the
+     '-v' switch (see below).  To print the data base without trying to
+     remake any files, use 'make -qp'.  To print the data base of
+     predefined rules and variables, use 'make -p -f /dev/null'.  The
+     data base output contains file name and line number information for
+     recipe and variable definitions, so it can be a useful debugging
+     tool in complex environments.
+
+'-q'
+'--question'
+     "Question mode".  Do not run any recipes, or print anything; just
+     return an exit status that is zero if the specified targets are
+     already up to date, one if any remaking is required, or two if an
+     error is encountered.  *Note Instead of Executing Recipes: Instead
+     of Execution.
+
+'-r'
+'--no-builtin-rules'
+     Eliminate use of the built-in implicit rules (*note Using Implicit
+     Rules: Implicit Rules.).  You can still define your own by writing
+     pattern rules (*note Defining and Redefining Pattern Rules: Pattern
+     Rules.).  The '-r' option also clears out the default list of
+     suffixes for suffix rules (*note Old-Fashioned Suffix Rules: Suffix
+     Rules.).  But you can still define your own suffixes with a rule
+     for '.SUFFIXES', and then define your own suffix rules.  Note that
+     only _rules_ are affected by the '-r' option; default variables
+     remain in effect (*note Variables Used by Implicit Rules: Implicit
+     Variables.); see the '-R' option below.
+
+'-R'
+'--no-builtin-variables'
+     Eliminate use of the built-in rule-specific variables (*note
+     Variables Used by Implicit Rules: Implicit Variables.).  You can
+     still define your own, of course.  The '-R' option also
+     automatically enables the '-r' option (see above), since it doesn't
+     make sense to have implicit rules without any definitions for the
+     variables that they use.
+
+'-s'
+'--silent'
+'--quiet'
+
+     Silent operation; do not print the recipes as they are executed.
+     *Note Recipe Echoing: Echoing.
+
+'-S'
+'--no-keep-going'
+'--stop'
+
+     Cancel the effect of the '-k' option.  This is never necessary
+     except in a recursive 'make' where '-k' might be inherited from the
+     top-level 'make' via 'MAKEFLAGS' (*note Recursive Use of 'make':
+     Recursion.) or if you set '-k' in 'MAKEFLAGS' in your environment.
+
+'-t'
+'--touch'
+
+     Touch files (mark them up to date without really changing them)
+     instead of running their recipes.  This is used to pretend that the
+     recipes were done, in order to fool future invocations of 'make'.
+     *Note Instead of Executing Recipes: Instead of Execution.
+
+'--trace'
+     Show tracing information for 'make' execution.  Prints the entire
+     recipe to be executed, even for recipes that are normally silent
+     (due to '.SILENT' or '@').  Also prints the makefile name and line
+     number where the recipe was defined, and information on why the
+     target is being rebuilt.
+
+'-v'
+'--version'
+     Print the version of the 'make' program plus a copyright, a list of
+     authors, and a notice that there is no warranty; then exit.
+
+'-w'
+'--print-directory'
+     Print a message containing the working directory both before and
+     after executing the makefile.  This may be useful for tracking down
+     errors from complicated nests of recursive 'make' commands.  *Note
+     Recursive Use of 'make': Recursion.  (In practice, you rarely need
+     to specify this option since 'make' does it for you; see *note The
+     '--print-directory' Option: -w Option.)
+
+'--no-print-directory'
+     Disable printing of the working directory under '-w'.  This option
+     is useful when '-w' is turned on automatically, but you do not want
+     to see the extra messages.  *Note The '--print-directory' Option:
+     -w Option.
+
+'-W FILE'
+'--what-if=FILE'
+'--new-file=FILE'
+'--assume-new=FILE'
+     Pretend that the target FILE has just been modified.  When used
+     with the '-n' flag, this shows you what would happen if you were to
+     modify that file.  Without '-n', it is almost the same as running a
+     'touch' command on the given file before running 'make', except
+     that the modification time is changed only in the imagination of
+     'make'.  *Note Instead of Executing Recipes: Instead of Execution.
+
+'--warn-undefined-variables'
+     Issue a warning message whenever 'make' sees a reference to an
+     undefined variable.  This can be helpful when you are trying to
+     debug makefiles which use variables in complex ways.
 
index af881aa390f25c8cc717b85be4ac452210bd38ce..c6229ffa1c882facabe38fd2f53d9cc0547017ff 100644 (file)
@@ -1,15 +1,15 @@
-This is make.info, produced by makeinfo version 4.13 from make.texi.
+This is make.info, produced by makeinfo version 5.2 from make.texi.
 
-This file documents the GNU `make' utility, which determines
-automatically which pieces of a large program need to be recompiled,
-and issues the commands to recompile them.
+This file documents the GNU 'make' utility, which determines
+automatically which pieces of a large program need to be recompiled, and
+issues the commands to recompile them.
 
-   This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
-Manual', for GNU `make' version 4.0.
+   This is Edition 0.73, last updated 5 October 2014, of 'The GNU Make
+Manual', for GNU 'make' version 4.1.
 
    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -22,301 +22,11 @@ Manual', for GNU `make' version 4.0.
      (a) The FSF's Back-Cover Text is: "You have the freedom to copy and
      modify this GNU manual.  Buying copies from the FSF supports it in
      developing GNU and promoting software freedom."
-
 INFO-DIR-SECTION Software development
 START-INFO-DIR-ENTRY
 * Make: (make).            Remake files automatically.
 END-INFO-DIR-ENTRY
 
-\1f
-File: make.info,  Node: Options Summary,  Prev: Testing,  Up: Running
-
-9.7 Summary of Options
-======================
-
-Here is a table of all the options `make' understands:
-
-`-b'
-`-m'
-     These options are ignored for compatibility with other versions of
-     `make'.
-
-`-B'
-`--always-make'
-     Consider all targets out-of-date.  GNU `make' proceeds to consider
-     targets and their prerequisites using the normal algorithms;
-     however, all targets so considered are always remade regardless of
-     the status of their prerequisites.  To avoid infinite recursion, if
-     `MAKE_RESTARTS' (*note Other Special Variables: Special
-     Variables.) is set to a number greater than 0 this option is
-     disabled when considering whether to remake makefiles (*note How
-     Makefiles Are Remade: Remaking Makefiles.).
-
-`-C DIR'
-`--directory=DIR'
-     Change to directory DIR before reading the makefiles.  If multiple
-     `-C' options are specified, each is interpreted relative to the
-     previous one: `-C / -C etc' is equivalent to `-C /etc'.  This is
-     typically used with recursive invocations of `make' (*note
-     Recursive Use of `make': Recursion.).
-
-`-d'
-     Print debugging information in addition to normal processing.  The
-     debugging information says which files are being considered for
-     remaking, which file-times are being compared and with what
-     results, which files actually need to be remade, which implicit
-     rules are considered and which are applied--everything interesting
-     about how `make' decides what to do.  The `-d' option is
-     equivalent to `--debug=a' (see below).
-
-`--debug[=OPTIONS]'
-     Print debugging information in addition to normal processing.
-     Various levels and types of output can be chosen.  With no
-     arguments, print the "basic" level of debugging.  Possible
-     arguments are below; only the first character is considered, and
-     values must be comma- or space-separated.
-
-    `a (all)'
-          All types of debugging output are enabled.  This is
-          equivalent to using `-d'.
-
-    `b (basic)'
-          Basic debugging prints each target that was found to be
-          out-of-date, and whether the build was successful or not.
-
-    `v (verbose)'
-          A level above `basic'; includes messages about which
-          makefiles were parsed, prerequisites that did not need to be
-          rebuilt, etc.  This option also enables `basic' messages.
-
-    `i (implicit)'
-          Prints messages describing the implicit rule searches for
-          each target.  This option also enables `basic' messages.
-
-    `j (jobs)'
-          Prints messages giving details on the invocation of specific
-          sub-commands.
-
-    `m (makefile)'
-          By default, the above messages are not enabled while trying
-          to remake the makefiles.  This option enables messages while
-          rebuilding makefiles, too.  Note that the `all' option does
-          enable this option.  This option also enables `basic'
-          messages.
-
-    `n (none)'
-          Disable all debugging currently enabled.  If additional
-          debugging flags are encountered after this they will still
-          take effect.
-
-`-e'
-`--environment-overrides'
-     Give variables taken from the environment precedence over
-     variables from makefiles.  *Note Variables from the Environment:
-     Environment.
-
-`--eval=STRING'
-     Evaluate STRING as makefile syntax.  This is a command-line
-     version of the `eval' function (*note Eval Function::).  The
-     evaluation is performed after the default rules and variables have
-     been defined, but before any makefiles are read.
-
-`-f FILE'
-`--file=FILE'
-`--makefile=FILE'
-     Read the file named FILE as a makefile.  *Note Writing Makefiles:
-     Makefiles.
-
-`-h'
-`--help'
-     Remind you of the options that `make' understands and then exit.
-
-`-i'
-`--ignore-errors'
-     Ignore all errors in recipes executed to remake files.  *Note
-     Errors in Recipes: Errors.
-
-`-I DIR'
-`--include-dir=DIR'
-     Specifies a directory DIR to search for included makefiles.  *Note
-     Including Other Makefiles: Include.  If several `-I' options are
-     used to specify several directories, the directories are searched
-     in the order specified.
-
-`-j [JOBS]'
-`--jobs[=JOBS]'
-     Specifies the number of recipes (jobs) to run simultaneously.
-     With no argument, `make' runs as many recipes simultaneously as
-     possible.  If there is more than one `-j' option, the last one is
-     effective.  *Note Parallel Execution: Parallel, for more
-     information on how recipes are run.  Note that this option is
-     ignored on MS-DOS.
-
-`-k'
-`--keep-going'
-     Continue as much as possible after an error.  While the target that
-     failed, and those that depend on it, cannot be remade, the other
-     prerequisites of these targets can be processed all the same.
-     *Note Testing the Compilation of a Program: Testing.
-
-`-l [LOAD]'
-`--load-average[=LOAD]'
-`--max-load[=LOAD]'
-     Specifies that no new recipes should be started if there are other
-     recipes running and the load average is at least LOAD (a
-     floating-point number).  With no argument, removes a previous load
-     limit.  *Note Parallel Execution: Parallel.
-
-`-L'
-`--check-symlink-times'
-     On systems that support symbolic links, this option causes `make'
-     to consider the timestamps on any symbolic links in addition to the
-     timestamp on the file referenced by those links.  When this option
-     is provided, the most recent timestamp among the file and the
-     symbolic links is taken as the modification time for this target
-     file.
-
-`-n'
-`--just-print'
-`--dry-run'
-`--recon'
-     Print the recipe that would be executed, but do not execute it
-     (except in certain circumstances).  *Note Instead of Executing
-     Recipes: Instead of Execution.
-
-`-o FILE'
-`--old-file=FILE'
-`--assume-old=FILE'
-     Do not remake the file FILE even if it is older than its
-     prerequisites, and do not remake anything on account of changes in
-     FILE.  Essentially the file is treated as very old and its rules
-     are ignored.  *Note Avoiding Recompilation of Some Files: Avoiding
-     Compilation.
-
-`-O[TYPE]'
-`--output-sync[=TYPE]'
-     Ensure that the complete output from each recipe is printed in one
-     uninterrupted sequence.  This option is only useful when using the
-     `--jobs' option to run multiple recipes simultaneously (*note
-     Parallel Execution: Parallel.)  Without this option output will be
-     displayed as it is generated by the recipes.
-
-     With no type or the type `target', output from the entire recipe
-     of each target is grouped together.  With the type `line', output
-     from each line in the recipe is grouped together.  With the type
-     `recurse', the output from an entire recursive make is grouped
-     together.  With the type `none', no output synchronization is
-     performed.  *Note Output During Parallel Execution: Parallel
-     Output.
-
-`-p'
-`--print-data-base'
-     Print the data base (rules and variable values) that results from
-     reading the makefiles; then execute as usual or as otherwise
-     specified.  This also prints the version information given by the
-     `-v' switch (see below).  To print the data base without trying to
-     remake any files, use `make -qp'.  To print the data base of
-     predefined rules and variables, use `make -p -f /dev/null'.  The
-     data base output contains file name and line number information for
-     recipe and variable definitions, so it can be a useful debugging
-     tool in complex environments.
-
-`-q'
-`--question'
-     "Question mode".  Do not run any recipes, or print anything; just
-     return an exit status that is zero if the specified targets are
-     already up to date, one if any remaking is required, or two if an
-     error is encountered.  *Note Instead of Executing Recipes: Instead
-     of Execution.
-
-`-r'
-`--no-builtin-rules'
-     Eliminate use of the built-in implicit rules (*note Using Implicit
-     Rules: Implicit Rules.).  You can still define your own by writing
-     pattern rules (*note Defining and Redefining Pattern Rules:
-     Pattern Rules.).  The `-r' option also clears out the default list
-     of suffixes for suffix rules (*note Old-Fashioned Suffix Rules:
-     Suffix Rules.).  But you can still define your own suffixes with a
-     rule for `.SUFFIXES', and then define your own suffix rules.  Note
-     that only _rules_ are affected by the `-r' option; default
-     variables remain in effect (*note Variables Used by Implicit
-     Rules: Implicit Variables.); see the `-R' option below.
-
-`-R'
-`--no-builtin-variables'
-     Eliminate use of the built-in rule-specific variables (*note
-     Variables Used by Implicit Rules: Implicit Variables.).  You can
-     still define your own, of course.  The `-R' option also
-     automatically enables the `-r' option (see above), since it
-     doesn't make sense to have implicit rules without any definitions
-     for the variables that they use.
-
-`-s'
-`--silent'
-`--quiet'
-     Silent operation; do not print the recipes as they are executed.
-     *Note Recipe Echoing: Echoing.
-
-`-S'
-`--no-keep-going'
-`--stop'
-     Cancel the effect of the `-k' option.  This is never necessary
-     except in a recursive `make' where `-k' might be inherited from
-     the top-level `make' via `MAKEFLAGS' (*note Recursive Use of
-     `make': Recursion.)  or if you set `-k' in `MAKEFLAGS' in your
-     environment.
-
-`-t'
-`--touch'
-     Touch files (mark them up to date without really changing them)
-     instead of running their recipes.  This is used to pretend that the
-     recipes were done, in order to fool future invocations of `make'.
-     *Note Instead of Executing Recipes: Instead of Execution.
-
-`--trace'
-     Show tracing information for `make' execution.  Prints the entire
-     recipe to be executed, even for recipes that are normally silent
-     (due to `.SILENT' or `@').  Also prints the makefile name and line
-     number where the recipe was defined, and information on why the
-     target is being rebuilt.
-
-`-v'
-`--version'
-     Print the version of the `make' program plus a copyright, a list
-     of authors, and a notice that there is no warranty; then exit.
-
-`-w'
-`--print-directory'
-     Print a message containing the working directory both before and
-     after executing the makefile.  This may be useful for tracking
-     down errors from complicated nests of recursive `make' commands.
-     *Note Recursive Use of `make': Recursion.  (In practice, you
-     rarely need to specify this option since `make' does it for you;
-     see *note The `--print-directory' Option: -w Option.)
-
-`--no-print-directory'
-     Disable printing of the working directory under `-w'.  This option
-     is useful when `-w' is turned on automatically, but you do not
-     want to see the extra messages.  *Note The `--print-directory'
-     Option: -w Option.
-
-`-W FILE'
-`--what-if=FILE'
-`--new-file=FILE'
-`--assume-new=FILE'
-     Pretend that the target FILE has just been modified.  When used
-     with the `-n' flag, this shows you what would happen if you were
-     to modify that file.  Without `-n', it is almost the same as
-     running a `touch' command on the given file before running `make',
-     except that the modification time is changed only in the
-     imagination of `make'.  *Note Instead of Executing Recipes:
-     Instead of Execution.
-
-`--warn-undefined-variables'
-     Issue a warning message whenever `make' sees a reference to an
-     undefined variable.  This can be helpful when you are trying to
-     debug makefiles which use variables in complex ways.
-
 \1f
 File: make.info,  Node: Implicit Rules,  Next: Archives,  Prev: Running,  Up: Top
 
@@ -325,22 +35,22 @@ File: make.info,  Node: Implicit Rules,  Next: Archives,  Prev: Running,  Up: To
 
 Certain standard ways of remaking target files are used very often.  For
 example, one customary way to make an object file is from a C source
-file using the C compiler, `cc'.
+file using the C compiler, 'cc'.
 
-   "Implicit rules" tell `make' how to use customary techniques so that
+   "Implicit rules" tell 'make' how to use customary techniques so that
 you do not have to specify them in detail when you want to use them.
 For example, there is an implicit rule for C compilation.  File names
 determine which implicit rules are run.  For example, C compilation
-typically takes a `.c' file and makes a `.o' file.  So `make' applies
+typically takes a '.c' file and makes a '.o' file.  So 'make' applies
 the implicit rule for C compilation when it sees this combination of
 file name endings.
 
-   A chain of implicit rules can apply in sequence; for example, `make'
-will remake a `.o' file from a `.y' file by way of a `.c' file.
+   A chain of implicit rules can apply in sequence; for example, 'make'
+will remake a '.o' file from a '.y' file by way of a '.c' file.
 
    The built-in implicit rules use several variables in their recipes so
 that, by changing the values of the variables, you can change the way
-the implicit rule works.  For example, the variable `CFLAGS' controls
+the implicit rule works.  For example, the variable 'CFLAGS' controls
 the flags given to the C compiler by the implicit rule for C
 compilation.
 
@@ -354,7 +64,7 @@ retained for compatibility.
 
 * Using Implicit::              How to use an existing implicit rule
                                   to get the recipes for updating a file.
-* Catalogue of Rules::          A list of built-in implicit rules.
+* Catalogue of Rules::          A list of built-in rules.
 * Implicit Variables::          How to change what predefined rules do.
 * Chained Rules::               How to use a chain of implicit rules.
 * Pattern Rules::               How to define new implicit rules.
@@ -370,68 +80,68 @@ File: make.info,  Node: Using Implicit,  Next: Catalogue of Rules,  Prev: Implic
 10.1 Using Implicit Rules
 =========================
 
-To allow `make' to find a customary method for updating a target file,
+To allow 'make' to find a customary method for updating a target file,
 all you have to do is refrain from specifying recipes yourself.  Either
-write a rule with no recipe, or don't write a rule at all.  Then `make'
-will figure out which implicit rule to use based on which kind of
-source file exists or can be made.
+write a rule with no recipe, or don't write a rule at all.  Then 'make'
+will figure out which implicit rule to use based on which kind of source
+file exists or can be made.
 
    For example, suppose the makefile looks like this:
 
      foo : foo.o bar.o
              cc -o foo foo.o bar.o $(CFLAGS) $(LDFLAGS)
 
-Because you mention `foo.o' but do not give a rule for it, `make' will
+Because you mention 'foo.o' but do not give a rule for it, 'make' will
 automatically look for an implicit rule that tells how to update it.
-This happens whether or not the file `foo.o' currently exists.
+This happens whether or not the file 'foo.o' currently exists.
 
    If an implicit rule is found, it can supply both a recipe and one or
 more prerequisites (the source files).  You would want to write a rule
-for `foo.o' with no recipe if you need to specify additional
+for 'foo.o' with no recipe if you need to specify additional
 prerequisites, such as header files, that the implicit rule cannot
 supply.
 
    Each implicit rule has a target pattern and prerequisite patterns.
 There may be many implicit rules with the same target pattern.  For
-example, numerous rules make `.o' files: one, from a `.c' file with the
-C compiler; another, from a `.p' file with the Pascal compiler; and so
-on.  The rule that actually applies is the one whose prerequisites
-exist or can be made.  So, if you have a file `foo.c', `make' will run
-the C compiler; otherwise, if you have a file `foo.p', `make' will run
-the Pascal compiler; and so on.
+example, numerous rules make '.o' files: one, from a '.c' file with the
+C compiler; another, from a '.p' file with the Pascal compiler; and so
+on.  The rule that actually applies is the one whose prerequisites exist
+or can be made.  So, if you have a file 'foo.c', 'make' will run the C
+compiler; otherwise, if you have a file 'foo.p', 'make' will run the
+Pascal compiler; and so on.
 
    Of course, when you write the makefile, you know which implicit rule
-you want `make' to use, and you know it will choose that one because you
+you want 'make' to use, and you know it will choose that one because you
 know which possible prerequisite files are supposed to exist.  *Note
-Catalogue of Implicit Rules: Catalogue of Rules, for a catalogue of all
+Catalogue of Built-In Rules: Catalogue of Rules, for a catalogue of all
 the predefined implicit rules.
 
-   Above, we said an implicit rule applies if the required
-prerequisites "exist or can be made".  A file "can be made" if it is
-mentioned explicitly in the makefile as a target or a prerequisite, or
-if an implicit rule can be recursively found for how to make it.  When
-an implicit prerequisite is the result of another implicit rule, we say
+   Above, we said an implicit rule applies if the required prerequisites
+"exist or can be made".  A file "can be made" if it is mentioned
+explicitly in the makefile as a target or a prerequisite, or if an
+implicit rule can be recursively found for how to make it.  When an
+implicit prerequisite is the result of another implicit rule, we say
 that "chaining" is occurring.  *Note Chains of Implicit Rules: Chained
 Rules.
 
-   In general, `make' searches for an implicit rule for each target, and
+   In general, 'make' searches for an implicit rule for each target, and
 for each double-colon rule, that has no recipe.  A file that is
 mentioned only as a prerequisite is considered a target whose rule
 specifies nothing, so implicit rule search happens for it.  *Note
-Implicit Rule Search Algorithm: Implicit Rule Search, for the details
-of how the search is done.
+Implicit Rule Search Algorithm: Implicit Rule Search, for the details of
+how the search is done.
 
    Note that explicit prerequisites do not influence implicit rule
 search.  For example, consider this explicit rule:
 
      foo.o: foo.p
 
-The prerequisite on `foo.p' does not necessarily mean that `make' will
-remake `foo.o' according to the implicit rule to make an object file, a
-`.o' file, from a Pascal source file, a `.p' file.  For example, if
-`foo.c' also exists, the implicit rule to make an object file from a C
+The prerequisite on 'foo.p' does not necessarily mean that 'make' will
+remake 'foo.o' according to the implicit rule to make an object file, a
+'.o' file, from a Pascal source file, a '.p' file.  For example, if
+'foo.c' also exists, the implicit rule to make an object file from a C
 source file is used instead, because it appears before the Pascal rule
-in the list of predefined implicit rules (*note Catalogue of Implicit
+in the list of predefined implicit rules (*note Catalogue of Built-In
 Rules: Catalogue of Rules.).
 
    If you do not want an implicit rule to be used for a target that has
@@ -441,30 +151,30 @@ semicolon (*note Defining Empty Recipes: Empty Recipes.).
 \1f
 File: make.info,  Node: Catalogue of Rules,  Next: Implicit Variables,  Prev: Using Implicit,  Up: Implicit Rules
 
-10.2 Catalogue of Implicit Rules
+10.2 Catalogue of Built-In Rules
 ================================
 
 Here is a catalogue of predefined implicit rules which are always
 available unless the makefile explicitly overrides or cancels them.
 *Note Canceling Implicit Rules: Canceling Rules, for information on
-canceling or overriding an implicit rule.  The `-r' or
-`--no-builtin-rules' option cancels all predefined rules.
+canceling or overriding an implicit rule.  The '-r' or
+'--no-builtin-rules' option cancels all predefined rules.
 
    This manual only documents the default rules available on POSIX-based
-operating systems.  Other operating systems, such as VMS, Windows,
-OS/2, etc. may have different sets of default rules.  To see the full
-list of default rules and variables available in your version of GNU
-`make', run `make -p' in a directory with no makefile.
+operating systems.  Other operating systems, such as VMS, Windows, OS/2,
+etc.  may have different sets of default rules.  To see the full list of
+default rules and variables available in your version of GNU 'make', run
+'make -p' in a directory with no makefile.
 
-   Not all of these rules will always be defined, even when the `-r'
+   Not all of these rules will always be defined, even when the '-r'
 option is not given.  Many of the predefined implicit rules are
-implemented in `make' as suffix rules, so which ones will be defined
+implemented in 'make' as suffix rules, so which ones will be defined
 depends on the "suffix list" (the list of prerequisites of the special
-target `.SUFFIXES').  The default suffix list is: `.out', `.a', `.ln',
-`.o', `.c', `.cc', `.C', `.cpp', `.p', `.f', `.F', `.m', `.r', `.y',
-`.l', `.ym', `.lm', `.s', `.S', `.mod', `.sym', `.def', `.h', `.info',
-`.dvi', `.tex', `.texinfo', `.texi', `.txinfo', `.w', `.ch' `.web',
-`.sh', `.elc', `.el'.  All of the implicit rules described below whose
+target '.SUFFIXES').  The default suffix list is: '.out', '.a', '.ln',
+'.o', '.c', '.cc', '.C', '.cpp', '.p', '.f', '.F', '.m', '.r', '.y',
+'.l', '.ym', '.lm', '.s', '.S', '.mod', '.sym', '.def', '.h', '.info',
+'.dvi', '.tex', '.texinfo', '.texi', '.txinfo', '.w', '.ch' '.web',
+'.sh', '.elc', '.el'.  All of the implicit rules described below whose
 prerequisites have one of these suffixes are actually suffix rules.  If
 you modify the suffix list, the only predefined suffix rules in effect
 will be those named by one or two of the suffixes that are on the list
@@ -473,60 +183,57 @@ you specify; rules whose suffixes fail to be on the list are disabled.
 suffix rules.
 
 Compiling C programs
-     `N.o' is made automatically from `N.c' with a recipe of the form
-     `$(CC) $(CPPFLAGS) $(CFLAGS) -c'.
+     'N.o' is made automatically from 'N.c' with a recipe of the form
+     '$(CC) $(CPPFLAGS) $(CFLAGS) -c'.
 
 Compiling C++ programs
-     `N.o' is made automatically from `N.cc', `N.cpp', or `N.C' with a
-     recipe of the form `$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c'.  We
-     encourage you to use the suffix `.cc' for C++ source files instead
-     of `.C'.
+     'N.o' is made automatically from 'N.cc', 'N.cpp', or 'N.C' with a
+     recipe of the form '$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c'.  We
+     encourage you to use the suffix '.cc' for C++ source files instead
+     of '.C'.
 
 Compiling Pascal programs
-     `N.o' is made automatically from `N.p' with the recipe `$(PC)
+     'N.o' is made automatically from 'N.p' with the recipe '$(PC)
      $(PFLAGS) -c'.
 
 Compiling Fortran and Ratfor programs
-     `N.o' is made automatically from `N.r', `N.F' or `N.f' by running
+     'N.o' is made automatically from 'N.r', 'N.F' or 'N.f' by running
      the Fortran compiler.  The precise recipe used is as follows:
 
-    `.f'
-          `$(FC) $(FFLAGS) -c'.
-
-    `.F'
-          `$(FC) $(FFLAGS) $(CPPFLAGS) -c'.
-
-    `.r'
-          `$(FC) $(FFLAGS) $(RFLAGS) -c'.
+     '.f'
+          '$(FC) $(FFLAGS) -c'.
+     '.F'
+          '$(FC) $(FFLAGS) $(CPPFLAGS) -c'.
+     '.r'
+          '$(FC) $(FFLAGS) $(RFLAGS) -c'.
 
 Preprocessing Fortran and Ratfor programs
-     `N.f' is made automatically from `N.r' or `N.F'.  This rule runs
-     just the preprocessor to convert a Ratfor or preprocessable
-     Fortran program into a strict Fortran program.  The precise recipe
-     used is as follows:
+     'N.f' is made automatically from 'N.r' or 'N.F'.  This rule runs
+     just the preprocessor to convert a Ratfor or preprocessable Fortran
+     program into a strict Fortran program.  The precise recipe used is
+     as follows:
 
-    `.F'
-          `$(FC) $(CPPFLAGS) $(FFLAGS) -F'.
-
-    `.r'
-          `$(FC) $(FFLAGS) $(RFLAGS) -F'.
+     '.F'
+          '$(FC) $(CPPFLAGS) $(FFLAGS) -F'.
+     '.r'
+          '$(FC) $(FFLAGS) $(RFLAGS) -F'.
 
 Compiling Modula-2 programs
-     `N.sym' is made from `N.def' with a recipe of the form `$(M2C)
-     $(M2FLAGS) $(DEFFLAGS)'.  `N.o' is made from `N.mod'; the form is:
-     `$(M2C) $(M2FLAGS) $(MODFLAGS)'.
+     'N.sym' is made from 'N.def' with a recipe of the form '$(M2C)
+     $(M2FLAGS) $(DEFFLAGS)'.  'N.o' is made from 'N.mod'; the form is:
+     '$(M2C) $(M2FLAGS) $(MODFLAGS)'.
 
 Assembling and preprocessing assembler programs
-     `N.o' is made automatically from `N.s' by running the assembler,
-     `as'.  The precise recipe is `$(AS) $(ASFLAGS)'.
+     'N.o' is made automatically from 'N.s' by running the assembler,
+     'as'.  The precise recipe is '$(AS) $(ASFLAGS)'.
 
-     `N.s' is made automatically from `N.S' by running the C
-     preprocessor, `cpp'.  The precise recipe is `$(CPP) $(CPPFLAGS)'.
+     'N.s' is made automatically from 'N.S' by running the C
+     preprocessor, 'cpp'.  The precise recipe is '$(CPP) $(CPPFLAGS)'.
 
 Linking a single object file
-     `N' is made automatically from `N.o' by running the linker
-     (usually called `ld') via the C compiler.  The precise recipe used
-     is `$(CC) $(LDFLAGS) N.o $(LOADLIBES) $(LDLIBS)'.
+     'N' is made automatically from 'N.o' by running the linker (usually
+     called 'ld') via the C compiler.  The precise recipe used is
+     '$(CC) $(LDFLAGS) N.o $(LOADLIBES) $(LDLIBS)'.
 
      This rule does the right thing for a simple program with only one
      source file.  It will also do the right thing if there are multiple
@@ -536,7 +243,7 @@ Linking a single object file
 
           x: y.o z.o
 
-     when `x.c', `y.c' and `z.c' all exist will execute:
+     when 'x.c', 'y.c' and 'z.c' all exist will execute:
 
           cc -c x.c -o x.o
           cc -c y.c -o y.o
@@ -547,109 +254,108 @@ Linking a single object file
           rm -f z.o
 
      In more complicated cases, such as when there is no object file
-     whose name derives from the executable file name, you must write
-     an explicit recipe for linking.
+     whose name derives from the executable file name, you must write an
+     explicit recipe for linking.
 
-     Each kind of file automatically made into `.o' object files will
-     be automatically linked by using the compiler (`$(CC)', `$(FC)' or
-     `$(PC)'; the C compiler `$(CC)' is used to assemble `.s' files)
-     without the `-c' option.  This could be done by using the `.o'
-     object files as intermediates, but it is faster to do the
-     compiling and linking in one step, so that's how it's done.
+     Each kind of file automatically made into '.o' object files will be
+     automatically linked by using the compiler ('$(CC)', '$(FC)' or
+     '$(PC)'; the C compiler '$(CC)' is used to assemble '.s' files)
+     without the '-c' option.  This could be done by using the '.o'
+     object files as intermediates, but it is faster to do the compiling
+     and linking in one step, so that's how it's done.
 
 Yacc for C programs
-     `N.c' is made automatically from `N.y' by running Yacc with the
-     recipe `$(YACC) $(YFLAGS)'.
+     'N.c' is made automatically from 'N.y' by running Yacc with the
+     recipe '$(YACC) $(YFLAGS)'.
 
 Lex for C programs
-     `N.c' is made automatically from `N.l' by running Lex.  The actual
-     recipe is `$(LEX) $(LFLAGS)'.
+     'N.c' is made automatically from 'N.l' by running Lex.  The actual
+     recipe is '$(LEX) $(LFLAGS)'.
 
 Lex for Ratfor programs
-     `N.r' is made automatically from `N.l' by running Lex.  The actual
-     recipe is `$(LEX) $(LFLAGS)'.
+     'N.r' is made automatically from 'N.l' by running Lex.  The actual
+     recipe is '$(LEX) $(LFLAGS)'.
 
-     The convention of using the same suffix `.l' for all Lex files
+     The convention of using the same suffix '.l' for all Lex files
      regardless of whether they produce C code or Ratfor code makes it
-     impossible for `make' to determine automatically which of the two
-     languages you are using in any particular case.  If `make' is
-     called upon to remake an object file from a `.l' file, it must
+     impossible for 'make' to determine automatically which of the two
+     languages you are using in any particular case.  If 'make' is
+     called upon to remake an object file from a '.l' file, it must
      guess which compiler to use.  It will guess the C compiler, because
-     that is more common.  If you are using Ratfor, make sure `make'
-     knows this by mentioning `N.r' in the makefile.  Or, if you are
-     using Ratfor exclusively, with no C files, remove `.c' from the
+     that is more common.  If you are using Ratfor, make sure 'make'
+     knows this by mentioning 'N.r' in the makefile.  Or, if you are
+     using Ratfor exclusively, with no C files, remove '.c' from the
      list of implicit rule suffixes with:
 
           .SUFFIXES:
           .SUFFIXES: .o .r .f .l ...
 
 Making Lint Libraries from C, Yacc, or Lex programs
-     `N.ln' is made from `N.c' by running `lint'.  The precise recipe
-     is `$(LINT) $(LINTFLAGS) $(CPPFLAGS) -i'.  The same recipe is used
-     on the C code produced from `N.y' or `N.l'.
+     'N.ln' is made from 'N.c' by running 'lint'.  The precise recipe is
+     '$(LINT) $(LINTFLAGS) $(CPPFLAGS) -i'.  The same recipe is used on
+     the C code produced from 'N.y' or 'N.l'.
 
 TeX and Web
-     `N.dvi' is made from `N.tex' with the recipe `$(TEX)'.  `N.tex' is
-     made from `N.web' with `$(WEAVE)', or from `N.w' (and from `N.ch'
-     if it exists or can be made) with `$(CWEAVE)'.  `N.p' is made from
-     `N.web' with `$(TANGLE)' and `N.c' is made from `N.w' (and from
-     `N.ch' if it exists or can be made) with `$(CTANGLE)'.
+     'N.dvi' is made from 'N.tex' with the recipe '$(TEX)'.  'N.tex' is
+     made from 'N.web' with '$(WEAVE)', or from 'N.w' (and from 'N.ch'
+     if it exists or can be made) with '$(CWEAVE)'.  'N.p' is made from
+     'N.web' with '$(TANGLE)' and 'N.c' is made from 'N.w' (and from
+     'N.ch' if it exists or can be made) with '$(CTANGLE)'.
 
 Texinfo and Info
-     `N.dvi' is made from `N.texinfo', `N.texi', or `N.txinfo', with
-     the recipe `$(TEXI2DVI) $(TEXI2DVI_FLAGS)'.  `N.info' is made from
-     `N.texinfo', `N.texi', or `N.txinfo', with the recipe
-     `$(MAKEINFO) $(MAKEINFO_FLAGS)'.
+     'N.dvi' is made from 'N.texinfo', 'N.texi', or 'N.txinfo', with the
+     recipe '$(TEXI2DVI) $(TEXI2DVI_FLAGS)'.  'N.info' is made from
+     'N.texinfo', 'N.texi', or 'N.txinfo', with the recipe
+     '$(MAKEINFO) $(MAKEINFO_FLAGS)'.
 
 RCS
-     Any file `N' is extracted if necessary from an RCS file named
-     either `N,v' or `RCS/N,v'.  The precise recipe used is
-     `$(CO) $(COFLAGS)'.  `N' will not be extracted from RCS if it
+     Any file 'N' is extracted if necessary from an RCS file named
+     either 'N,v' or 'RCS/N,v'.  The precise recipe used is
+     '$(CO) $(COFLAGS)'.  'N' will not be extracted from RCS if it
      already exists, even if the RCS file is newer.  The rules for RCS
      are terminal (*note Match-Anything Pattern Rules: Match-Anything
-     Rules.), so RCS files cannot be generated from another source;
-     they must actually exist.
+     Rules.), so RCS files cannot be generated from another source; they
+     must actually exist.
 
 SCCS
-     Any file `N' is extracted if necessary from an SCCS file named
-     either `s.N' or `SCCS/s.N'.  The precise recipe used is
-     `$(GET) $(GFLAGS)'.  The rules for SCCS are terminal (*note
-     Match-Anything Pattern Rules: Match-Anything Rules.), so SCCS
-     files cannot be generated from another source; they must actually
-     exist.
-
-     For the benefit of SCCS, a file `N' is copied from `N.sh' and made
+     Any file 'N' is extracted if necessary from an SCCS file named
+     either 's.N' or 'SCCS/s.N'.  The precise recipe used is
+     '$(GET) $(GFLAGS)'.  The rules for SCCS are terminal (*note
+     Match-Anything Pattern Rules: Match-Anything Rules.), so SCCS files
+     cannot be generated from another source; they must actually exist.
+
+     For the benefit of SCCS, a file 'N' is copied from 'N.sh' and made
      executable (by everyone).  This is for shell scripts that are
-     checked into SCCS.  Since RCS preserves the execution permission
-     of a file, you do not need to use this feature with RCS.
+     checked into SCCS. Since RCS preserves the execution permission of
+     a file, you do not need to use this feature with RCS.
 
-     We recommend that you avoid using of SCCS.  RCS is widely held to
-     be superior, and is also free.  By choosing free software in place
-     of comparable (or inferior) proprietary software, you support the
-     free software movement.
+     We recommend that you avoid using of SCCS. RCS is widely held to be
+     superior, and is also free.  By choosing free software in place of
+     comparable (or inferior) proprietary software, you support the free
+     software movement.
 
    Usually, you want to change only the variables listed in the table
 above, which are documented in the following section.
 
    However, the recipes in built-in implicit rules actually use
-variables such as `COMPILE.c', `LINK.p', and `PREPROCESS.S', whose
+variables such as 'COMPILE.c', 'LINK.p', and 'PREPROCESS.S', whose
 values contain the recipes listed above.
 
-   `make' follows the convention that the rule to compile a `.X' source
-file uses the variable `COMPILE.X'.  Similarly, the rule to produce an
-executable from a `.X' file uses `LINK.X'; and the rule to preprocess a
-`.X' file uses `PREPROCESS.X'.
+   'make' follows the convention that the rule to compile a '.X' source
+file uses the variable 'COMPILE.X'.  Similarly, the rule to produce an
+executable from a '.X' file uses 'LINK.X'; and the rule to preprocess a
+'.X' file uses 'PREPROCESS.X'.
 
    Every rule that produces an object file uses the variable
-`OUTPUT_OPTION'.  `make' defines this variable either to contain `-o
+'OUTPUT_OPTION'.  'make' defines this variable either to contain '-o
 $@', or to be empty, depending on a compile-time option.  You need the
-`-o' option to ensure that the output goes into the right file when the
-source file is in a different directory, as when using `VPATH' (*note
-Directory Search::).  However, compilers on some systems do not accept
-a `-o' switch for object files.  If you use such a system, and use
-`VPATH', some compilations will put their output in the wrong place.  A
-possible workaround for this problem is to give `OUTPUT_OPTION' the
-value `; mv $*.o $@'.
+'-o' option to ensure that the output goes into the right file when the
+source file is in a different directory, as when using 'VPATH' (*note
+Directory Search::).  However, compilers on some systems do not accept a
+'-o' switch for object files.  If you use such a system, and use
+'VPATH', some compilations will put their output in the wrong place.  A
+possible workaround for this problem is to give 'OUTPUT_OPTION' the
+value '; mv $*.o $@'.
 
 \1f
 File: make.info,  Node: Implicit Variables,  Next: Chained Rules,  Prev: Catalogue of Rules,  Up: Implicit Rules
@@ -659,160 +365,160 @@ File: make.info,  Node: Implicit Variables,  Next: Chained Rules,  Prev: Catalog
 
 The recipes in built-in implicit rules make liberal use of certain
 predefined variables.  You can alter the values of these variables in
-the makefile, with arguments to `make', or in the environment to alter
+the makefile, with arguments to 'make', or in the environment to alter
 how the implicit rules work without redefining the rules themselves.
-You can cancel all variables used by implicit rules with the `-R' or
-`--no-builtin-variables' option.
+You can cancel all variables used by implicit rules with the '-R' or
+'--no-builtin-variables' option.
 
    For example, the recipe used to compile a C source file actually says
-`$(CC) -c $(CFLAGS) $(CPPFLAGS)'.  The default values of the variables
-used are `cc' and nothing, resulting in the command `cc -c'.  By
-redefining `CC' to `ncc', you could cause `ncc' to be used for all C
-compilations performed by the implicit rule.  By redefining `CFLAGS' to
-be `-g', you could pass the `-g' option to each compilation.  _All_
-implicit rules that do C compilation use `$(CC)' to get the program
-name for the compiler and _all_ include `$(CFLAGS)' among the arguments
-given to the compiler.
+'$(CC) -c $(CFLAGS) $(CPPFLAGS)'.  The default values of the variables
+used are 'cc' and nothing, resulting in the command 'cc -c'.  By
+redefining 'CC' to 'ncc', you could cause 'ncc' to be used for all C
+compilations performed by the implicit rule.  By redefining 'CFLAGS' to
+be '-g', you could pass the '-g' option to each compilation.  _All_
+implicit rules that do C compilation use '$(CC)' to get the program name
+for the compiler and _all_ include '$(CFLAGS)' among the arguments given
+to the compiler.
 
    The variables used in implicit rules fall into two classes: those
-that are names of programs (like `CC') and those that contain arguments
-for the programs (like `CFLAGS').  (The "name of a program" may also
+that are names of programs (like 'CC') and those that contain arguments
+for the programs (like 'CFLAGS').  (The "name of a program" may also
 contain some command arguments, but it must start with an actual
 executable program name.)  If a variable value contains more than one
 argument, separate them with spaces.
 
    The following tables describe of some of the more commonly-used
 predefined variables.  This list is not exhaustive, and the default
-values shown here may not be what `make' selects for your environment.
+values shown here may not be what 'make' selects for your environment.
 To see the complete list of predefined variables for your instance of
-GNU `make' you can run `make -p' in a directory with no makefiles.
+GNU 'make' you can run 'make -p' in a directory with no makefiles.
 
    Here is a table of some of the more common variables used as names of
 programs in built-in rules:
 
-`AR'
-     Archive-maintaining program; default `ar'.  
+'AR'
+     Archive-maintaining program; default 'ar'.
 
-`AS'
-     Program for compiling assembly files; default `as'.  
+'AS'
+     Program for compiling assembly files; default 'as'.
 
-`CC'
-     Program for compiling C programs; default `cc'.  
+'CC'
+     Program for compiling C programs; default 'cc'.
 
-`CXX'
-     Program for compiling C++ programs; default `g++'.  
+'CXX'
+     Program for compiling C++ programs; default 'g++'.
 
-`CPP'
+'CPP'
      Program for running the C preprocessor, with results to standard
-     output; default `$(CC) -E'.
+     output; default '$(CC) -E'.
 
-`FC'
+'FC'
      Program for compiling or preprocessing Fortran and Ratfor programs;
-     default `f77'.  
+     default 'f77'.
 
-`M2C'
-     Program to use to compile Modula-2 source code; default `m2c'.  
+'M2C'
+     Program to use to compile Modula-2 source code; default 'm2c'.
 
-`PC'
-     Program for compiling Pascal programs; default `pc'.  
+'PC'
+     Program for compiling Pascal programs; default 'pc'.
 
-`CO'
-     Program for extracting a file from RCS; default `co'.  
+'CO'
+     Program for extracting a file from RCS; default 'co'.
 
-`GET'
-     Program for extracting a file from SCCS; default `get'.  
+'GET'
+     Program for extracting a file from SCCS; default 'get'.
 
-`LEX'
+'LEX'
      Program to use to turn Lex grammars into source code; default
-     `lex'.  
+     'lex'.
 
-`YACC'
+'YACC'
      Program to use to turn Yacc grammars into source code; default
-     `yacc'.  
+     'yacc'.
 
-`LINT'
-     Program to use to run lint on source code; default `lint'.  
+'LINT'
+     Program to use to run lint on source code; default 'lint'.
 
-`MAKEINFO'
+'MAKEINFO'
      Program to convert a Texinfo source file into an Info file; default
-     `makeinfo'.  
+     'makeinfo'.
 
-`TEX'
-     Program to make TeX DVI files from TeX source; default `tex'.  
+'TEX'
+     Program to make TeX DVI files from TeX source; default 'tex'.
 
-`TEXI2DVI'
+'TEXI2DVI'
      Program to make TeX DVI files from Texinfo source; default
-     `texi2dvi'.  
+     'texi2dvi'.
 
-`WEAVE'
-     Program to translate Web into TeX; default `weave'.  
+'WEAVE'
+     Program to translate Web into TeX; default 'weave'.
 
-`CWEAVE'
-     Program to translate C Web into TeX; default `cweave'.  
+'CWEAVE'
+     Program to translate C Web into TeX; default 'cweave'.
 
-`TANGLE'
-     Program to translate Web into Pascal; default `tangle'.  
+'TANGLE'
+     Program to translate Web into Pascal; default 'tangle'.
 
-`CTANGLE'
-     Program to translate C Web into C; default `ctangle'.  
+'CTANGLE'
+     Program to translate C Web into C; default 'ctangle'.
 
-`RM'
-     Command to remove a file; default `rm -f'.  
+'RM'
+     Command to remove a file; default 'rm -f'.
 
    Here is a table of variables whose values are additional arguments
 for the programs above.  The default values for all of these is the
 empty string, unless otherwise noted.
 
-`ARFLAGS'
-     Flags to give the archive-maintaining program; default `rv'.
+'ARFLAGS'
+     Flags to give the archive-maintaining program; default 'rv'.
 
-`ASFLAGS'
+'ASFLAGS'
      Extra flags to give to the assembler (when explicitly invoked on a
-     `.s' or `.S' file).
+     '.s' or '.S' file).
 
-`CFLAGS'
+'CFLAGS'
      Extra flags to give to the C compiler.
 
-`CXXFLAGS'
+'CXXFLAGS'
      Extra flags to give to the C++ compiler.
 
-`COFLAGS'
-     Extra flags to give to the RCS `co' program.
+'COFLAGS'
+     Extra flags to give to the RCS 'co' program.
 
-`CPPFLAGS'
+'CPPFLAGS'
      Extra flags to give to the C preprocessor and programs that use it
      (the C and Fortran compilers).
 
-`FFLAGS'
+'FFLAGS'
      Extra flags to give to the Fortran compiler.
 
-`GFLAGS'
-     Extra flags to give to the SCCS `get' program.
+'GFLAGS'
+     Extra flags to give to the SCCS 'get' program.
 
-`LDFLAGS'
+'LDFLAGS'
      Extra flags to give to compilers when they are supposed to invoke
-     the linker, `ld', such as `-L'.  Libraries (`-lfoo') should be
-     added to the `LDLIBS' variable instead.
+     the linker, 'ld', such as '-L'.  Libraries ('-lfoo') should be
+     added to the 'LDLIBS' variable instead.
 
-`LDLIBS'
+'LDLIBS'
      Library flags or names given to compilers when they are supposed to
-     invoke the linker, `ld'.  `LOADLIBES' is a deprecated (but still
-     supported) alternative to `LDLIBS'.  Non-library linker flags,
-     such as `-L', should go in the `LDFLAGS' variable.
+     invoke the linker, 'ld'.  'LOADLIBES' is a deprecated (but still
+     supported) alternative to 'LDLIBS'.  Non-library linker flags, such
+     as '-L', should go in the 'LDFLAGS' variable.
 
-`LFLAGS'
+'LFLAGS'
      Extra flags to give to Lex.
 
-`YFLAGS'
+'YFLAGS'
      Extra flags to give to Yacc.
 
-`PFLAGS'
+'PFLAGS'
      Extra flags to give to the Pascal compiler.
 
-`RFLAGS'
+'RFLAGS'
      Extra flags to give to the Fortran compiler for Ratfor programs.
 
-`LINTFLAGS'
+'LINTFLAGS'
      Extra flags to give to lint.
 
 \1f
@@ -822,18 +528,18 @@ File: make.info,  Node: Chained Rules,  Next: Pattern Rules,  Prev: Implicit Var
 =============================
 
 Sometimes a file can be made by a sequence of implicit rules.  For
-example, a file `N.o' could be made from `N.y' by running first Yacc
-and then `cc'.  Such a sequence is called a "chain".
-
-   If the file `N.c' exists, or is mentioned in the makefile, no
-special searching is required: `make' finds that the object file can be
-made by C compilation from `N.c'; later on, when considering how to
-make `N.c', the rule for running Yacc is used.  Ultimately both `N.c'
-and `N.o' are updated.
-
-   However, even if `N.c' does not exist and is not mentioned, `make'
-knows how to envision it as the missing link between `N.o' and `N.y'!
-In this case, `N.c' is called an "intermediate file".  Once `make' has
+example, a file 'N.o' could be made from 'N.y' by running first Yacc and
+then 'cc'.  Such a sequence is called a "chain".
+
+   If the file 'N.c' exists, or is mentioned in the makefile, no special
+searching is required: 'make' finds that the object file can be made by
+C compilation from 'N.c'; later on, when considering how to make 'N.c',
+the rule for running Yacc is used.  Ultimately both 'N.c' and 'N.o' are
+updated.
+
+   However, even if 'N.c' does not exist and is not mentioned, 'make'
+knows how to envision it as the missing link between 'N.o' and 'N.y'!
+In this case, 'N.c' is called an "intermediate file".  Once 'make' has
 decided to use the intermediate file, it is entered in the data base as
 if it had been mentioned in the makefile, along with the implicit rule
 that says how to create it.
@@ -842,56 +548,56 @@ that says how to create it.
 files.  But intermediate files are treated differently in two ways.
 
    The first difference is what happens if the intermediate file does
-not exist.  If an ordinary file B does not exist, and `make' considers
-a target that depends on B, it invariably creates B and then updates
-the target from B.  But if B is an intermediate file, then `make' can
-leave well enough alone.  It won't bother updating B, or the ultimate
-target, unless some prerequisite of B is newer than that target or
-there is some other reason to update that target.
-
-   The second difference is that if `make' _does_ create B in order to
+not exist.  If an ordinary file B does not exist, and 'make' considers a
+target that depends on B, it invariably creates B and then updates the
+target from B.  But if B is an intermediate file, then 'make' can leave
+well enough alone.  It won't bother updating B, or the ultimate target,
+unless some prerequisite of B is newer than that target or there is some
+other reason to update that target.
+
+   The second difference is that if 'make' _does_ create B in order to
 update something else, it deletes B later on after it is no longer
 needed.  Therefore, an intermediate file which did not exist before
-`make' also does not exist after `make'.  `make' reports the deletion
-to you by printing a `rm -f' command showing which file it is deleting.
+'make' also does not exist after 'make'.  'make' reports the deletion to
+you by printing a 'rm -f' command showing which file it is deleting.
 
    Ordinarily, a file cannot be intermediate if it is mentioned in the
 makefile as a target or prerequisite.  However, you can explicitly mark
 a file as intermediate by listing it as a prerequisite of the special
-target `.INTERMEDIATE'.  This takes effect even if the file is mentioned
+target '.INTERMEDIATE'.  This takes effect even if the file is mentioned
 explicitly in some other way.
 
-   You can prevent automatic deletion of an intermediate file by
-marking it as a "secondary" file.  To do this, list it as a
-prerequisite of the special target `.SECONDARY'.  When a file is
-secondary, `make' will not create the file merely because it does not
-already exist, but `make' does not automatically delete the file.
-Marking a file as secondary also marks it as intermediate.
+   You can prevent automatic deletion of an intermediate file by marking
+it as a "secondary" file.  To do this, list it as a prerequisite of the
+special target '.SECONDARY'.  When a file is secondary, 'make' will not
+create the file merely because it does not already exist, but 'make'
+does not automatically delete the file.  Marking a file as secondary
+also marks it as intermediate.
 
-   You can list the target pattern of an implicit rule (such as `%.o')
-as a prerequisite of the special target `.PRECIOUS' to preserve
+   You can list the target pattern of an implicit rule (such as '%.o')
+as a prerequisite of the special target '.PRECIOUS' to preserve
 intermediate files made by implicit rules whose target patterns match
-that file's name; see *note Interrupts::.  
+that file's name; see *note Interrupts::.
 
    A chain can involve more than two implicit rules.  For example, it is
-possible to make a file `foo' from `RCS/foo.y,v' by running RCS, Yacc
-and `cc'.  Then both `foo.y' and `foo.c' are intermediate files that
-are deleted at the end.
+possible to make a file 'foo' from 'RCS/foo.y,v' by running RCS, Yacc
+and 'cc'.  Then both 'foo.y' and 'foo.c' are intermediate files that are
+deleted at the end.
 
    No single implicit rule can appear more than once in a chain.  This
-means that `make' will not even consider such a ridiculous thing as
-making `foo' from `foo.o.o' by running the linker twice.  This
+means that 'make' will not even consider such a ridiculous thing as
+making 'foo' from 'foo.o.o' by running the linker twice.  This
 constraint has the added benefit of preventing any infinite loop in the
 search for an implicit rule chain.
 
    There are some special implicit rules to optimize certain cases that
-would otherwise be handled by rule chains.  For example, making `foo'
-from `foo.c' could be handled by compiling and linking with separate
-chained rules, using `foo.o' as an intermediate file.  But what
-actually happens is that a special rule for this case does the
-compilation and linking with a single `cc' command.  The optimized rule
-is used in preference to the step-by-step chain because it comes
-earlier in the ordering of rules.
+would otherwise be handled by rule chains.  For example, making 'foo'
+from 'foo.c' could be handled by compiling and linking with separate
+chained rules, using 'foo.o' as an intermediate file.  But what actually
+happens is that a special rule for this case does the compilation and
+linking with a single 'cc' command.  The optimized rule is used in
+preference to the step-by-step chain because it comes earlier in the
+ordering of rules.
 
 \1f
 File: make.info,  Node: Pattern Rules,  Next: Last Resort,  Prev: Chained Rules,  Up: Implicit Rules
@@ -899,18 +605,17 @@ File: make.info,  Node: Pattern Rules,  Next: Last Resort,  Prev: Chained Rules,
 10.5 Defining and Redefining Pattern Rules
 ==========================================
 
-You define an implicit rule by writing a "pattern rule".  A pattern
-rule looks like an ordinary rule, except that its target contains the
-character `%' (exactly one of them).  The target is considered a
-pattern for matching file names; the `%' can match any nonempty
-substring, while other characters match only themselves.  The
-prerequisites likewise use `%' to show how their names relate to the
-target name.
+You define an implicit rule by writing a "pattern rule".  A pattern rule
+looks like an ordinary rule, except that its target contains the
+character '%' (exactly one of them).  The target is considered a pattern
+for matching file names; the '%' can match any nonempty substring, while
+other characters match only themselves.  The prerequisites likewise use
+'%' to show how their names relate to the target name.
 
-   Thus, a pattern rule `%.o : %.c' says how to make any file `STEM.o'
-from another file `STEM.c'.
+   Thus, a pattern rule '%.o : %.c' says how to make any file 'STEM.o'
+from another file 'STEM.c'.
 
-   Note that expansion using `%' in pattern rules occurs *after* any
+   Note that expansion using '%' in pattern rules occurs *after* any
 variable or function expansions, which take place when the makefile is
 read.  *Note How to Use Variables: Using Variables, and *note Functions
 for Transforming Text: Functions.
@@ -933,54 +638,54 @@ File: make.info,  Node: Pattern Intro,  Next: Pattern Examples,  Prev: Pattern R
 10.5.1 Introduction to Pattern Rules
 ------------------------------------
 
-A pattern rule contains the character `%' (exactly one of them) in the
+A pattern rule contains the character '%' (exactly one of them) in the
 target; otherwise, it looks exactly like an ordinary rule.  The target
-is a pattern for matching file names; the `%' matches any nonempty
-substring, while other characters match only themselves.  
-
-   For example, `%.c' as a pattern matches any file name that ends in
-`.c'.  `s.%.c' as a pattern matches any file name that starts with
-`s.', ends in `.c' and is at least five characters long.  (There must
-be at least one character to match the `%'.)  The substring that the
-`%' matches is called the "stem".
-
-   `%' in a prerequisite of a pattern rule stands for the same stem
-that was matched by the `%' in the target.  In order for the pattern
-rule to apply, its target pattern must match the file name under
-consideration and all of its prerequisites (after pattern substitution)
-must name files that exist or can be made.  These files become
-prerequisites of the target.  
+is a pattern for matching file names; the '%' matches any nonempty
+substring, while other characters match only themselves.
+
+   For example, '%.c' as a pattern matches any file name that ends in
+'.c'.  's.%.c' as a pattern matches any file name that starts with 's.',
+ends in '.c' and is at least five characters long.  (There must be at
+least one character to match the '%'.)  The substring that the '%'
+matches is called the "stem".
+
+   '%' in a prerequisite of a pattern rule stands for the same stem that
+was matched by the '%' in the target.  In order for the pattern rule to
+apply, its target pattern must match the file name under consideration
+and all of its prerequisites (after pattern substitution) must name
+files that exist or can be made.  These files become prerequisites of
+the target.
 
    Thus, a rule of the form
 
      %.o : %.c ; RECIPE...
 
-specifies how to make a file `N.o', with another file `N.c' as its
-prerequisite, provided that `N.c' exists or can be made.
+specifies how to make a file 'N.o', with another file 'N.c' as its
+prerequisite, provided that 'N.c' exists or can be made.
 
-   There may also be prerequisites that do not use `%'; such a
+   There may also be prerequisites that do not use '%'; such a
 prerequisite attaches to every file made by this pattern rule.  These
 unvarying prerequisites are useful occasionally.
 
-   A pattern rule need not have any prerequisites that contain `%', or
+   A pattern rule need not have any prerequisites that contain '%', or
 in fact any prerequisites at all.  Such a rule is effectively a general
 wildcard.  It provides a way to make any file that matches the target
 pattern.  *Note Last Resort::.
 
-   More than one pattern rule may match a target.  In this case `make'
+   More than one pattern rule may match a target.  In this case 'make'
 will choose the "best fit" rule.  *Note How Patterns Match: Pattern
 Match.
 
    Pattern rules may have more than one target.  Unlike normal rules,
 this does not act as many different rules with the same prerequisites
-and recipe.  If a pattern rule has multiple targets, `make' knows that
+and recipe.  If a pattern rule has multiple targets, 'make' knows that
 the rule's recipe is responsible for making all of the targets.  The
 recipe is executed only once to make all the targets.  When searching
 for a pattern rule to match a target, the target patterns of a rule
 other than the one that matches the target in need of a rule are
-incidental: `make' worries only about giving a recipe and prerequisites
+incidental: 'make' worries only about giving a recipe and prerequisites
 to the file presently in question.  However, when this file's recipe is
-run, the other targets are marked as having been updated themselves.  
+run, the other targets are marked as having been updated themselves.
 
 \1f
 File: make.info,  Node: Pattern Examples,  Next: Automatic Variables,  Prev: Pattern Intro,  Up: Pattern Rules
@@ -988,15 +693,15 @@ File: make.info,  Node: Pattern Examples,  Next: Automatic Variables,  Prev: Pat
 10.5.2 Pattern Rule Examples
 ----------------------------
 
-Here are some examples of pattern rules actually predefined in `make'.
-First, the rule that compiles `.c' files into `.o' files:
+Here are some examples of pattern rules actually predefined in 'make'.
+First, the rule that compiles '.c' files into '.o' files:
 
      %.o : %.c
              $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
 
-defines a rule that can make any file `X.o' from `X.c'.  The recipe
-uses the automatic variables `$@' and `$<' to substitute the names of
-the target file and the source file in each case where the rule applies
+defines a rule that can make any file 'X.o' from 'X.c'.  The recipe uses
+the automatic variables '$@' and '$<' to substitute the names of the
+target file and the source file in each case where the rule applies
 (*note Automatic Variables::).
 
    Here is a second built-in rule:
@@ -1004,9 +709,9 @@ the target file and the source file in each case where the rule applies
      % :: RCS/%,v
              $(CO) $(COFLAGS) $<
 
-defines a rule that can make any file `X' whatsoever from a
-corresponding file `X,v' in the sub-directory `RCS'.  Since the target
-is `%', this rule will apply to any file whatever, provided the
+defines a rule that can make any file 'X' whatsoever from a
+corresponding file 'X,v' in the sub-directory 'RCS'.  Since the target
+is '%', this rule will apply to any file whatever, provided the
 appropriate prerequisite file exists.  The double colon makes the rule
 "terminal", which means that its prerequisite may not be an intermediate
 file (*note Match-Anything Pattern Rules: Match-Anything Rules.).
@@ -1016,15 +721,15 @@ file (*note Match-Anything Pattern Rules: Match-Anything Rules.).
      %.tab.c %.tab.h: %.y
              bison -d $<
 
-This tells `make' that the recipe `bison -d X.y' will make both
-`X.tab.c' and `X.tab.h'.  If the file `foo' depends on the files
-`parse.tab.o' and `scan.o' and the file `scan.o' depends on the file
-`parse.tab.h', when `parse.y' is changed, the recipe `bison -d parse.y'
-will be executed only once, and the prerequisites of both `parse.tab.o'
-and `scan.o' will be satisfied.  (Presumably the file `parse.tab.o'
-will be recompiled from `parse.tab.c' and the file `scan.o' from
-`scan.c', while `foo' is linked from `parse.tab.o', `scan.o', and its
-other prerequisites, and it will execute happily ever after.)
+This tells 'make' that the recipe 'bison -d X.y' will make both
+'X.tab.c' and 'X.tab.h'.  If the file 'foo' depends on the files
+'parse.tab.o' and 'scan.o' and the file 'scan.o' depends on the file
+'parse.tab.h', when 'parse.y' is changed, the recipe 'bison -d parse.y'
+will be executed only once, and the prerequisites of both 'parse.tab.o'
+and 'scan.o' will be satisfied.  (Presumably the file 'parse.tab.o' will
+be recompiled from 'parse.tab.c' and the file 'scan.o' from 'scan.c',
+while 'foo' is linked from 'parse.tab.o', 'scan.o', and its other
+prerequisites, and it will execute happily ever after.)
 
 \1f
 File: make.info,  Node: Automatic Variables,  Next: Pattern Match,  Prev: Pattern Examples,  Up: Pattern Rules
@@ -1032,97 +737,97 @@ File: make.info,  Node: Automatic Variables,  Next: Pattern Match,  Prev: Patter
 10.5.3 Automatic Variables
 --------------------------
 
-Suppose you are writing a pattern rule to compile a `.c' file into a
-`.o' file: how do you write the `cc' command so that it operates on the
+Suppose you are writing a pattern rule to compile a '.c' file into a
+'.o' file: how do you write the 'cc' command so that it operates on the
 right source file name?  You cannot write the name in the recipe,
 because the name is different each time the implicit rule is applied.
 
-   What you do is use a special feature of `make', the "automatic
+   What you do is use a special feature of 'make', the "automatic
 variables".  These variables have values computed afresh for each rule
-that is executed, based on the target and prerequisites of the rule.
-In this example, you would use `$@' for the object file name and `$<'
-for the source file name.
+that is executed, based on the target and prerequisites of the rule.  In
+this example, you would use '$@' for the object file name and '$<' for
+the source file name.
 
    It's very important that you recognize the limited scope in which
 automatic variable values are available: they only have values within
 the recipe.  In particular, you cannot use them anywhere within the
 target list of a rule; they have no value there and will expand to the
 empty string.  Also, they cannot be accessed directly within the
-prerequisite list of a rule.  A common mistake is attempting to use
-`$@' within the prerequisites list; this will not work.  However, there
-is a special feature of GNU `make', secondary expansion (*note
-Secondary Expansion::), which will allow automatic variable values to
-be used in prerequisite lists.
+prerequisite list of a rule.  A common mistake is attempting to use '$@'
+within the prerequisites list; this will not work.  However, there is a
+special feature of GNU 'make', secondary expansion (*note Secondary
+Expansion::), which will allow automatic variable values to be used in
+prerequisite lists.
 
    Here is a table of automatic variables:
 
-`$@'
+'$@'
      The file name of the target of the rule.  If the target is an
-     archive member, then `$@' is the name of the archive file.  In a
+     archive member, then '$@' is the name of the archive file.  In a
      pattern rule that has multiple targets (*note Introduction to
-     Pattern Rules: Pattern Intro.), `$@' is the name of whichever
+     Pattern Rules: Pattern Intro.), '$@' is the name of whichever
      target caused the rule's recipe to be run.
 
-`$%'
+'$%'
      The target member name, when the target is an archive member.
-     *Note Archives::.  For example, if the target is `foo.a(bar.o)'
-     then `$%' is `bar.o' and `$@' is `foo.a'.  `$%' is empty when the
+     *Note Archives::.  For example, if the target is 'foo.a(bar.o)'
+     then '$%' is 'bar.o' and '$@' is 'foo.a'.  '$%' is empty when the
      target is not an archive member.
 
-`$<'
+'$<'
      The name of the first prerequisite.  If the target got its recipe
-     from an implicit rule, this will be the first prerequisite added
-     by the implicit rule (*note Implicit Rules::).
+     from an implicit rule, this will be the first prerequisite added by
+     the implicit rule (*note Implicit Rules::).
 
-`$?'
+'$?'
      The names of all the prerequisites that are newer than the target,
      with spaces between them.  For prerequisites which are archive
-     members, only the named member is used (*note Archives::).  
+     members, only the named member is used (*note Archives::).
 
-`$^'
+'$^'
      The names of all the prerequisites, with spaces between them.  For
      prerequisites which are archive members, only the named member is
      used (*note Archives::).  A target has only one prerequisite on
      each other file it depends on, no matter how many times each file
      is listed as a prerequisite.  So if you list a prerequisite more
-     than once for a target, the value of `$^' contains just one copy
-     of the name.  This list does *not* contain any of the order-only
-     prerequisites; for those see the `$|' variable, below.  
+     than once for a target, the value of '$^' contains just one copy of
+     the name.  This list does *not* contain any of the order-only
+     prerequisites; for those see the '$|' variable, below.
 
-`$+'
-     This is like `$^', but prerequisites listed more than once are
+'$+'
+     This is like '$^', but prerequisites listed more than once are
      duplicated in the order they were listed in the makefile.  This is
-     primarily useful for use in linking commands where it is
-     meaningful to repeat library file names in a particular order.
+     primarily useful for use in linking commands where it is meaningful
+     to repeat library file names in a particular order.
 
-`$|'
+'$|'
      The names of all the order-only prerequisites, with spaces between
      them.
 
-`$*'
+'$*'
      The stem with which an implicit rule matches (*note How Patterns
-     Match: Pattern Match.).  If the target is `dir/a.foo.b' and the
-     target pattern is `a.%.b' then the stem is `dir/foo'.  The stem is
-     useful for constructing names of related files.  
+     Match: Pattern Match.).  If the target is 'dir/a.foo.b' and the
+     target pattern is 'a.%.b' then the stem is 'dir/foo'.  The stem is
+     useful for constructing names of related files.
 
      In a static pattern rule, the stem is part of the file name that
-     matched the `%' in the target pattern.
+     matched the '%' in the target pattern.
 
-     In an explicit rule, there is no stem; so `$*' cannot be determined
+     In an explicit rule, there is no stem; so '$*' cannot be determined
      in that way.  Instead, if the target name ends with a recognized
-     suffix (*note Old-Fashioned Suffix Rules: Suffix Rules.), `$*' is
+     suffix (*note Old-Fashioned Suffix Rules: Suffix Rules.), '$*' is
      set to the target name minus the suffix.  For example, if the
-     target name is `foo.c', then `$*' is set to `foo', since `.c' is a
-     suffix.  GNU `make' does this bizarre thing only for compatibility
-     with other implementations of `make'.  You should generally avoid
-     using `$*' except in implicit rules or static pattern rules.
+     target name is 'foo.c', then '$*' is set to 'foo', since '.c' is a
+     suffix.  GNU 'make' does this bizarre thing only for compatibility
+     with other implementations of 'make'.  You should generally avoid
+     using '$*' except in implicit rules or static pattern rules.
 
      If the target name in an explicit rule does not end with a
-     recognized suffix, `$*' is set to the empty string for that rule.
+     recognized suffix, '$*' is set to the empty string for that rule.
 
-   `$?' is useful even in explicit rules when you wish to operate on
+   '$?' is useful even in explicit rules when you wish to operate on
 only the prerequisites that have changed.  For example, suppose that an
-archive named `lib' is supposed to contain copies of several object
+archive named 'lib' is supposed to contain copies of several object
 files.  This rule copies just the changed object files into the archive:
 
      lib: foo.o bar.o lose.o win.o
@@ -1132,66 +837,65 @@ files.  This rule copies just the changed object files into the archive:
 names, and three have values that are lists of file names.  These seven
 have variants that get just the file's directory name or just the file
 name within the directory.  The variant variables' names are formed by
-appending `D' or `F', respectively.  These variants are semi-obsolete
-in GNU `make' since the functions `dir' and `notdir' can be used to get
-a similar effect (*note Functions for File Names: File Name
-Functions.).  Note, however, that the `D' variants all omit the
-trailing slash which always appears in the output of the `dir'
-function.  Here is a table of the variants:
-
-`$(@D)'
+appending 'D' or 'F', respectively.  These variants are semi-obsolete in
+GNU 'make' since the functions 'dir' and 'notdir' can be used to get a
+similar effect (*note Functions for File Names: File Name Functions.).
+Note, however, that the 'D' variants all omit the trailing slash which
+always appears in the output of the 'dir' function.  Here is a table of
+the variants:
+
+'$(@D)'
      The directory part of the file name of the target, with the
-     trailing slash removed.  If the value of `$@' is `dir/foo.o' then
-     `$(@D)' is `dir'.  This value is `.' if `$@' does not contain a
+     trailing slash removed.  If the value of '$@' is 'dir/foo.o' then
+     '$(@D)' is 'dir'.  This value is '.' if '$@' does not contain a
      slash.
 
-`$(@F)'
+'$(@F)'
      The file-within-directory part of the file name of the target.  If
-     the value of `$@' is `dir/foo.o' then `$(@F)' is `foo.o'.  `$(@F)'
-     is equivalent to `$(notdir $@)'.
+     the value of '$@' is 'dir/foo.o' then '$(@F)' is 'foo.o'.  '$(@F)'
+     is equivalent to '$(notdir $@)'.
 
-`$(*D)'
-`$(*F)'
+'$(*D)'
+'$(*F)'
      The directory part and the file-within-directory part of the stem;
-     `dir' and `foo' in this example.
+     'dir' and 'foo' in this example.
 
-`$(%D)'
-`$(%F)'
+'$(%D)'
+'$(%F)'
      The directory part and the file-within-directory part of the target
      archive member name.  This makes sense only for archive member
-     targets of the form `ARCHIVE(MEMBER)' and is useful only when
+     targets of the form 'ARCHIVE(MEMBER)' and is useful only when
      MEMBER may contain a directory name.  (*Note Archive Members as
      Targets: Archive Members.)
 
-`$(<D)'
-`$(<F)'
+'$(<D)'
+'$(<F)'
      The directory part and the file-within-directory part of the first
      prerequisite.
 
-`$(^D)'
-`$(^F)'
-     Lists of the directory parts and the file-within-directory parts
-     of all prerequisites.
+'$(^D)'
+'$(^F)'
+     Lists of the directory parts and the file-within-directory parts of
+     all prerequisites.
 
-`$(+D)'
-`$(+F)'
-     Lists of the directory parts and the file-within-directory parts
-     of all prerequisites, including multiple instances of duplicated
+'$(+D)'
+'$(+F)'
+     Lists of the directory parts and the file-within-directory parts of
+     all prerequisites, including multiple instances of duplicated
      prerequisites.
 
-`$(?D)'
-`$(?F)'
+'$(?D)'
+'$(?F)'
      Lists of the directory parts and the file-within-directory parts of
      all prerequisites that are newer than the target.
 
    Note that we use a special stylistic convention when we talk about
-these automatic variables; we write "the value of `$<'", rather than
-"the variable `<'" as we would write for ordinary variables such as
-`objects' and `CFLAGS'.  We think this convention looks more natural in
-this special case.  Please do not assume it has a deep significance;
-`$<' refers to the variable named `<' just as `$(CFLAGS)' refers to the
-variable named `CFLAGS'.  You could just as well use `$(<)' in place of
-`$<'.
+these automatic variables; we write "the value of '$<'", rather than "the variable '<'"
+as we would write for ordinary variables such as 'objects' and 'CFLAGS'.
+We think this convention looks more natural in this special case.
+Please do not assume it has a deep significance; '$<' refers to the
+variable named '<' just as '$(CFLAGS)' refers to the variable named
+'CFLAGS'.  You could just as well use '$(<)' in place of '$<'.
 
 \1f
 File: make.info,  Node: Pattern Match,  Next: Match-Anything Rules,  Prev: Automatic Variables,  Up: Pattern Rules
@@ -1199,15 +903,15 @@ File: make.info,  Node: Pattern Match,  Next: Match-Anything Rules,  Prev: Autom
 10.5.4 How Patterns Match
 -------------------------
 
-A target pattern is composed of a `%' between a prefix and a suffix,
+A target pattern is composed of a '%' between a prefix and a suffix,
 either or both of which may be empty.  The pattern matches a file name
 only if the file name starts with the prefix and ends with the suffix,
 without overlap.  The text between the prefix and the suffix is called
-the "stem".  Thus, when the pattern `%.o' matches the file name
-`test.o', the stem is `test'.  The pattern rule prerequisites are
-turned into actual file names by substituting the stem for the character
-`%'.  Thus, if in the same example one of the prerequisites is written
-as `%.c', it expands to `test.c'.
+the "stem".  Thus, when the pattern '%.o' matches the file name
+'test.o', the stem is 'test'.  The pattern rule prerequisites are turned
+into actual file names by substituting the stem for the character '%'.
+Thus, if in the same example one of the prerequisites is written as
+'%.c', it expands to 'test.c'.
 
    When the target pattern does not contain a slash (and it usually does
 not), directory names in the file names are removed from the file name
@@ -1217,24 +921,24 @@ along with the slash that ends them, are added on to the prerequisite
 file names generated from the pattern rule's prerequisite patterns and
 the file name.  The directories are ignored only for the purpose of
 finding an implicit rule to use, not in the application of that rule.
-Thus, `e%t' matches the file name `src/eat', with `src/a' as the stem.
+Thus, 'e%t' matches the file name 'src/eat', with 'src/a' as the stem.
 When prerequisites are turned into file names, the directories from the
 stem are added at the front, while the rest of the stem is substituted
-for the `%'.  The stem `src/a' with a prerequisite pattern `c%r' gives
-the file name `src/car'.
+for the '%'.  The stem 'src/a' with a prerequisite pattern 'c%r' gives
+the file name 'src/car'.
 
    A pattern rule can be used to build a given file only if there is a
 target pattern that matches the file name, _and_ all prerequisites in
 that rule either exist or can be built.  The rules you write take
-precedence over those that are built in. Note however, that a rule
+precedence over those that are built in.  Note however, that a rule
 whose prerequisites actually exist or are mentioned always takes
 priority over a rule with prerequisites that must be made by chaining
 other implicit rules.
 
    It is possible that more than one pattern rule will meet these
-criteria.  In that case, `make' will choose the rule with the shortest
+criteria.  In that case, 'make' will choose the rule with the shortest
 stem (that is, the pattern that matches most specifically).  If more
-than one pattern rule has the shortest stem, `make' will choose the
+than one pattern rule has the shortest stem, 'make' will choose the
 first one found in the makefile.
 
    This algorithm results in more specific rules being preferred over
@@ -1249,15 +953,15 @@ more generic ones; for example:
      lib/%.o: lib/%.c
              $(CC) -fPIC -c $(CFLAGS) $(CPPFLAGS) $< -o $@
 
-   Given these rules and asked to build `bar.o' where both `bar.c' and
-`bar.f' exist, `make' will choose the first rule and compile `bar.c'
-into `bar.o'.  In the same situation where `bar.c' does not exist, then
-`make' will choose the second rule and compile `bar.f' into `bar.o'.
+   Given these rules and asked to build 'bar.o' where both 'bar.c' and
+'bar.f' exist, 'make' will choose the first rule and compile 'bar.c'
+into 'bar.o'.  In the same situation where 'bar.c' does not exist, then
+'make' will choose the second rule and compile 'bar.f' into 'bar.o'.
 
-   If `make' is asked to build `lib/bar.o' and both `lib/bar.c' and
-`lib/bar.f' exist, then the third rule will be chosen since the stem
-for this rule (`bar') is shorter than the stem for the first rule
-(`lib/bar').  If `lib/bar.c' does not exist then the third rule is not
+   If 'make' is asked to build 'lib/bar.o' and both 'lib/bar.c' and
+'lib/bar.f' exist, then the third rule will be chosen since the stem for
+this rule ('bar') is shorter than the stem for the first rule
+('lib/bar').  If 'lib/bar.c' does not exist then the third rule is not
 eligible and the second rule will be used, even though the stem is
 longer.
 
@@ -1267,62 +971,61 @@ File: make.info,  Node: Match-Anything Rules,  Next: Canceling Rules,  Prev: Pat
 10.5.5 Match-Anything Pattern Rules
 -----------------------------------
 
-When a pattern rule's target is just `%', it matches any file name
+When a pattern rule's target is just '%', it matches any file name
 whatever.  We call these rules "match-anything" rules.  They are very
-useful, but it can take a lot of time for `make' to think about them,
+useful, but it can take a lot of time for 'make' to think about them,
 because it must consider every such rule for each file name listed
 either as a target or as a prerequisite.
 
-   Suppose the makefile mentions `foo.c'.  For this target, `make'
-would have to consider making it by linking an object file `foo.c.o',
-or by C compilation-and-linking in one step from `foo.c.c', or by
-Pascal compilation-and-linking from `foo.c.p', and many other
-possibilities.
+   Suppose the makefile mentions 'foo.c'.  For this target, 'make' would
+have to consider making it by linking an object file 'foo.c.o', or by C
+compilation-and-linking in one step from 'foo.c.c', or by Pascal
+compilation-and-linking from 'foo.c.p', and many other possibilities.
 
-   We know these possibilities are ridiculous since `foo.c' is a C
-source file, not an executable.  If `make' did consider these
+   We know these possibilities are ridiculous since 'foo.c' is a C
+source file, not an executable.  If 'make' did consider these
 possibilities, it would ultimately reject them, because files such as
-`foo.c.o' and `foo.c.p' would not exist.  But these possibilities are so
-numerous that `make' would run very slowly if it had to consider them.
+'foo.c.o' and 'foo.c.p' would not exist.  But these possibilities are so
+numerous that 'make' would run very slowly if it had to consider them.
 
-   To gain speed, we have put various constraints on the way `make'
+   To gain speed, we have put various constraints on the way 'make'
 considers match-anything rules.  There are two different constraints
 that can be applied, and each time you define a match-anything rule you
 must choose one or the other for that rule.
 
    One choice is to mark the match-anything rule as "terminal" by
 defining it with a double colon.  When a rule is terminal, it does not
-apply unless its prerequisites actually exist.  Prerequisites that
-could be made with other implicit rules are not good enough.  In other
-words, no further chaining is allowed beyond a terminal rule.
+apply unless its prerequisites actually exist.  Prerequisites that could
+be made with other implicit rules are not good enough.  In other words,
+no further chaining is allowed beyond a terminal rule.
 
    For example, the built-in implicit rules for extracting sources from
-RCS and SCCS files are terminal; as a result, if the file `foo.c,v' does
-not exist, `make' will not even consider trying to make it as an
-intermediate file from `foo.c,v.o' or from `RCS/SCCS/s.foo.c,v'.  RCS
+RCS and SCCS files are terminal; as a result, if the file 'foo.c,v' does
+not exist, 'make' will not even consider trying to make it as an
+intermediate file from 'foo.c,v.o' or from 'RCS/SCCS/s.foo.c,v'.  RCS
 and SCCS files are generally ultimate source files, which should not be
-remade from any other files; therefore, `make' can save time by not
+remade from any other files; therefore, 'make' can save time by not
 looking for ways to remake them.
 
    If you do not mark the match-anything rule as terminal, then it is
-non-terminal.  A non-terminal match-anything rule cannot apply to a
-file name that indicates a specific type of data.  A file name
-indicates a specific type of data if some non-match-anything implicit
-rule target matches it.
+non-terminal.  A non-terminal match-anything rule cannot apply to a file
+name that indicates a specific type of data.  A file name indicates a
+specific type of data if some non-match-anything implicit rule target
+matches it.
 
-   For example, the file name `foo.c' matches the target for the pattern
-rule `%.c : %.y' (the rule to run Yacc).  Regardless of whether this
+   For example, the file name 'foo.c' matches the target for the pattern
+rule '%.c : %.y' (the rule to run Yacc).  Regardless of whether this
 rule is actually applicable (which happens only if there is a file
-`foo.y'), the fact that its target matches is enough to prevent
+'foo.y'), the fact that its target matches is enough to prevent
 consideration of any non-terminal match-anything rules for the file
-`foo.c'.  Thus, `make' will not even consider trying to make `foo.c' as
-an executable file from `foo.c.o', `foo.c.c', `foo.c.p', etc.
+'foo.c'.  Thus, 'make' will not even consider trying to make 'foo.c' as
+an executable file from 'foo.c.o', 'foo.c.c', 'foo.c.p', etc.
 
    The motivation for this constraint is that non-terminal
-match-anything rules are used for making files containing specific
-types of data (such as executable files) and a file name with a
-recognized suffix indicates some other specific type of data (such as a
-C source file).
+match-anything rules are used for making files containing specific types
+of data (such as executable files) and a file name with a recognized
+suffix indicates some other specific type of data (such as a C source
+file).
 
    Special built-in dummy pattern rules are provided solely to recognize
 certain file names so that non-terminal match-anything rules will not be
@@ -1332,11 +1035,11 @@ implicit rule
 
      %.p :
 
-exists to make sure that Pascal source files such as `foo.p' match a
+exists to make sure that Pascal source files such as 'foo.p' match a
 specific target pattern and thereby prevent time from being wasted
-looking for `foo.p.o' or `foo.p.c'.
+looking for 'foo.p.o' or 'foo.p.c'.
 
-   Dummy pattern rules such as the one for `%.p' are made for every
+   Dummy pattern rules such as the one for '%.p' are made for every
 suffix listed as valid for use in suffix rules (*note Old-Fashioned
 Suffix Rules: Suffix Rules.).
 
@@ -1353,8 +1056,8 @@ the built-in one is replaced.  The new rule's position in the sequence
 of implicit rules is determined by where you write the new rule.
 
    You can cancel a built-in implicit rule by defining a pattern rule
-with the same target and prerequisites, but no recipe.  For example,
-the following would cancel the rule that runs the assembler:
+with the same target and prerequisites, but no recipe.  For example, the
+following would cancel the rule that runs the assembler:
 
      %.o : %.s
 
@@ -1372,8 +1075,8 @@ recipe is used for all targets and prerequisites that have no recipe of
 their own and for which no other implicit rule applies.
 
    For example, when testing a makefile, you might not care if the
-source files contain real data, only that they exist.  Then you might
-do this:
+source files contain real data, only that they exist.  Then you might do
+this:
 
      %::
              touch $@
@@ -1383,20 +1086,20 @@ automatically.
 
    You can instead define a recipe to be used for targets for which
 there are no rules at all, even ones which don't specify recipes.  You
-do this by writing a rule for the target `.DEFAULT'.  Such a rule's
+do this by writing a rule for the target '.DEFAULT'.  Such a rule's
 recipe is used for all prerequisites which do not appear as targets in
 any explicit rule, and for which no implicit rule applies.  Naturally,
-there is no `.DEFAULT' rule unless you write one.
+there is no '.DEFAULT' rule unless you write one.
 
-   If you use `.DEFAULT' with no recipe or prerequisites:
+   If you use '.DEFAULT' with no recipe or prerequisites:
 
      .DEFAULT:
 
-the recipe previously stored for `.DEFAULT' is cleared.  Then `make'
-acts as if you had never defined `.DEFAULT' at all.
+the recipe previously stored for '.DEFAULT' is cleared.  Then 'make'
+acts as if you had never defined '.DEFAULT' at all.
 
    If you do not want a target to get the recipe from a match-anything
-pattern rule or `.DEFAULT', but you also do not want any recipe to be
+pattern rule or '.DEFAULT', but you also do not want any recipe to be
 run for the target, you can give it an empty recipe (*note Defining
 Empty Recipes: Empty Recipes.).
 
@@ -1410,34 +1113,34 @@ File: make.info,  Node: Suffix Rules,  Next: Implicit Rule Search,  Prev: Last R
 ===============================
 
 "Suffix rules" are the old-fashioned way of defining implicit rules for
-`make'.  Suffix rules are obsolete because pattern rules are more
-general and clearer.  They are supported in GNU `make' for
-compatibility with old makefiles.  They come in two kinds:
-"double-suffix" and "single-suffix".
+'make'.  Suffix rules are obsolete because pattern rules are more
+general and clearer.  They are supported in GNU 'make' for compatibility
+with old makefiles.  They come in two kinds: "double-suffix" and
+"single-suffix".
 
    A double-suffix rule is defined by a pair of suffixes: the target
 suffix and the source suffix.  It matches any file whose name ends with
 the target suffix.  The corresponding implicit prerequisite is made by
 replacing the target suffix with the source suffix in the file name.  A
-two-suffix rule whose target and source suffixes are `.o' and `.c' is
-equivalent to the pattern rule `%.o : %.c'.
+two-suffix rule whose target and source suffixes are '.o' and '.c' is
+equivalent to the pattern rule '%.o : %.c'.
 
    A single-suffix rule is defined by a single suffix, which is the
 source suffix.  It matches any file name, and the corresponding implicit
 prerequisite name is made by appending the source suffix.  A
-single-suffix rule whose source suffix is `.c' is equivalent to the
-pattern rule `% : %.c'.
+single-suffix rule whose source suffix is '.c' is equivalent to the
+pattern rule '% : %.c'.
 
    Suffix rule definitions are recognized by comparing each rule's
-target against a defined list of known suffixes.  When `make' sees a
+target against a defined list of known suffixes.  When 'make' sees a
 rule whose target is a known suffix, this rule is considered a
-single-suffix rule.  When `make' sees a rule whose target is two known
+single-suffix rule.  When 'make' sees a rule whose target is two known
 suffixes concatenated, this rule is taken as a double-suffix rule.
 
-   For example, `.c' and `.o' are both on the default list of known
-suffixes.  Therefore, if you define a rule whose target is `.c.o',
-`make' takes it to be a double-suffix rule with source suffix `.c' and
-target suffix `.o'.  Here is the old-fashioned way to define the rule
+   For example, '.c' and '.o' are both on the default list of known
+suffixes.  Therefore, if you define a rule whose target is '.c.o',
+'make' takes it to be a double-suffix rule with source suffix '.c' and
+target suffix '.o'.  Here is the old-fashioned way to define the rule
 for compiling a C source file:
 
      .c.o:
@@ -1450,43 +1153,43 @@ suffix rules.  Thus, the rule:
      .c.o: foo.h
              $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
 
-tells how to make the file `.c.o' from the prerequisite file `foo.h',
+tells how to make the file '.c.o' from the prerequisite file 'foo.h',
 and is not at all like the pattern rule:
 
      %.o: %.c foo.h
              $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
 
-which tells how to make `.o' files from `.c' files, and makes all `.o'
-files using this pattern rule also depend on `foo.h'.
+which tells how to make '.o' files from '.c' files, and makes all '.o'
+files using this pattern rule also depend on 'foo.h'.
 
    Suffix rules with no recipe are also meaningless.  They do not remove
 previous rules as do pattern rules with no recipe (*note Canceling
-Implicit Rules: Canceling Rules.).  They simply enter the suffix or
-pair of suffixes concatenated as a target in the data base.
+Implicit Rules: Canceling Rules.).  They simply enter the suffix or pair
+of suffixes concatenated as a target in the data base.
 
    The known suffixes are simply the names of the prerequisites of the
-special target `.SUFFIXES'.  You can add your own suffixes by writing a
-rule for `.SUFFIXES' that adds more prerequisites, as in:
+special target '.SUFFIXES'.  You can add your own suffixes by writing a
+rule for '.SUFFIXES' that adds more prerequisites, as in:
 
      .SUFFIXES: .hack .win
 
-which adds `.hack' and `.win' to the end of the list of suffixes.
+which adds '.hack' and '.win' to the end of the list of suffixes.
 
    If you wish to eliminate the default known suffixes instead of just
-adding to them, write a rule for `.SUFFIXES' with no prerequisites.  By
+adding to them, write a rule for '.SUFFIXES' with no prerequisites.  By
 special dispensation, this eliminates all existing prerequisites of
-`.SUFFIXES'.  You can then write another rule to add the suffixes you
+'.SUFFIXES'.  You can then write another rule to add the suffixes you
 want.  For example,
 
      .SUFFIXES:            # Delete the default suffixes
      .SUFFIXES: .c .o .h   # Define our suffix list
 
-   The `-r' or `--no-builtin-rules' flag causes the default list of
+   The '-r' or '--no-builtin-rules' flag causes the default list of
 suffixes to be empty.
 
-   The variable `SUFFIXES' is defined to the default list of suffixes
-before `make' reads any makefiles.  You can change the list of suffixes
-with a rule for the special target `.SUFFIXES', but that does not alter
+   The variable 'SUFFIXES' is defined to the default list of suffixes
+before 'make' reads any makefiles.  You can change the list of suffixes
+with a rule for the special target '.SUFFIXES', but that does not alter
 this variable.
 
 \1f
@@ -1495,28 +1198,28 @@ File: make.info,  Node: Implicit Rule Search,  Prev: Suffix Rules,  Up: Implicit
 10.8 Implicit Rule Search Algorithm
 ===================================
 
-Here is the procedure `make' uses for searching for an implicit rule
-for a target T.  This procedure is followed for each double-colon rule
-with no recipe, for each target of ordinary rules none of which have a
+Here is the procedure 'make' uses for searching for an implicit rule for
+a target T.  This procedure is followed for each double-colon rule with
+no recipe, for each target of ordinary rules none of which have a
 recipe, and for each prerequisite that is not the target of any rule.
 It is also followed recursively for prerequisites that come from
 implicit rules, in the search for a chain of rules.
 
-   Suffix rules are not mentioned in this algorithm because suffix
-rules are converted to equivalent pattern rules once the makefiles have
-been read in.
+   Suffix rules are not mentioned in this algorithm because suffix rules
+are converted to equivalent pattern rules once the makefiles have been
+read in.
 
-   For an archive member target of the form `ARCHIVE(MEMBER)', the
+   For an archive member target of the form 'ARCHIVE(MEMBER)', the
 following algorithm is run twice, first using the entire target name T,
-and second using `(MEMBER)' as the target T if the first run found no
+and second using '(MEMBER)' as the target T if the first run found no
 rule.
 
   1. Split T into a directory part, called D, and the rest, called N.
-     For example, if T is `src/foo.o', then D is `src/' and N is
-     `foo.o'.
+     For example, if T is 'src/foo.o', then D is 'src/' and N is
+     'foo.o'.
 
-  2. Make a list of all the pattern rules one of whose targets matches
-     or N.  If the target pattern contains a slash, it is matched
+  2. Make a list of all the pattern rules one of whose targets matches T
+     or N.  If the target pattern contains a slash, it is matched
      against T; otherwise, against N.
 
   3. If any rule in that list is _not_ a match-anything rule, then
@@ -1527,15 +1230,15 @@ rule.
   5. For each pattern rule in the list:
 
        a. Find the stem S, which is the nonempty part of T or N matched
-          by the `%' in the target pattern.
+          by the '%' in the target pattern.
 
-       b. Compute the prerequisite names by substituting S for `%'; if
+       b. Compute the prerequisite names by substituting S for '%'; if
           the target pattern does not contain a slash, append D to the
           front of each prerequisite name.
 
        c. Test whether all the prerequisites exist or ought to exist.
-          (If a file name is mentioned in the makefile as a target or
-          as an explicit prerequisite, then we say it ought to exist.)
+          (If a file name is mentioned in the makefile as a target or as
+          an explicit prerequisite, then we say it ought to exist.)
 
           If all prerequisites exist or ought to exist, or there are no
           prerequisites, then this rule applies.
@@ -1556,17 +1259,17 @@ rule.
        e. If all prerequisites exist, ought to exist, or can be made by
           implicit rules, then this rule applies.
 
-  7. If no implicit rule applies, the rule for `.DEFAULT', if any,
-     applies.  In that case, give T the same recipe that `.DEFAULT'
-     has.  Otherwise, there is no recipe for T.
+  7. If no implicit rule applies, the rule for '.DEFAULT', if any,
+     applies.  In that case, give T the same recipe that '.DEFAULT' has.
+     Otherwise, there is no recipe for T.
 
    Once a rule that applies has been found, for each target pattern of
-the rule other than the one that matched T or N, the `%' in the pattern
+the rule other than the one that matched T or N, the '%' in the pattern
 is replaced with S and the resultant file name is stored until the
 recipe to remake the target file T is executed.  After the recipe is
-executed, each of these stored file names are entered into the data
-base and marked as having been updated and having the same update
-status as the file T.
+executed, each of these stored file names are entered into the data base
+and marked as having been updated and having the same update status as
+the file T.
 
    When the recipe of a pattern rule is executed for T, the automatic
 variables are set corresponding to the target and prerequisites.  *Note
@@ -1575,11 +1278,11 @@ Automatic Variables::.
 \1f
 File: make.info,  Node: Archives,  Next: Extending make,  Prev: Implicit Rules,  Up: Top
 
-11 Using `make' to Update Archive Files
+11 Using 'make' to Update Archive Files
 ***************************************
 
 "Archive files" are files containing named sub-files called "members";
-they are maintained with the program `ar' and their main use is as
+they are maintained with the program 'ar' and their main use is as
 subroutine libraries for linking.
 
 * Menu:
@@ -1597,25 +1300,25 @@ File: make.info,  Node: Archive Members,  Next: Archive Update,  Prev: Archives,
 ===============================
 
 An individual member of an archive file can be used as a target or
-prerequisite in `make'.  You specify the member named MEMBER in archive
+prerequisite in 'make'.  You specify the member named MEMBER in archive
 file ARCHIVE as follows:
 
      ARCHIVE(MEMBER)
 
 This construct is available only in targets and prerequisites, not in
 recipes!  Most programs that you might use in recipes do not support
-this syntax and cannot act directly on archive members.  Only `ar' and
+this syntax and cannot act directly on archive members.  Only 'ar' and
 other programs specifically designed to operate on archives can do so.
 Therefore, valid recipes to update an archive member target probably
-must use `ar'.  For example, this rule says to create a member `hack.o'
-in archive `foolib' by copying the file `hack.o':
+must use 'ar'.  For example, this rule says to create a member 'hack.o'
+in archive 'foolib' by copying the file 'hack.o':
 
      foolib(hack.o) : hack.o
              ar cr foolib hack.o
 
    In fact, nearly all archive member targets are updated in just this
 way and there is an implicit rule to do it for you.  *Please note:* The
-`c' flag to `ar' is required if the archive file does not already exist.
+'c' flag to 'ar' is required if the archive file does not already exist.
 
    To specify several members in the same archive, you can write all the
 member names together between the parentheses.  For example:
@@ -1628,8 +1331,8 @@ is equivalent to:
 
    You can also use shell-style wildcards in an archive member
 reference.  *Note Using Wildcard Characters in File Names: Wildcards.
-For example, `foolib(*.o)' expands to all existing members of the
-`foolib' archive whose names end in `.o'; perhaps `foolib(hack.o)
+For example, 'foolib(*.o)' expands to all existing members of the
+'foolib' archive whose names end in '.o'; perhaps 'foolib(hack.o)
 foolib(kludge.o)'.
 
 \1f
@@ -1638,45 +1341,45 @@ File: make.info,  Node: Archive Update,  Next: Archive Pitfalls,  Prev: Archive
 11.2 Implicit Rule for Archive Member Targets
 =============================================
 
-Recall that a target that looks like `A(M)' stands for the member named
+Recall that a target that looks like 'A(M)' stands for the member named
 M in the archive file A.
 
-   When `make' looks for an implicit rule for such a target, as a
-special feature it considers implicit rules that match `(M)', as well as
-those that match the actual target `A(M)'.
+   When 'make' looks for an implicit rule for such a target, as a
+special feature it considers implicit rules that match '(M)', as well as
+those that match the actual target 'A(M)'.
 
-   This causes one special rule whose target is `(%)' to match.  This
-rule updates the target `A(M)' by copying the file M into the archive.
-For example, it will update the archive member target `foo.a(bar.o)' by
-copying the _file_ `bar.o' into the archive `foo.a' as a _member_ named
-`bar.o'.
+   This causes one special rule whose target is '(%)' to match.  This
+rule updates the target 'A(M)' by copying the file M into the archive.
+For example, it will update the archive member target 'foo.a(bar.o)' by
+copying the _file_ 'bar.o' into the archive 'foo.a' as a _member_ named
+'bar.o'.
 
    When this rule is chained with others, the result is very powerful.
-Thus, `make "foo.a(bar.o)"' (the quotes are needed to protect the `('
-and `)' from being interpreted specially by the shell) in the presence
-of a file `bar.c' is enough to cause the following recipe to be run,
+Thus, 'make "foo.a(bar.o)"' (the quotes are needed to protect the '('
+and ')' from being interpreted specially by the shell) in the presence
+of a file 'bar.c' is enough to cause the following recipe to be run,
 even without a makefile:
 
      cc -c bar.c -o bar.o
      ar r foo.a bar.o
      rm -f bar.o
 
-Here `make' has envisioned the file `bar.o' as an intermediate file.
+Here 'make' has envisioned the file 'bar.o' as an intermediate file.
 *Note Chains of Implicit Rules: Chained Rules.
 
    Implicit rules such as this one are written using the automatic
-variable `$%'.  *Note Automatic Variables::.
+variable '$%'.  *Note Automatic Variables::.
 
-   An archive member name in an archive cannot contain a directory
-name, but it may be useful in a makefile to pretend that it does.  If
-you write an archive member target `foo.a(dir/file.o)', `make' will
-perform automatic updating with this recipe:
+   An archive member name in an archive cannot contain a directory name,
+but it may be useful in a makefile to pretend that it does.  If you
+write an archive member target 'foo.a(dir/file.o)', 'make' will perform
+automatic updating with this recipe:
 
      ar r foo.a dir/file.o
 
-which has the effect of copying the file `dir/file.o' into a member
-named `file.o'.  In connection with such usage, the automatic variables
-`%D' and `%F' may be useful.
+which has the effect of copying the file 'dir/file.o' into a member
+named 'file.o'.  In connection with such usage, the automatic variables
+'%D' and '%F' may be useful.
 
 * Menu:
 
@@ -1689,10 +1392,10 @@ File: make.info,  Node: Archive Symbols,  Prev: Archive Update,  Up: Archive Upd
 ------------------------------------------
 
 An archive file that is used as a library usually contains a special
-member named `__.SYMDEF' that contains a directory of the external
+member named '__.SYMDEF' that contains a directory of the external
 symbol names defined by all the other members.  After you update any
-other members, you need to update `__.SYMDEF' so that it will summarize
-the other members properly.  This is done by running the `ranlib'
+other members, you need to update '__.SYMDEF' so that it will summarize
+the other members properly.  This is done by running the 'ranlib'
 program:
 
      ranlib ARCHIVEFILE
@@ -1704,14 +1407,14 @@ For example,
      libfoo.a: libfoo.a(x.o) libfoo.a(y.o) ...
              ranlib libfoo.a
 
-The effect of this is to update archive members `x.o', `y.o', etc., and
-then update the symbol directory member `__.SYMDEF' by running
-`ranlib'.  The rules for updating the members are not shown here; most
-likely you can omit them and use the implicit rule which copies files
-into the archive, as described in the preceding section.
+The effect of this is to update archive members 'x.o', 'y.o', etc., and
+then update the symbol directory member '__.SYMDEF' by running 'ranlib'.
+The rules for updating the members are not shown here; most likely you
+can omit them and use the implicit rule which copies files into the
+archive, as described in the preceding section.
 
-   This is not necessary when using the GNU `ar' program, which updates
-the `__.SYMDEF' member automatically.
+   This is not necessary when using the GNU 'ar' program, which updates
+the '__.SYMDEF' member automatically.
 
 \1f
 File: make.info,  Node: Archive Pitfalls,  Next: Archive Suffix Rules,  Prev: Archive Update,  Up: Archives
@@ -1719,15 +1422,15 @@ File: make.info,  Node: Archive Pitfalls,  Next: Archive Suffix Rules,  Prev: Ar
 11.3 Dangers When Using Archives
 ================================
 
-It is important to be careful when using parallel execution (the `-j'
+It is important to be careful when using parallel execution (the '-j'
 switch; *note Parallel Execution: Parallel.) and archives.  If multiple
-`ar' commands run at the same time on the same archive file, they will
+'ar' commands run at the same time on the same archive file, they will
 not know about each other and can corrupt the file.
 
-   Possibly a future version of `make' will provide a mechanism to
+   Possibly a future version of 'make' will provide a mechanism to
 circumvent this problem by serializing all recipes that operate on the
 same archive file.  But for the time being, you must either write your
-makefiles to avoid this problem in some other way, or not use `-j'.
+makefiles to avoid this problem in some other way, or not use '-j'.
 
 \1f
 File: make.info,  Node: Archive Suffix Rules,  Prev: Archive Pitfalls,  Up: Archives
@@ -1737,12 +1440,12 @@ File: make.info,  Node: Archive Suffix Rules,  Prev: Archive Pitfalls,  Up: Arch
 
 You can write a special kind of suffix rule for dealing with archive
 files.  *Note Suffix Rules::, for a full explanation of suffix rules.
-Archive suffix rules are obsolete in GNU `make', because pattern rules
-for archives are a more general mechanism (*note Archive Update::).
-But they are retained for compatibility with other `make's.
+Archive suffix rules are obsolete in GNU 'make', because pattern rules
+for archives are a more general mechanism (*note Archive Update::).  But
+they are retained for compatibility with other 'make's.
 
    To write a suffix rule for archives, you simply write a suffix rule
-using the target suffix `.a' (the usual suffix for archive files).  For
+using the target suffix '.a' (the usual suffix for archive files).  For
 example, here is the old-fashioned suffix rule to update a library
 archive from C source files:
 
@@ -1758,36 +1461,36 @@ This works just as if you had written the pattern rule:
              $(AR) r $@ $*.o
              $(RM) $*.o
 
-   In fact, this is just what `make' does when it sees a suffix rule
-with `.a' as the target suffix.  Any double-suffix rule `.X.a' is
-converted to a pattern rule with the target pattern `(%.o)' and a
-prerequisite pattern of `%.X'.
+   In fact, this is just what 'make' does when it sees a suffix rule
+with '.a' as the target suffix.  Any double-suffix rule '.X.a' is
+converted to a pattern rule with the target pattern '(%.o)' and a
+prerequisite pattern of '%.X'.
 
-   Since you might want to use `.a' as the suffix for some other kind
-of file, `make' also converts archive suffix rules to pattern rules in
-the normal way (*note Suffix Rules::).  Thus a double-suffix rule
-`.X.a' produces two pattern rules: `(%.o): %.X' and `%.a: %.X'.
+   Since you might want to use '.a' as the suffix for some other kind of
+file, 'make' also converts archive suffix rules to pattern rules in the
+normal way (*note Suffix Rules::).  Thus a double-suffix rule '.X.a'
+produces two pattern rules: '(%.o): %.X' and '%.a: %.X'.
 
 \1f
 File: make.info,  Node: Extending make,  Next: Features,  Prev: Archives,  Up: Top
 
-12 Extending GNU `make'
+12 Extending GNU 'make'
 ***********************
 
-GNU `make' provides many advanced capabilities, including many useful
-functions.  However, it does not contain a complete programming
-language and so it has limitations.  Sometimes these limitations can be
-overcome through use of the `shell' function to invoke a separate
-program, although this can be inefficient.
+GNU 'make' provides many advanced capabilities, including many useful
+functions.  However, it does not contain a complete programming language
+and so it has limitations.  Sometimes these limitations can be overcome
+through use of the 'shell' function to invoke a separate program,
+although this can be inefficient.
 
-   In cases where the built-in capabilities of GNU `make' are
+   In cases where the built-in capabilities of GNU 'make' are
 insufficient to your requirements there are two options for extending
-`make'.  On systems where it's provided, you can utilize GNU Guile as
-an embedded scripting language (*note GNU Guile Integration: Guile
+'make'.  On systems where it's provided, you can utilize GNU Guile as an
+embedded scripting language (*note GNU Guile Integration: Guile
 Integration.).  On systems which support dynamically loadable objects,
 you can write your own extension in any language (which can be compiled
-into such an object) and load it to provide extended capabilities
-(*note The `load' Directive: load Directive.).
+into such an object) and load it to provide extended capabilities (*note
+The 'load' Directive: load Directive.).
 
 * Menu:
 
@@ -1800,29 +1503,29 @@ File: make.info,  Node: Guile Integration,  Next: Loading Objects,  Prev: Extend
 12.1 GNU Guile Integration
 ==========================
 
-GNU `make' may be built with support for GNU Guile as an embedded
+GNU 'make' may be built with support for GNU Guile as an embedded
 extension language.  Guile implements the Scheme language.  A review of
 GNU Guile and the Scheme language and its features is beyond the scope
 of this manual: see the documentation for GNU Guile and Scheme.
 
-   You can determine if `make' contains support for Guile by examining
-the `.FEATURES' variable; it will contain the word GUILE if Guile
+   You can determine if 'make' contains support for Guile by examining
+the '.FEATURES' variable; it will contain the word GUILE if Guile
 support is available.
 
-   The Guile integration provides one new `make' function: `guile'.
-The `guile' function takes one argument which is first expanded by
-`make' in the normal fashion, then passed to the GNU Guile evaluator.
-The result of the evaluator is converted into a string and used as the
-expansion of the `guile' function in the makefile.
+   The Guile integration provides one new 'make' function: 'guile'.  The
+'guile' function takes one argument which is first expanded by 'make' in
+the normal fashion, then passed to the GNU Guile evaluator.  The result
+of the evaluator is converted into a string and used as the expansion of
+the 'guile' function in the makefile.
 
-   In addition, GNU `make' exposes Guile procedures for use in Guile
+   In addition, GNU 'make' exposes Guile procedures for use in Guile
 scripts.
 
 * Menu:
 
-* Guile Types::                 Converting Guile types to `make' strings.
-* Guile Interface::             Invoking `make' functions from Guile.
-* Guile Example::               Example using Guile in `make'.
+* Guile Types::                 Converting Guile types to 'make' strings.
+* Guile Interface::             Invoking 'make' functions from Guile.
+* Guile Example::               Example using Guile in 'make'.
 
 \1f
 File: make.info,  Node: Guile Types,  Next: Guile Interface,  Prev: Guile Integration,  Up: Guile Integration
@@ -1830,109 +1533,106 @@ File: make.info,  Node: Guile Types,  Next: Guile Interface,  Prev: Guile Integr
 12.1.1 Conversion of Guile Types
 --------------------------------
 
-There is only one "data type" in `make': a string.  GNU Guile, on the
+There is only one "data type" in 'make': a string.  GNU Guile, on the
 other hand, provides a rich variety of different data types.  An
-important aspect of the interface between `make' and GNU Guile is the
-conversion of Guile data types into `make' strings.
+important aspect of the interface between 'make' and GNU Guile is the
+conversion of Guile data types into 'make' strings.
 
    This conversion is relevant in two places: when a makefile invokes
-the `guile' function to evaluate a Guile expression, the result of that
+the 'guile' function to evaluate a Guile expression, the result of that
 evaluation must be converted into a make string so it can be further
-evaluated by `make'.  And secondly, when a Guile script invokes one of
-the procedures exported by `make' the argument provided to the
-procedure must be converted into a string.
+evaluated by 'make'.  And secondly, when a Guile script invokes one of
+the procedures exported by 'make' the argument provided to the procedure
+must be converted into a string.
 
-   The conversion of Guile types into `make' strings is as below:
+   The conversion of Guile types into 'make' strings is as below:
 
-`#f'
-     False is converted into the empty string: in `make' conditionals
+'#f'
+     False is converted into the empty string: in 'make' conditionals
      the empty string is considered false.
 
-`#t'
-     True is converted to the string `#t': in `make' conditionals any
+'#t'
+     True is converted to the string '#t': in 'make' conditionals any
      non-empty string is considered true.
 
-`symbol'
-
-`number'
+'symbol'
+'number'
      A symbol or number is converted into the string representation of
      that symbol or number.
 
-`character'
+'character'
      A printable character is converted to the same character.
 
-`string'
+'string'
      A string containing only printable characters is converted to the
      same string.
 
-`list'
+'list'
      A list is converted recursively according to the above rules.  This
      implies that any structured list will be flattened (that is, a
-     result of `'(a b (c d) e)' will be converted to the `make' string
-     `a b c d e').
+     result of ''(a b (c d) e)' will be converted to the 'make' string
+     'a b c d e').
 
-`other'
+'other'
      Any other Guile type results in an error.  In future versions of
-     `make', other Guile types may be converted.
+     'make', other Guile types may be converted.
 
-
-   The translation of `#f' (to the empty string) and `#t' (to the
-non-empty string `#t') is designed to allow you to use Guile boolean
-results directly as `make' boolean conditions.  For example:
+   The translation of '#f' (to the empty string) and '#t' (to the
+non-empty string '#t') is designed to allow you to use Guile boolean
+results directly as 'make' boolean conditions.  For example:
 
      $(if $(guile (access? "myfile" R_OK)),$(info myfile exists))
 
    As a consequence of these conversion rules you must consider the
 result of your Guile script, as that result will be converted into a
-string and parsed by `make'.  If there is no natural result for the
+string and parsed by 'make'.  If there is no natural result for the
 script (that is, the script exists solely for its side-effects), you
-should add `#f' as the final expression in order to avoid syntax errors
+should add '#f' as the final expression in order to avoid syntax errors
 in your makefile.
 
 \1f
 File: make.info,  Node: Guile Interface,  Next: Guile Example,  Prev: Guile Types,  Up: Guile Integration
 
-12.1.2 Interfaces from Guile to `make'
+12.1.2 Interfaces from Guile to 'make'
 --------------------------------------
 
-In addition to the `guile' function available in makefiles, `make'
+In addition to the 'guile' function available in makefiles, 'make'
 exposes some procedures for use in your Guile scripts.  At startup
-`make' creates a new Guile module, `gnu make', and exports these
+'make' creates a new Guile module, 'gnu make', and exports these
 procedures as public interfaces from that module:
 
-`gmk-expand'
+'gmk-expand'
      This procedure takes a single argument which is converted into a
-     string.  The string is expanded by `make' using normal `make'
+     string.  The string is expanded by 'make' using normal 'make'
      expansion rules.  The result of the expansion is converted into a
      Guile string and provided as the result of the procedure.
 
-`gmk-eval'
+'gmk-eval'
      This procedure takes a single argument which is converted into a
-     string.  The string is evaluated by `make' as if it were a
-     makefile.  This is the same capability available via the `eval'
-     function (*note Eval Function::).  The result of the `gmk-eval'
+     string.  The string is evaluated by 'make' as if it were a
+     makefile.  This is the same capability available via the 'eval'
+     function (*note Eval Function::).  The result of the 'gmk-eval'
      procedure is always the empty string.
 
-     Note that `gmk-eval' is not quite the same as using `gmk-expand'
-     with the `eval' function: in the latter case the evaluated string
-     will be expanded _twice_; first by `gmk-expand', then again by the
-     `eval' function.
-
+     Note that 'gmk-eval' is not quite the same as using 'gmk-expand'
+     with the 'eval' function: in the latter case the evaluated string
+     will be expanded _twice_; first by 'gmk-expand', then again by the
+     'eval' function.
 
 \1f
 File: make.info,  Node: Guile Example,  Prev: Guile Interface,  Up: Guile Integration
 
-12.1.3 Example Using Guile in `make'
+12.1.3 Example Using Guile in 'make'
 ------------------------------------
 
 Here is a very simple example using GNU Guile to manage writing to a
 file.  These Guile procedures simply open a file, allow writing to the
 file (one string per line), and close the file.  Note that because we
-cannot store complex values such as Guile ports in `make' variables,
+cannot store complex values such as Guile ports in 'make' variables,
 we'll keep the port as a global variable in the Guile interpreter.
 
-   You can create Guile functions easily using `define'/`endef' to
-create a Guile script, then use the `guile' function to internalize it:
+   You can create Guile functions easily using 'define'/'endef' to
+create a Guile script, then use the 'guile' function to internalize it:
 
      define GUILEIO
      ;; A simple Guile IO library for GNU make
@@ -1959,14 +1659,14 @@ create a Guile script, then use the `guile' function to internalize it:
      $(guile $(GUILEIO))
 
    If you have a significant amount of Guile support code, you might
-consider keeping it in a different file (e.g., `guileio.scm') and then
-loading it in your makefile using the `guile' function:
+consider keeping it in a different file (e.g., 'guileio.scm') and then
+loading it in your makefile using the 'guile' function:
 
      $(guile (load "guileio.scm"))
 
-   An advantage to this method is that when editing `guileio.scm', your
-editor will understand that this file contains Scheme syntax rather
-than makefile syntax.
+   An advantage to this method is that when editing 'guileio.scm', your
+editor will understand that this file contains Scheme syntax rather than
+makefile syntax.
 
    Now you can use these Guile functions to create files.  Suppose you
 need to operate on a very large list, which cannot fit on the command
@@ -1980,9 +1680,9 @@ line, but the utility you're using accepts the list as input as well:
 
    A more comprehensive suite of file manipulation procedures is
 possible of course.  You could, for example, maintain multiple output
-files at the same time by choosing a symbol for each one and using it
-as the key to a hash table, where the value is a port, then returning
-the symbol to be stored in a `make' variable.
+files at the same time by choosing a symbol for each one and using it as
+the key to a hash table, where the value is a port, then returning the
+symbol to be stored in a 'make' variable.
 
 \1f
 File: make.info,  Node: Loading Objects,  Prev: Guile Integration,  Up: Extending make
@@ -1990,25 +1690,25 @@ File: make.info,  Node: Loading Objects,  Prev: Guile Integration,  Up: Extendin
 12.2 Loading Dynamic Objects
 ============================
 
-     Warning: The `load' directive and extension capability is
+     Warning: The 'load' directive and extension capability is
      considered a "technology preview" in this release of GNU make.  We
-     encourage you to experiment with this feature and we appreciate
-     any feedback on it.  However we cannot guarantee to maintain
+     encourage you to experiment with this feature and we appreciate any
+     feedback on it.  However we cannot guarantee to maintain
      backward-compatibility in the next release.  Consider using GNU
-     Guile instead for extending GNU make (*note The `guile' Function:
+     Guile instead for extending GNU make (*note The 'guile' Function:
      Guile Function.).
 
-Many operating systems provide a facility for dynamically loading
-compiled objects.  If your system provides this facility, GNU `make'
-can make use of it to load dynamic objects at runtime, providing new
+   Many operating systems provide a facility for dynamically loading
+compiled objects.  If your system provides this facility, GNU 'make' can
+make use of it to load dynamic objects at runtime, providing new
 capabilities which may then be invoked by your makefile.
 
-   The `load' directive is used to load a dynamic object.  Once the
-object is loaded, a "setup" function will be invoked to allow the
-object to initialize itself and register new facilities with GNU
-`make'.  A dynamic object might include new `make' functions, for
-example, and the "setup" function would register them with GNU `make''s
-function handling system.
+   The 'load' directive is used to load a dynamic object.  Once the
+object is loaded, a "setup" function will be invoked to allow the object
+to initialize itself and register new facilities with GNU 'make'.  A
+dynamic object might include new 'make' functions, for example, and the
+"setup" function would register them with GNU 'make''s function handling
+system.
 
 * Menu:
 
@@ -2020,11 +1720,11 @@ function handling system.
 \1f
 File: make.info,  Node: load Directive,  Next: Remaking Loaded Objects,  Prev: Loading Objects,  Up: Loading Objects
 
-12.2.1 The `load' Directive
+12.2.1 The 'load' Directive
 ---------------------------
 
-Objects are loaded into GNU `make' by placing the `load' directive into
-your makefile.  The syntax of the `load' directive is as follows:
+Objects are loaded into GNU 'make' by placing the 'load' directive into
+your makefile.  The syntax of the 'load' directive is as follows:
 
      load OBJECT-FILE ...
 
@@ -2032,13 +1732,13 @@ your makefile.  The syntax of the `load' directive is as follows:
 
      load OBJECT-FILE(SYMBOL-NAME) ...
 
-   The file OBJECT-FILE is dynamically loaded by GNU `make'.  If
+   The file OBJECT-FILE is dynamically loaded by GNU 'make'.  If
 OBJECT-FILE does not include a directory path then it is first looked
 for in the current directory.  If it is not found there, or a directory
 path is included, then system-specific paths will be searched.  If the
-load fails for any reason, `make' will print a message and exit.
+load fails for any reason, 'make' will print a message and exit.
 
-   If the load succeeds `make' will invoke an initializing function.
+   If the load succeeds 'make' will invoke an initializing function.
 
    If SYMBOL-NAME is provided, it will be used as the name of the
 initializing function.
@@ -2047,16 +1747,16 @@ initializing function.
 created by taking the base file name of OBJECT-FILE, up to the first
 character which is not a valid symbol name character (alphanumerics and
 underscores are valid symbol name characters).  To this prefix will be
-appended the suffix `_gmk_setup'.
+appended the suffix '_gmk_setup'.
 
-   More than one object file may be loaded with a single `load'
-directive, and both forms of `load' arguments may be used in the same
+   More than one object file may be loaded with a single 'load'
+directive, and both forms of 'load' arguments may be used in the same
 directive.
 
    The initializing function will be provided the file name and line
-number of the invocation of the `load' operation.  It should return a
-value of type `int', which must be `0' on failure and non-`0' on
-success.  If the return value is `-1', then GNU make will _not_ attempt
+number of the invocation of the 'load' operation.  It should return a
+value of type 'int', which must be '0' on failure and non-'0' on
+success.  If the return value is '-1', then GNU make will _not_ attempt
 to rebuild the object file (*note How Loaded Objects Are Remade:
 Remaking Loaded Objects.).
 
@@ -2064,30 +1764,30 @@ Remaking Loaded Objects.).
 
      load ../mk_funcs.so
 
-   will load the dynamic object `../mk_funcs.so'.  After the object is
-loaded, `make' will invoke the function (assumed to be defined by the
-shared object) `mk_funcs_gmk_setup'.
+   will load the dynamic object '../mk_funcs.so'.  After the object is
+loaded, 'make' will invoke the function (assumed to be defined by the
+shared object) 'mk_funcs_gmk_setup'.
 
    On the other hand:
 
      load ../mk_funcs.so(init_mk_func)
 
-   will load the dynamic object `../mk_funcs.so'.  After the object is
-loaded, `make' will invoke the function `init_mk_func'.
+   will load the dynamic object '../mk_funcs.so'.  After the object is
+loaded, 'make' will invoke the function 'init_mk_func'.
 
-   Regardless of how many times an object file appears in a `load'
+   Regardless of how many times an object file appears in a 'load'
 directive, it will only be loaded (and its setup function will only be
 invoked) once.
 
    After an object has been successfully loaded, its file name is
-appended to the `.LOADED' variable.
+appended to the '.LOADED' variable.
 
    If you would prefer that failure to load a dynamic object not be
-reported as an error, you can use the `-load' directive instead of
-`load'.  GNU `make' will not fail and no message will be generated if
-an object fails to load.  The failed object is not added to the
-`.LOADED' variable, which can then be consulted to determine if the
-load was successful.
+reported as an error, you can use the '-load' directive instead of
+'load'.  GNU 'make' will not fail and no message will be generated if an
+object fails to load.  The failed object is not added to the '.LOADED'
+variable, which can then be consulted to determine if the load was
+successful.
 
 \1f
 File: make.info,  Node: Remaking Loaded Objects,  Next: Loaded Object API,  Prev: load Directive,  Up: Loading Objects
@@ -2096,8 +1796,8 @@ File: make.info,  Node: Remaking Loaded Objects,  Next: Loaded Object API,  Prev
 ------------------------------------
 
 Loaded objects undergo the same re-make procedure as makefiles (*note
-How Makefiles Are Remade: Remaking Makefiles.).  If any loaded object
-is recreated, then `make' will start from scratch and re-read all the
+How Makefiles Are Remade: Remaking Makefiles.).  If any loaded object is
+recreated, then 'make' will start from scratch and re-read all the
 makefiles, and reload the object files again.  It is not necessary for
 the loaded object to do anything special to support this.
 
@@ -2110,156 +1810,155 @@ File: make.info,  Node: Loaded Object API,  Next: Loaded Object Example,  Prev:
 12.2.3 Loaded Object Interface
 ------------------------------
 
-     Warning: For this feature to be useful your extensions will need
-     to invoke various functions internal to GNU `make'.  The
-     programming interfaces provided in this release should not be
-     considered stable: functions may be added, removed, or change
-     calling signatures or implementations in future versions of GNU
-     `make'.
+     Warning: For this feature to be useful your extensions will need to
+     invoke various functions internal to GNU 'make'.  The programming
+     interfaces provided in this release should not be considered
+     stable: functions may be added, removed, or change calling
+     signatures or implementations in future versions of GNU 'make'.
 
-To be useful, loaded objects must be able to interact with GNU `make'.
-This interaction includes both interfaces the loaded object provides to
-makefiles and also interfaces `make' provides to the loaded object to
-manipulate `make''s operation.
+   To be useful, loaded objects must be able to interact with GNU
+'make'.  This interaction includes both interfaces the loaded object
+provides to makefiles and also interfaces 'make' provides to the loaded
+object to manipulate 'make''s operation.
 
-   The interface between loaded objects and `make' is defined by the
-`gnumake.h' C header file.  All loaded objects written in C should
+   The interface between loaded objects and 'make' is defined by the
+'gnumake.h' C header file.  All loaded objects written in C should
 include this header file.  Any loaded object not written in C will need
 to implement the interface defined in this header file.
 
-   Typically, a loaded object will register one or more new GNU `make'
-functions using the `gmk_add_function' routine from within its setup
-function.  The implementations of these `make' functions may make use
-of the `gmk_expand' and `gmk_eval' routines to perform their tasks,
-then optionally return a string as the result of the function expansion.
+   Typically, a loaded object will register one or more new GNU 'make'
+functions using the 'gmk_add_function' routine from within its setup
+function.  The implementations of these 'make' functions may make use of
+the 'gmk_expand' and 'gmk_eval' routines to perform their tasks, then
+optionally return a string as the result of the function expansion.
 
 Loaded Object Licensing
 .......................
 
 Every dynamic extension should define the global symbol
-`plugin_is_GPL_compatible' to assert that it has been licensed under a
-GPL-compatible license.  If this symbol does not exist, `make' emits a
+'plugin_is_GPL_compatible' to assert that it has been licensed under a
+GPL-compatible license.  If this symbol does not exist, 'make' emits a
 fatal error and exits when it tries to load your extension.
 
-   The declared type of the symbol should be `int'. It does not need to
+   The declared type of the symbol should be 'int'.  It does not need to
 be in any allocated section, though.  The code merely asserts that the
-symbol exists in the global scope. Something like this is enough:
+symbol exists in the global scope.  Something like this is enough:
 
      int plugin_is_GPL_compatible;
 
 Data Structures
 ...............
 
-`gmk_floc'
+'gmk_floc'
      This structure represents a filename/location pair.  It is provided
-     when defining items, so GNU `make' can inform the user later where
+     when defining items, so GNU 'make' can inform the user later where
      the definition occurred if necessary.
 
 Registering Functions
 .....................
 
 There is currently one way for makefiles to invoke operations provided
-by the loaded object: through the `make' function call interface.  A
+by the loaded object: through the 'make' function call interface.  A
 loaded object can register one or more new functions which may then be
 invoked from within the makefile in the same way as any other function.
 
-   Use `gmk_add_function' to create a new `make' function.  Its
+   Use 'gmk_add_function' to create a new 'make' function.  Its
 arguments are as follows:
 
-`name'
+'name'
      The function name.  This is what the makefile should use to invoke
      the function.  The name must be between 1 and 255 characters long
-     and it may only contain alphanumeric, period (`.'), dash (`-'), and
-     underscore (`_') characters.  It may not begin with a period.
+     and it may only contain alphanumeric, period ('.'), dash ('-'), and
+     underscore ('_') characters.  It may not begin with a period.
 
-`func_ptr'
-     A pointer to a function that `make' will invoke when it expands
-     the function in a makefile.  This function must be defined by the
+'func_ptr'
+     A pointer to a function that 'make' will invoke when it expands the
+     function in a makefile.  This function must be defined by the
      loaded object.
 
-`min_args'
+'min_args'
      The minimum number of arguments the function will accept.  Must be
-     between 0 and 255.  GNU `make' will check this and fail before
-     invoking `func_ptr' if the function was invoked with too few
+     between 0 and 255.  GNU 'make' will check this and fail before
+     invoking 'func_ptr' if the function was invoked with too few
      arguments.
 
-`max_args'
+'max_args'
      The maximum number of arguments the function will accept.  Must be
-     between 0 and 255.  GNU `make' will check this and fail before
-     invoking `func_ptr' if the function was invoked with too few
+     between 0 and 255.  GNU 'make' will check this and fail before
+     invoking 'func_ptr' if the function was invoked with too few
      arguments.  If the value is 0, then any number of arguments is
      accepted.  If the value is greater than 0, then it must be greater
-     than or equal to `min_args'.
+     than or equal to 'min_args'.
 
-`flags'
+'flags'
      Flags that specify how this function will operate; the desired
-     flags should be OR'd together.  If the `GMK_FUNC_NOEXPAND' flag is
+     flags should be OR'd together.  If the 'GMK_FUNC_NOEXPAND' flag is
      given then the function arguments will not be expanded before the
      function is called; otherwise they will be expanded first.
 
 Registered Function Interface
 .............................
 
-A function registered with `make' must match the `gmk_func_ptr' type.
-It will be invoked with three parameters: `name' (the name of the
-function), `argc' (the number of arguments to the function), and `argv'
+A function registered with 'make' must match the 'gmk_func_ptr' type.
+It will be invoked with three parameters: 'name' (the name of the
+function), 'argc' (the number of arguments to the function), and 'argv'
 (an array of pointers to arguments to the function).  The last pointer
-(that is, `argv[argc]') will be null (`0').
+(that is, 'argv[argc]') will be null ('0').
 
    The return value of the function is the result of expanding the
 function.  If the function expands to nothing the return value may be
 null.  Otherwise, it must be a pointer to a string created with
-`gmk_alloc'.  Once the function returns, `make' owns this string and
+'gmk_alloc'.  Once the function returns, 'make' owns this string and
 will free it when appropriate; it cannot be accessed by the loaded
 object.
 
-GNU `make' Facilities
+GNU 'make' Facilities
 .....................
 
-There are some facilities exported by GNU `make' for use by loaded
+There are some facilities exported by GNU 'make' for use by loaded
 objects.  Typically these would be run from within the setup function
-and/or the functions registered via `gmk_add_function', to retrieve or
-modify the data `make' works with.
+and/or the functions registered via 'gmk_add_function', to retrieve or
+modify the data 'make' works with.
 
-`gmk_expand'
-     This function takes a string and expands it using `make' expansion
-     rules.  The result of the expansion is returned in a
-     nil-terminated string buffer.  The caller is responsible for
-     calling `gmk_free' with a pointer to the returned buffer when done.
+'gmk_expand'
+     This function takes a string and expands it using 'make' expansion
+     rules.  The result of the expansion is returned in a nil-terminated
+     string buffer.  The caller is responsible for calling 'gmk_free'
+     with a pointer to the returned buffer when done.
 
-`gmk_eval'
+'gmk_eval'
      This function takes a buffer and evaluates it as a segment of
      makefile syntax.  This function can be used to define new
-     variables, new rules, etc.  It is equivalent to using the `eval'
-     `make' function.
+     variables, new rules, etc.  It is equivalent to using the 'eval'
+     'make' function.
 
-   Note that there is a difference between `gmk_eval' and calling
-`gmk_expand' with a string using the `eval' function: in the latter
-case the string will be expanded _twice_; once by `gmk_expand' and then
-again by the `eval' function.  Using `gmk_eval' the buffer is only
-expanded once, at most (as it's read by the `make' parser).
+   Note that there is a difference between 'gmk_eval' and calling
+'gmk_expand' with a string using the 'eval' function: in the latter case
+the string will be expanded _twice_; once by 'gmk_expand' and then again
+by the 'eval' function.  Using 'gmk_eval' the buffer is only expanded
+once, at most (as it's read by the 'make' parser).
 
 Memory Management
 .................
 
 Some systems allow for different memory management schemes.  Thus you
-should never pass memory that you've allocated directly to any `make'
-function, nor should you attempt to directly free any memory returned
-to you by any `make' function.  Instead, use the `gmk_alloc' and
-`gmk_free' functions.
+should never pass memory that you've allocated directly to any 'make'
+function, nor should you attempt to directly free any memory returned to
+you by any 'make' function.  Instead, use the 'gmk_alloc' and 'gmk_free'
+functions.
 
-   In particular, the string returned to `make' by a function
-registered using `gmk_add_function' _must_ be allocated using
-`gmk_alloc', and the string returned from the `make' `gmk_expand'
-function _must_ be freed (when no longer needed) using `gmk_free'.
+   In particular, the string returned to 'make' by a function registered
+using 'gmk_add_function' _must_ be allocated using 'gmk_alloc', and the
+string returned from the 'make' 'gmk_expand' function _must_ be freed
+(when no longer needed) using 'gmk_free'.
 
-`gmk_alloc'
+'gmk_alloc'
      Return a pointer to a newly-allocated buffer.  This function will
      always return a valid pointer; if not enough memory is available
-     `make' will exit.
+     'make' will exit.
 
-`gmk_free'
-     Free a buffer returned to you by `make'.  Once the `gmk_free'
+'gmk_free'
+     Free a buffer returned to you by 'make'.  Once the 'gmk_free'
      function returns the string will no longer be valid.
 
 \1f
@@ -2268,10 +1967,10 @@ File: make.info,  Node: Loaded Object Example,  Prev: Loaded Object API,  Up: Lo
 12.2.4 Example Loaded Object
 ----------------------------
 
-Let's suppose we wanted to write a new GNU `make' function that would
-create a temporary file and return its name.  We would like our
-function to take a prefix as an argument.  First we can write the
-function in a file `mk_temp.c':
+Let's suppose we wanted to write a new GNU 'make' function that would
+create a temporary file and return its name.  We would like our function
+to take a prefix as an argument.  First we can write the function in a
+file 'mk_temp.c':
 
      #include <stdlib.h>
      #include <stdlib.h>
@@ -2331,15 +2030,15 @@ load it, and use it:
 
    On MS-Windows, due to peculiarities of how shared objects are
 produced, the compiler needs to scan the "import library" produced when
-building `make', typically called `libgnumake-VERSION.dll.a', where
-VERSION is the version of the load object API.  So the recipe to
-produce a shared object will look on Windows like this (assuming the
-API version is 1):
+building 'make', typically called 'libgnumake-VERSION.dll.a', where
+VERSION is the version of the load object API. So the recipe to produce
+a shared object will look on Windows like this (assuming the API version
+is 1):
 
      mk_temp.dll: mk_temp.c
              $(CC) -shared -o $ $< -lgnumake-1
 
-   Now when you run `make' you'll see something like:
+   Now when you run 'make' you'll see something like:
 
      $ make
      cc -shared -fPIC -o mk_temp.so mk_temp.c
@@ -2348,53 +2047,53 @@ API version is 1):
 \1f
 File: make.info,  Node: Features,  Next: Missing,  Prev: Extending make,  Up: Top
 
-13 Features of GNU `make'
+13 Features of GNU 'make'
 *************************
 
-Here is a summary of the features of GNU `make', for comparison with
-and credit to other versions of `make'.  We consider the features of
-`make' in 4.2 BSD systems as a baseline.  If you are concerned with
-writing portable makefiles, you should not use the features of `make'
-listed here, nor the ones in *note Missing::.
+Here is a summary of the features of GNU 'make', for comparison with and
+credit to other versions of 'make'.  We consider the features of 'make'
+in 4.2 BSD systems as a baseline.  If you are concerned with writing
+portable makefiles, you should not use the features of 'make' listed
+here, nor the ones in *note Missing::.
 
-   Many features come from the version of `make' in System V.
+   Many features come from the version of 'make' in System V.
 
-   * The `VPATH' variable and its special meaning.  *Note Searching
+   * The 'VPATH' variable and its special meaning.  *Note Searching
      Directories for Prerequisites: Directory Search.  This feature
-     exists in System V `make', but is undocumented.  It is documented
-     in 4.3 BSD `make' (which says it mimics System V's `VPATH'
+     exists in System V 'make', but is undocumented.  It is documented
+     in 4.3 BSD 'make' (which says it mimics System V's 'VPATH'
      feature).
 
    * Included makefiles.  *Note Including Other Makefiles: Include.
-     Allowing multiple files to be included with a single directive is
-     GNU extension.
+     Allowing multiple files to be included with a single directive is a
+     GNU extension.
 
    * Variables are read from and communicated via the environment.
      *Note Variables from the Environment: Environment.
 
-   * Options passed through the variable `MAKEFLAGS' to recursive
-     invocations of `make'.  *Note Communicating Options to a
-     Sub-`make': Options/Recursion.
+   * Options passed through the variable 'MAKEFLAGS' to recursive
+     invocations of 'make'.  *Note Communicating Options to a
+     Sub-'make': Options/Recursion.
 
-   * The automatic variable `$%' is set to the member name in an
-     archive reference.  *Note Automatic Variables::.
+   * The automatic variable '$%' is set to the member name in an archive
+     reference.  *Note Automatic Variables::.
 
-   * The automatic variables `$@', `$*', `$<', `$%', and `$?' have
-     corresponding forms like `$(@F)' and `$(@D)'.  We have generalized
-     this to `$^' as an obvious extension.  *Note Automatic Variables::.
+   * The automatic variables '$@', '$*', '$<', '$%', and '$?' have
+     corresponding forms like '$(@F)' and '$(@D)'.  We have generalized
+     this to '$^' as an obvious extension.  *Note Automatic Variables::.
 
    * Substitution variable references.  *Note Basics of Variable
      References: Reference.
 
-   * The command line options `-b' and `-m', accepted and ignored.  In
-     System V `make', these options actually do something.
+   * The command line options '-b' and '-m', accepted and ignored.  In
+     System V 'make', these options actually do something.
 
-   * Execution of recursive commands to run `make' via the variable
-     `MAKE' even if `-n', `-q' or `-t' is specified.  *Note Recursive
-     Use of `make': Recursion.
+   * Execution of recursive commands to run 'make' via the variable
+     'MAKE' even if '-n', '-q' or '-t' is specified.  *Note Recursive
+     Use of 'make': Recursion.
 
-   * Support for suffix `.a' in suffix rules.  *Note Archive Suffix
-     Rules::.  This feature is obsolete in GNU `make', because the
+   * Support for suffix '.a' in suffix rules.  *Note Archive Suffix
+     Rules::.  This feature is obsolete in GNU 'make', because the
      general feature of rule chaining (*note Chains of Implicit Rules:
      Chained Rules.) allows one pattern rule for installing members in
      an archive (*note Archive Update::) to be sufficient.
@@ -2405,33 +2104,33 @@ listed here, nor the ones in *note Missing::.
      whitespace.
 
    The following features were inspired by various other versions of
-`make'.  In some cases it is unclear exactly which versions inspired
+'make'.  In some cases it is unclear exactly which versions inspired
 which others.
 
-   * Pattern rules using `%'.  This has been implemented in several
-     versions of `make'.  We're not sure who invented it first, but
-     it's been spread around a bit.  *Note Defining and Redefining
-     Pattern Rules: Pattern Rules.
+   * Pattern rules using '%'.  This has been implemented in several
+     versions of 'make'.  We're not sure who invented it first, but it's
+     been spread around a bit.  *Note Defining and Redefining Pattern
+     Rules: Pattern Rules.
 
    * Rule chaining and implicit intermediate files.  This was
-     implemented by Stu Feldman in his version of `make' for AT&T
-     Eighth Edition Research Unix, and later by Andrew Hume of AT&T
-     Bell Labs in his `mk' program (where he terms it "transitive
-     closure").  We do not really know if we got this from either of
-     them or thought it up ourselves at the same time.  *Note Chains of
-     Implicit Rules: Chained Rules.
-
-   * The automatic variable `$^' containing a list of all prerequisites
-     of the current target.  We did not invent this, but we have no
-     idea who did.  *Note Automatic Variables::.  The automatic variable
-     `$+' is a simple extension of `$^'.
-
-   * The "what if" flag (`-W' in GNU `make') was (as far as we know)
-     invented by Andrew Hume in `mk'.  *Note Instead of Executing
+     implemented by Stu Feldman in his version of 'make' for AT&T Eighth
+     Edition Research Unix, and later by Andrew Hume of AT&T Bell Labs
+     in his 'mk' program (where he terms it "transitive closure").  We
+     do not really know if we got this from either of them or thought it
+     up ourselves at the same time.  *Note Chains of Implicit Rules:
+     Chained Rules.
+
+   * The automatic variable '$^' containing a list of all prerequisites
+     of the current target.  We did not invent this, but we have no idea
+     who did.  *Note Automatic Variables::.  The automatic variable '$+'
+     is a simple extension of '$^'.
+
+   * The "what if" flag ('-W' in GNU 'make') was (as far as we know)
+     invented by Andrew Hume in 'mk'.  *Note Instead of Executing
      Recipes: Instead of Execution.
 
    * The concept of doing several things at once (parallelism) exists in
-     many incarnations of `make' and similar programs, though not in the
+     many incarnations of 'make' and similar programs, though not in the
      System V or BSD implementations.  *Note Recipe Execution:
      Execution.
 
@@ -2441,120 +2140,119 @@ which others.
 
    * Modified variable references using pattern substitution come from
      SunOS 4.  *Note Basics of Variable References: Reference.  This
-     functionality was provided in GNU `make' by the `patsubst'
-     function before the alternate syntax was implemented for
-     compatibility with SunOS 4.  It is not altogether clear who
-     inspired whom, since GNU `make' had `patsubst' before SunOS 4 was
-     released.
+     functionality was provided in GNU 'make' by the 'patsubst' function
+     before the alternate syntax was implemented for compatibility with
+     SunOS 4.  It is not altogether clear who inspired whom, since GNU
+     'make' had 'patsubst' before SunOS 4 was released.
 
-   * The special significance of `+' characters preceding recipe lines
+   * The special significance of '+' characters preceding recipe lines
      (*note Instead of Executing Recipes: Instead of Execution.) is
-     mandated by `IEEE Standard 1003.2-1992' (POSIX.2).
+     mandated by 'IEEE Standard 1003.2-1992' (POSIX.2).
 
-   * The `+=' syntax to append to the value of a variable comes from
-     SunOS 4 `make'.  *Note Appending More Text to Variables: Appending.
+   * The '+=' syntax to append to the value of a variable comes from
+     SunOS 4 'make'.  *Note Appending More Text to Variables: Appending.
 
-   * The syntax `ARCHIVE(MEM1 MEM2...)' to list multiple members in a
-     single archive file comes from SunOS 4 `make'.  *Note Archive
+   * The syntax 'ARCHIVE(MEM1 MEM2...)' to list multiple members in a
+     single archive file comes from SunOS 4 'make'.  *Note Archive
      Members::.
 
-   * The `-include' directive to include makefiles with no error for a
-     nonexistent file comes from SunOS 4 `make'.  (But note that SunOS 4
-     `make' does not allow multiple makefiles to be specified in one
-     `-include' directive.)  The same feature appears with the name
-     `sinclude' in SGI `make' and perhaps others.
+   * The '-include' directive to include makefiles with no error for a
+     nonexistent file comes from SunOS 4 'make'.  (But note that SunOS 4
+     'make' does not allow multiple makefiles to be specified in one
+     '-include' directive.)  The same feature appears with the name
+     'sinclude' in SGI 'make' and perhaps others.
 
-   * The `!=' shell assignment operator exists in many BSD of `make'
-     and is purposefully implemented here to behave identically to
-     those implementations.
+   * The '!=' shell assignment operator exists in many BSD of 'make' and
+     is purposefully implemented here to behave identically to those
+     implementations.
 
    * Various build management tools are implemented using scripting
      languages such as Perl or Python and thus provide a natural
-     embedded scripting language, similar to GNU `make''s integration
-     of GNU Guile.
+     embedded scripting language, similar to GNU 'make''s integration of
+     GNU Guile.
 
-   The remaining features are inventions new in GNU `make':
+   The remaining features are inventions new in GNU 'make':
 
-   * Use the `-v' or `--version' option to print version and copyright
+   * Use the '-v' or '--version' option to print version and copyright
      information.
 
-   * Use the `-h' or `--help' option to summarize the options to `make'.
+   * Use the '-h' or '--help' option to summarize the options to 'make'.
 
    * Simply-expanded variables.  *Note The Two Flavors of Variables:
      Flavors.
 
    * Pass command line variable assignments automatically through the
-     variable `MAKE' to recursive `make' invocations.  *Note Recursive
-     Use of `make': Recursion.
+     variable 'MAKE' to recursive 'make' invocations.  *Note Recursive
+     Use of 'make': Recursion.
 
-   * Use the `-C' or `--directory' command option to change directory.
+   * Use the '-C' or '--directory' command option to change directory.
      *Note Summary of Options: Options Summary.
 
-   * Make verbatim variable definitions with `define'.  *Note Defining
+   * Make verbatim variable definitions with 'define'.  *Note Defining
      Multi-Line Variables: Multi-Line.
 
-   * Declare phony targets with the special target `.PHONY'.
+   * Declare phony targets with the special target '.PHONY'.
 
      Andrew Hume of AT&T Bell Labs implemented a similar feature with a
-     different syntax in his `mk' program.  This seems to be a case of
+     different syntax in his 'mk' program.  This seems to be a case of
      parallel discovery.  *Note Phony Targets: Phony Targets.
 
    * Manipulate text by calling functions.  *Note Functions for
      Transforming Text: Functions.
 
-   * Use the `-o' or `--old-file' option to pretend a file's
+   * Use the '-o' or '--old-file' option to pretend a file's
      modification-time is old.  *Note Avoiding Recompilation of Some
      Files: Avoiding Compilation.
 
    * Conditional execution.
 
      This feature has been implemented numerous times in various
-     versions of `make'; it seems a natural extension derived from the
+     versions of 'make'; it seems a natural extension derived from the
      features of the C preprocessor and similar macro languages and is
-     not a revolutionary concept.  *Note Conditional Parts of
-     Makefiles: Conditionals.
+     not a revolutionary concept.  *Note Conditional Parts of Makefiles:
+     Conditionals.
 
    * Specify a search path for included makefiles.  *Note Including
      Other Makefiles: Include.
 
    * Specify extra makefiles to read with an environment variable.
-     *Note The Variable `MAKEFILES': MAKEFILES Variable.
+     *Note The Variable 'MAKEFILES': MAKEFILES Variable.
 
-   * Strip leading sequences of `./' from file names, so that `./FILE'
-     and `FILE' are considered to be the same file.
+   * Strip leading sequences of './' from file names, so that './FILE'
+     and 'FILE' are considered to be the same file.
 
    * Use a special search method for library prerequisites written in
-     the form `-lNAME'.  *Note Directory Search for Link Libraries:
+     the form '-lNAME'.  *Note Directory Search for Link Libraries:
      Libraries/Search.
 
    * Allow suffixes for suffix rules (*note Old-Fashioned Suffix Rules:
      Suffix Rules.) to contain any characters.  In other versions of
-     `make', they must begin with `.' and not contain any `/'
+     'make', they must begin with '.' and not contain any '/'
      characters.
 
-   * Keep track of the current level of `make' recursion using the
-     variable `MAKELEVEL'.  *Note Recursive Use of `make': Recursion.
+   * Keep track of the current level of 'make' recursion using the
+     variable 'MAKELEVEL'.  *Note Recursive Use of 'make': Recursion.
 
    * Provide any goals given on the command line in the variable
-     `MAKECMDGOALS'.  *Note Arguments to Specify the Goals: Goals.
+     'MAKECMDGOALS'.  *Note Arguments to Specify the Goals: Goals.
 
    * Specify static pattern rules.  *Note Static Pattern Rules: Static
      Pattern.
 
-   * Provide selective `vpath' search.  *Note Searching Directories for
+   * Provide selective 'vpath' search.  *Note Searching Directories for
      Prerequisites: Directory Search.
 
    * Provide computed variable references.  *Note Basics of Variable
      References: Reference.
 
    * Update makefiles.  *Note How Makefiles Are Remade: Remaking
-     Makefiles.  System V `make' has a very, very limited form of this
+     Makefiles.  System V 'make' has a very, very limited form of this
      functionality in that it will check out SCCS files for makefiles.
 
-   * Various new built-in implicit rules.  *Note Catalogue of Implicit
+   * Various new built-in implicit rules.  *Note Catalogue of Built-In
      Rules: Catalogue of Rules.
 
-   * Load dynamic objects which can modify the behavior of `make'.
+   * Load dynamic objects which can modify the behavior of 'make'.
      *Note Loading Dynamic Objects: Loading Objects.
 
 \1f
@@ -2563,84 +2261,84 @@ File: make.info,  Node: Missing,  Next: Makefile Conventions,  Prev: Features,
 14 Incompatibilities and Missing Features
 *****************************************
 
-The `make' programs in various other systems support a few features
-that are not implemented in GNU `make'.  The POSIX.2 standard (`IEEE
-Standard 1003.2-1992') which specifies `make' does not require any of
-these features.
+The 'make' programs in various other systems support a few features that
+are not implemented in GNU 'make'.  The POSIX.2 standard ('IEEE Standard
+1003.2-1992') which specifies 'make' does not require any of these
+features.
 
-   * A target of the form `FILE((ENTRY))' stands for a member of
-     archive file FILE.  The member is chosen, not by name, but by
-     being an object file which defines the linker symbol ENTRY.
+   * A target of the form 'FILE((ENTRY))' stands for a member of archive
+     file FILE.  The member is chosen, not by name, but by being an
+     object file which defines the linker symbol ENTRY.
 
-     This feature was not put into GNU `make' because of the
-     non-modularity of putting knowledge into `make' of the internal
+     This feature was not put into GNU 'make' because of the
+     non-modularity of putting knowledge into 'make' of the internal
      format of archive file symbol tables.  *Note Updating Archive
      Symbol Directories: Archive Symbols.
 
-   * Suffixes (used in suffix rules) that end with the character `~'
-     have a special meaning to System V `make'; they refer to the SCCS
-     file that corresponds to the file one would get without the `~'.
-     For example, the suffix rule `.c~.o' would make the file `N.o' from
-     the SCCS file `s.N.c'.  For complete coverage, a whole series of
+   * Suffixes (used in suffix rules) that end with the character '~'
+     have a special meaning to System V 'make'; they refer to the SCCS
+     file that corresponds to the file one would get without the '~'.
+     For example, the suffix rule '.c~.o' would make the file 'N.o' from
+     the SCCS file 's.N.c'.  For complete coverage, a whole series of
      such suffix rules is required.  *Note Old-Fashioned Suffix Rules:
      Suffix Rules.
 
-     In GNU `make', this entire series of cases is handled by two
+     In GNU 'make', this entire series of cases is handled by two
      pattern rules for extraction from SCCS, in combination with the
      general feature of rule chaining.  *Note Chains of Implicit Rules:
      Chained Rules.
 
-   * In System V and 4.3 BSD `make', files found by `VPATH' search
+   * In System V and 4.3 BSD 'make', files found by 'VPATH' search
      (*note Searching Directories for Prerequisites: Directory Search.)
      have their names changed inside recipes.  We feel it is much
      cleaner to always use automatic variables and thus make this
      feature obsolete.
 
-   * In some Unix `make's, the automatic variable `$*' appearing in the
+   * In some Unix 'make's, the automatic variable '$*' appearing in the
      prerequisites of a rule has the amazingly strange "feature" of
      expanding to the full name of the _target of that rule_.  We cannot
-     imagine what went on in the minds of Unix `make' developers to do
+     imagine what went on in the minds of Unix 'make' developers to do
      this; it is utterly inconsistent with the normal definition of
-     `$*'.  
+     '$*'.
 
-   * In some Unix `make's, implicit rule search (*note Using Implicit
+   * In some Unix 'make's, implicit rule search (*note Using Implicit
      Rules: Implicit Rules.) is apparently done for _all_ targets, not
      just those without recipes.  This means you can do:
 
           foo.o:
                   cc -c foo.c
 
-     and Unix `make' will intuit that `foo.o' depends on `foo.c'.
+     and Unix 'make' will intuit that 'foo.o' depends on 'foo.c'.
 
      We feel that such usage is broken.  The prerequisite properties of
-     `make' are well-defined (for GNU `make', at least), and doing such
+     'make' are well-defined (for GNU 'make', at least), and doing such
      a thing simply does not fit the model.
 
-   * GNU `make' does not include any built-in implicit rules for
+   * GNU 'make' does not include any built-in implicit rules for
      compiling or preprocessing EFL programs.  If we hear of anyone who
      is using EFL, we will gladly add them.
 
-   * It appears that in SVR4 `make', a suffix rule can be specified
-     with no recipe, and it is treated as if it had an empty recipe
-     (*note Empty Recipes::).  For example:
+   * It appears that in SVR4 'make', a suffix rule can be specified with
+     no recipe, and it is treated as if it had an empty recipe (*note
+     Empty Recipes::).  For example:
 
           .c.a:
 
-     will override the built-in `.c.a' suffix rule.
+     will override the built-in '.c.a' suffix rule.
 
      We feel that it is cleaner for a rule without a recipe to always
      simply add to the prerequisite list for the target.  The above
      example can be easily rewritten to get the desired behavior in GNU
-     `make':
+     'make':
 
           .c.a: ;
 
-   * Some versions of `make' invoke the shell with the `-e' flag,
-     except under `-k' (*note Testing the Compilation of a Program:
-     Testing.).  The `-e' flag tells the shell to exit as soon as any
-     program it runs returns a nonzero status.  We feel it is cleaner to
-     write each line of the recipe to stand on its own and not require
-     this special treatment.
+   * Some versions of 'make' invoke the shell with the '-e' flag, except
+     under '-k' (*note Testing the Compilation of a Program: Testing.).
+     The '-e' flag tells the shell to exit as soon as any program it
+     runs returns a nonzero status.  We feel it is cleaner to write each
+     line of the recipe to stand on its own and not require this special
+     treatment.
 
 \1f
 File: make.info,  Node: Makefile Conventions,  Next: Quick Reference,  Prev: Missing,  Up: Top
@@ -2661,7 +2359,7 @@ POSIX and *note Portable Make Programming: (autoconf)Portable Make.
 * DESTDIR::                     Supporting staged installs.
 * Directory Variables::         Variables for installation directories.
 * Standard Targets::            Standard targets for users.
-* Install Command Categories::  Three categories of commands in the `install'
+* Install Command Categories::  Three categories of commands in the 'install'
                                   rule: normal, pre-install and post-install.
 
 \1f
@@ -2674,14 +2372,14 @@ Every Makefile should contain this line:
 
      SHELL = /bin/sh
 
-to avoid trouble on systems where the `SHELL' variable might be
+to avoid trouble on systems where the 'SHELL' variable might be
 inherited from the environment.  (This is never a problem with GNU
-`make'.)
+'make'.)
 
-   Different `make' programs have incompatible suffix lists and
-implicit rules, and this sometimes creates confusion or misbehavior.  So
-it is a good idea to set the suffix list explicitly using only the
-suffixes you need in the particular Makefile, like this:
+   Different 'make' programs have incompatible suffix lists and implicit
+rules, and this sometimes creates confusion or misbehavior.  So it is a
+good idea to set the suffix list explicitly using only the suffixes you
+need in the particular Makefile, like this:
 
      .SUFFIXES:
      .SUFFIXES: .c .o
@@ -2689,29 +2387,28 @@ suffixes you need in the particular Makefile, like this:
 The first line clears out the suffix list, the second introduces all
 suffixes which may be subject to implicit rules in this Makefile.
 
-   Don't assume that `.' is in the path for command execution.  When
-you need to run programs that are a part of your package during the
-make, please make sure that it uses `./' if the program is built as
-part of the make or `$(srcdir)/' if the file is an unchanging part of
-the source code.  Without one of these prefixes, the current search
-path is used.
+   Don't assume that '.' is in the path for command execution.  When you
+need to run programs that are a part of your package during the make,
+please make sure that it uses './' if the program is built as part of
+the make or '$(srcdir)/' if the file is an unchanging part of the source
+code.  Without one of these prefixes, the current search path is used.
 
-   The distinction between `./' (the "build directory") and
-`$(srcdir)/' (the "source directory") is important because users can
-build in a separate directory using the `--srcdir' option to
-`configure'.  A rule of the form:
+   The distinction between './' (the "build directory") and '$(srcdir)/'
+(the "source directory") is important because users can build in a
+separate directory using the '--srcdir' option to 'configure'.  A rule
+of the form:
 
      foo.1 : foo.man sedscript
              sed -f sedscript foo.man > foo.1
 
 will fail when the build directory is not the source directory, because
-`foo.man' and `sedscript' are in the source directory.
+'foo.man' and 'sedscript' are in the source directory.
 
-   When using GNU `make', relying on `VPATH' to find the source file
-will work in the case where there is a single dependency file, since
-the `make' automatic variable `$<' will represent the source file
-wherever it is.  (Many versions of `make' set `$<' only in implicit
-rules.)  A Makefile target like
+   When using GNU 'make', relying on 'VPATH' to find the source file
+will work in the case where there is a single dependency file, since the
+'make' automatic variable '$<' will represent the source file wherever
+it is.  (Many versions of 'make' set '$<' only in implicit rules.)  A
+Makefile target like
 
      foo.o : bar.c
              $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
@@ -2721,9 +2418,9 @@ should instead be written as
      foo.o : bar.c
              $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@
 
-in order to allow `VPATH' to work correctly.  When the target has
-multiple dependencies, using an explicit `$(srcdir)' is the easiest way
-to make the rule work well.  For example, the target above for `foo.1'
+in order to allow 'VPATH' to work correctly.  When the target has
+multiple dependencies, using an explicit '$(srcdir)' is the easiest way
+to make the rule work well.  For example, the target above for 'foo.1'
 is best written as:
 
      foo.1 : foo.man sedscript
@@ -2742,7 +2439,7 @@ program in ordinary circumstances should not modify the source directory
 in any way.
 
    Try to make the build and installation targets, at least (and all
-their subtargets) work correctly with a parallel `make'.
+their subtargets) work correctly with a parallel 'make'.
 
 \1f
 File: make.info,  Node: Utilities in Makefiles,  Next: Command Variables,  Prev: Makefile Basics,  Up: Makefile Conventions
@@ -2750,22 +2447,21 @@ File: make.info,  Node: Utilities in Makefiles,  Next: Command Variables,  Prev:
 15.2 Utilities in Makefiles
 ===========================
 
-Write the Makefile commands (and any shell scripts, such as
-`configure') to run under `sh' (both the traditional Bourne shell and
-the POSIX shell), not `csh'.  Don't use any special features of `ksh'
-or `bash', or POSIX features not widely supported in traditional Bourne
-`sh'.
+Write the Makefile commands (and any shell scripts, such as 'configure')
+to run under 'sh' (both the traditional Bourne shell and the POSIX
+shell), not 'csh'.  Don't use any special features of 'ksh' or 'bash',
+or POSIX features not widely supported in traditional Bourne 'sh'.
 
-   The `configure' script and the Makefile rules for building and
+   The 'configure' script and the Makefile rules for building and
 installation should not use any utilities directly except these:
 
      awk cat cmp cp diff echo egrep expr false grep install-info ln ls
      mkdir mv printf pwd rm rmdir sed sleep sort tar test touch tr true
 
-   Compression programs such as `gzip' can be used in the `dist' rule.
+   Compression programs such as 'gzip' can be used in the 'dist' rule.
 
    Generally, stick to the widely-supported (usually POSIX-specified)
-options and features of these programs.  For example, don't use `mkdir
+options and features of these programs.  For example, don't use 'mkdir
 -p', convenient as it may be, because a few systems don't support it at
 all and with others, it is not safe for parallel execution.  For a list
 of known incompatibilities, see *note Portable Shell Programming:
@@ -2775,23 +2471,23 @@ of known incompatibilities, see *note Portable Shell Programming:
 since a few file systems don't support them.
 
    The Makefile rules for building and installation can also use
-compilers and related programs, but should do so via `make' variables
-so that the user can substitute alternatives.  Here are some of the
+compilers and related programs, but should do so via 'make' variables so
+that the user can substitute alternatives.  Here are some of the
 programs we mean:
 
      ar bison cc flex install ld ldconfig lex
      make makeinfo ranlib texi2dvi yacc
 
-   Use the following `make' variables to run those programs:
+   Use the following 'make' variables to run those programs:
 
      $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
      $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
 
-   When you use `ranlib' or `ldconfig', you should make sure nothing
-bad happens if the system does not have the program in question.
-Arrange to ignore an error from that command, and print a message before
-the command to tell the user that failure of this command does not mean
-a problem.  (The Autoconf `AC_PROG_RANLIB' macro can help with this.)
+   When you use 'ranlib' or 'ldconfig', you should make sure nothing bad
+happens if the system does not have the program in question.  Arrange to
+ignore an error from that command, and print a message before the
+command to tell the user that failure of this command does not mean a
+problem.  (The Autoconf 'AC_PROG_RANLIB' macro can help with this.)
 
    If you use symbolic links, you should implement a fallback for
 systems that don't have symbolic links.
@@ -2814,64 +2510,63 @@ Makefiles should provide variables for overriding certain commands,
 options, and so on.
 
    In particular, you should run most utility programs via variables.
-Thus, if you use Bison, have a variable named `BISON' whose default
-value is set with `BISON = bison', and refer to it with `$(BISON)'
+Thus, if you use Bison, have a variable named 'BISON' whose default
+value is set with 'BISON = bison', and refer to it with '$(BISON)'
 whenever you need to use Bison.
 
-   File management utilities such as `ln', `rm', `mv', and so on, need
-not be referred to through variables in this way, since users don't
-need to replace them with other programs.
+   File management utilities such as 'ln', 'rm', 'mv', and so on, need
+not be referred to through variables in this way, since users don't need
+to replace them with other programs.
 
    Each program-name variable should come with an options variable that
-is used to supply options to the program.  Append `FLAGS' to the
+is used to supply options to the program.  Append 'FLAGS' to the
 program-name variable name to get the options variable name--for
-example, `BISONFLAGS'.  (The names `CFLAGS' for the C compiler,
-`YFLAGS' for yacc, and `LFLAGS' for lex, are exceptions to this rule,
-but we keep them because they are standard.)  Use `CPPFLAGS' in any
-compilation command that runs the preprocessor, and use `LDFLAGS' in
-any compilation command that does linking as well as in any direct use
-of `ld'.
+example, 'BISONFLAGS'.  (The names 'CFLAGS' for the C compiler, 'YFLAGS'
+for yacc, and 'LFLAGS' for lex, are exceptions to this rule, but we keep
+them because they are standard.)  Use 'CPPFLAGS' in any compilation
+command that runs the preprocessor, and use 'LDFLAGS' in any compilation
+command that does linking as well as in any direct use of 'ld'.
 
    If there are C compiler options that _must_ be used for proper
-compilation of certain files, do not include them in `CFLAGS'.  Users
-expect to be able to specify `CFLAGS' freely themselves.  Instead,
-arrange to pass the necessary options to the C compiler independently
-of `CFLAGS', by writing them explicitly in the compilation commands or
-by defining an implicit rule, like this:
+compilation of certain files, do not include them in 'CFLAGS'.  Users
+expect to be able to specify 'CFLAGS' freely themselves.  Instead,
+arrange to pass the necessary options to the C compiler independently of
+'CFLAGS', by writing them explicitly in the compilation commands or by
+defining an implicit rule, like this:
 
      CFLAGS = -g
      ALL_CFLAGS = -I. $(CFLAGS)
      .c.o:
              $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
 
-   Do include the `-g' option in `CFLAGS', because that is not
+   Do include the '-g' option in 'CFLAGS', because that is not
 _required_ for proper compilation.  You can consider it a default that
 is only recommended.  If the package is set up so that it is compiled
-with GCC by default, then you might as well include `-O' in the default
-value of `CFLAGS' as well.
+with GCC by default, then you might as well include '-O' in the default
+value of 'CFLAGS' as well.
 
-   Put `CFLAGS' last in the compilation command, after other variables
-containing compiler options, so the user can use `CFLAGS' to override
+   Put 'CFLAGS' last in the compilation command, after other variables
+containing compiler options, so the user can use 'CFLAGS' to override
 the others.
 
-   `CFLAGS' should be used in every invocation of the C compiler, both
+   'CFLAGS' should be used in every invocation of the C compiler, both
 those which do compilation and those which do linking.
 
-   Every Makefile should define the variable `INSTALL', which is the
+   Every Makefile should define the variable 'INSTALL', which is the
 basic command for installing a file into the system.
 
-   Every Makefile should also define the variables `INSTALL_PROGRAM'
-and `INSTALL_DATA'.  (The default for `INSTALL_PROGRAM' should be
-`$(INSTALL)'; the default for `INSTALL_DATA' should be `${INSTALL} -m
+   Every Makefile should also define the variables 'INSTALL_PROGRAM' and
+'INSTALL_DATA'.  (The default for 'INSTALL_PROGRAM' should be
+'$(INSTALL)'; the default for 'INSTALL_DATA' should be '${INSTALL} -m
 644'.)  Then it should use those variables as the commands for actual
-installation, for executables and non-executables respectively.
-Minimal use of these variables is as follows:
+installation, for executables and non-executables respectively.  Minimal
+use of these variables is as follows:
 
      $(INSTALL_PROGRAM) foo $(bindir)/foo
      $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
 
-   However, it is preferable to support a `DESTDIR' prefix on the
-target files, as explained in the next section.
+   However, it is preferable to support a 'DESTDIR' prefix on the target
+files, as explained in the next section.
 
    It is acceptable, but not required, to install multiple files in one
 command, with the final argument being a directory, as in:
@@ -2881,51 +2576,49 @@ command, with the final argument being a directory, as in:
 \1f
 File: make.info,  Node: DESTDIR,  Next: Directory Variables,  Prev: Command Variables,  Up: Makefile Conventions
 
-15.4 `DESTDIR': Support for Staged Installs
+15.4 'DESTDIR': Support for Staged Installs
 ===========================================
 
-`DESTDIR' is a variable prepended to each installed target file, like
+'DESTDIR' is a variable prepended to each installed target file, like
 this:
 
      $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
      $(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
 
-   The `DESTDIR' variable is specified by the user on the `make'
-command line as an absolute file name.  For example:
+   The 'DESTDIR' variable is specified by the user on the 'make' command
+line as an absolute file name.  For example:
 
      make DESTDIR=/tmp/stage install
 
-`DESTDIR' should be supported only in the `install*' and `uninstall*'
+'DESTDIR' should be supported only in the 'install*' and 'uninstall*'
 targets, as those are the only targets where it is useful.
 
-   If your installation step would normally install
-`/usr/local/bin/foo' and `/usr/local/lib/libfoo.a', then an
-installation invoked as in the example above would install
-`/tmp/stage/usr/local/bin/foo' and `/tmp/stage/usr/local/lib/libfoo.a'
-instead.
+   If your installation step would normally install '/usr/local/bin/foo'
+and '/usr/local/lib/libfoo.a', then an installation invoked as in the
+example above would install '/tmp/stage/usr/local/bin/foo' and
+'/tmp/stage/usr/local/lib/libfoo.a' instead.
 
-   Prepending the variable `DESTDIR' to each target in this way
-provides for "staged installs", where the installed files are not
-placed directly into their expected location but are instead copied
-into a temporary location (`DESTDIR').  However, installed files
-maintain their relative directory structure and any embedded file names
-will not be modified.
+   Prepending the variable 'DESTDIR' to each target in this way provides
+for "staged installs", where the installed files are not placed directly
+into their expected location but are instead copied into a temporary
+location ('DESTDIR').  However, installed files maintain their relative
+directory structure and any embedded file names will not be modified.
 
-   You should not set the value of `DESTDIR' in your `Makefile' at all;
+   You should not set the value of 'DESTDIR' in your 'Makefile' at all;
 then the files are installed into their expected locations by default.
-Also, specifying `DESTDIR' should not change the operation of the
+Also, specifying 'DESTDIR' should not change the operation of the
 software in any way, so its value should not be included in any file
 contents.
 
-   `DESTDIR' support is commonly used in package creation.  It is also
+   'DESTDIR' support is commonly used in package creation.  It is also
 helpful to users who want to understand what a given package will
-install where, and to allow users who don't normally have permissions
-to install into protected areas to build and install before gaining
-those permissions.  Finally, it can be useful with tools such as
-`stow', where code is installed in one place but made to appear to be
-installed somewhere else using symbolic links or special mount
-operations.  So, we strongly recommend GNU packages support `DESTDIR',
-though it is not an absolute requirement.
+install where, and to allow users who don't normally have permissions to
+install into protected areas to build and install before gaining those
+permissions.  Finally, it can be useful with tools such as 'stow', where
+code is installed in one place but made to appear to be installed
+somewhere else using symbolic links or special mount operations.  So, we
+strongly recommend GNU packages support 'DESTDIR', though it is not an
+absolute requirement.
 
 \1f
 File: make.info,  Node: Directory Variables,  Next: Standard Targets,  Prev: DESTDIR,  Up: Makefile Conventions
@@ -2939,8 +2632,8 @@ variables and the values they should have in GNU packages are described
 below.  They are based on a standard file system layout; variants of it
 are used in GNU/Linux and other modern operating systems.
 
-   Installers are expected to override these values when calling `make'
-(e.g., `make prefix=/usr install' or `configure' (e.g., `configure
+   Installers are expected to override these values when calling 'make'
+(e.g., 'make prefix=/usr install' or 'configure' (e.g., 'configure
 --prefix=/usr').  GNU packages should not try to guess which value
 should be appropriate for these variables on the system they are being
 installed onto: use the default settings specified here so that all GNU
@@ -2955,58 +2648,58 @@ other installation directories should be subdirectories of one of these
 two, and nothing should be directly installed into these two
 directories.
 
-`prefix'
+'prefix'
      A prefix used in constructing the default values of the variables
-     listed below.  The default value of `prefix' should be
-     `/usr/local'.  When building the complete GNU system, the prefix
-     will be empty and `/usr' will be a symbolic link to `/'.  (If you
-     are using Autoconf, write it as `@prefix@'.)
+     listed below.  The default value of 'prefix' should be
+     '/usr/local'.  When building the complete GNU system, the prefix
+     will be empty and '/usr' will be a symbolic link to '/'.  (If you
+     are using Autoconf, write it as '@prefix@'.)
 
-     Running `make install' with a different value of `prefix' from the
+     Running 'make install' with a different value of 'prefix' from the
      one used to build the program should _not_ recompile the program.
 
-`exec_prefix'
+'exec_prefix'
      A prefix used in constructing the default values of some of the
-     variables listed below.  The default value of `exec_prefix' should
-     be `$(prefix)'.  (If you are using Autoconf, write it as
-     `@exec_prefix@'.)
+     variables listed below.  The default value of 'exec_prefix' should
+     be '$(prefix)'.  (If you are using Autoconf, write it as
+     '@exec_prefix@'.)
 
-     Generally, `$(exec_prefix)' is used for directories that contain
+     Generally, '$(exec_prefix)' is used for directories that contain
      machine-specific files (such as executables and subroutine
-     libraries), while `$(prefix)' is used directly for other
+     libraries), while '$(prefix)' is used directly for other
      directories.
 
-     Running `make install' with a different value of `exec_prefix'
-     from the one used to build the program should _not_ recompile the
+     Running 'make install' with a different value of 'exec_prefix' from
+     the one used to build the program should _not_ recompile the
      program.
 
    Executable programs are installed in one of the following
 directories.
 
-`bindir'
+'bindir'
      The directory for installing executable programs that users can
-     run.  This should normally be `/usr/local/bin', but write it as
-     `$(exec_prefix)/bin'.  (If you are using Autoconf, write it as
-     `@bindir@'.)
+     run.  This should normally be '/usr/local/bin', but write it as
+     '$(exec_prefix)/bin'.  (If you are using Autoconf, write it as
+     '@bindir@'.)
 
-`sbindir'
+'sbindir'
      The directory for installing executable programs that can be run
      from the shell, but are only generally useful to system
-     administrators.  This should normally be `/usr/local/sbin', but
-     write it as `$(exec_prefix)/sbin'.  (If you are using Autoconf,
-     write it as `@sbindir@'.)
+     administrators.  This should normally be '/usr/local/sbin', but
+     write it as '$(exec_prefix)/sbin'.  (If you are using Autoconf,
+     write it as '@sbindir@'.)
 
-`libexecdir'
+'libexecdir'
      The directory for installing executable programs to be run by other
      programs rather than by users.  This directory should normally be
-     `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'.
-     (If you are using Autoconf, write it as `@libexecdir@'.)
+     '/usr/local/libexec', but write it as '$(exec_prefix)/libexec'.
+     (If you are using Autoconf, write it as '@libexecdir@'.)
 
-     The definition of `libexecdir' is the same for all packages, so
-     you should install your data in a subdirectory thereof.  Most
-     packages install their data under `$(libexecdir)/PACKAGE-NAME/',
-     possibly within additional subdirectories thereof, such as
-     `$(libexecdir)/PACKAGE-NAME/MACHINE/VERSION'.
+     The definition of 'libexecdir' is the same for all packages, so you
+     should install your data in a subdirectory thereof.  Most packages
+     install their data under '$(libexecdir)/PACKAGE-NAME/', possibly
+     within additional subdirectories thereof, such as
+     '$(libexecdir)/PACKAGE-NAME/MACHINE/VERSION'.
 
    Data files used by the program during its execution are divided into
 categories in two ways.
@@ -3024,212 +2717,208 @@ discourage the use of architecture-dependent files, aside from object
 files and libraries.  It is much cleaner to make other data files
 architecture-independent, and it is generally not hard.
 
-   Here are the variables Makefiles should use to specify directories
-to put these various kinds of files in:
+   Here are the variables Makefiles should use to specify directories to
+put these various kinds of files in:
 
-`datarootdir'
+'datarootdir'
      The root of the directory tree for read-only
      architecture-independent data files.  This should normally be
-     `/usr/local/share', but write it as `$(prefix)/share'.  (If you
-     are using Autoconf, write it as `@datarootdir@'.)  `datadir''s
-     default value is based on this variable; so are `infodir',
-     `mandir', and others.
+     '/usr/local/share', but write it as '$(prefix)/share'.  (If you are
+     using Autoconf, write it as '@datarootdir@'.)  'datadir''s default
+     value is based on this variable; so are 'infodir', 'mandir', and
+     others.
 
-`datadir'
+'datadir'
      The directory for installing idiosyncratic read-only
      architecture-independent data files for this program.  This is
-     usually the same place as `datarootdir', but we use the two
+     usually the same place as 'datarootdir', but we use the two
      separate variables so that you can move these program-specific
      files without altering the location for Info files, man pages, etc.
 
-     This should normally be `/usr/local/share', but write it as
-     `$(datarootdir)'.  (If you are using Autoconf, write it as
-     `@datadir@'.)
+     This should normally be '/usr/local/share', but write it as
+     '$(datarootdir)'.  (If you are using Autoconf, write it as
+     '@datadir@'.)
 
-     The definition of `datadir' is the same for all packages, so you
+     The definition of 'datadir' is the same for all packages, so you
      should install your data in a subdirectory thereof.  Most packages
-     install their data under `$(datadir)/PACKAGE-NAME/'.
+     install their data under '$(datadir)/PACKAGE-NAME/'.
 
-`sysconfdir'
+'sysconfdir'
      The directory for installing read-only data files that pertain to a
      single machine-that is to say, files for configuring a host.
-     Mailer and network configuration files, `/etc/passwd', and so
-     forth belong here.  All the files in this directory should be
-     ordinary ASCII text files.  This directory should normally be
-     `/usr/local/etc', but write it as `$(prefix)/etc'.  (If you are
-     using Autoconf, write it as `@sysconfdir@'.)
+     Mailer and network configuration files, '/etc/passwd', and so forth
+     belong here.  All the files in this directory should be ordinary
+     ASCII text files.  This directory should normally be
+     '/usr/local/etc', but write it as '$(prefix)/etc'.  (If you are
+     using Autoconf, write it as '@sysconfdir@'.)
 
      Do not install executables here in this directory (they probably
-     belong in `$(libexecdir)' or `$(sbindir)').  Also do not install
+     belong in '$(libexecdir)' or '$(sbindir)').  Also do not install
      files that are modified in the normal course of their use (programs
      whose purpose is to change the configuration of the system
-     excluded).  Those probably belong in `$(localstatedir)'.
+     excluded).  Those probably belong in '$(localstatedir)'.
 
-`sharedstatedir'
+'sharedstatedir'
      The directory for installing architecture-independent data files
      which the programs modify while they run.  This should normally be
-     `/usr/local/com', but write it as `$(prefix)/com'.  (If you are
-     using Autoconf, write it as `@sharedstatedir@'.)
+     '/usr/local/com', but write it as '$(prefix)/com'.  (If you are
+     using Autoconf, write it as '@sharedstatedir@'.)
 
-`localstatedir'
+'localstatedir'
      The directory for installing data files which the programs modify
      while they run, and that pertain to one specific machine.  Users
      should never need to modify files in this directory to configure
      the package's operation; put such configuration information in
-     separate files that go in `$(datadir)' or `$(sysconfdir)'.
-     `$(localstatedir)' should normally be `/usr/local/var', but write
-     it as `$(prefix)/var'.  (If you are using Autoconf, write it as
-     `@localstatedir@'.)
+     separate files that go in '$(datadir)' or '$(sysconfdir)'.
+     '$(localstatedir)' should normally be '/usr/local/var', but write
+     it as '$(prefix)/var'.  (If you are using Autoconf, write it as
+     '@localstatedir@'.)
 
-`runstatedir'
+'runstatedir'
      The directory for installing data files which the programs modify
      while they run, that pertain to one specific machine, and which
      need not persist longer than the execution of the program--which is
      generally long-lived, for example, until the next reboot.  PID
      files for system daemons are a typical use.  In addition, this
-     directory should not be cleaned except perhaps at reboot, while
-     the general `/tmp' (`TMPDIR') may be cleaned arbitrarily.  This
-     should normally be `/var/run', but write it as
-     `$(localstatedir)/run'.  Having it as a separate variable allows
-     the use of `/run' if desired, for example.  (If you are using
-     Autoconf 2.70 or later, write it as `@runstatedir@'.)
+     directory should not be cleaned except perhaps at reboot, while the
+     general '/tmp' ('TMPDIR') may be cleaned arbitrarily.  This should
+     normally be '/var/run', but write it as '$(localstatedir)/run'.
+     Having it as a separate variable allows the use of '/run' if
+     desired, for example.  (If you are using Autoconf 2.70 or later,
+     write it as '@runstatedir@'.)
 
    These variables specify the directory for installing certain specific
-types of files, if your program has them.  Every GNU package should
-have Info files, so every program needs `infodir', but not all need
-`libdir' or `lispdir'.
+types of files, if your program has them.  Every GNU package should have
+Info files, so every program needs 'infodir', but not all need 'libdir'
+or 'lispdir'.
 
-`includedir'
+'includedir'
      The directory for installing header files to be included by user
-     programs with the C `#include' preprocessor directive.  This
-     should normally be `/usr/local/include', but write it as
-     `$(prefix)/include'.  (If you are using Autoconf, write it as
-     `@includedir@'.)
+     programs with the C '#include' preprocessor directive.  This should
+     normally be '/usr/local/include', but write it as
+     '$(prefix)/include'.  (If you are using Autoconf, write it as
+     '@includedir@'.)
 
      Most compilers other than GCC do not look for header files in
-     directory `/usr/local/include'.  So installing the header files
-     this way is only useful with GCC.  Sometimes this is not a problem
+     directory '/usr/local/include'.  So installing the header files
+     this way is only useful with GCC. Sometimes this is not a problem
      because some libraries are only really intended to work with GCC.
-     But some libraries are intended to work with other compilers.
-     They should install their header files in two places, one
-     specified by `includedir' and one specified by `oldincludedir'.
+     But some libraries are intended to work with other compilers.  They
+     should install their header files in two places, one specified by
+     'includedir' and one specified by 'oldincludedir'.
 
-`oldincludedir'
-     The directory for installing `#include' header files for use with
-     compilers other than GCC.  This should normally be `/usr/include'.
-     (If you are using Autoconf, you can write it as `@oldincludedir@'.)
+'oldincludedir'
+     The directory for installing '#include' header files for use with
+     compilers other than GCC. This should normally be '/usr/include'.
+     (If you are using Autoconf, you can write it as '@oldincludedir@'.)
 
      The Makefile commands should check whether the value of
-     `oldincludedir' is empty.  If it is, they should not try to use
-     it; they should cancel the second installation of the header files.
+     'oldincludedir' is empty.  If it is, they should not try to use it;
+     they should cancel the second installation of the header files.
 
      A package should not replace an existing header in this directory
      unless the header came from the same package.  Thus, if your Foo
-     package provides a header file `foo.h', then it should install the
-     header file in the `oldincludedir' directory if either (1) there
-     is no `foo.h' there or (2) the `foo.h' that exists came from the
-     Foo package.
+     package provides a header file 'foo.h', then it should install the
+     header file in the 'oldincludedir' directory if either (1) there is
+     no 'foo.h' there or (2) the 'foo.h' that exists came from the Foo
+     package.
 
-     To tell whether `foo.h' came from the Foo package, put a magic
-     string in the file--part of a comment--and `grep' for that string.
+     To tell whether 'foo.h' came from the Foo package, put a magic
+     string in the file--part of a comment--and 'grep' for that string.
 
-`docdir'
+'docdir'
      The directory for installing documentation files (other than Info)
      for this package.  By default, it should be
-     `/usr/local/share/doc/YOURPKG', but it should be written as
-     `$(datarootdir)/doc/YOURPKG'.  (If you are using Autoconf, write
-     it as `@docdir@'.)  The YOURPKG subdirectory, which may include a
+     '/usr/local/share/doc/YOURPKG', but it should be written as
+     '$(datarootdir)/doc/YOURPKG'.  (If you are using Autoconf, write it
+     as '@docdir@'.)  The YOURPKG subdirectory, which may include a
      version number, prevents collisions among files with common names,
-     such as `README'.
+     such as 'README'.
 
-`infodir'
+'infodir'
      The directory for installing the Info files for this package.  By
-     default, it should be `/usr/local/share/info', but it should be
-     written as `$(datarootdir)/info'.  (If you are using Autoconf,
-     write it as `@infodir@'.)  `infodir' is separate from `docdir' for
+     default, it should be '/usr/local/share/info', but it should be
+     written as '$(datarootdir)/info'.  (If you are using Autoconf,
+     write it as '@infodir@'.)  'infodir' is separate from 'docdir' for
      compatibility with existing practice.
 
-`htmldir'
-`dvidir'
-`pdfdir'
-`psdir'
+'htmldir'
+'dvidir'
+'pdfdir'
+'psdir'
      Directories for installing documentation files in the particular
-     format.  They should all be set to `$(docdir)' by default.  (If
-     you are using Autoconf, write them as `@htmldir@', `@dvidir@',
-     etc.)  Packages which supply several translations of their
-     documentation should install them in `$(htmldir)/'LL,
-     `$(pdfdir)/'LL, etc. where LL is a locale abbreviation such as
-     `en' or `pt_BR'.
-
-`libdir'
+     format.  They should all be set to '$(docdir)' by default.  (If you
+     are using Autoconf, write them as '@htmldir@', '@dvidir@', etc.)
+     Packages which supply several translations of their documentation
+     should install them in '$(htmldir)/'LL, '$(pdfdir)/'LL, etc.  where
+     LL is a locale abbreviation such as 'en' or 'pt_BR'.
+
+'libdir'
      The directory for object files and libraries of object code.  Do
      not install executables here, they probably ought to go in
-     `$(libexecdir)' instead.  The value of `libdir' should normally be
-     `/usr/local/lib', but write it as `$(exec_prefix)/lib'.  (If you
-     are using Autoconf, write it as `@libdir@'.)
+     '$(libexecdir)' instead.  The value of 'libdir' should normally be
+     '/usr/local/lib', but write it as '$(exec_prefix)/lib'.  (If you
+     are using Autoconf, write it as '@libdir@'.)
 
-`lispdir'
+'lispdir'
      The directory for installing any Emacs Lisp files in this package.
-     By default, it should be `/usr/local/share/emacs/site-lisp', but it
-     should be written as `$(datarootdir)/emacs/site-lisp'.
+     By default, it should be '/usr/local/share/emacs/site-lisp', but it
+     should be written as '$(datarootdir)/emacs/site-lisp'.
 
-     If you are using Autoconf, write the default as `@lispdir@'.  In
-     order to make `@lispdir@' work, you need the following lines in
-     your `configure.ac' file:
+     If you are using Autoconf, write the default as '@lispdir@'.  In
+     order to make '@lispdir@' work, you need the following lines in
+     your 'configure.ac' file:
 
           lispdir='${datarootdir}/emacs/site-lisp'
           AC_SUBST(lispdir)
 
-`localedir'
+'localedir'
      The directory for installing locale-specific message catalogs for
-     this package.  By default, it should be `/usr/local/share/locale',
-     but it should be written as `$(datarootdir)/locale'.  (If you are
-     using Autoconf, write it as `@localedir@'.)  This directory
-     usually has a subdirectory per locale.
+     this package.  By default, it should be '/usr/local/share/locale',
+     but it should be written as '$(datarootdir)/locale'.  (If you are
+     using Autoconf, write it as '@localedir@'.)  This directory usually
+     has a subdirectory per locale.
 
    Unix-style man pages are installed in one of the following:
 
-`mandir'
+'mandir'
      The top-level directory for installing the man pages (if any) for
-     this package.  It will normally be `/usr/local/share/man', but you
-     should write it as `$(datarootdir)/man'.  (If you are using
-     Autoconf, write it as `@mandir@'.)
+     this package.  It will normally be '/usr/local/share/man', but you
+     should write it as '$(datarootdir)/man'.  (If you are using
+     Autoconf, write it as '@mandir@'.)
 
-`man1dir'
+'man1dir'
      The directory for installing section 1 man pages.  Write it as
-     `$(mandir)/man1'.
-
-`man2dir'
+     '$(mandir)/man1'.
+'man2dir'
      The directory for installing section 2 man pages.  Write it as
-     `$(mandir)/man2'
+     '$(mandir)/man2'
+'...'
 
-`...'
-     *Don't make the primary documentation for any GNU software be a
-     man page.  Write a manual in Texinfo instead.  Man pages are just
-     for the sake of people running GNU software on Unix, which is a
+     *Don't make the primary documentation for any GNU software be a man
+     page.  Write a manual in Texinfo instead.  Man pages are just for
+     the sake of people running GNU software on Unix, which is a
      secondary application only.*
 
-`manext'
+'manext'
      The file name extension for the installed man page.  This should
      contain a period followed by the appropriate digit; it should
-     normally be `.1'.
+     normally be '.1'.
 
-`man1ext'
+'man1ext'
      The file name extension for installed section 1 man pages.
-
-`man2ext'
+'man2ext'
      The file name extension for installed section 2 man pages.
-
-`...'
-     Use these names instead of `manext' if the package needs to
-     install man pages in more than one section of the manual.
+'...'
+     Use these names instead of 'manext' if the package needs to install
+     man pages in more than one section of the manual.
 
    And finally, you should set the following variable:
 
-`srcdir'
+'srcdir'
      The directory for the sources being compiled.  The value of this
-     variable is normally inserted by the `configure' shell script.
-     (If you are using Autoconf, use `srcdir = @srcdir@'.)
+     variable is normally inserted by the 'configure' shell script.  (If
+     you are using Autoconf, use 'srcdir = @srcdir@'.)
 
    For example:
 
@@ -3249,7 +2938,7 @@ have Info files, so every program needs `infodir', but not all need
    If your program installs a large number of files into one of the
 standard user-specified directories, it might be useful to group them
 into a subdirectory particular to that program.  If you do this, you
-should write the `install' rule to create these subdirectories.
+should write the 'install' rule to create these subdirectories.
 
    Do not expect the user to include the subdirectory name in the value
 of any of the variables listed above.  The idea of having a uniform set
@@ -3274,19 +2963,19 @@ File: make.info,  Node: Standard Targets,  Next: Install Command Categories,  Pr
 
 All GNU programs should have the following targets in their Makefiles:
 
-`all'
+'all'
      Compile the entire program.  This should be the default target.
      This target need not rebuild any documentation files; Info files
      should normally be included in the distribution, and DVI (and other
      documentation format) files should be made only when explicitly
      asked for.
 
-     By default, the Make rules should compile and link with `-g', so
+     By default, the Make rules should compile and link with '-g', so
      that executable programs have debugging symbols.  Otherwise, you
      are essentially helpless in the face of a crash, and it is often
      far from easy to reproduce with a fresh build.
 
-`install'
+'install'
      Compile the program and copy the executables, libraries, and so on
      to the file names where they should reside for actual use.  If
      there is a simple test to verify that a program is properly
@@ -3296,34 +2985,34 @@ All GNU programs should have the following targets in their Makefiles:
      debugging that may be needed later, and nowadays disk space is
      cheap and dynamic loaders typically ensure debug sections are not
      loaded during normal execution.  Users that need stripped binaries
-     may invoke the `install-strip' target to do that.
+     may invoke the 'install-strip' target to do that.
 
-     If possible, write the `install' target rule so that it does not
+     If possible, write the 'install' target rule so that it does not
      modify anything in the directory where the program was built,
-     provided `make all' has just been done.  This is convenient for
+     provided 'make all' has just been done.  This is convenient for
      building the program under one user name and installing it under
      another.
 
      The commands should create all the directories in which files are
      to be installed, if they don't already exist.  This includes the
-     directories specified as the values of the variables `prefix' and
-     `exec_prefix', as well as all subdirectories that are needed.  One
-     way to do this is by means of an `installdirs' target as described
+     directories specified as the values of the variables 'prefix' and
+     'exec_prefix', as well as all subdirectories that are needed.  One
+     way to do this is by means of an 'installdirs' target as described
      below.
 
-     Use `-' before any command for installing a man page, so that
-     `make' will ignore any errors.  This is in case there are systems
+     Use '-' before any command for installing a man page, so that
+     'make' will ignore any errors.  This is in case there are systems
      that don't have the Unix man page documentation system installed.
 
-     The way to install Info files is to copy them into `$(infodir)'
-     with `$(INSTALL_DATA)' (*note Command Variables::), and then run
-     the `install-info' program if it is present.  `install-info' is a
-     program that edits the Info `dir' file to add or update the menu
+     The way to install Info files is to copy them into '$(infodir)'
+     with '$(INSTALL_DATA)' (*note Command Variables::), and then run
+     the 'install-info' program if it is present.  'install-info' is a
+     program that edits the Info 'dir' file to add or update the menu
      entry for the given Info file; it is part of the Texinfo package.
 
      Here is a sample rule to install an Info file that also tries to
-     handle some additional situations, such as `install-info' not
-     being present.
+     handle some additional situations, such as 'install-info' not being
+     present.
 
           do-install-info: foo.info installdirs
                   $(NORMAL_INSTALL)
@@ -3344,47 +3033,47 @@ All GNU programs should have the following targets in their Makefiles:
                                  "$(DESTDIR)$(infodir)/foo.info"; \
                   else true; fi
 
-     When writing the `install' target, you must classify all the
+     When writing the 'install' target, you must classify all the
      commands into three categories: normal ones, "pre-installation"
      commands and "post-installation" commands.  *Note Install Command
      Categories::.
 
-`install-html'
-`install-dvi'
-`install-pdf'
-`install-ps'
+'install-html'
+'install-dvi'
+'install-pdf'
+'install-ps'
      These targets install documentation in formats other than Info;
      they're intended to be called explicitly by the person installing
-     the package, if that format is desired.  GNU prefers Info files,
-     so these must be installed by the `install' target.
+     the package, if that format is desired.  GNU prefers Info files, so
+     these must be installed by the 'install' target.
 
      When you have many documentation files to install, we recommend
      that you avoid collisions and clutter by arranging for these
      targets to install in subdirectories of the appropriate
-     installation directory, such as `htmldir'.  As one example, if
-     your package has multiple manuals, and you wish to install HTML
+     installation directory, such as 'htmldir'.  As one example, if your
+     package has multiple manuals, and you wish to install HTML
      documentation with many files (such as the "split" mode output by
-     `makeinfo --html'), you'll certainly want to use subdirectories,
-     or two nodes with the same name in different manuals will
-     overwrite each other.
+     'makeinfo --html'), you'll certainly want to use subdirectories, or
+     two nodes with the same name in different manuals will overwrite
+     each other.
 
-     Please make these `install-FORMAT' targets invoke the commands for
+     Please make these 'install-FORMAT' targets invoke the commands for
      the FORMAT target, for example, by making FORMAT a dependency.
 
-`uninstall'
-     Delete all the installed files--the copies that the `install' and
-     `install-*' targets create.
+'uninstall'
+     Delete all the installed files--the copies that the 'install' and
+     'install-*' targets create.
 
      This rule should not modify the directories where compilation is
      done, only the directories where files are installed.
 
-     The uninstallation commands are divided into three categories,
-     just like the installation commands.  *Note Install Command
+     The uninstallation commands are divided into three categories, just
+     like the installation commands.  *Note Install Command
      Categories::.
 
-`install-strip'
-     Like `install', but strip the executable files while installing
-     them.  In simple cases, this target can use the `install' target in
+'install-strip'
+     Like 'install', but strip the executable files while installing
+     them.  In simple cases, this target can use the 'install' target in
      a simple way:
 
           install-strip:
@@ -3392,105 +3081,105 @@ All GNU programs should have the following targets in their Makefiles:
                           install
 
      But if the package installs scripts as well as real executables,
-     the `install-strip' target can't just refer to the `install'
+     the 'install-strip' target can't just refer to the 'install'
      target; it has to strip the executables but not the scripts.
 
-     `install-strip' should not strip the executables in the build
+     'install-strip' should not strip the executables in the build
      directory which are being copied for installation.  It should only
      strip the copies that are installed.
 
-     Normally we do not recommend stripping an executable unless you
-     are sure the program has no bugs.  However, it can be reasonable
-     to install a stripped executable for actual execution while saving
-     the unstripped executable elsewhere in case there is a bug.
+     Normally we do not recommend stripping an executable unless you are
+     sure the program has no bugs.  However, it can be reasonable to
+     install a stripped executable for actual execution while saving the
+     unstripped executable elsewhere in case there is a bug.
 
-`clean'
-     Delete all files in the current directory that are normally
-     created by building the program.  Also delete files in other
-     directories if they are created by this makefile.  However, don't
-     delete the files that record the configuration.  Also preserve
-     files that could be made by building, but normally aren't because
-     the distribution comes with them.  There is no need to delete
-     parent directories that were created with `mkdir -p', since they
-     could have existed anyway.
+'clean'
+     Delete all files in the current directory that are normally created
+     by building the program.  Also delete files in other directories if
+     they are created by this makefile.  However, don't delete the files
+     that record the configuration.  Also preserve files that could be
+     made by building, but normally aren't because the distribution
+     comes with them.  There is no need to delete parent directories
+     that were created with 'mkdir -p', since they could have existed
+     anyway.
 
-     Delete `.dvi' files here if they are not part of the distribution.
+     Delete '.dvi' files here if they are not part of the distribution.
 
-`distclean'
+'distclean'
      Delete all files in the current directory (or created by this
      makefile) that are created by configuring or building the program.
      If you have unpacked the source and built the program without
-     creating any other files, `make distclean' should leave only the
+     creating any other files, 'make distclean' should leave only the
      files that were in the distribution.  However, there is no need to
-     delete parent directories that were created with `mkdir -p', since
+     delete parent directories that were created with 'mkdir -p', since
      they could have existed anyway.
 
-`mostlyclean'
-     Like `clean', but may refrain from deleting a few files that people
-     normally don't want to recompile.  For example, the `mostlyclean'
-     target for GCC does not delete `libgcc.a', because recompiling it
+'mostlyclean'
+     Like 'clean', but may refrain from deleting a few files that people
+     normally don't want to recompile.  For example, the 'mostlyclean'
+     target for GCC does not delete 'libgcc.a', because recompiling it
      is rarely necessary and takes a lot of time.
 
-`maintainer-clean'
+'maintainer-clean'
      Delete almost everything that can be reconstructed with this
      Makefile.  This typically includes everything deleted by
-     `distclean', plus more: C source files produced by Bison, tags
+     'distclean', plus more: C source files produced by Bison, tags
      tables, Info files, and so on.
 
      The reason we say "almost everything" is that running the command
-     `make maintainer-clean' should not delete `configure' even if
-     `configure' can be remade using a rule in the Makefile.  More
-     generally, `make maintainer-clean' should not delete anything that
-     needs to exist in order to run `configure' and then begin to build
+     'make maintainer-clean' should not delete 'configure' even if
+     'configure' can be remade using a rule in the Makefile.  More
+     generally, 'make maintainer-clean' should not delete anything that
+     needs to exist in order to run 'configure' and then begin to build
      the program.  Also, there is no need to delete parent directories
-     that were created with `mkdir -p', since they could have existed
-     anyway.  These are the only exceptions; `maintainer-clean' should
+     that were created with 'mkdir -p', since they could have existed
+     anyway.  These are the only exceptions; 'maintainer-clean' should
      delete everything else that can be rebuilt.
 
-     The `maintainer-clean' target is intended to be used by a
+     The 'maintainer-clean' target is intended to be used by a
      maintainer of the package, not by ordinary users.  You may need
-     special tools to reconstruct some of the files that `make
-     maintainer-clean' deletes.  Since these files are normally
-     included in the distribution, we don't take care to make them easy
-     to reconstruct.  If you find you need to unpack the full
-     distribution again, don't blame us.
+     special tools to reconstruct some of the files that 'make
+     maintainer-clean' deletes.  Since these files are normally included
+     in the distribution, we don't take care to make them easy to
+     reconstruct.  If you find you need to unpack the full distribution
+     again, don't blame us.
 
      To help make users aware of this, the commands for the special
-     `maintainer-clean' target should start with these two:
+     'maintainer-clean' target should start with these two:
 
           @echo 'This command is intended for maintainers to use; it'
           @echo 'deletes files that may need special tools to rebuild.'
 
-`TAGS'
+'TAGS'
      Update a tags table for this program.
 
-`info'
-     Generate any Info files needed.  The best way to write the rules
-     is as follows:
+'info'
+     Generate any Info files needed.  The best way to write the rules is
+     as follows:
 
           info: foo.info
 
           foo.info: foo.texi chap1.texi chap2.texi
                   $(MAKEINFO) $(srcdir)/foo.texi
 
-     You must define the variable `MAKEINFO' in the Makefile.  It should
-     run the `makeinfo' program, which is part of the Texinfo
+     You must define the variable 'MAKEINFO' in the Makefile.  It should
+     run the 'makeinfo' program, which is part of the Texinfo
      distribution.
 
      Normally a GNU distribution comes with Info files, and that means
-     the Info files are present in the source directory.  Therefore,
-     the Make rule for an info file should update it in the source
+     the Info files are present in the source directory.  Therefore, the
+     Make rule for an info file should update it in the source
      directory.  When users build the package, ordinarily Make will not
      update the Info files because they will already be up to date.
 
-`dvi'
-`html'
-`pdf'
-`ps'
+'dvi'
+'html'
+'pdf'
+'ps'
      Generate documentation files in the given format.  These targets
      should always exist, but any or all can be a no-op if the given
      output format cannot be generated.  These targets should not be
-     dependencies of the `all' target; the user must manually invoke
+     dependencies of the 'all' target; the user must manually invoke
      them.
 
      Here's an example rule for generating DVI files from Texinfo:
@@ -3500,11 +3189,11 @@ All GNU programs should have the following targets in their Makefiles:
           foo.dvi: foo.texi chap1.texi chap2.texi
                   $(TEXI2DVI) $(srcdir)/foo.texi
 
-     You must define the variable `TEXI2DVI' in the Makefile.  It
-     should run the program `texi2dvi', which is part of the Texinfo
-     distribution.  (`texi2dvi' uses TeX to do the real work of
-     formatting. TeX is not distributed with Texinfo.)  Alternatively,
-     write only the dependencies, and allow GNU `make' to provide the
+     You must define the variable 'TEXI2DVI' in the Makefile.  It should
+     run the program 'texi2dvi', which is part of the Texinfo
+     distribution.  ('texi2dvi' uses TeX to do the real work of
+     formatting.  TeX is not distributed with Texinfo.)  Alternatively,
+     write only the dependencies, and allow GNU 'make' to provide the
      command.
 
      Here's another example, this one for generating HTML from Texinfo:
@@ -3514,32 +3203,32 @@ All GNU programs should have the following targets in their Makefiles:
           foo.html: foo.texi chap1.texi chap2.texi
                   $(TEXI2HTML) $(srcdir)/foo.texi
 
-     Again, you would define the variable `TEXI2HTML' in the Makefile;
-     for example, it might run `makeinfo --no-split --html' (`makeinfo'
+     Again, you would define the variable 'TEXI2HTML' in the Makefile;
+     for example, it might run 'makeinfo --no-split --html' ('makeinfo'
      is part of the Texinfo distribution).
 
-`dist'
+'dist'
      Create a distribution tar file for this program.  The tar file
      should be set up so that the file names in the tar file start with
      a subdirectory name which is the name of the package it is a
      distribution for.  This name can include the version number.
 
      For example, the distribution tar file of GCC version 1.40 unpacks
-     into a subdirectory named `gcc-1.40'.
+     into a subdirectory named 'gcc-1.40'.
 
      The easiest way to do this is to create a subdirectory
-     appropriately named, use `ln' or `cp' to install the proper files
-     in it, and then `tar' that subdirectory.
+     appropriately named, use 'ln' or 'cp' to install the proper files
+     in it, and then 'tar' that subdirectory.
 
-     Compress the tar file with `gzip'.  For example, the actual
-     distribution file for GCC version 1.40 is called `gcc-1.40.tar.gz'.
+     Compress the tar file with 'gzip'.  For example, the actual
+     distribution file for GCC version 1.40 is called 'gcc-1.40.tar.gz'.
      It is ok to support other free compression formats as well.
 
-     The `dist' target should explicitly depend on all non-source files
+     The 'dist' target should explicitly depend on all non-source files
      that are in the distribution, to make sure they are up to date in
      the distribution.  *Note Making Releases: (standards)Releases.
 
-`check'
+'check'
      Perform self-tests (if any).  The user must build the program
      before running the tests, but need not install the program; you
      should write the self-tests so that they work when the program is
@@ -3548,15 +3237,15 @@ All GNU programs should have the following targets in their Makefiles:
    The following targets are suggested as conventional names, for
 programs in which they are useful.
 
-`installcheck'
+'installcheck'
      Perform installation tests (if any).  The user must build and
      install the program before running the tests.  You should not
-     assume that `$(bindir)' is in the search path.
+     assume that '$(bindir)' is in the search path.
 
-`installdirs'
-     It's useful to add a target named `installdirs' to create the
+'installdirs'
+     It's useful to add a target named 'installdirs' to create the
      directories where files are installed, and their parent
-     directories.  There is a script called `mkinstalldirs' which is
+     directories.  There is a script called 'mkinstalldirs' which is
      convenient for this; you can find it in the Gnulib package.  You
      can use a rule like this:
 
@@ -3567,7 +3256,7 @@ programs in which they are useful.
                                           $(libdir) $(infodir) \
                                           $(mandir)
 
-     or, if you wish to support `DESTDIR' (strongly encouraged),
+     or, if you wish to support 'DESTDIR' (strongly encouraged),
 
           # Make sure all installation directories (e.g. $(bindir))
           # actually exist by making them if necessary.
@@ -3586,7 +3275,7 @@ File: make.info,  Node: Install Command Categories,  Prev: Standard Targets,  Up
 15.7 Install Command Categories
 ===============================
 
-When writing the `install' target, you must classify all the commands
+When writing the 'install' target, you must classify all the commands
 into three categories: normal ones, "pre-installation" commands and
 "post-installation" commands.
 
@@ -3603,7 +3292,7 @@ commands, and post-installation commands are typically run after the
 normal commands.
 
    The most common use for a post-installation command is to run
-`install-info'.  This cannot be done with a normal command, since it
+'install-info'.  This cannot be done with a normal command, since it
 alters a file (the Info directory) which does not come entirely and
 solely from the package being installed.  It is a post-installation
 command because it needs to be done after the normal command which
@@ -3612,7 +3301,7 @@ installs the package's Info files.
    Most programs don't need any pre-installation commands, but we have
 the feature just in case it is needed.
 
-   To classify the commands in the `install' rule into these three
+   To classify the commands in the 'install' rule into these three
 categories, insert "category lines" among them.  A category line
 specifies the category for the commands that follow.
 
@@ -3630,12 +3319,12 @@ explains what it means:
              $(POST_INSTALL)    # Post-install commands follow.
              $(NORMAL_INSTALL)  # Normal commands follow.
 
-   If you don't use a category line at the beginning of the `install'
+   If you don't use a category line at the beginning of the 'install'
 rule, all the commands are classified as normal until the first category
 line.  If you don't use any category lines, all the commands are
 classified as normal.
 
-   These are the category lines for `uninstall':
+   These are the category lines for 'uninstall':
 
              $(PRE_UNINSTALL)     # Pre-uninstall commands follow.
              $(POST_UNINSTALL)    # Post-uninstall commands follow.
@@ -3644,8 +3333,8 @@ classified as normal.
    Typically, a pre-uninstall command would be used for deleting entries
 from the Info directory.
 
-   If the `install' or `uninstall' target has any dependencies which
-act as subroutines of installation, then you should start _each_
+   If the 'install' or 'uninstall' target has any dependencies which act
+as subroutines of installation, then you should start _each_
 dependency's commands with a category line, and start the main target's
 commands with a category line also.  This way, you can ensure that each
 command is placed in the right category regardless of which of the
@@ -3661,15 +3350,15 @@ programs except for these:
      test touch true uname xargs yes
 
    The reason for distinguishing the commands in this way is for the
-sake of making binary packages.  Typically a binary package contains
-all the executables and other files that need to be installed, and has
-its own method of installing them--so it does not need to run the normal
+sake of making binary packages.  Typically a binary package contains all
+the executables and other files that need to be installed, and has its
+own method of installing them--so it does not need to run the normal
 installation commands.  But installing the binary package does need to
 execute the pre-installation and post-installation commands.
 
    Programs to build binary packages work by extracting the
 pre-installation and post-installation commands.  Here is one way of
-extracting the pre-installation commands (the `-s' option to `make' is
+extracting the pre-installation commands (the '-s' option to 'make' is
 needed to silence messages about entering subdirectories):
 
      make -s -n install -o all \
@@ -3678,7 +3367,7 @@ needed to silence messages about entering subdirectories):
            NORMAL_INSTALL=normal-install \
        | gawk -f pre-install.awk
 
-where the file `pre-install.awk' could contain this:
+where the file 'pre-install.awk' could contain this:
 
      $0 ~ /^(normal-install|post-install)[ \t]*$/ {on = 0}
      on {print $0}
@@ -3691,382 +3380,395 @@ Appendix A Quick Reference
 **************************
 
 This appendix summarizes the directives, text manipulation functions,
-and special variables which GNU `make' understands.  *Note Special
-Targets::, *note Catalogue of Implicit Rules: Catalogue of Rules, and
+and special variables which GNU 'make' understands.  *Note Special
+Targets::, *note Catalogue of Built-In Rules: Catalogue of Rules, and
 *note Summary of Options: Options Summary, for other summaries.
 
-   Here is a summary of the directives GNU `make' recognizes:
+   Here is a summary of the directives GNU 'make' recognizes:
 
-`define VARIABLE'
-`define VARIABLE ='
-`define VARIABLE :='
-`define VARIABLE ::='
-`define VARIABLE +='
-`define VARIABLE ?='
-`endef'
+'define VARIABLE'
+'define VARIABLE ='
+'define VARIABLE :='
+'define VARIABLE ::='
+'define VARIABLE +='
+'define VARIABLE ?='
+'endef'
      Define multi-line variables.
      *Note Multi-Line::.
 
-`undefine VARIABLE'
+'undefine VARIABLE'
      Undefining variables.
      *Note Undefine Directive::.
 
-`ifdef VARIABLE'
-`ifndef VARIABLE'
-`ifeq (A,B)'
-`ifeq "A" "B"'
-`ifeq 'A' 'B''
-`ifneq (A,B)'
-`ifneq "A" "B"'
-`ifneq 'A' 'B''
-`else'
-`endif'
+'ifdef VARIABLE'
+'ifndef VARIABLE'
+'ifeq (A,B)'
+'ifeq "A" "B"'
+'ifeq 'A' 'B''
+'ifneq (A,B)'
+'ifneq "A" "B"'
+'ifneq 'A' 'B''
+'else'
+'endif'
      Conditionally evaluate part of the makefile.
      *Note Conditionals::.
 
-`include FILE'
-`-include FILE'
-`sinclude FILE'
+'include FILE'
+'-include FILE'
+'sinclude FILE'
      Include another makefile.
      *Note Including Other Makefiles: Include.
 
-`override VARIABLE-ASSIGNMENT'
+'override VARIABLE-ASSIGNMENT'
      Define a variable, overriding any previous definition, even one
      from the command line.
-     *Note The `override' Directive: Override Directive.
+     *Note The 'override' Directive: Override Directive.
 
-`export'
-     Tell `make' to export all variables to child processes by default.
-     *Note Communicating Variables to a Sub-`make': Variables/Recursion.
+'export'
+     Tell 'make' to export all variables to child processes by default.
+     *Note Communicating Variables to a Sub-'make': Variables/Recursion.
 
-`export VARIABLE'
-`export VARIABLE-ASSIGNMENT'
-`unexport VARIABLE'
-     Tell `make' whether or not to export a particular variable to child
+'export VARIABLE'
+'export VARIABLE-ASSIGNMENT'
+'unexport VARIABLE'
+     Tell 'make' whether or not to export a particular variable to child
      processes.
-     *Note Communicating Variables to a Sub-`make': Variables/Recursion.
+     *Note Communicating Variables to a Sub-'make': Variables/Recursion.
 
-`private VARIABLE-ASSIGNMENT'
+'private VARIABLE-ASSIGNMENT'
      Do not allow this variable assignment to be inherited by
      prerequisites.
      *Note Suppressing Inheritance::.
 
-`vpath PATTERN PATH'
-     Specify a search path for files matching a `%' pattern.
-     *Note The `vpath' Directive: Selective Search.
+'vpath PATTERN PATH'
+     Specify a search path for files matching a '%' pattern.
+     *Note The 'vpath' Directive: Selective Search.
 
-`vpath PATTERN'
+'vpath PATTERN'
      Remove all search paths previously specified for PATTERN.
 
-`vpath'
-     Remove all search paths previously specified in any `vpath'
+'vpath'
+     Remove all search paths previously specified in any 'vpath'
      directive.
 
    Here is a summary of the built-in functions (*note Functions::):
 
-`$(subst FROM,TO,TEXT)'
+'$(subst FROM,TO,TEXT)'
      Replace FROM with TO in TEXT.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(patsubst PATTERN,REPLACEMENT,TEXT)'
+'$(patsubst PATTERN,REPLACEMENT,TEXT)'
      Replace words matching PATTERN with REPLACEMENT in TEXT.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(strip STRING)'
+'$(strip STRING)'
      Remove excess whitespace characters from STRING.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(findstring FIND,TEXT)'
+'$(findstring FIND,TEXT)'
      Locate FIND in TEXT.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(filter PATTERN...,TEXT)'
+'$(filter PATTERN...,TEXT)'
      Select words in TEXT that match one of the PATTERN words.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(filter-out PATTERN...,TEXT)'
+'$(filter-out PATTERN...,TEXT)'
      Select words in TEXT that _do not_ match any of the PATTERN words.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(sort LIST)'
+'$(sort LIST)'
      Sort the words in LIST lexicographically, removing duplicates.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(word N,TEXT)'
+'$(word N,TEXT)'
      Extract the Nth word (one-origin) of TEXT.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(words TEXT)'
+'$(words TEXT)'
      Count the number of words in TEXT.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(wordlist S,E,TEXT)'
+'$(wordlist S,E,TEXT)'
      Returns the list of words in TEXT from S to E.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(firstword NAMES...)'
+'$(firstword NAMES...)'
      Extract the first word of NAMES.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(lastword NAMES...)'
+'$(lastword NAMES...)'
      Extract the last word of NAMES.
      *Note Functions for String Substitution and Analysis: Text
      Functions.
 
-`$(dir NAMES...)'
+'$(dir NAMES...)'
      Extract the directory part of each file name.
      *Note Functions for File Names: File Name Functions.
 
-`$(notdir NAMES...)'
+'$(notdir NAMES...)'
      Extract the non-directory part of each file name.
      *Note Functions for File Names: File Name Functions.
 
-`$(suffix NAMES...)'
-     Extract the suffix (the last `.' and following characters) of each
+'$(suffix NAMES...)'
+     Extract the suffix (the last '.' and following characters) of each
      file name.
      *Note Functions for File Names: File Name Functions.
 
-`$(basename NAMES...)'
+'$(basename NAMES...)'
      Extract the base name (name without suffix) of each file name.
      *Note Functions for File Names: File Name Functions.
 
-`$(addsuffix SUFFIX,NAMES...)'
+'$(addsuffix SUFFIX,NAMES...)'
      Append SUFFIX to each word in NAMES.
      *Note Functions for File Names: File Name Functions.
 
-`$(addprefix PREFIX,NAMES...)'
+'$(addprefix PREFIX,NAMES...)'
      Prepend PREFIX to each word in NAMES.
      *Note Functions for File Names: File Name Functions.
 
-`$(join LIST1,LIST2)'
+'$(join LIST1,LIST2)'
      Join two parallel lists of words.
      *Note Functions for File Names: File Name Functions.
 
-`$(wildcard PATTERN...)'
-     Find file names matching a shell file name pattern (_not_ a `%'
+'$(wildcard PATTERN...)'
+     Find file names matching a shell file name pattern (_not_ a '%'
      pattern).
-     *Note The Function `wildcard': Wildcard Function.
+     *Note The Function 'wildcard': Wildcard Function.
 
-`$(realpath NAMES...)'
+'$(realpath NAMES...)'
      For each file name in NAMES, expand to an absolute name that does
-     not contain any `.', `..', nor symlinks.
+     not contain any '.', '..', nor symlinks.
      *Note Functions for File Names: File Name Functions.
 
-`$(abspath NAMES...)'
+'$(abspath NAMES...)'
      For each file name in NAMES, expand to an absolute name that does
-     not contain any `.' or `..' components, but preserves symlinks.
+     not contain any '.' or '..' components, but preserves symlinks.
      *Note Functions for File Names: File Name Functions.
 
-`$(error TEXT...)'
-     When this function is evaluated, `make' generates a fatal error
+'$(error TEXT...)'
+     When this function is evaluated, 'make' generates a fatal error
      with the message TEXT.
      *Note Functions That Control Make: Make Control Functions.
 
-`$(warning TEXT...)'
-     When this function is evaluated, `make' generates a warning with
+'$(warning TEXT...)'
+     When this function is evaluated, 'make' generates a warning with
      the message TEXT.
      *Note Functions That Control Make: Make Control Functions.
 
-`$(shell COMMAND)'
+'$(shell COMMAND)'
      Execute a shell command and return its output.
-     *Note The `shell' Function: Shell Function.
+     *Note The 'shell' Function: Shell Function.
 
-`$(origin VARIABLE)'
-     Return a string describing how the `make' variable VARIABLE was
+'$(origin VARIABLE)'
+     Return a string describing how the 'make' variable VARIABLE was
      defined.
-     *Note The `origin' Function: Origin Function.
+     *Note The 'origin' Function: Origin Function.
 
-`$(flavor VARIABLE)'
-     Return a string describing the flavor of the `make' variable
+'$(flavor VARIABLE)'
+     Return a string describing the flavor of the 'make' variable
      VARIABLE.
-     *Note The `flavor' Function: Flavor Function.
+     *Note The 'flavor' Function: Flavor Function.
 
-`$(foreach VAR,WORDS,TEXT)'
-     Evaluate TEXT with VAR bound to each word in WORDS, and
-     concatenate the results.
-     *Note The `foreach' Function: Foreach Function.
+'$(foreach VAR,WORDS,TEXT)'
+     Evaluate TEXT with VAR bound to each word in WORDS, and concatenate
+     the results.
+     *Note The 'foreach' Function: Foreach Function.
 
-`$(if CONDITION,THEN-PART[,ELSE-PART])'
+'$(if CONDITION,THEN-PART[,ELSE-PART])'
      Evaluate the condition CONDITION; if it's non-empty substitute the
      expansion of the THEN-PART otherwise substitute the expansion of
      the ELSE-PART.
      *Note Functions for Conditionals: Conditional Functions.
 
-`$(or CONDITION1[,CONDITION2[,CONDITION3...]])'
+'$(or CONDITION1[,CONDITION2[,CONDITION3...]])'
      Evaluate each condition CONDITIONN one at a time; substitute the
      first non-empty expansion.  If all expansions are empty, substitute
      the empty string.
      *Note Functions for Conditionals: Conditional Functions.
 
-`$(and CONDITION1[,CONDITION2[,CONDITION3...]])'
+'$(and CONDITION1[,CONDITION2[,CONDITION3...]])'
      Evaluate each condition CONDITIONN one at a time; if any expansion
      results in the empty string substitute the empty string.  If all
      expansions result in a non-empty string, substitute the expansion
      of the last CONDITION.
      *Note Functions for Conditionals: Conditional Functions.
 
-`$(call VAR,PARAM,...)'
-     Evaluate the variable VAR replacing any references to `$(1)',
-     `$(2)' with the first, second, etc. PARAM values.
-     *Note The `call' Function: Call Function.
+'$(call VAR,PARAM,...)'
+     Evaluate the variable VAR replacing any references to '$(1)',
+     '$(2)' with the first, second, etc. PARAM values.
+     *Note The 'call' Function: Call Function.
 
-`$(eval TEXT)'
+'$(eval TEXT)'
      Evaluate TEXT then read the results as makefile commands.  Expands
      to the empty string.
-     *Note The `eval' Function: Eval Function.
+     *Note The 'eval' Function: Eval Function.
 
-`$(file OP FILENAME,TEXT)'
-     Expand the arguments, then open the file FILENAME using mode OP
-     and write TEXT to that file.
-     *Note The `file' Function: File Function.
+'$(file OP FILENAME,TEXT)'
+     Expand the arguments, then open the file FILENAME using mode OP and
+     write TEXT to that file.
+     *Note The 'file' Function: File Function.
 
-`$(value VAR)'
+'$(value VAR)'
      Evaluates to the contents of the variable VAR, with no expansion
      performed on it.
-     *Note The `value' Function: Value Function.
+     *Note The 'value' Function: Value Function.
 
    Here is a summary of the automatic variables.  *Note Automatic
 Variables::, for full information.
 
-`$@'
+'$@'
      The file name of the target.
 
-`$%'
+'$%'
      The target member name, when the target is an archive member.
 
-`$<'
+'$<'
      The name of the first prerequisite.
 
-`$?'
+'$?'
      The names of all the prerequisites that are newer than the target,
      with spaces between them.  For prerequisites which are archive
      members, only the named member is used (*note Archives::).
 
-`$^'
-`$+'
+'$^'
+'$+'
      The names of all the prerequisites, with spaces between them.  For
      prerequisites which are archive members, only the named member is
-     used (*note Archives::).  The value of `$^' omits duplicate
-     prerequisites, while `$+' retains them and preserves their order.
+     used (*note Archives::).  The value of '$^' omits duplicate
+     prerequisites, while '$+' retains them and preserves their order.
 
-`$*'
+'$*'
      The stem with which an implicit rule matches (*note How Patterns
      Match: Pattern Match.).
 
-`$(@D)'
-`$(@F)'
-     The directory part and the file-within-directory part of `$@'.
+'$(@D)'
+'$(@F)'
+     The directory part and the file-within-directory part of '$@'.
+
+'$(*D)'
+'$(*F)'
+     The directory part and the file-within-directory part of '$*'.
 
-`$(*D)'
-`$(*F)'
-     The directory part and the file-within-directory part of `$*'.
+'$(%D)'
+'$(%F)'
+     The directory part and the file-within-directory part of '$%'.
 
-`$(%D)'
-`$(%F)'
-     The directory part and the file-within-directory part of `$%'.
+'$(<D)'
+'$(<F)'
+     The directory part and the file-within-directory part of '$<'.
 
-`$(<D)'
-`$(<F)'
-     The directory part and the file-within-directory part of `$<'.
+'$(^D)'
+'$(^F)'
+     The directory part and the file-within-directory part of '$^'.
 
-`$(^D)'
-`$(^F)'
-     The directory part and the file-within-directory part of `$^'.
+'$(+D)'
+'$(+F)'
+     The directory part and the file-within-directory part of '$+'.
 
-`$(+D)'
-`$(+F)'
-     The directory part and the file-within-directory part of `$+'.
+'$(?D)'
+'$(?F)'
+     The directory part and the file-within-directory part of '$?'.
 
-`$(?D)'
-`$(?F)'
-     The directory part and the file-within-directory part of `$?'.
+   These variables are used specially by GNU 'make':
 
-   These variables are used specially by GNU `make':
+'MAKEFILES'
 
-`MAKEFILES'
-     Makefiles to be read on every invocation of `make'.
-     *Note The Variable `MAKEFILES': MAKEFILES Variable.
+     Makefiles to be read on every invocation of 'make'.
+     *Note The Variable 'MAKEFILES': MAKEFILES Variable.
+
+'VPATH'
 
-`VPATH'
      Directory search path for files not found in the current directory.
-     *Note `VPATH' Search Path for All Prerequisites: General Search.
+     *Note 'VPATH' Search Path for All Prerequisites: General Search.
+
+'SHELL'
 
-`SHELL'
      The name of the system default command interpreter, usually
-     `/bin/sh'.  You can set `SHELL' in the makefile to change the
-     shell used to run recipes.  *Note Recipe Execution: Execution.
-     The `SHELL' variable is handled specially when importing from and
+     '/bin/sh'.  You can set 'SHELL' in the makefile to change the shell
+     used to run recipes.  *Note Recipe Execution: Execution.  The
+     'SHELL' variable is handled specially when importing from and
      exporting to the environment.  *Note Choosing the Shell::.
 
-`MAKESHELL'
+'MAKESHELL'
+
      On MS-DOS only, the name of the command interpreter that is to be
-     used by `make'.  This value takes precedence over the value of
-     `SHELL'.  *Note MAKESHELL variable: Execution.
+     used by 'make'.  This value takes precedence over the value of
+     'SHELL'.  *Note MAKESHELL variable: Execution.
 
-`MAKE'
-     The name with which `make' was invoked.  Using this variable in
-     recipes has special meaning.  *Note How the `MAKE' Variable Works:
+'MAKE'
+
+     The name with which 'make' was invoked.  Using this variable in
+     recipes has special meaning.  *Note How the 'MAKE' Variable Works:
      MAKE Variable.
 
-`MAKE_VERSION'
-     The built-in variable `MAKE_VERSION' expands to the version number
-     of the GNU `make' program.  
+'MAKE_VERSION'
+
+     The built-in variable 'MAKE_VERSION' expands to the version number
+     of the GNU 'make' program.
+
+'MAKE_HOST'
+
+     The built-in variable 'MAKE_HOST' expands to a string representing
+     the host that GNU 'make' was built to run on.
 
-`MAKE_HOST'
-     The built-in variable `MAKE_HOST' expands to a string representing
-     the host that GNU `make' was built to run on.  
+'MAKELEVEL'
 
-`MAKELEVEL'
-     The number of levels of recursion (sub-`make's).
+     The number of levels of recursion (sub-'make's).
      *Note Variables/Recursion::.
 
-`MAKEFLAGS'
-     The flags given to `make'.  You can set this in the environment or
+'MAKEFLAGS'
+
+     The flags given to 'make'.  You can set this in the environment or
      a makefile to set flags.
-     *Note Communicating Options to a Sub-`make': Options/Recursion.
+     *Note Communicating Options to a Sub-'make': Options/Recursion.
 
-     It is _never_ appropriate to use `MAKEFLAGS' directly in a recipe
+     It is _never_ appropriate to use 'MAKEFLAGS' directly in a recipe
      line: its contents may not be quoted correctly for use in the
-     shell.  Always allow recursive `make''s to obtain these values
+     shell.  Always allow recursive 'make''s to obtain these values
      through the environment from its parent.
 
-`GNUMAKEFLAGS'
-     Other flags parsed by `make'.  You can set this in the environment
-     or a makefile to set `make' command-line flags.  GNU `make' never
+'GNUMAKEFLAGS'
+
+     Other flags parsed by 'make'.  You can set this in the environment
+     or a makefile to set 'make' command-line flags.  GNU 'make' never
      sets this variable itself.  This variable is only needed if you'd
-     like to set GNU `make'-specific flags in a POSIX-compliant
-     makefile.  This variable will be seen by GNU `make' and ignored by
-     other `make' implementations.  It's not needed if you only use GNU
-     `make'; just use `MAKEFLAGS' directly.  *Note Communicating
-     Options to a Sub-`make': Options/Recursion.
-
-`MAKECMDGOALS'
-     The targets given to `make' on the command line.  Setting this
-     variable has no effect on the operation of `make'.
+     like to set GNU 'make'-specific flags in a POSIX-compliant
+     makefile.  This variable will be seen by GNU 'make' and ignored by
+     other 'make' implementations.  It's not needed if you only use GNU
+     'make'; just use 'MAKEFLAGS' directly.  *Note Communicating Options
+     to a Sub-'make': Options/Recursion.
+
+'MAKECMDGOALS'
+
+     The targets given to 'make' on the command line.  Setting this
+     variable has no effect on the operation of 'make'.
      *Note Arguments to Specify the Goals: Goals.
 
-`CURDIR'
+'CURDIR'
+
      Set to the pathname of the current working directory (after all
-     `-C' options are processed, if any).  Setting this variable has no
-     effect on the operation of `make'.
-     *Note Recursive Use of `make': Recursion.
+     '-C' options are processed, if any).  Setting this variable has no
+     effect on the operation of 'make'.
+     *Note Recursive Use of 'make': Recursion.
 
-`SUFFIXES'
-     The default list of suffixes before `make' reads any makefiles.
+'SUFFIXES'
 
-`.LIBPATTERNS'
-     Defines the naming of the libraries `make' searches for, and their
+     The default list of suffixes before 'make' reads any makefiles.
+
+'.LIBPATTERNS'
+     Defines the naming of the libraries 'make' searches for, and their
      order.
      *Note Directory Search for Link Libraries: Libraries/Search.
 
@@ -4077,155 +3779,154 @@ Appendix B Errors Generated by Make
 ***********************************
 
 Here is a list of the more common errors you might see generated by
-`make', and some information about what they mean and how to fix them.
+'make', and some information about what they mean and how to fix them.
 
-   Sometimes `make' errors are not fatal, especially in the presence of
-a `-' prefix on a recipe line, or the `-k' command line option.  Errors
-that are fatal are prefixed with the string `***'.
+   Sometimes 'make' errors are not fatal, especially in the presence of
+a '-' prefix on a recipe line, or the '-k' command line option.  Errors
+that are fatal are prefixed with the string '***'.
 
    Error messages are all either prefixed with the name of the program
-(usually `make'), or, if the error is found in a makefile, the name of
+(usually 'make'), or, if the error is found in a makefile, the name of
 the file and line number containing the problem.
 
    In the table below, these common prefixes are left off.
 
-`[FOO] Error NN'
-`[FOO] SIGNAL DESCRIPTION'
-     These errors are not really `make' errors at all.  They mean that a
-     program that `make' invoked as part of a recipe returned a non-0
-     error code (`Error NN'), which `make' interprets as failure, or it
-     exited in some other abnormal fashion (with a signal of some
-     type).  *Note Errors in Recipes: Errors.
-
-     If no `***' is attached to the message, then the sub-process failed
-     but the rule in the makefile was prefixed with the `-' special
-     character, so `make' ignored the error.
-
-`missing separator.  Stop.'
-`missing separator (did you mean TAB instead of 8 spaces?).  Stop.'
-     This means that `make' could not understand much of anything about
-     the makefile line it just read.  GNU `make' looks for various
-     separators (`:', `=', recipe prefix characters, etc.) to indicate
+'[FOO] Error NN'
+'[FOO] SIGNAL DESCRIPTION'
+     These errors are not really 'make' errors at all.  They mean that a
+     program that 'make' invoked as part of a recipe returned a non-0
+     error code ('Error NN'), which 'make' interprets as failure, or it
+     exited in some other abnormal fashion (with a signal of some type).
+     *Note Errors in Recipes: Errors.
+
+     If no '***' is attached to the message, then the sub-process failed
+     but the rule in the makefile was prefixed with the '-' special
+     character, so 'make' ignored the error.
+
+'missing separator. Stop.'
+'missing separator (did you mean TAB instead of 8 spaces?). Stop.'
+     This means that 'make' could not understand much of anything about
+     the makefile line it just read.  GNU 'make' looks for various
+     separators (':', '=', recipe prefix characters, etc.)  to indicate
      what kind of line it's parsing.  This message means it couldn't
      find a valid one.
 
      One of the most common reasons for this message is that you (or
      perhaps your oh-so-helpful editor, as is the case with many
-     MS-Windows editors) have attempted to indent your recipe lines
-     with spaces instead of a tab character.  In this case, `make' will
-     use the second form of the error above.  Remember that every line
-     in the recipe must begin with a tab character (unless you set
-     `.RECIPEPREFIX'; *note Special Variables::).  Eight spaces do not
+     MS-Windows editors) have attempted to indent your recipe lines with
+     spaces instead of a tab character.  In this case, 'make' will use
+     the second form of the error above.  Remember that every line in
+     the recipe must begin with a tab character (unless you set
+     '.RECIPEPREFIX'; *note Special Variables::).  Eight spaces do not
      count.  *Note Rule Syntax::.
 
-`recipe commences before first target.  Stop.'
-`missing rule before recipe.  Stop.'
+'recipe commences before first target. Stop.'
+'missing rule before recipe. Stop.'
      This means the first thing in the makefile seems to be part of a
-     recipe: it begins with a recipe prefix character and doesn't
-     appear to be a legal `make' directive (such as a variable
-     assignment).  Recipes must always be associated with a target.
+     recipe: it begins with a recipe prefix character and doesn't appear
+     to be a legal 'make' directive (such as a variable assignment).
+     Recipes must always be associated with a target.
 
      The second form is generated if the line has a semicolon as the
-     first non-whitespace character; `make' interprets this to mean you
+     first non-whitespace character; 'make' interprets this to mean you
      left out the "target: prerequisite" section of a rule.  *Note Rule
      Syntax::.
 
-`No rule to make target `XXX'.'
-`No rule to make target `XXX', needed by `YYY'.'
-     This means that `make' decided it needed to build a target, but
+'No rule to make target `XXX'.'
+'No rule to make target `XXX', needed by `YYY'.'
+     This means that 'make' decided it needed to build a target, but
      then couldn't find any instructions in the makefile on how to do
      that, either explicit or implicit (including in the default rules
      database).
 
      If you want that file to be built, you will need to add a rule to
      your makefile describing how that target can be built.  Other
-     possible sources of this problem are typos in the makefile (if
-     that file name is wrong) or a corrupted source tree (if that file
-     is not supposed to be built, but rather only a prerequisite).
-
-`No targets specified and no makefile found.  Stop.'
-`No targets.  Stop.'
-     The former means that you didn't provide any targets to be built
-     on the command line, and `make' couldn't find any makefiles to
-     read in.  The latter means that some makefile was found, but it
-     didn't contain any default goal and none was given on the command
-     line.  GNU `make' has nothing to do in these situations.  *Note
-     Arguments to Specify the Makefile: Makefile Arguments.
-
-`Makefile `XXX' was not found.'
-`Included makefile `XXX' was not found.'
+     possible sources of this problem are typos in the makefile (if that
+     file name is wrong) or a corrupted source tree (if that file is not
+     supposed to be built, but rather only a prerequisite).
+
+'No targets specified and no makefile found. Stop.'
+'No targets. Stop.'
+     The former means that you didn't provide any targets to be built on
+     the command line, and 'make' couldn't find any makefiles to read
+     in.  The latter means that some makefile was found, but it didn't
+     contain any default goal and none was given on the command line.
+     GNU 'make' has nothing to do in these situations.  *Note Arguments
+     to Specify the Makefile: Makefile Arguments.
+
+'Makefile `XXX' was not found.'
+'Included makefile `XXX' was not found.'
      A makefile specified on the command line (first form) or included
      (second form) was not found.
 
-`warning: overriding recipe for target `XXX''
-`warning: ignoring old recipe for target `XXX''
-     GNU `make' allows only one recipe to be specified per target
+'warning: overriding recipe for target `XXX''
+'warning: ignoring old recipe for target `XXX''
+     GNU 'make' allows only one recipe to be specified per target
      (except for double-colon rules).  If you give a recipe for a target
      which already has been defined to have one, this warning is issued
      and the second recipe will overwrite the first.  *Note Multiple
      Rules for One Target: Multiple Rules.
 
-`Circular XXX <- YYY dependency dropped.'
-     This means that `make' detected a loop in the dependency graph:
+'Circular XXX <- YYY dependency dropped.'
+     This means that 'make' detected a loop in the dependency graph:
      after tracing the prerequisite YYY of target XXX, and its
      prerequisites, etc., one of them depended on XXX again.
 
-`Recursive variable `XXX' references itself (eventually).  Stop.'
-     This means you've defined a normal (recursive) `make' variable XXX
+'Recursive variable `XXX' references itself (eventually). Stop.'
+     This means you've defined a normal (recursive) 'make' variable XXX
      that, when it's expanded, will refer to itself (XXX).  This is not
-     allowed; either use simply-expanded variables (`:=' or `::=') or
-     use the append operator (`+=').  *Note How to Use Variables: Using
+     allowed; either use simply-expanded variables (':=' or '::=') or
+     use the append operator ('+=').  *Note How to Use Variables: Using
      Variables.
 
-`Unterminated variable reference.  Stop.'
+'Unterminated variable reference. Stop.'
      This means you forgot to provide the proper closing parenthesis or
      brace in your variable or function reference.
 
-`insufficient arguments to function `XXX'.  Stop.'
+'insufficient arguments to function `XXX'. Stop.'
      This means you haven't provided the requisite number of arguments
      for this function.  See the documentation of the function for a
      description of its arguments.  *Note Functions for Transforming
      Text: Functions.
 
-`missing target pattern.  Stop.'
-`multiple target patterns.  Stop.'
-`target pattern contains no `%'.  Stop.'
-`mixed implicit and static pattern rules.  Stop.'
+'missing target pattern. Stop.'
+'multiple target patterns. Stop.'
+'target pattern contains no `%'. Stop.'
+'mixed implicit and static pattern rules. Stop.'
      These are generated for malformed static pattern rules.  The first
      means there's no pattern in the target section of the rule; the
-     second means there are multiple patterns in the target section;
-     the third means the target doesn't contain a pattern character
-     (`%'); and the fourth means that all three parts of the static
-     pattern rule contain pattern characters (`%')-only the first two
-     parts should.  If you see these errors and you aren't trying to
-     create a static pattern rule, check the value of any variables in
-     your target and prerequisite lists to be sure they do not contain
+     second means there are multiple patterns in the target section; the
+     third means the target doesn't contain a pattern character ('%');
+     and the fourth means that all three parts of the static pattern
+     rule contain pattern characters ('%')-only the first two parts
+     should.  If you see these errors and you aren't trying to create a
+     static pattern rule, check the value of any variables in your
+     target and prerequisite lists to be sure they do not contain
      colons.  *Note Syntax of Static Pattern Rules: Static Usage.
 
-`warning: -jN forced in submake: disabling jobserver mode.'
-     This warning and the next are generated if `make' detects error
+'warning: -jN forced in submake: disabling jobserver mode.'
+     This warning and the next are generated if 'make' detects error
      conditions related to parallel processing on systems where
-     sub-`make's can communicate (*note Communicating Options to a
-     Sub-`make': Options/Recursion.).  This warning is generated if a
-     recursive invocation of a `make' process is forced to have `-jN'
-     in its argument list (where N is greater than one).  This could
-     happen, for example, if you set the `MAKE' environment variable to
-     `make -j2'.  In this case, the sub-`make' doesn't communicate with
-     other `make' processes and will simply pretend it has two jobs of
+     sub-'make's can communicate (*note Communicating Options to a
+     Sub-'make': Options/Recursion.).  This warning is generated if a
+     recursive invocation of a 'make' process is forced to have '-jN' in
+     its argument list (where N is greater than one).  This could
+     happen, for example, if you set the 'MAKE' environment variable to
+     'make -j2'.  In this case, the sub-'make' doesn't communicate with
+     other 'make' processes and will simply pretend it has two jobs of
      its own.
 
-`warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.'
-     In order for `make' processes to communicate, the parent will pass
+'warning: jobserver unavailable: using -j1. Add `+' to parent make rule.'
+     In order for 'make' processes to communicate, the parent will pass
      information to the child.  Since this could result in problems if
-     the child process isn't actually a `make', the parent will only do
-     this if it thinks the child is a `make'.  The parent uses the
-     normal algorithms to determine this (*note How the `MAKE' Variable
+     the child process isn't actually a 'make', the parent will only do
+     this if it thinks the child is a 'make'.  The parent uses the
+     normal algorithms to determine this (*note How the 'MAKE' Variable
      Works: MAKE Variable.).  If the makefile is constructed such that
-     the parent doesn't know the child is a `make' process, then the
-     child will receive only part of the information necessary.  In
-     this case, the child will generate this warning message and
-     proceed with its build in a sequential manner.
-
+     the parent doesn't know the child is a 'make' process, then the
+     child will receive only part of the information necessary.  In this
+     case, the child will generate this warning message and proceed with
+     its build in a sequential manner.
 
 \1f
 File: make.info,  Node: Complex Makefile,  Next: GNU Free Documentation License,  Prev: Error Messages,  Up: Top
@@ -4233,36 +3934,36 @@ File: make.info,  Node: Complex Makefile,  Next: GNU Free Documentation License,
 Appendix C Complex Makefile Example
 ***********************************
 
-Here is the makefile for the GNU `tar' program.  This is a moderately
-complex makefile.  The first line uses a `#!' setting to allow the
+Here is the makefile for the GNU 'tar' program.  This is a moderately
+complex makefile.  The first line uses a '#!' setting to allow the
 makefile to be executed directly.
 
-   Because it is the first target, the default goal is `all'.  An
-interesting feature of this makefile is that `testpad.h' is a source
-file automatically created by the `testpad' program, itself compiled
-from `testpad.c'.
+   Because it is the first target, the default goal is 'all'.  An
+interesting feature of this makefile is that 'testpad.h' is a source
+file automatically created by the 'testpad' program, itself compiled
+from 'testpad.c'.
 
-   If you type `make' or `make all', then `make' creates the `tar'
-executable, the `rmt' daemon that provides remote tape access, and the
-`tar.info' Info file.
+   If you type 'make' or 'make all', then 'make' creates the 'tar'
+executable, the 'rmt' daemon that provides remote tape access, and the
+'tar.info' Info file.
 
-   If you type `make install', then `make' not only creates `tar',
-`rmt', and `tar.info', but also installs them.
+   If you type 'make install', then 'make' not only creates 'tar',
+'rmt', and 'tar.info', but also installs them.
 
-   If you type `make clean', then `make' removes the `.o' files, and
-the `tar', `rmt', `testpad', `testpad.h', and `core' files.
+   If you type 'make clean', then 'make' removes the '.o' files, and the
+'tar', 'rmt', 'testpad', 'testpad.h', and 'core' files.
 
-   If you type `make distclean', then `make' not only removes the same
-files as does `make clean' but also the `TAGS', `Makefile', and
-`config.status' files.  (Although it is not evident, this makefile (and
-`config.status') is generated by the user with the `configure' program,
-which is provided in the `tar' distribution, but is not shown here.)
+   If you type 'make distclean', then 'make' not only removes the same
+files as does 'make clean' but also the 'TAGS', 'Makefile', and
+'config.status' files.  (Although it is not evident, this makefile (and
+'config.status') is generated by the user with the 'configure' program,
+which is provided in the 'tar' distribution, but is not shown here.)
 
-   If you type `make realclean', then `make' removes the same files as
-does `make distclean' and also removes the Info files generated from
-`tar.texinfo'.
+   If you type 'make realclean', then 'make' removes the same files as
+does 'make distclean' and also removes the Info files generated from
+'tar.texinfo'.
 
-   In addition, there are targets `shar' and `dist' that create
+   In addition, there are targets 'shar' and 'dist' that create
 distribution kits.
 
      #!/usr/bin/make -f
@@ -4470,7 +4171,7 @@ C.1 GNU Free Documentation License
                      Version 1.3, 3 November 2008
 
      Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
+     <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies
      of this license document, but changing it is not allowed.
@@ -4495,21 +4196,21 @@ C.1 GNU Free Documentation License
      free program should come with manuals providing the same freedoms
      that the software does.  But this License is not limited to
      software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
+     of subject matter or whether it is published as a printed book.  We
+     recommend this License principally for works whose purpose is
      instruction or reference.
 
   1. APPLICABILITY AND DEFINITIONS
 
      This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
+     that contains a notice placed by the copyright holder saying it can
+     be distributed under the terms of this License.  Such a notice
      grants a world-wide, royalty-free license, unlimited in duration,
      to use that work under the conditions stated herein.  The
      "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
+     of the public is a licensee, and is addressed as "you".  You accept
+     the license if you copy, modify or distribute the work in a way
+     requiring permission under copyright law.
 
      A "Modified Version" of the Document means any work containing the
      Document or a portion of it, either copied verbatim, or with
@@ -4527,12 +4228,12 @@ C.1 GNU Free Documentation License
      regarding them.
 
      The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
+     titles are designated, as being those of Invariant Sections, in the
+     notice that says that the Document is released under this License.
+     If a section does not fit the above definition of Secondary then it
+     is not allowed to be designated as Invariant.  The Document may
+     contain zero Invariant Sections.  If the Document does not identify
+     any Invariant Sections then there are none.
 
      The "Cover Texts" are certain short passages of text that are
      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
@@ -4543,27 +4244,27 @@ C.1 GNU Free Documentation License
      A "Transparent" copy of the Document means a machine-readable copy,
      represented in a format whose specification is available to the
      general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
+     straightforwardly with generic text editors or (for images composed
+     of pixels) generic paint programs or (for drawings) some widely
+     available drawing editor, and that is suitable for input to text
+     formatters or for automatic translation to a variety of formats
+     suitable for input to text formatters.  A copy made in an otherwise
+     Transparent file format whose markup, or absence of markup, has
+     been arranged to thwart or discourage subsequent modification by
+     readers is not Transparent.  An image format is not Transparent if
+     used for any substantial amount of text.  A copy that is not
+     "Transparent" is called "Opaque".
 
      Examples of suitable formats for Transparent copies include plain
      ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
+     SGML or XML using a publicly available DTD, and standard-conforming
+     simple HTML, PostScript or PDF designed for human modification.
+     Examples of transparent image formats include PNG, XCF and JPG.
+     Opaque formats include proprietary formats that can be read and
+     edited only by proprietary word processors, SGML or XML for which
+     the DTD and/or processing tools are not generally available, and
+     the machine-generated HTML, PostScript or PDF produced by some word
+     processors for output purposes only.
 
      The "Title Page" means, for a printed book, the title page itself,
      plus such following pages as are needed to hold, legibly, the
@@ -4601,8 +4302,8 @@ C.1 GNU Free Documentation License
      may not use technical measures to obstruct or control the reading
      or further copying of the copies you make or distribute.  However,
      you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
+     distribute a large enough number of copies you must also follow the
+     conditions in section 3.
 
      You may also lend copies, under the same conditions stated above,
      and you may publicly display copies.
@@ -4616,12 +4317,11 @@ C.1 GNU Free Documentation License
      these Cover Texts: Front-Cover Texts on the front cover, and
      Back-Cover Texts on the back cover.  Both covers must also clearly
      and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
+     front cover must present the full title with all words of the title
+     equally prominent and visible.  You may add other material on the
+     covers in addition.  Copying with changes limited to the covers, as
+     long as they preserve the title of the Document and satisfy these
+     conditions, can be treated as verbatim copying in other respects.
 
      If the required texts for either cover are too voluminous to fit
      legibly, you should put the first ones listed (as many as fit
@@ -4629,40 +4329,39 @@ C.1 GNU Free Documentation License
      adjacent pages.
 
      If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
+     numbering more than 100, you must either include a machine-readable
+     Transparent copy along with each Opaque copy, or state in or with
+     each Opaque copy a computer-network location from which the general
+     network-using public has access to download using public-standard
+     network protocols a complete Transparent copy of the Document, free
+     of added material.  If you use the latter option, you must take
+     reasonably prudent steps, when you begin distribution of Opaque
+     copies in quantity, to ensure that this Transparent copy will
+     remain thus accessible at the stated location until at least one
+     year after the last time you distribute an Opaque copy (directly or
+     through your agents or retailers) of that edition to the public.
 
      It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
+     the Document well before redistributing any large number of copies,
+     to give them a chance to provide you with an updated version of the
+     Document.
 
   4. MODIFICATIONS
 
      You may copy and distribute a Modified Version of the Document
      under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
+     release the Modified Version under precisely this License, with the
+     Modified Version filling the role of the Document, thus licensing
+     distribution and modification of the Modified Version to whoever
+     possesses a copy of it.  In addition, you must do these things in
+     the Modified Version:
 
        A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
+          distinct from that of the Document, and from those of previous
+          versions (which should, if there were any, be listed in the
+          History section of the Document).  You may use the same title
+          as a previous version if the original publisher of that
+          version gives permission.
 
        B. List on the Title Page, as authors, one or more persons or
           entities responsible for authorship of the modifications in
@@ -4692,31 +4391,30 @@ C.1 GNU Free Documentation License
 
        I. Preserve the section Entitled "History", Preserve its Title,
           and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
+          authors, and publisher of the Modified Version as given on the
+          Title Page.  If there is no section Entitled "History" in the
+          Document, create one stating the title, year, authors, and
+          publisher of the Document as given on its Title Page, then add
+          an item describing the Modified Version as stated in the
+          previous sentence.
 
        J. Preserve the network location, if any, given in the Document
           for public access to a Transparent copy of the Document, and
           likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
+          previous versions it was based on.  These may be placed in the
+          "History" section.  You may omit a network location for a work
+          that was published at least four years before the Document
+          itself, or if the original publisher of the version it refers
+          to gives permission.
 
        K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
+          Preserve the Title of the section, and preserve in the section
+          all the substance and tone of each of the contributor
           acknowledgements and/or dedications given therein.
 
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
+       L. Preserve all the Invariant Sections of the Document, unaltered
+          in their text and in their titles.  Section numbers or the
+          equivalent are not considered part of the section titles.
 
        M. Delete any section Entitled "Endorsements".  Such a section
           may not be included in the Modified Version.
@@ -4729,11 +4427,11 @@ C.1 GNU Free Documentation License
 
      If the Modified Version includes new front-matter sections or
      appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
+     material copied from the Document, you may at your option designate
+     some or all of these sections as invariant.  To do this, add their
+     titles to the list of Invariant Sections in the Modified Version's
+     license notice.  These titles must be distinct from any other
+     section titles.
 
      You may add a section Entitled "Endorsements", provided it contains
      nothing but endorsements of your Modified Version by various
@@ -4742,15 +4440,15 @@ C.1 GNU Free Documentation License
      definition of a standard.
 
      You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
+     and a passage of up to 25 words as a Back-Cover Text, to the end of
+     the list of Cover Texts in the Modified Version.  Only one passage
+     of Front-Cover Text and one of Back-Cover Text may be added by (or
+     through arrangements made by) any one entity.  If the Document
+     already includes a cover text for the same cover, previously added
+     by you or by arrangement made by the same entity you are acting on
+     behalf of, you may not add another; but you may replace the old
+     one, on explicit permission from the previous publisher that added
+     the old one.
 
      The author(s) and publisher(s) of the Document do not by this
      License give permission to use their names for publicity for or to
@@ -4760,8 +4458,8 @@ C.1 GNU Free Documentation License
 
      You may combine the Document with other documents released under
      this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
+     modified versions, provided that you include in the combination all
+     of the Invariant Sections of all of the original documents,
      unmodified, and list them all as Invariant Sections of your
      combined work in its license notice, and that you preserve all
      their Warranty Disclaimers.
@@ -4788,20 +4486,20 @@ C.1 GNU Free Documentation License
      documents released under this License, and replace the individual
      copies of this License in the various documents with a single copy
      that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
+     rules of this License for verbatim copying of each of the documents
+     in all other respects.
 
      You may extract a single document from such a collection, and
      distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
+     a copy of this License into the extracted document, and follow this
+     License in all other respects regarding verbatim copying of that
+     document.
 
   7. AGGREGATION WITH INDEPENDENT WORKS
 
      A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     storage or distribution medium, is called an "aggregate" if the
+     separate and independent documents or works, in or on a volume of a
+     storage or distribution medium, is called an "aggregate" if the
      copyright resulting from the compilation is not used to limit the
      legal rights of the compilation's users beyond what the individual
      works permit.  When the Document is included in an aggregate, this
@@ -4846,8 +4544,8 @@ C.1 GNU Free Documentation License
 
      However, if you cease all violation of this License, then your
      license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
+     provisionally, unless and until the copyright holder explicitly and
+     finally terminates your license, and (b) permanently, if the
      copyright holder fails to notify you of the violation by some
      reasonable means prior to 60 days after the cessation.
 
@@ -4859,33 +4557,33 @@ C.1 GNU Free Documentation License
      after your receipt of the notice.
 
      Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
+     the licenses of parties who have received copies or rights from you
+     under this License.  If your rights have been terminated and not
+     permanently reinstated, receipt of a copy of some or all of the
+     same material does not give you any rights to use it.
 
- 10. FUTURE REVISIONS OF THIS LICENSE
 10. FUTURE REVISIONS OF THIS LICENSE
 
      The Free Software Foundation may publish new, revised versions of
      the GNU Free Documentation License from time to time.  Such new
      versions will be similar in spirit to the present version, but may
      differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
+     <http://www.gnu.org/copyleft/>.
 
      Each version of the License is given a distinguishing version
      number.  If the Document specifies that a particular numbered
      version of this License "or any later version" applies to it, you
      have the option of following the terms and conditions either of
      that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
+     published (not as a draft) by the Free Software Foundation.  If the
+     Document does not specify a version number of this License, you may
+     choose any version ever published (not as a draft) by the Free
+     Software Foundation.  If the Document specifies that a proxy can
+     decide which future versions of this License can be used, that
      proxy's public statement of acceptance of a version permanently
      authorizes you to choose that version for the Document.
 
- 11. RELICENSING
 11. RELICENSING
 
      "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
      World Wide Web server that publishes copyrightable works and also
@@ -4915,7 +4613,6 @@ C.1 GNU Free Documentation License
      site under CC-BY-SA on the same site at any time before August 1,
      2009, provided the MMC is eligible for relicensing.
 
-
 ADDENDUM: How to use this License for your documents
 ====================================================
 
@@ -4943,9 +4640,9 @@ combination of the three, merge those two alternatives to suit the
 situation.
 
    If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
+recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit
+their use in free software.
 
 \1f
 File: make.info,  Node: Concept Index,  Next: Name Index,  Prev: GNU Free Documentation License,  Up: Top
@@ -4958,277 +4655,280 @@ Index of Concepts
 
 * !=:                                    Setting.             (line   6)
 * !=, expansion:                         Reading Makefiles.   (line  33)
-* # (comments), in makefile:             Makefile Contents.   (line  42)
-* # (comments), in recipes:              Recipe Syntax.       (line  29)
-* #include:                              Automatic Prerequisites.
+* '#' (comments), in makefile:           Makefile Contents.   (line  41)
+* '#' (comments), in recipes:            Recipe Syntax.       (line  29)
+* '#include':                            Automatic Prerequisites.
                                                               (line  16)
-* $, in function call:                   Syntax of Functions. (line   6)
-* $, in rules:                           Rule Syntax.         (line  34)
-* $, in variable name:                   Computed Names.      (line   6)
-* $, in variable reference:              Reference.           (line   6)
-* %, in pattern rules:                   Pattern Intro.       (line   9)
-* %, quoting in patsubst:                Text Functions.      (line  26)
-* %, quoting in static pattern:          Static Usage.        (line  37)
-* %, quoting in vpath:                   Selective Search.    (line  38)
-* %, quoting with \ (backslash) <1>:     Text Functions.      (line  26)
-* %, quoting with \ (backslash) <2>:     Static Usage.        (line  37)
-* %, quoting with \ (backslash):         Selective Search.    (line  38)
-* * (wildcard character):                Wildcards.           (line   6)
-* +, and define:                         Canned Recipes.      (line  49)
+* '$', in function call:                 Syntax of Functions. (line   6)
+* '$', in rules:                         Rule Syntax.         (line  33)
+* '$', in variable name:                 Computed Names.      (line   6)
+* '$', in variable reference:            Reference.           (line   6)
+* '%', in pattern rules:                 Pattern Intro.       (line   9)
+* '%', quoting in 'patsubst':            Text Functions.      (line  26)
+* '%', quoting in static pattern:        Static Usage.        (line  37)
+* '%', quoting in 'vpath':               Selective Search.    (line  39)
+* '%', quoting with '\' (backslash):     Selective Search.    (line  39)
+* '%', quoting with '\' (backslash) <1>: Static Usage.        (line  37)
+* '%', quoting with '\' (backslash) <2>: Text Functions.      (line  26)
+* '*' (wildcard character):              Wildcards.           (line   6)
+* +, and 'define':                       Canned Recipes.      (line  49)
 * +, and recipe execution:               Instead of Execution.
-                                                              (line  63)
+                                                              (line  67)
 * +, and recipes:                        MAKE Variable.       (line  18)
 * +=:                                    Appending.           (line   6)
 * +=, expansion:                         Reading Makefiles.   (line  33)
-* ,v (RCS file extension):               Catalogue of Rules.  (line 164)
-* - (in recipes):                        Errors.              (line  19)
-* -, and define:                         Canned Recipes.      (line  49)
-* --always-make:                         Options Summary.     (line  15)
-* --assume-new <1>:                      Options Summary.     (line 276)
-* --assume-new:                          Instead of Execution.
-                                                              (line  38)
-* --assume-new, and recursion:           Options/Recursion.   (line  22)
-* --assume-old <1>:                      Options Summary.     (line 159)
-* --assume-old:                          Avoiding Compilation.
+* +=, expansion <1>:                     Reading Makefiles.   (line  33)
+* ,v (RCS file extension):               Catalogue of Rules.  (line 163)
+* '-' (in recipes):                      Errors.              (line  19)
+* -, and 'define':                       Canned Recipes.      (line  49)
+* '--always-make':                       Options Summary.     (line  15)
+* '--assume-new':                        Instead of Execution.
+                                                              (line  41)
+* '--assume-new' <1>:                    Options Summary.     (line 284)
+* '--assume-new', and recursion:         Options/Recursion.   (line  22)
+* '--assume-old':                        Avoiding Compilation.
                                                               (line   6)
-* --assume-old, and recursion:           Options/Recursion.   (line  22)
-* --check-symlink-times:                 Options Summary.     (line 141)
-* --debug:                               Options Summary.     (line  42)
-* --directory <1>:                       Options Summary.     (line  26)
-* --directory:                           Recursion.           (line  20)
-* --directory, and --print-directory:    -w Option.           (line  20)
-* --directory, and recursion:            Options/Recursion.   (line  22)
-* --dry-run <1>:                         Options Summary.     (line 151)
-* --dry-run <2>:                         Instead of Execution.
+* '--assume-old' <1>:                    Options Summary.     (line 163)
+* '--assume-old', and recursion:         Options/Recursion.   (line  22)
+* '--check-symlink-times':               Options Summary.     (line 144)
+* '--debug':                             Options Summary.     (line  43)
+* '--directory':                         Recursion.           (line  20)
+* '--directory' <1>:                     Options Summary.     (line  26)
+* '--directory', and '--print-directory': -w Option.          (line  20)
+* '--directory', and recursion:          Options/Recursion.   (line  22)
+* '--dry-run':                           Echoing.             (line  18)
+* '--dry-run' <1>:                       Instead of Execution.
                                                               (line  14)
-* --dry-run:                             Echoing.             (line  18)
-* --environment-overrides:               Options Summary.     (line  83)
-* --eval:                                Options Summary.     (line  88)
-* --file <1>:                            Options Summary.     (line  95)
-* --file <2>:                            Makefile Arguments.  (line   6)
-* --file:                                Makefile Names.      (line  23)
-* --file, and recursion:                 Options/Recursion.   (line  22)
-* --help:                                Options Summary.     (line 101)
-* --ignore-errors <1>:                   Options Summary.     (line 105)
-* --ignore-errors:                       Errors.              (line  30)
-* --include-dir <1>:                     Options Summary.     (line 110)
-* --include-dir:                         Include.             (line  53)
-* --jobs <1>:                            Options Summary.     (line 117)
-* --jobs:                                Parallel.            (line   6)
-* --jobs, and recursion:                 Options/Recursion.   (line  25)
-* --just-print <1>:                      Options Summary.     (line 150)
-* --just-print <2>:                      Instead of Execution.
+* '--dry-run' <2>:                       Options Summary.     (line 154)
+* '--environment-overrides':             Options Summary.     (line  85)
+* '--eval':                              Options Summary.     (line  89)
+* '--file':                              Makefile Names.      (line  23)
+* '--file' <1>:                          Makefile Arguments.  (line   6)
+* '--file' <2>:                          Options Summary.     (line  97)
+* '--file', and recursion:               Options/Recursion.   (line  22)
+* '--help':                              Options Summary.     (line 103)
+* '--ignore-errors':                     Errors.              (line  30)
+* '--ignore-errors' <1>:                 Options Summary.     (line 108)
+* '--include-dir':                       Include.             (line  53)
+* '--include-dir' <1>:                   Options Summary.     (line 113)
+* '--jobs':                              Parallel.            (line   6)
+* '--jobs' <1>:                          Options Summary.     (line 120)
+* '--jobs', and recursion:               Options/Recursion.   (line  25)
+* '--just-print':                        Echoing.             (line  18)
+* '--just-print' <1>:                    Instead of Execution.
                                                               (line  14)
-* --just-print:                          Echoing.             (line  18)
-* --keep-going <1>:                      Options Summary.     (line 126)
-* --keep-going <2>:                      Testing.             (line  16)
-* --keep-going:                          Errors.              (line  47)
-* --load-average <1>:                    Options Summary.     (line 133)
-* --load-average:                        Parallel.            (line  35)
-* --makefile <1>:                        Options Summary.     (line  96)
-* --makefile <2>:                        Makefile Arguments.  (line   6)
-* --makefile:                            Makefile Names.      (line  23)
-* --max-load <1>:                        Options Summary.     (line 134)
-* --max-load:                            Parallel.            (line  35)
-* --new-file <1>:                        Options Summary.     (line 275)
-* --new-file:                            Instead of Execution.
-                                                              (line  38)
-* --new-file, and recursion:             Options/Recursion.   (line  22)
-* --no-builtin-rules:                    Options Summary.     (line 203)
-* --no-builtin-variables:                Options Summary.     (line 216)
-* --no-keep-going:                       Options Summary.     (line 231)
-* --no-print-directory <1>:              Options Summary.     (line 267)
-* --no-print-directory:                  -w Option.           (line  20)
-* --old-file <1>:                        Options Summary.     (line 158)
-* --old-file:                            Avoiding Compilation.
+* '--just-print' <2>:                    Options Summary.     (line 153)
+* '--keep-going':                        Errors.              (line  47)
+* '--keep-going' <1>:                    Testing.             (line  16)
+* '--keep-going' <2>:                    Options Summary.     (line 129)
+* '--load-average':                      Parallel.            (line  35)
+* '--load-average' <1>:                  Options Summary.     (line 136)
+* '--makefile':                          Makefile Names.      (line  23)
+* '--makefile' <1>:                      Makefile Arguments.  (line   6)
+* '--makefile' <2>:                      Options Summary.     (line  98)
+* '--max-load':                          Parallel.            (line  35)
+* '--max-load' <1>:                      Options Summary.     (line 137)
+* '--new-file':                          Instead of Execution.
+                                                              (line  41)
+* '--new-file' <1>:                      Options Summary.     (line 283)
+* '--new-file', and recursion:           Options/Recursion.   (line  22)
+* '--no-builtin-rules':                  Options Summary.     (line 209)
+* '--no-builtin-variables':              Options Summary.     (line 222)
+* '--no-keep-going':                     Options Summary.     (line 238)
+* '--no-print-directory':                -w Option.           (line  20)
+* '--no-print-directory' <1>:            Options Summary.     (line 275)
+* '--old-file':                          Avoiding Compilation.
                                                               (line   6)
-* --old-file, and recursion:             Options/Recursion.   (line  22)
-* --output-sync <1>:                     Options Summary.     (line 167)
-* --output-sync:                         Parallel Output.     (line  11)
-* --print-data-base:                     Options Summary.     (line 183)
-* --print-directory:                     Options Summary.     (line 259)
-* --print-directory, and --directory:    -w Option.           (line  20)
-* --print-directory, and recursion:      -w Option.           (line  20)
-* --print-directory, disabling:          -w Option.           (line  20)
-* --question <1>:                        Options Summary.     (line 195)
-* --question:                            Instead of Execution.
-                                                              (line  30)
-* --quiet <1>:                           Options Summary.     (line 226)
-* --quiet:                               Echoing.             (line  24)
-* --recon <1>:                           Options Summary.     (line 152)
-* --recon <2>:                           Instead of Execution.
+* '--old-file' <1>:                      Options Summary.     (line 162)
+* '--old-file', and recursion:           Options/Recursion.   (line  22)
+* '--output-sync':                       Parallel Output.     (line  11)
+* '--output-sync' <1>:                   Options Summary.     (line 171)
+* '--print-data-base':                   Options Summary.     (line 187)
+* '--print-directory':                   Options Summary.     (line 267)
+* '--print-directory', and '--directory': -w Option.          (line  20)
+* '--print-directory', and recursion:    -w Option.           (line  20)
+* '--print-directory', disabling:        -w Option.           (line  20)
+* '--question':                          Instead of Execution.
+                                                              (line  32)
+* '--question' <1>:                      Options Summary.     (line 201)
+* '--quiet':                             Echoing.             (line  24)
+* '--quiet' <1>:                         Options Summary.     (line 232)
+* '--recon':                             Echoing.             (line  18)
+* '--recon' <1>:                         Instead of Execution.
                                                               (line  14)
-* --recon:                               Echoing.             (line  18)
-* --silent <1>:                          Options Summary.     (line 225)
-* --silent:                              Echoing.             (line  24)
-* --stop:                                Options Summary.     (line 232)
-* --touch <1>:                           Options Summary.     (line 240)
-* --touch:                               Instead of Execution.
-                                                              (line  23)
-* --touch, and recursion:                MAKE Variable.       (line  34)
-* --trace:                               Options Summary.     (line 246)
-* --version:                             Options Summary.     (line 254)
-* --warn-undefined-variables:            Options Summary.     (line 285)
-* --what-if <1>:                         Options Summary.     (line 274)
-* --what-if:                             Instead of Execution.
-                                                              (line  38)
-* -B:                                    Options Summary.     (line  14)
-* -b:                                    Options Summary.     (line   9)
-* -C <1>:                                Options Summary.     (line  25)
-* -C:                                    Recursion.           (line  20)
-* -C, and -w:                            -w Option.           (line  20)
-* -C, and recursion:                     Options/Recursion.   (line  22)
-* -d:                                    Options Summary.     (line  33)
-* -e:                                    Options Summary.     (line  82)
-* -e (shell flag):                       Automatic Prerequisites.
-                                                              (line  66)
-* -f <1>:                                Options Summary.     (line  94)
-* -f <2>:                                Makefile Arguments.  (line   6)
-* -f:                                    Makefile Names.      (line  23)
-* -f, and recursion:                     Options/Recursion.   (line  22)
-* -h:                                    Options Summary.     (line 100)
-* -I:                                    Options Summary.     (line 109)
-* -i <1>:                                Options Summary.     (line 104)
-* -i:                                    Errors.              (line  30)
-* -I:                                    Include.             (line  53)
-* -j <1>:                                Options Summary.     (line 116)
-* -j:                                    Parallel.            (line   6)
-* -j, and archive update:                Archive Pitfalls.    (line   6)
-* -j, and recursion:                     Options/Recursion.   (line  25)
-* -k <1>:                                Options Summary.     (line 125)
-* -k <2>:                                Testing.             (line  16)
-* -k:                                    Errors.              (line  47)
-* -L:                                    Options Summary.     (line 140)
-* -l:                                    Options Summary.     (line 132)
-* -l (library search):                   Libraries/Search.    (line   6)
-* -l (load average):                     Parallel.            (line  35)
-* -m:                                    Options Summary.     (line  10)
-* -M (to compiler):                      Automatic Prerequisites.
+* '--recon' <2>:                         Options Summary.     (line 155)
+* '--silent':                            Echoing.             (line  24)
+* '--silent' <1>:                        Options Summary.     (line 231)
+* '--stop':                              Options Summary.     (line 239)
+* '--touch':                             Instead of Execution.
+                                                              (line  24)
+* '--touch' <1>:                         Options Summary.     (line 247)
+* '--touch', and recursion:              MAKE Variable.       (line  35)
+* '--trace':                             Options Summary.     (line 254)
+* '--version':                           Options Summary.     (line 262)
+* '--warn-undefined-variables':          Options Summary.     (line 292)
+* '--what-if':                           Instead of Execution.
+                                                              (line  41)
+* '--what-if' <1>:                       Options Summary.     (line 282)
+* '-b':                                  Options Summary.     (line   9)
+* '-B':                                  Options Summary.     (line  14)
+* '-C':                                  Recursion.           (line  20)
+* '-C' <1>:                              Options Summary.     (line  25)
+* '-C', and '-w':                        -w Option.           (line  20)
+* '-C', and recursion:                   Options/Recursion.   (line  22)
+* '-d':                                  Options Summary.     (line  33)
+* '-e':                                  Options Summary.     (line  84)
+* '-e' (shell flag):                     Automatic Prerequisites.
+                                                              (line  65)
+* '-f':                                  Makefile Names.      (line  23)
+* '-f' <1>:                              Makefile Arguments.  (line   6)
+* '-f' <2>:                              Options Summary.     (line  96)
+* '-f', and recursion:                   Options/Recursion.   (line  22)
+* '-h':                                  Options Summary.     (line 102)
+* '-I':                                  Include.             (line  53)
+* '-i':                                  Errors.              (line  30)
+* '-i' <1>:                              Options Summary.     (line 107)
+* '-I' <1>:                              Options Summary.     (line 112)
+* '-j':                                  Parallel.            (line   6)
+* '-j' <1>:                              Options Summary.     (line 119)
+* '-j', and archive update:              Archive Pitfalls.    (line   6)
+* '-j', and recursion:                   Options/Recursion.   (line  25)
+* '-k':                                  Errors.              (line  47)
+* '-k' <1>:                              Testing.             (line  16)
+* '-k' <2>:                              Options Summary.     (line 128)
+* '-l':                                  Options Summary.     (line 135)
+* '-L':                                  Options Summary.     (line 143)
+* '-l' (library search):                 Libraries/Search.    (line   6)
+* '-l' (load average):                   Parallel.            (line  35)
+* '-m':                                  Options Summary.     (line  10)
+* '-M' (to compiler):                    Automatic Prerequisites.
                                                               (line  18)
-* -MM (to GNU compiler):                 Automatic Prerequisites.
-                                                              (line  68)
-* -n <1>:                                Options Summary.     (line 149)
-* -n <2>:                                Instead of Execution.
+* '-MM' (to GNU compiler):               Automatic Prerequisites.
+                                                              (line  67)
+* '-n':                                  Echoing.             (line  18)
+* '-n' <1>:                              Instead of Execution.
                                                               (line  14)
-* -n:                                    Echoing.             (line  18)
-* -O:                                    Options Summary.     (line 166)
-* -o <1>:                                Options Summary.     (line 157)
-* -o:                                    Avoiding Compilation.
+* '-n' <2>:                              Options Summary.     (line 152)
+* '-O':                                  Parallel Output.     (line  11)
+* '-o':                                  Avoiding Compilation.
                                                               (line   6)
-* -O:                                    Parallel Output.     (line  11)
-* -o, and recursion:                     Options/Recursion.   (line  22)
-* -p:                                    Options Summary.     (line 182)
-* -q <1>:                                Options Summary.     (line 194)
-* -q:                                    Instead of Execution.
-                                                              (line  30)
-* -R:                                    Options Summary.     (line 215)
-* -r:                                    Options Summary.     (line 202)
-* -S:                                    Options Summary.     (line 230)
-* -s <1>:                                Options Summary.     (line 224)
-* -s:                                    Echoing.             (line  24)
-* -t <1>:                                Options Summary.     (line 239)
-* -t:                                    Instead of Execution.
-                                                              (line  23)
-* -t, and recursion:                     MAKE Variable.       (line  34)
-* -v:                                    Options Summary.     (line 253)
-* -W:                                    Options Summary.     (line 273)
-* -w:                                    Options Summary.     (line 258)
-* -W:                                    Instead of Execution.
-                                                              (line  38)
-* -w, and -C:                            -w Option.           (line  20)
-* -w, and recursion:                     -w Option.           (line  20)
-* -W, and recursion:                     Options/Recursion.   (line  22)
-* -w, disabling:                         -w Option.           (line  20)
-* .a (archives):                         Archive Suffix Rules.
+* '-o' <1>:                              Options Summary.     (line 161)
+* '-O' <1>:                              Options Summary.     (line 170)
+* '-o', and recursion:                   Options/Recursion.   (line  22)
+* '-p':                                  Options Summary.     (line 186)
+* '-q':                                  Instead of Execution.
+                                                              (line  32)
+* '-q' <1>:                              Options Summary.     (line 200)
+* '-r':                                  Options Summary.     (line 208)
+* '-R':                                  Options Summary.     (line 221)
+* '-s':                                  Echoing.             (line  24)
+* '-s' <1>:                              Options Summary.     (line 230)
+* '-S':                                  Options Summary.     (line 237)
+* '-t':                                  Instead of Execution.
+                                                              (line  24)
+* '-t' <1>:                              Options Summary.     (line 246)
+* '-t', and recursion:                   MAKE Variable.       (line  35)
+* '-v':                                  Options Summary.     (line 261)
+* '-W':                                  Instead of Execution.
+                                                              (line  41)
+* '-w':                                  Options Summary.     (line 266)
+* '-W' <1>:                              Options Summary.     (line 281)
+* '-w', and '-C':                        -w Option.           (line  20)
+* '-W', and recursion:                   Options/Recursion.   (line  22)
+* '-w', and recursion:                   -w Option.           (line  20)
+* '-w', disabling:                       -w Option.           (line  20)
+* '.a' (archives):                       Archive Suffix Rules.
                                                               (line   6)
-* .C:                                    Catalogue of Rules.  (line  39)
 * .c:                                    Catalogue of Rules.  (line  35)
+* .C:                                    Catalogue of Rules.  (line  39)
 * .cc:                                   Catalogue of Rules.  (line  39)
-* .ch:                                   Catalogue of Rules.  (line 151)
+* .ch:                                   Catalogue of Rules.  (line 149)
 * .cpp:                                  Catalogue of Rules.  (line  39)
-* .d:                                    Automatic Prerequisites.
-                                                              (line  81)
-* .def:                                  Catalogue of Rules.  (line  74)
-* .dvi:                                  Catalogue of Rules.  (line 151)
-* .F:                                    Catalogue of Rules.  (line  49)
+* '.d':                                  Automatic Prerequisites.
+                                                              (line  80)
+* .def:                                  Catalogue of Rules.  (line  71)
+* .dvi:                                  Catalogue of Rules.  (line 149)
 * .f:                                    Catalogue of Rules.  (line  49)
-* .info:                                 Catalogue of Rules.  (line 158)
-* .l:                                    Catalogue of Rules.  (line 124)
-* .LIBPATTERNS, and link libraries:      Libraries/Search.    (line   6)
-* .ln:                                   Catalogue of Rules.  (line 146)
-* .mod:                                  Catalogue of Rules.  (line  74)
+* .F:                                    Catalogue of Rules.  (line  49)
+* .info:                                 Catalogue of Rules.  (line 156)
+* .l:                                    Catalogue of Rules.  (line 121)
+* '.LIBPATTERNS', and link libraries:    Libraries/Search.    (line   6)
+* .ln:                                   Catalogue of Rules.  (line 143)
+* .mod:                                  Catalogue of Rules.  (line  71)
 * .o:                                    Catalogue of Rules.  (line  35)
-* .ONESHELL, use of:                     One Shell.           (line   6)
+* .o <1>:                                Catalogue of Rules.  (line  83)
+* '.ONESHELL', use of:                   One Shell.           (line   6)
 * .p:                                    Catalogue of Rules.  (line  45)
-* .PRECIOUS intermediate files:          Chained Rules.       (line  56)
+* '.PRECIOUS' intermediate files:        Chained Rules.       (line  56)
 * .r:                                    Catalogue of Rules.  (line  49)
-* .S:                                    Catalogue of Rules.  (line  82)
-* .s:                                    Catalogue of Rules.  (line  79)
-* .sh:                                   Catalogue of Rules.  (line 180)
-* .SHELLFLAGS, value of:                 Choosing the Shell.  (line   6)
-* .sym:                                  Catalogue of Rules.  (line  74)
-* .tex:                                  Catalogue of Rules.  (line 151)
-* .texi:                                 Catalogue of Rules.  (line 158)
-* .texinfo:                              Catalogue of Rules.  (line 158)
-* .txinfo:                               Catalogue of Rules.  (line 158)
-* .w:                                    Catalogue of Rules.  (line 151)
-* .web:                                  Catalogue of Rules.  (line 151)
-* .y:                                    Catalogue of Rules.  (line 120)
-* :: rules (double-colon):               Double-Colon.        (line   6)
-* ::= <1>:                               Setting.             (line   6)
+* .s:                                    Catalogue of Rules.  (line  76)
+* .S:                                    Catalogue of Rules.  (line  79)
+* .sh:                                   Catalogue of Rules.  (line 178)
+* '.SHELLFLAGS', value of:               Choosing the Shell.  (line   6)
+* .sym:                                  Catalogue of Rules.  (line  71)
+* .tex:                                  Catalogue of Rules.  (line 149)
+* .texi:                                 Catalogue of Rules.  (line 156)
+* .texinfo:                              Catalogue of Rules.  (line 156)
+* .txinfo:                               Catalogue of Rules.  (line 156)
+* .w:                                    Catalogue of Rules.  (line 149)
+* .web:                                  Catalogue of Rules.  (line 149)
+* .y:                                    Catalogue of Rules.  (line 117)
+* '::' rules (double-colon):             Double-Colon.        (line   6)
 * ::=:                                   Flavors.             (line  56)
-* := <1>:                                Setting.             (line   6)
+* ::= <1>:                               Setting.             (line   6)
 * :=:                                    Flavors.             (line  56)
-* = <1>:                                 Setting.             (line   6)
+* := <1>:                                Setting.             (line   6)
 * =:                                     Flavors.             (line  10)
+* = <1>:                                 Setting.             (line   6)
 * =, expansion:                          Reading Makefiles.   (line  33)
-* ? (wildcard character):                Wildcards.           (line   6)
+* '?' (wildcard character):              Wildcards.           (line   6)
+* ?=:                                    Flavors.             (line 135)
 * ?= <1>:                                Setting.             (line   6)
-* ?=:                                    Flavors.             (line 133)
 * ?=, expansion:                         Reading Makefiles.   (line  33)
-* @ (in recipes):                        Echoing.             (line   6)
-* @, and define:                         Canned Recipes.      (line  49)
-* [...] (wildcard characters):           Wildcards.           (line   6)
-* \ (backslash), for continuation lines: Simple Makefile.     (line  41)
-* \ (backslash), in recipes:             Splitting Recipe Lines.
+* '@' (in recipes):                      Echoing.             (line   6)
+* @, and 'define':                       Canned Recipes.      (line  49)
+* '[...]' (wildcard characters):         Wildcards.           (line   6)
+* '\' (backslash), for continuation lines: Simple Makefile.   (line  41)
+* '\' (backslash), in recipes:           Splitting Recipe Lines.
                                                               (line   6)
-* \ (backslash), to quote % <1>:         Text Functions.      (line  26)
-* \ (backslash), to quote % <2>:         Static Usage.        (line  37)
-* \ (backslash), to quote %:             Selective Search.    (line  38)
-* __.SYMDEF:                             Archive Symbols.     (line   6)
-* abspath:                               File Name Functions. (line 121)
+* '\' (backslash), to quote '%':         Selective Search.    (line  39)
+* '\' (backslash), to quote '%' <1>:     Static Usage.        (line  37)
+* '\' (backslash), to quote '%' <2>:     Text Functions.      (line  26)
+* '__.SYMDEF':                           Archive Symbols.     (line   6)
+* '~' (tilde):                           Wildcards.           (line  11)
+* abspath:                               File Name Functions. (line 120)
 * algorithm for directory search:        Search Algorithm.    (line   6)
-* all (standard target):                 Goals.               (line  72)
+* 'all' (standard target):               Goals.               (line  73)
 * appending to variables:                Appending.           (line   6)
 * ar:                                    Implicit Variables.  (line  40)
 * archive:                               Archives.            (line   6)
 * archive member targets:                Archive Members.     (line   6)
 * archive symbol directory updating:     Archive Symbols.     (line   6)
-* archive, and -j:                       Archive Pitfalls.    (line   6)
+* archive, and '-j':                     Archive Pitfalls.    (line   6)
 * archive, and parallel execution:       Archive Pitfalls.    (line   6)
 * archive, suffix rule for:              Archive Suffix Rules.
                                                               (line   6)
-* Arg list too long:                     Options/Recursion.   (line  57)
+* Arg list too long:                     Options/Recursion.   (line  58)
 * arguments of functions:                Syntax of Functions. (line   6)
+* as:                                    Catalogue of Rules.  (line  76)
 * as <1>:                                Implicit Variables.  (line  43)
-* as:                                    Catalogue of Rules.  (line  79)
-* assembly, rule to compile:             Catalogue of Rules.  (line  79)
+* assembly, rule to compile:             Catalogue of Rules.  (line  76)
+* automatic generation of prerequisites: Include.             (line  51)
 * automatic generation of prerequisites <1>: Automatic Prerequisites.
                                                               (line   6)
-* automatic generation of prerequisites: Include.             (line  51)
 * automatic variables:                   Automatic Variables. (line   6)
 * automatic variables in prerequisites:  Automatic Variables. (line  17)
 * backquotes:                            Shell Function.      (line   6)
-* backslash (\), for continuation lines: Simple Makefile.     (line  41)
-* backslash (\), in recipes:             Splitting Recipe Lines.
+* backslash ('\'), for continuation lines: Simple Makefile.   (line  41)
+* backslash ('\'), in recipes:           Splitting Recipe Lines.
                                                               (line   6)
-* backslash (\), to quote % <1>:         Text Functions.      (line  26)
-* backslash (\), to quote % <2>:         Static Usage.        (line  37)
-* backslash (\), to quote %:             Selective Search.    (line  38)
-* backslash (\), to quote newlines:      Splitting Lines.     (line   6)
+* backslash ('\'), to quote '%':         Selective Search.    (line  39)
+* backslash ('\'), to quote '%' <1>:     Static Usage.        (line  37)
+* backslash ('\'), to quote '%' <2>:     Text Functions.      (line  26)
+* backslash ('\'), to quote newlines:    Splitting Lines.     (line   6)
 * backslashes in pathnames and wildcard expansion: Wildcard Pitfall.
                                                               (line  31)
-* basename:                              File Name Functions. (line  57)
+* basename:                              File Name Functions. (line  56)
 * binary packages:                       Install Command Categories.
                                                               (line  80)
 * broken pipe:                           Parallel Input.      (line  11)
@@ -5237,19 +4937,19 @@ Index of Concepts
 * C++, rule to compile:                  Catalogue of Rules.  (line  39)
 * C, rule to compile:                    Catalogue of Rules.  (line  35)
 * canned recipes:                        Canned Recipes.      (line   6)
-* cc <1>:                                Implicit Variables.  (line  46)
 * cc:                                    Catalogue of Rules.  (line  35)
-* cd (shell command) <1>:                MAKE Variable.       (line  16)
-* cd (shell command):                    Execution.           (line  12)
+* cc <1>:                                Implicit Variables.  (line  46)
+* 'cd' (shell command):                  Execution.           (line  12)
+* 'cd' (shell command) <1>:              MAKE Variable.       (line  16)
 * chains of rules:                       Chained Rules.       (line   6)
-* check (standard target):               Goals.               (line 114)
-* clean (standard target):               Goals.               (line  75)
-* clean target <1>:                      Cleanup.             (line  11)
-* clean target:                          Simple Makefile.     (line  85)
+* 'check' (standard target):             Goals.               (line 115)
+* 'clean' (standard target):             Goals.               (line  76)
+* 'clean' target:                        Simple Makefile.     (line  85)
+* 'clean' target <1>:                    Cleanup.             (line  11)
 * cleaning up:                           Cleanup.             (line   6)
-* clobber (standard target):             Goals.               (line  86)
+* 'clobber' (standard target):           Goals.               (line  87)
+* co:                                    Catalogue of Rules.  (line 163)
 * co <1>:                                Implicit Variables.  (line  66)
-* co:                                    Catalogue of Rules.  (line 164)
 * combining rules by prerequisite:       Combine By Prerequisite.
                                                               (line   6)
 * command expansion:                     Shell Function.      (line   6)
@@ -5257,15 +4957,15 @@ Index of Concepts
                                                               (line  17)
 * command line variables:                Overriding.          (line   6)
 * commands, sequences of:                Canned Recipes.      (line   6)
-* comments, in makefile:                 Makefile Contents.   (line  42)
+* comments, in makefile:                 Makefile Contents.   (line  41)
 * comments, in recipes:                  Recipe Syntax.       (line  29)
 * compatibility:                         Features.            (line   6)
-* compatibility in exporting:            Variables/Recursion. (line 105)
+* compatibility in exporting:            Variables/Recursion. (line 104)
 * compilation, testing:                  Testing.             (line   6)
 * computed variable name:                Computed Names.      (line   6)
 * conditional expansion:                 Conditional Functions.
                                                               (line   6)
-* conditional variable assignment:       Flavors.             (line 133)
+* conditional variable assignment:       Flavors.             (line 135)
 * conditionals:                          Conditionals.        (line   6)
 * continuation lines:                    Simple Makefile.     (line  41)
 * controlling make:                      Make Control Functions.
@@ -5273,52 +4973,52 @@ Index of Concepts
 * conventions for makefiles:             Makefile Conventions.
                                                               (line   6)
 * convert guile types:                   Guile Types.         (line   6)
+* ctangle:                               Catalogue of Rules.  (line 149)
 * ctangle <1>:                           Implicit Variables.  (line 103)
-* ctangle:                               Catalogue of Rules.  (line 151)
+* cweave:                                Catalogue of Rules.  (line 149)
 * cweave <1>:                            Implicit Variables.  (line  97)
-* cweave:                                Catalogue of Rules.  (line 151)
-* data base of make rules:               Options Summary.     (line 183)
+* data base of 'make' rules:             Options Summary.     (line 187)
 * deducing recipes (implicit rules):     make Deduces.        (line   6)
 * default directories for included makefiles: Include.        (line  53)
-* default goal <1>:                      Rules.               (line  11)
 * default goal:                          How Make Works.      (line  11)
+* default goal <1>:                      Rules.               (line  11)
 * default makefile name:                 Makefile Names.      (line   6)
 * default rules, last-resort:            Last Resort.         (line   6)
 * define, expansion:                     Reading Makefiles.   (line  33)
 * defining variables verbatim:           Multi-Line.          (line   6)
-* deletion of target files <1>:          Interrupts.          (line   6)
 * deletion of target files:              Errors.              (line  64)
+* deletion of target files <1>:          Interrupts.          (line   6)
 * directive:                             Makefile Contents.   (line  28)
 * directories, creating installation:    Directory Variables. (line  20)
 * directories, printing them:            -w Option.           (line   6)
 * directories, updating archive symbol:  Archive Symbols.     (line   6)
-* directory part:                        File Name Functions. (line  17)
-* directory search (VPATH):              Directory Search.    (line   6)
-* directory search (VPATH), and implicit rules: Implicit/Search.
+* directory part:                        File Name Functions. (line  16)
+* directory search ('VPATH'):            Directory Search.    (line   6)
+* directory search ('VPATH'), and implicit rules: Implicit/Search.
                                                               (line   6)
-* directory search (VPATH), and link libraries: Libraries/Search.
+* directory search ('VPATH'), and link libraries: Libraries/Search.
                                                               (line   6)
-* directory search (VPATH), and recipes: Recipes/Search.      (line   6)
+* directory search ('VPATH'), and recipes: Recipes/Search.    (line   6)
 * directory search algorithm:            Search Algorithm.    (line   6)
 * directory search, traditional (GPATH): Search Algorithm.    (line  42)
-* dist (standard target):                Goals.               (line 106)
-* distclean (standard target):           Goals.               (line  84)
-* dollar sign ($), in function call:     Syntax of Functions. (line   6)
-* dollar sign ($), in rules:             Rule Syntax.         (line  34)
-* dollar sign ($), in variable name:     Computed Names.      (line   6)
-* dollar sign ($), in variable reference: Reference.          (line   6)
+* 'dist' (standard target):              Goals.               (line 107)
+* 'distclean' (standard target):         Goals.               (line  85)
+* dollar sign ('$'), in function call:   Syntax of Functions. (line   6)
+* dollar sign ('$'), in rules:           Rule Syntax.         (line  33)
+* dollar sign ('$'), in variable name:   Computed Names.      (line   6)
+* dollar sign ('$'), in variable reference: Reference.        (line   6)
 * DOS, choosing a shell in:              Choosing the Shell.  (line  38)
 * double-colon rules:                    Double-Colon.        (line   6)
 * duplicate words, removing:             Text Functions.      (line 155)
-* E2BIG:                                 Options/Recursion.   (line  57)
+* E2BIG:                                 Options/Recursion.   (line  58)
 * echoing of recipes:                    Echoing.             (line   6)
 * editor:                                Introduction.        (line  22)
-* Emacs (M-x compile):                   Errors.              (line  62)
+* Emacs ('M-x compile'):                 Errors.              (line  62)
 * empty recipes:                         Empty Recipes.       (line   6)
 * empty targets:                         Empty Targets.       (line   6)
 * environment:                           Environment.         (line   6)
 * environment, and recursion:            Variables/Recursion. (line   6)
-* environment, SHELL in:                 Choosing the Shell.  (line  12)
+* environment, 'SHELL' in:               Choosing the Shell.  (line  12)
 * error, stopping on:                    Make Control Functions.
                                                               (line  11)
 * errors (in recipes):                   Errors.              (line   6)
@@ -5337,45 +5037,45 @@ Index of Concepts
 * explicit rule, definition of:          Makefile Contents.   (line  10)
 * explicit rule, expansion:              Reading Makefiles.   (line  92)
 * explicit rules, secondary expansion of: Secondary Expansion.
-                                                              (line 106)
+                                                              (line 104)
 * exporting variables:                   Variables/Recursion. (line   6)
 * extensions, Guile:                     Guile Integration.   (line   6)
 * extensions, load directive:            load Directive.      (line   6)
 * extensions, loading:                   Loading Objects.     (line   6)
-* f77 <1>:                               Implicit Variables.  (line  57)
 * f77:                                   Catalogue of Rules.  (line  49)
+* f77 <1>:                               Implicit Variables.  (line  57)
 * FDL, GNU Free Documentation License:   GNU Free Documentation License.
                                                               (line   6)
-* features of GNU make:                  Features.            (line   6)
+* features of GNU 'make':                Features.            (line   6)
 * features, missing:                     Missing.             (line   6)
 * file name functions:                   File Name Functions. (line   6)
 * file name of makefile:                 Makefile Names.      (line   6)
-* file name of makefile, how to specify: Makefile Names.      (line  30)
-* file name prefix, adding:              File Name Functions. (line  79)
-* file name suffix:                      File Name Functions. (line  43)
-* file name suffix, adding:              File Name Functions. (line  68)
+* file name of makefile, how to specify: Makefile Names.      (line  31)
+* file name prefix, adding:              File Name Functions. (line  78)
+* file name suffix:                      File Name Functions. (line  42)
+* file name suffix, adding:              File Name Functions. (line  67)
 * file name with wildcards:              Wildcards.           (line   6)
-* file name, abspath of:                 File Name Functions. (line 121)
-* file name, basename of:                File Name Functions. (line  57)
-* file name, directory part:             File Name Functions. (line  17)
-* file name, nondirectory part:          File Name Functions. (line  27)
-* file name, realpath of:                File Name Functions. (line 114)
+* file name, abspath of:                 File Name Functions. (line 120)
+* file name, basename of:                File Name Functions. (line  56)
+* file name, directory part:             File Name Functions. (line  16)
+* file name, nondirectory part:          File Name Functions. (line  26)
+* file name, realpath of:                File Name Functions. (line 113)
 * file, writing to:                      File Function.       (line   6)
 * files, assuming new:                   Instead of Execution.
-                                                              (line  38)
+                                                              (line  41)
 * files, assuming old:                   Avoiding Compilation.
                                                               (line   6)
 * files, avoiding recompilation of:      Avoiding Compilation.
                                                               (line   6)
 * files, intermediate:                   Chained Rules.       (line  16)
-* filtering out words:                   Text Functions.      (line 132)
-* filtering words:                       Text Functions.      (line 114)
-* finding strings:                       Text Functions.      (line 103)
+* filtering out words:                   Text Functions.      (line 133)
+* filtering words:                       Text Functions.      (line 115)
+* finding strings:                       Text Functions.      (line 104)
 * flags:                                 Options Summary.     (line   6)
 * flags for compilers:                   Implicit Variables.  (line   6)
 * flavor of variable:                    Flavor Function.     (line   6)
 * flavors of variables:                  Flavors.             (line   6)
-* FORCE:                                 Force Targets.       (line   6)
+* 'FORCE':                               Force Targets.       (line   6)
 * force targets:                         Force Targets.       (line   6)
 * Fortran, rule to compile:              Catalogue of Rules.  (line  49)
 * functions:                             Functions.           (line   6)
@@ -5385,21 +5085,21 @@ Index of Concepts
 * functions, for text:                   Text Functions.      (line   6)
 * functions, syntax of:                  Syntax of Functions. (line   6)
 * functions, user defined:               Call Function.       (line   6)
-* g++ <1>:                               Implicit Variables.  (line  49)
 * g++:                                   Catalogue of Rules.  (line  39)
+* g++ <1>:                               Implicit Variables.  (line  49)
 * gcc:                                   Catalogue of Rules.  (line  35)
+* generating prerequisites automatically: Include.            (line  51)
 * generating prerequisites automatically <1>: Automatic Prerequisites.
                                                               (line   6)
-* generating prerequisites automatically: Include.            (line  51)
+* get:                                   Catalogue of Rules.  (line 172)
 * get <1>:                               Implicit Variables.  (line  69)
-* get:                                   Catalogue of Rules.  (line 173)
 * globbing (wildcards):                  Wildcards.           (line   6)
 * goal:                                  How Make Works.      (line  11)
-* goal, default <1>:                     Rules.               (line  11)
 * goal, default:                         How Make Works.      (line  11)
+* goal, default <1>:                     Rules.               (line  11)
 * goal, how to specify:                  Goals.               (line   6)
-* Guile <1>:                             Guile Integration.   (line   6)
 * Guile:                                 Guile Function.      (line   6)
+* Guile <1>:                             Guile Integration.   (line   6)
 * Guile example:                         Guile Example.       (line   6)
 * guile, conversion of types:            Guile Types.         (line   6)
 * home directory:                        Wildcards.           (line  11)
@@ -5410,7 +5110,7 @@ Index of Concepts
 * ifneq, expansion:                      Reading Makefiles.   (line  82)
 * implicit rule:                         Implicit Rules.      (line   6)
 * implicit rule, and directory search:   Implicit/Search.     (line   6)
-* implicit rule, and VPATH:              Implicit/Search.     (line   6)
+* implicit rule, and 'VPATH':            Implicit/Search.     (line   6)
 * implicit rule, definition of:          Makefile Contents.   (line  16)
 * implicit rule, expansion:              Reading Makefiles.   (line  92)
 * implicit rule, how to use:             Using Implicit.      (line   6)
@@ -5419,44 +5119,44 @@ Index of Concepts
 * implicit rule, search algorithm:       Implicit Rule Search.
                                                               (line   6)
 * implicit rules, secondary expansion of: Secondary Expansion.
-                                                              (line 146)
+                                                              (line 144)
 * included makefiles, default directories: Include.           (line  53)
-* including (MAKEFILE_LIST variable):    Special Variables.   (line   8)
-* including (MAKEFILES variable):        MAKEFILES Variable.  (line   6)
+* including ('MAKEFILES' variable):      MAKEFILES Variable.  (line   6)
+* including ('MAKEFILE_LIST' variable):  Special Variables.   (line   8)
 * including other makefiles:             Include.             (line   6)
 * incompatibilities:                     Missing.             (line   6)
-* Info, rule to format:                  Catalogue of Rules.  (line 158)
+* Info, rule to format:                  Catalogue of Rules.  (line 156)
 * inheritance, suppressing:              Suppressing Inheritance.
                                                               (line   6)
 * input during parallel execution:       Parallel Input.      (line   6)
-* install (standard target):             Goals.               (line  92)
+* 'install' (standard target):           Goals.               (line  93)
 * installation directories, creating:    Directory Variables. (line  20)
 * installations, staged:                 DESTDIR.             (line   6)
 * interface for loaded objects:          Loaded Object API.   (line   6)
 * intermediate files:                    Chained Rules.       (line  16)
 * intermediate files, preserving:        Chained Rules.       (line  46)
-* intermediate targets, explicit:        Special Targets.     (line  44)
+* intermediate targets, explicit:        Special Targets.     (line  48)
 * interrupt:                             Interrupts.          (line   6)
 * job slots:                             Parallel.            (line   6)
 * job slots, and recursion:              Options/Recursion.   (line  25)
 * jobs, limiting based on load:          Parallel.            (line  35)
-* joining lists of words:                File Name Functions. (line  90)
+* joining lists of words:                File Name Functions. (line  89)
 * killing (interruption):                Interrupts.          (line   6)
 * last-resort default rules:             Last Resort.         (line   6)
-* ld:                                    Catalogue of Rules.  (line  86)
+* ld:                                    Catalogue of Rules.  (line  83)
+* lex:                                   Catalogue of Rules.  (line 121)
 * lex <1>:                               Implicit Variables.  (line  73)
-* lex:                                   Catalogue of Rules.  (line 124)
-* Lex, rule to run:                      Catalogue of Rules.  (line 124)
+* Lex, rule to run:                      Catalogue of Rules.  (line 121)
 * libraries for linking, directory search: Libraries/Search.  (line   6)
 * library archive, suffix rule for:      Archive Suffix Rules.
                                                               (line   6)
 * limiting jobs based on load:           Parallel.            (line  35)
 * link libraries, and directory search:  Libraries/Search.    (line   6)
 * link libraries, patterns matching:     Libraries/Search.    (line   6)
-* linking, predefined rule for:          Catalogue of Rules.  (line  86)
+* linking, predefined rule for:          Catalogue of Rules.  (line  83)
+* lint:                                  Catalogue of Rules.  (line 143)
 * lint <1>:                              Implicit Variables.  (line  80)
-* lint:                                  Catalogue of Rules.  (line 146)
-* lint, rule to run:                     Catalogue of Rules.  (line 146)
+* 'lint', rule to run:                   Catalogue of Rules.  (line 143)
 * list of all prerequisites:             Automatic Variables. (line  61)
 * list of changed prerequisites:         Automatic Variables. (line  51)
 * load average:                          Parallel.            (line  35)
@@ -5464,31 +5164,31 @@ Index of Concepts
 * loaded object API:                     Loaded Object API.   (line   6)
 * loaded object example:                 Loaded Object Example.
                                                               (line   6)
-* loaded object licensing:               Loaded Object API.   (line  32)
+* loaded object licensing:               Loaded Object API.   (line  31)
 * loaded objects:                        Loading Objects.     (line   6)
 * loaded objects, remaking of:           Remaking Loaded Objects.
                                                               (line   6)
 * long lines, splitting:                 Splitting Lines.     (line   6)
 * loops in variable expansion:           Flavors.             (line  44)
-* lpr (shell command) <1>:               Empty Targets.       (line  25)
-* lpr (shell command):                   Wildcard Examples.   (line  21)
+* 'lpr' (shell command):                 Wildcard Examples.   (line  21)
+* 'lpr' (shell command) <1>:             Empty Targets.       (line  25)
+* m2c:                                   Catalogue of Rules.  (line  71)
 * m2c <1>:                               Implicit Variables.  (line  60)
-* m2c:                                   Catalogue of Rules.  (line  74)
 * macro:                                 Using Variables.     (line  10)
-* make depend:                           Automatic Prerequisites.
+* 'make depend':                         Automatic Prerequisites.
                                                               (line  37)
 * make extensions:                       Extending make.      (line   6)
 * make interface to guile:               Guile Interface.     (line   6)
 * make procedures in guile:              Guile Interface.     (line   6)
 * makefile:                              Introduction.        (line   7)
 * makefile name:                         Makefile Names.      (line   6)
-* makefile name, how to specify:         Makefile Names.      (line  30)
+* makefile name, how to specify:         Makefile Names.      (line  31)
 * makefile rule parts:                   Rule Introduction.   (line   6)
 * makefile syntax, evaluating:           Eval Function.       (line   6)
-* makefile, and MAKEFILES variable:      MAKEFILES Variable.  (line   6)
+* makefile, and 'MAKEFILES' variable:    MAKEFILES Variable.  (line   6)
 * makefile, conventions for:             Makefile Conventions.
                                                               (line   6)
-* makefile, how make processes:          How Make Works.      (line   6)
+* makefile, how 'make' processes:        How Make Works.      (line   6)
 * makefile, how to write:                Makefiles.           (line   6)
 * makefile, including:                   Include.             (line   6)
 * makefile, overriding:                  Overriding Makefiles.
@@ -5496,10 +5196,10 @@ Index of Concepts
 * makefile, parsing:                     Reading Makefiles.   (line   6)
 * makefile, remaking of:                 Remaking Makefiles.  (line   6)
 * makefile, simple:                      Simple Makefile.     (line   6)
-* makefiles, and MAKEFILE_LIST variable: Special Variables.   (line   8)
+* makefiles, and 'MAKEFILE_LIST' variable: Special Variables. (line   8)
 * makefiles, and special variables:      Special Variables.   (line   6)
+* makeinfo:                              Catalogue of Rules.  (line 156)
 * makeinfo <1>:                          Implicit Variables.  (line  84)
-* makeinfo:                              Catalogue of Rules.  (line 158)
 * match-anything rule:                   Match-Anything Rules.
                                                               (line   6)
 * match-anything rule, used to override: Overriding Makefiles.
@@ -5507,28 +5207,28 @@ Index of Concepts
 * missing features:                      Missing.             (line   6)
 * mistakes with wildcards:               Wildcard Pitfall.    (line   6)
 * modified variable reference:           Substitution Refs.   (line   6)
-* Modula-2, rule to compile:             Catalogue of Rules.  (line  74)
-* mostlyclean (standard target):         Goals.               (line  78)
+* Modula-2, rule to compile:             Catalogue of Rules.  (line  71)
+* 'mostlyclean' (standard target):       Goals.               (line  79)
 * multi-line variable definition:        Multi-Line.          (line   6)
 * multiple rules for one target:         Multiple Rules.      (line   6)
-* multiple rules for one target (::):    Double-Colon.        (line   6)
+* multiple rules for one target ('::'):  Double-Colon.        (line   6)
 * multiple targets:                      Multiple Targets.    (line   6)
 * multiple targets, in pattern rule:     Pattern Intro.       (line  53)
 * name of makefile:                      Makefile Names.      (line   6)
-* name of makefile, how to specify:      Makefile Names.      (line  30)
+* name of makefile, how to specify:      Makefile Names.      (line  31)
 * nested variable reference:             Computed Names.      (line   6)
 * newline, quoting, in makefile:         Simple Makefile.     (line  41)
 * newline, quoting, in recipes:          Splitting Recipe Lines.
                                                               (line   6)
-* nondirectory part:                     File Name Functions. (line  27)
+* nondirectory part:                     File Name Functions. (line  26)
 * normal prerequisites:                  Prerequisite Types.  (line   6)
-* OBJ:                                   Variables Simplify.  (line  20)
-* obj:                                   Variables Simplify.  (line  20)
-* OBJECTS:                               Variables Simplify.  (line  20)
-* objects:                               Variables Simplify.  (line  14)
+* 'obj':                                 Variables Simplify.  (line  20)
+* 'OBJ':                                 Variables Simplify.  (line  20)
+* 'objects':                             Variables Simplify.  (line  14)
+* 'OBJECTS':                             Variables Simplify.  (line  20)
 * objects, loaded:                       Loading Objects.     (line   6)
-* OBJS:                                  Variables Simplify.  (line  20)
-* objs:                                  Variables Simplify.  (line  20)
+* 'objs':                                Variables Simplify.  (line  20)
+* 'OBJS':                                Variables Simplify.  (line  20)
 * old-fashioned suffix rules:            Suffix Rules.        (line   6)
 * options:                               Options Summary.     (line   6)
 * options, and recursion:                Options/Recursion.   (line   6)
@@ -5537,18 +5237,18 @@ Index of Concepts
 * order of pattern rules:                Pattern Match.       (line  30)
 * order-only prerequisites:              Prerequisite Types.  (line   6)
 * origin of variable:                    Origin Function.     (line   6)
-* output during parallel execution <1>:  Options Summary.     (line 167)
 * output during parallel execution:      Parallel Output.     (line   6)
+* output during parallel execution <1>:  Options Summary.     (line 171)
 * overriding makefiles:                  Overriding Makefiles.
                                                               (line   6)
 * overriding variables with arguments:   Overriding.          (line   6)
-* overriding with override:              Override Directive.  (line   6)
+* overriding with 'override':            Override Directive.  (line   6)
 * parallel execution:                    Parallel.            (line   6)
 * parallel execution, and archive update: Archive Pitfalls.   (line   6)
 * parallel execution, input during:      Parallel Input.      (line   6)
-* parallel execution, output during <1>: Options Summary.     (line 167)
 * parallel execution, output during:     Parallel Output.     (line   6)
-* parallel execution, overriding:        Special Targets.     (line 130)
+* parallel execution, output during <1>: Options Summary.     (line 171)
+* parallel execution, overriding:        Special Targets.     (line 142)
 * parts of makefile rule:                Rule Introduction.   (line   6)
 * Pascal, rule to compile:               Catalogue of Rules.  (line  45)
 * pattern rule:                          Pattern Intro.       (line   6)
@@ -5557,35 +5257,35 @@ Index of Concepts
 * pattern rules, static (not implicit):  Static Pattern.      (line   6)
 * pattern rules, static, syntax of:      Static Usage.        (line   6)
 * pattern-specific variables:            Pattern-specific.    (line   6)
-* pc <1>:                                Implicit Variables.  (line  63)
 * pc:                                    Catalogue of Rules.  (line  45)
+* pc <1>:                                Implicit Variables.  (line  63)
 * phony targets:                         Phony Targets.       (line   6)
 * phony targets and recipe execution:    Instead of Execution.
-                                                              (line  71)
+                                                              (line  75)
 * pitfalls of wildcards:                 Wildcard Pitfall.    (line   6)
-* plugin_is_GPL_compatible:              Loaded Object API.   (line  32)
+* plugin_is_GPL_compatible:              Loaded Object API.   (line  31)
 * portability:                           Features.            (line   6)
-* POSIX <1>:                             Options/Recursion.   (line  60)
 * POSIX:                                 Overview.            (line  13)
-* POSIX-conforming mode, setting:        Special Targets.     (line 143)
+* POSIX <1>:                             Options/Recursion.   (line  61)
+* POSIX-conforming mode, setting:        Special Targets.     (line 157)
 * post-installation commands:            Install Command Categories.
                                                               (line   6)
 * pre-installation commands:             Install Command Categories.
                                                               (line   6)
-* precious targets:                      Special Targets.     (line  29)
-* predefined rules and variables, printing: Options Summary.  (line 183)
-* prefix, adding:                        File Name Functions. (line  79)
+* precious targets:                      Special Targets.     (line  32)
+* predefined rules and variables, printing: Options Summary.  (line 187)
+* prefix, adding:                        File Name Functions. (line  78)
 * prerequisite:                          Rules.               (line   6)
 * prerequisite pattern, implicit:        Pattern Intro.       (line  22)
 * prerequisite pattern, static (not implicit): Static Usage.  (line  30)
 * prerequisite types:                    Prerequisite Types.  (line   6)
 * prerequisite, expansion:               Reading Makefiles.   (line  92)
-* prerequisites:                         Rule Syntax.         (line  48)
+* prerequisites:                         Rule Syntax.         (line  47)
 * prerequisites, and automatic variables: Automatic Variables.
                                                               (line  17)
+* prerequisites, automatic generation:   Include.             (line  51)
 * prerequisites, automatic generation <1>: Automatic Prerequisites.
                                                               (line   6)
-* prerequisites, automatic generation:   Include.             (line  51)
 * prerequisites, introduction to:        Rule Introduction.   (line   8)
 * prerequisites, list of all:            Automatic Variables. (line  61)
 * prerequisites, list of changed:        Automatic Variables. (line  51)
@@ -5593,12 +5293,12 @@ Index of Concepts
 * prerequisites, order-only:             Prerequisite Types.  (line   6)
 * prerequisites, varying (static pattern): Static Pattern.    (line   6)
 * preserving intermediate files:         Chained Rules.       (line  46)
-* preserving with .PRECIOUS <1>:         Chained Rules.       (line  56)
-* preserving with .PRECIOUS:             Special Targets.     (line  29)
-* preserving with .SECONDARY:            Special Targets.     (line  49)
-* print (standard target):               Goals.               (line  97)
-* print target <1>:                      Empty Targets.       (line  25)
-* print target:                          Wildcard Examples.   (line  21)
+* preserving with '.PRECIOUS':           Special Targets.     (line  32)
+* preserving with '.PRECIOUS' <1>:       Chained Rules.       (line  56)
+* preserving with '.SECONDARY':          Special Targets.     (line  54)
+* 'print' (standard target):             Goals.               (line  98)
+* 'print' target:                        Wildcard Examples.   (line  21)
+* 'print' target <1>:                    Empty Targets.       (line  25)
 * printing directories:                  -w Option.           (line   6)
 * printing messages:                     Make Control Functions.
                                                               (line  43)
@@ -5609,29 +5309,29 @@ Index of Concepts
 * problems with wildcards:               Wildcard Pitfall.    (line   6)
 * processing a makefile:                 How Make Works.      (line   6)
 * question mode:                         Instead of Execution.
-                                                              (line  30)
-* quoting %, in patsubst:                Text Functions.      (line  26)
-* quoting %, in static pattern:          Static Usage.        (line  37)
-* quoting %, in vpath:                   Selective Search.    (line  38)
+                                                              (line  32)
+* quoting '%', in 'patsubst':            Text Functions.      (line  26)
+* quoting '%', in static pattern:        Static Usage.        (line  37)
+* quoting '%', in 'vpath':               Selective Search.    (line  39)
 * quoting newline, in makefile:          Simple Makefile.     (line  41)
 * quoting newline, in recipes:           Splitting Recipe Lines.
                                                               (line   6)
 * Ratfor, rule to compile:               Catalogue of Rules.  (line  49)
-* RCS, rule to extract from:             Catalogue of Rules.  (line 164)
+* RCS, rule to extract from:             Catalogue of Rules.  (line 163)
 * reading makefiles:                     Reading Makefiles.   (line   6)
-* README:                                Makefile Names.      (line   9)
-* realclean (standard target):           Goals.               (line  85)
-* realpath:                              File Name Functions. (line 114)
+* 'README':                              Makefile Names.      (line   9)
+* 'realclean' (standard target):         Goals.               (line  86)
+* realpath:                              File Name Functions. (line 113)
 * recipe:                                Simple Makefile.     (line  74)
-* recipe execution, single invocation:   Special Targets.     (line 137)
+* recipe execution, single invocation:   Special Targets.     (line 150)
 * recipe lines, single shell:            One Shell.           (line   6)
 * recipe syntax:                         Recipe Syntax.       (line   6)
 * recipe, execution:                     Execution.           (line   6)
+* recipes:                               Rule Syntax.         (line  25)
 * recipes <1>:                           Recipes.             (line   6)
-* recipes:                               Rule Syntax.         (line  26)
 * recipes setting shell variables:       Execution.           (line  12)
 * recipes, and directory search:         Recipes/Search.      (line   6)
-* recipes, backslash (\) in:             Splitting Recipe Lines.
+* recipes, backslash ('\') in:           Splitting Recipe Lines.
                                                               (line   6)
 * recipes, canned:                       Canned Recipes.      (line   6)
 * recipes, comments in:                  Recipe Syntax.       (line  29)
@@ -5654,51 +5354,51 @@ Index of Concepts
                                                               (line   6)
 * recording events with empty targets:   Empty Targets.       (line   6)
 * recursion:                             Recursion.           (line   6)
-* recursion, and -C:                     Options/Recursion.   (line  22)
-* recursion, and -f:                     Options/Recursion.   (line  22)
-* recursion, and -j:                     Options/Recursion.   (line  25)
-* recursion, and -o:                     Options/Recursion.   (line  22)
-* recursion, and -t:                     MAKE Variable.       (line  34)
-* recursion, and -w:                     -w Option.           (line  20)
-* recursion, and -W:                     Options/Recursion.   (line  22)
+* recursion, and '-C':                   Options/Recursion.   (line  22)
+* recursion, and '-f':                   Options/Recursion.   (line  22)
+* recursion, and '-j':                   Options/Recursion.   (line  25)
+* recursion, and '-o':                   Options/Recursion.   (line  22)
+* recursion, and '-t':                   MAKE Variable.       (line  35)
+* recursion, and '-W':                   Options/Recursion.   (line  22)
+* recursion, and '-w':                   -w Option.           (line  20)
 * recursion, and command line variable definitions: Options/Recursion.
                                                               (line  17)
 * recursion, and environment:            Variables/Recursion. (line   6)
-* recursion, and MAKE variable:          MAKE Variable.       (line   6)
-* recursion, and MAKEFILES variable:     MAKEFILES Variable.  (line  15)
+* recursion, and 'MAKE' variable:        MAKE Variable.       (line   6)
+* recursion, and 'MAKEFILES' variable:   MAKEFILES Variable.  (line  15)
 * recursion, and options:                Options/Recursion.   (line   6)
 * recursion, and printing directories:   -w Option.           (line   6)
 * recursion, and variables:              Variables/Recursion. (line   6)
-* recursion, level of:                   Variables/Recursion. (line 115)
-* recursive variable expansion <1>:      Flavors.             (line   6)
+* recursion, level of:                   Variables/Recursion. (line 114)
 * recursive variable expansion:          Using Variables.     (line   6)
+* recursive variable expansion <1>:      Flavors.             (line   6)
 * recursively expanded variables:        Flavors.             (line   6)
-* reference to variables <1>:            Advanced.            (line   6)
 * reference to variables:                Reference.           (line   6)
+* reference to variables <1>:            Advanced.            (line   6)
 * relinking:                             How Make Works.      (line  46)
 * remaking loaded objects:               Remaking Loaded Objects.
                                                               (line   6)
 * remaking makefiles:                    Remaking Makefiles.  (line   6)
-* removal of target files <1>:           Interrupts.          (line   6)
 * removal of target files:               Errors.              (line  64)
+* removal of target files <1>:           Interrupts.          (line   6)
 * removing duplicate words:              Text Functions.      (line 155)
-* removing targets on failure:           Special Targets.     (line  64)
+* removing targets on failure:           Special Targets.     (line  71)
 * removing, to clean up:                 Cleanup.             (line   6)
 * reporting bugs:                        Bugs.                (line   6)
 * rm:                                    Implicit Variables.  (line 106)
-* rm (shell command) <1>:                Errors.              (line  27)
-* rm (shell command) <2>:                Phony Targets.       (line  20)
-* rm (shell command) <3>:                Wildcard Examples.   (line  12)
-* rm (shell command):                    Simple Makefile.     (line  85)
-* rule prerequisites:                    Rule Syntax.         (line  48)
+* 'rm' (shell command):                  Simple Makefile.     (line  85)
+* 'rm' (shell command) <1>:              Wildcard Examples.   (line  12)
+* 'rm' (shell command) <2>:              Phony Targets.       (line  20)
+* 'rm' (shell command) <3>:              Errors.              (line  27)
+* rule prerequisites:                    Rule Syntax.         (line  47)
 * rule syntax:                           Rule Syntax.         (line   6)
 * rule targets:                          Rule Syntax.         (line  18)
-* rule, double-colon (::):               Double-Colon.        (line   6)
+* rule, double-colon ('::'):             Double-Colon.        (line   6)
 * rule, explicit, definition of:         Makefile Contents.   (line  10)
 * rule, how to write:                    Rules.               (line   6)
 * rule, implicit:                        Implicit Rules.      (line   6)
 * rule, implicit, and directory search:  Implicit/Search.     (line   6)
-* rule, implicit, and VPATH:             Implicit/Search.     (line   6)
+* rule, implicit, and 'VPATH':           Implicit/Search.     (line   6)
 * rule, implicit, chains of:             Chained Rules.       (line   6)
 * rule, implicit, definition of:         Makefile Contents.   (line  16)
 * rule, implicit, how to use:            Using Implicit.      (line   6)
@@ -5712,28 +5412,28 @@ Index of Concepts
 * rule, static pattern versus implicit:  Static versus Implicit.
                                                               (line   6)
 * rule, with multiple targets:           Multiple Targets.    (line   6)
-* rules, and $:                          Rule Syntax.         (line  34)
-* s. (SCCS file prefix):                 Catalogue of Rules.  (line 173)
-* SCCS, rule to extract from:            Catalogue of Rules.  (line 173)
+* rules, and '$':                        Rule Syntax.         (line  33)
+* s. (SCCS file prefix):                 Catalogue of Rules.  (line 172)
+* SCCS, rule to extract from:            Catalogue of Rules.  (line 172)
 * search algorithm, implicit rule:       Implicit Rule Search.
                                                               (line   6)
-* search path for prerequisites (VPATH): Directory Search.    (line   6)
-* search path for prerequisites (VPATH), and implicit rules: Implicit/Search.
+* search path for prerequisites ('VPATH'): Directory Search.  (line   6)
+* search path for prerequisites ('VPATH'), and implicit rules: Implicit/Search.
                                                               (line   6)
-* search path for prerequisites (VPATH), and link libraries: Libraries/Search.
+* search path for prerequisites ('VPATH'), and link libraries: Libraries/Search.
                                                               (line   6)
-* searching for strings:                 Text Functions.      (line 103)
+* searching for strings:                 Text Functions.      (line 104)
 * secondary expansion:                   Secondary Expansion. (line   6)
 * secondary expansion and explicit rules: Secondary Expansion.
-                                                              (line 106)
+                                                              (line 104)
 * secondary expansion and implicit rules: Secondary Expansion.
-                                                              (line 146)
+                                                              (line 144)
 * secondary expansion and static pattern rules: Secondary Expansion.
-                                                              (line 138)
+                                                              (line 136)
 * secondary files:                       Chained Rules.       (line  46)
-* secondary targets:                     Special Targets.     (line  49)
-* sed (shell command):                   Automatic Prerequisites.
-                                                              (line  73)
+* secondary targets:                     Special Targets.     (line  54)
+* 'sed' (shell command):                 Automatic Prerequisites.
+                                                              (line  72)
 * selecting a word:                      Text Functions.      (line 159)
 * selecting word lists:                  Text Functions.      (line 168)
 * sequences of commands:                 Canned Recipes.      (line   6)
@@ -5742,29 +5442,29 @@ Index of Concepts
 * setting variables:                     Setting.             (line   6)
 * several rules for one target:          Multiple Rules.      (line   6)
 * several targets in a rule:             Multiple Targets.    (line   6)
-* shar (standard target):                Goals.               (line 103)
+* 'shar' (standard target):              Goals.               (line 104)
 * shell command, function for:           Shell Function.      (line   6)
-* shell file name pattern (in include):  Include.             (line  13)
+* shell file name pattern (in 'include'): Include.            (line  13)
 * shell variables, setting in recipes:   Execution.           (line  12)
-* shell wildcards (in include):          Include.             (line  13)
+* shell wildcards (in 'include'):        Include.             (line  13)
 * shell, choosing the:                   Choosing the Shell.  (line   6)
 * SHELL, exported value:                 Variables/Recursion. (line  23)
 * SHELL, import from environment:        Environment.         (line  37)
 * shell, in DOS and Windows:             Choosing the Shell.  (line  38)
-* SHELL, MS-DOS specifics:               Choosing the Shell.  (line  44)
-* SHELL, value of:                       Choosing the Shell.  (line   6)
+* 'SHELL', MS-DOS specifics:             Choosing the Shell.  (line  44)
+* 'SHELL', value of:                     Choosing the Shell.  (line   6)
 * signal:                                Interrupts.          (line   6)
 * silent operation:                      Echoing.             (line   6)
 * simple makefile:                       Simple Makefile.     (line   6)
 * simple variable expansion:             Using Variables.     (line   6)
 * simplifying with variables:            Variables Simplify.  (line   6)
 * simply expanded variables:             Flavors.             (line  56)
-* sorting words:                         Text Functions.      (line 146)
+* sorting words:                         Text Functions.      (line 147)
 * spaces, in variable values:            Flavors.             (line 107)
 * spaces, stripping:                     Text Functions.      (line  80)
 * special targets:                       Special Targets.     (line   6)
 * special variables:                     Special Variables.   (line   6)
-* specifying makefile name:              Makefile Names.      (line  30)
+* specifying makefile name:              Makefile Names.      (line  31)
 * splitting long lines:                  Splitting Lines.     (line   6)
 * splitting recipes:                     Splitting Recipe Lines.
                                                               (line   6)
@@ -5778,23 +5478,23 @@ Index of Concepts
 * static pattern rule, versus implicit:  Static versus Implicit.
                                                               (line   6)
 * static pattern rules, secondary expansion of: Secondary Expansion.
-                                                              (line 138)
-* stem <1>:                              Pattern Match.       (line   6)
+                                                              (line 136)
 * stem:                                  Static Usage.        (line  17)
+* stem <1>:                              Pattern Match.       (line   6)
 * stem, shortest:                        Pattern Match.       (line  38)
 * stem, variable for:                    Automatic Variables. (line  77)
 * stopping make:                         Make Control Functions.
                                                               (line  11)
-* strings, searching for:                Text Functions.      (line 103)
+* strings, searching for:                Text Functions.      (line 104)
 * stripping whitespace:                  Text Functions.      (line  80)
-* sub-make:                              Variables/Recursion. (line   6)
+* sub-'make':                            Variables/Recursion. (line   6)
 * subdirectories, recursion for:         Recursion.           (line   6)
 * substitution variable reference:       Substitution Refs.   (line   6)
 * suffix rule:                           Suffix Rules.        (line   6)
 * suffix rule, for archive:              Archive Suffix Rules.
                                                               (line   6)
-* suffix, adding:                        File Name Functions. (line  68)
-* suffix, function to find:              File Name Functions. (line  43)
+* suffix, adding:                        File Name Functions. (line  67)
+* suffix, function to find:              File Name Functions. (line  42)
 * suffix, substituting in variables:     Substitution Refs.   (line   6)
 * suppressing inheritance:               Suppressing Inheritance.
                                                               (line   6)
@@ -5802,12 +5502,12 @@ Index of Concepts
 * symbol directories, updating archive:  Archive Symbols.     (line   6)
 * syntax of recipe:                      Recipe Syntax.       (line   6)
 * syntax of rules:                       Rule Syntax.         (line   6)
-* tab character (in commands):           Rule Syntax.         (line  26)
+* tab character (in commands):           Rule Syntax.         (line  25)
 * tabs in rules:                         Rule Introduction.   (line  21)
-* TAGS (standard target):                Goals.               (line 111)
+* 'TAGS' (standard target):              Goals.               (line 112)
+* tangle:                                Catalogue of Rules.  (line 149)
 * tangle <1>:                            Implicit Variables.  (line 100)
-* tangle:                                Catalogue of Rules.  (line 151)
-* tar (standard target):                 Goals.               (line 100)
+* 'tar' (standard target):               Goals.               (line 101)
 * target:                                Rules.               (line   6)
 * target pattern, implicit:              Pattern Intro.       (line   9)
 * target pattern, static (not implicit): Static Usage.        (line  17)
@@ -5817,7 +5517,7 @@ Index of Concepts
 * target, multiple in pattern rule:      Pattern Intro.       (line  53)
 * target, multiple rules for one:        Multiple Rules.      (line   6)
 * target, touching:                      Instead of Execution.
-                                                              (line  23)
+                                                              (line  24)
 * target-specific variables:             Target-specific.     (line   6)
 * targets:                               Rule Syntax.         (line  18)
 * targets without a file:                Phony Targets.       (line   6)
@@ -5829,23 +5529,23 @@ Index of Concepts
 * targets, phony:                        Phony Targets.       (line   6)
 * terminal rule:                         Match-Anything Rules.
                                                               (line   6)
-* test (standard target):                Goals.               (line 115)
+* 'test' (standard target):              Goals.               (line 116)
 * testing compilation:                   Testing.             (line   6)
+* tex:                                   Catalogue of Rules.  (line 149)
 * tex <1>:                               Implicit Variables.  (line  87)
-* tex:                                   Catalogue of Rules.  (line 151)
-* TeX, rule to run:                      Catalogue of Rules.  (line 151)
+* TeX, rule to run:                      Catalogue of Rules.  (line 149)
+* texi2dvi:                              Catalogue of Rules.  (line 156)
 * texi2dvi <1>:                          Implicit Variables.  (line  91)
-* texi2dvi:                              Catalogue of Rules.  (line 158)
-* Texinfo, rule to format:               Catalogue of Rules.  (line 158)
-* tilde (~):                             Wildcards.           (line  11)
-* touch (shell command) <1>:             Empty Targets.       (line  25)
-* touch (shell command):                 Wildcard Examples.   (line  21)
+* Texinfo, rule to format:               Catalogue of Rules.  (line 156)
+* tilde ('~'):                           Wildcards.           (line  11)
+* 'touch' (shell command):               Wildcard Examples.   (line  21)
+* 'touch' (shell command) <1>:           Empty Targets.       (line  25)
 * touching files:                        Instead of Execution.
-                                                              (line  23)
+                                                              (line  24)
 * traditional directory search (GPATH):  Search Algorithm.    (line  42)
 * types of prerequisites:                Prerequisite Types.  (line   6)
 * types, conversion of:                  Guile Types.         (line   6)
-* undefined variables, warning message:  Options Summary.     (line 285)
+* undefined variables, warning message:  Options Summary.     (line 292)
 * undefining variable:                   Undefine Directive.  (line   6)
 * updating archive symbol directories:   Archive Symbols.     (line   6)
 * updating loaded objects:               Remaking Loaded Objects.
@@ -5859,17 +5559,17 @@ Index of Concepts
 * variable references in recipes:        Variables in Recipes.
                                                               (line   6)
 * variables:                             Variables Simplify.  (line   6)
-* variables, $ in name:                  Computed Names.      (line   6)
+* variables, '$' in name:                Computed Names.      (line   6)
 * variables, and implicit rule:          Automatic Variables. (line   6)
 * variables, appending to:               Appending.           (line   6)
 * variables, automatic:                  Automatic Variables. (line   6)
 * variables, command line:               Overriding.          (line   6)
 * variables, command line, and recursion: Options/Recursion.  (line  17)
 * variables, computed names:             Computed Names.      (line   6)
-* variables, conditional assignment:     Flavors.             (line 133)
+* variables, conditional assignment:     Flavors.             (line 135)
 * variables, defining verbatim:          Multi-Line.          (line   6)
-* variables, environment <1>:            Environment.         (line   6)
 * variables, environment:                Variables/Recursion. (line   6)
+* variables, environment <1>:            Environment.         (line   6)
 * variables, exporting:                  Variables/Recursion. (line   6)
 * variables, flavor of:                  Flavor Function.     (line   6)
 * variables, flavors:                    Flavors.             (line   6)
@@ -5891,47 +5591,46 @@ Index of Concepts
 * variables, substitution reference:     Substitution Refs.   (line   6)
 * variables, target-specific:            Target-specific.     (line   6)
 * variables, unexpanded value:           Value Function.      (line   6)
-* variables, warning for undefined:      Options Summary.     (line 285)
+* variables, warning for undefined:      Options Summary.     (line 292)
 * varying prerequisites:                 Static Pattern.      (line   6)
 * verbatim variable definition:          Multi-Line.          (line   6)
 * vpath:                                 Directory Search.    (line   6)
-* VPATH, and implicit rules:             Implicit/Search.     (line   6)
-* VPATH, and link libraries:             Libraries/Search.    (line   6)
+* 'VPATH', and implicit rules:           Implicit/Search.     (line   6)
+* 'VPATH', and link libraries:           Libraries/Search.    (line   6)
 * warnings, printing:                    Make Control Functions.
                                                               (line  35)
+* weave:                                 Catalogue of Rules.  (line 149)
 * weave <1>:                             Implicit Variables.  (line  94)
-* weave:                                 Catalogue of Rules.  (line 151)
-* Web, rule to run:                      Catalogue of Rules.  (line 151)
+* Web, rule to run:                      Catalogue of Rules.  (line 149)
 * what if:                               Instead of Execution.
-                                                              (line  38)
+                                                              (line  41)
 * whitespace, in variable values:        Flavors.             (line 107)
 * whitespace, stripping:                 Text Functions.      (line  80)
 * wildcard:                              Wildcards.           (line   6)
 * wildcard pitfalls:                     Wildcard Pitfall.    (line   6)
-* wildcard, function:                    File Name Functions. (line 107)
+* wildcard, function:                    File Name Functions. (line 106)
 * wildcard, in archive member:           Archive Members.     (line  36)
-* wildcard, in include:                  Include.             (line  13)
+* wildcard, in 'include':                Include.             (line  13)
 * wildcards and MS-DOS/MS-Windows backslashes: Wildcard Pitfall.
                                                               (line  31)
 * Windows, choosing a shell in:          Choosing the Shell.  (line  38)
 * word, selecting a:                     Text Functions.      (line 159)
-* words, extracting first:               Text Functions.      (line 184)
-* words, extracting last:                Text Functions.      (line 197)
-* words, filtering:                      Text Functions.      (line 114)
-* words, filtering out:                  Text Functions.      (line 132)
+* words, extracting first:               Text Functions.      (line 185)
+* words, extracting last:                Text Functions.      (line 198)
+* words, filtering:                      Text Functions.      (line 115)
+* words, filtering out:                  Text Functions.      (line 133)
 * words, finding number:                 Text Functions.      (line 180)
 * words, iterating over:                 Foreach Function.    (line   6)
-* words, joining lists:                  File Name Functions. (line  90)
+* words, joining lists:                  File Name Functions. (line  89)
 * words, removing duplicates:            Text Functions.      (line 155)
 * words, selecting lists of:             Text Functions.      (line 168)
 * writing recipes:                       Recipes.             (line   6)
 * writing rules:                         Rules.               (line   6)
 * writing to a file:                     File Function.       (line   6)
+* yacc:                                  Catalogue of Rules.  (line 117)
 * yacc <1>:                              Implicit Variables.  (line  77)
-* yacc <2>:                              Catalogue of Rules.  (line 120)
-* yacc:                                  Canned Recipes.      (line  18)
-* Yacc, rule to run:                     Catalogue of Rules.  (line 120)
-* ~ (tilde):                             Wildcards.           (line  11)
+* 'yacc':                                Canned Recipes.      (line  18)
+* Yacc, rule to run:                     Catalogue of Rules.  (line 117)
 
 \1f
 File: make.info,  Node: Name Index,  Prev: Concept Index,  Up: Top
@@ -5958,7 +5657,7 @@ Index of Functions, Variables, & Directives
 * $(^D):                                 Automatic Variables. (line 142)
 * $(^F):                                 Automatic Variables. (line 143)
 * $*:                                    Automatic Variables. (line  73)
-* $*, and static pattern:                Static Usage.        (line  81)
+* $*, and static pattern:                Static Usage.        (line  82)
 * $+:                                    Automatic Variables. (line  63)
 * $<:                                    Automatic Variables. (line  43)
 * $?:                                    Automatic Variables. (line  48)
@@ -5976,43 +5675,44 @@ Index of Functions, Variables, & Directives
 * +D (automatic variable):               Automatic Variables. (line 147)
 * +F (automatic variable):               Automatic Variables. (line 148)
 * -load:                                 load Directive.      (line  65)
+* .DEFAULT:                              Special Targets.     (line  22)
 * .DEFAULT <1>:                          Last Resort.         (line  23)
-* .DEFAULT:                              Special Targets.     (line  20)
 * .DEFAULT, and empty recipes:           Empty Recipes.       (line  16)
 * .DEFAULT_GOAL (define default goal):   Special Variables.   (line  34)
+* .DELETE_ON_ERROR:                      Special Targets.     (line  70)
 * .DELETE_ON_ERROR <1>:                  Errors.              (line  64)
-* .DELETE_ON_ERROR:                      Special Targets.     (line  63)
+* .EXPORT_ALL_VARIABLES:                 Special Targets.     (line 135)
 * .EXPORT_ALL_VARIABLES <1>:             Variables/Recursion. (line  99)
-* .EXPORT_ALL_VARIABLES:                 Special Targets.     (line 124)
-* .FEATURES (list of supported features): Special Variables.  (line 102)
+* .FEATURES (list of supported features): Special Variables.  (line 121)
+* .IGNORE:                               Special Targets.     (line  77)
 * .IGNORE <1>:                           Errors.              (line  30)
-* .IGNORE:                               Special Targets.     (line  69)
 * .INCLUDE_DIRS (list of include directories): Special Variables.
-                                                              (line 155)
-* .INTERMEDIATE:                         Special Targets.     (line  43)
+                                                              (line 174)
+* .INTERMEDIATE:                         Special Targets.     (line  47)
 * .LIBPATTERNS:                          Libraries/Search.    (line   6)
 * .LOADED:                               load Directive.      (line  62)
-* .LOW_RESOLUTION_TIME:                  Special Targets.     (line  81)
-* .NOTPARALLEL:                          Special Targets.     (line 129)
+* .LOW_RESOLUTION_TIME:                  Special Targets.     (line  90)
+* .NOTPARALLEL:                          Special Targets.     (line 141)
+* .ONESHELL:                             Special Targets.     (line 149)
 * .ONESHELL <1>:                         One Shell.           (line   6)
-* .ONESHELL:                             Special Targets.     (line 136)
-* .PHONY <1>:                            Special Targets.     (line   8)
 * .PHONY:                                Phony Targets.       (line  22)
-* .POSIX <1>:                            Options/Recursion.   (line  60)
-* .POSIX:                                Special Targets.     (line 142)
+* .PHONY <1>:                            Special Targets.     (line   8)
+* .POSIX:                                Special Targets.     (line 156)
+* .POSIX <1>:                            Options/Recursion.   (line  61)
+* .PRECIOUS:                             Special Targets.     (line  31)
 * .PRECIOUS <1>:                         Interrupts.          (line  22)
-* .PRECIOUS:                             Special Targets.     (line  28)
 * .RECIPEPREFIX (change the recipe prefix character): Special Variables.
-                                                              (line  80)
-* .SECONDARY:                            Special Targets.     (line  48)
-* .SECONDEXPANSION <1>:                  Special Targets.     (line  57)
+                                                              (line  99)
+* .SECONDARY:                            Special Targets.     (line  53)
 * .SECONDEXPANSION:                      Secondary Expansion. (line   6)
+* .SECONDEXPANSION <1>:                  Special Targets.     (line  63)
 * .SHELLFLAGS:                           Choosing the Shell.  (line   6)
+* .SHELLFLAGS <1>:                       Choosing the Shell.  (line  87)
+* .SILENT:                               Special Targets.     (line 121)
 * .SILENT <1>:                           Echoing.             (line  24)
-* .SILENT:                               Special Targets.     (line 111)
+* .SUFFIXES:                             Special Targets.     (line  16)
 * .SUFFIXES <1>:                         Suffix Rules.        (line  61)
-* .SUFFIXES:                             Special Targets.     (line  15)
-* .VARIABLES (list of variables):        Special Variables.   (line  93)
+* .VARIABLES (list of variables):        Special Variables.   (line 112)
 * /usr/gnu/include:                      Include.             (line  53)
 * /usr/include:                          Include.             (line  53)
 * /usr/local/include:                    Include.             (line  53)
@@ -6028,16 +5728,17 @@ Index of Functions, Variables, & Directives
 * ^ (automatic variable):                Automatic Variables. (line  53)
 * ^D (automatic variable):               Automatic Variables. (line 142)
 * ^F (automatic variable):               Automatic Variables. (line 143)
-* abspath:                               File Name Functions. (line 121)
-* addprefix:                             File Name Functions. (line  79)
-* addsuffix:                             File Name Functions. (line  68)
+* | (automatic variable):                Automatic Variables. (line  69)
+* abspath:                               File Name Functions. (line 120)
+* addprefix:                             File Name Functions. (line  78)
+* addsuffix:                             File Name Functions. (line  67)
 * and:                                   Conditional Functions.
                                                               (line  45)
 * AR:                                    Implicit Variables.  (line  40)
 * ARFLAGS:                               Implicit Variables.  (line 113)
 * AS:                                    Implicit Variables.  (line  43)
 * ASFLAGS:                               Implicit Variables.  (line 116)
-* basename:                              File Name Functions. (line  57)
+* basename:                              File Name Functions. (line  56)
 * bindir:                                Directory Variables. (line  57)
 * call:                                  Call Function.       (line   6)
 * CC:                                    Implicit Variables.  (line  46)
@@ -6048,13 +5749,13 @@ Index of Functions, Variables, & Directives
 * CPP:                                   Implicit Variables.  (line  52)
 * CPPFLAGS:                              Implicit Variables.  (line 129)
 * CTANGLE:                               Implicit Variables.  (line 103)
-* CURDIR:                                Recursion.           (line  28)
+* 'CURDIR':                              Recursion.           (line  28)
 * CWEAVE:                                Implicit Variables.  (line  97)
 * CXX:                                   Implicit Variables.  (line  49)
 * CXXFLAGS:                              Implicit Variables.  (line 123)
 * define:                                Multi-Line.          (line   6)
 * DESTDIR:                               DESTDIR.             (line   6)
-* dir:                                   File Name Functions. (line  17)
+* dir:                                   File Name Functions. (line  16)
 * else:                                  Conditional Syntax.  (line   6)
 * endef:                                 Multi-Line.          (line   6)
 * endif:                                 Conditional Syntax.  (line   6)
@@ -6066,27 +5767,29 @@ Index of Functions, Variables, & Directives
 * FC:                                    Implicit Variables.  (line  56)
 * FFLAGS:                                Implicit Variables.  (line 133)
 * file:                                  File Function.       (line   6)
-* filter:                                Text Functions.      (line 114)
-* filter-out:                            Text Functions.      (line 132)
-* findstring:                            Text Functions.      (line 103)
-* firstword:                             Text Functions.      (line 184)
+* filter:                                Text Functions.      (line 115)
+* filter-out:                            Text Functions.      (line 133)
+* findstring:                            Text Functions.      (line 104)
+* firstword:                             Text Functions.      (line 185)
 * flavor:                                Flavor Function.     (line   6)
 * foreach:                               Foreach Function.    (line   6)
 * GET:                                   Implicit Variables.  (line  69)
 * GFLAGS:                                Implicit Variables.  (line 136)
 * gmk-eval:                              Guile Interface.     (line  18)
 * gmk-expand:                            Guile Interface.     (line  12)
-* gmk_add_function:                      Loaded Object API.   (line  54)
-* gmk_alloc:                             Loaded Object API.   (line 150)
-* gmk_eval:                              Loaded Object API.   (line 124)
-* gmk_expand:                            Loaded Object API.   (line 118)
-* gmk_free:                              Loaded Object API.   (line 155)
-* gmk_func_ptr:                          Loaded Object API.   (line  96)
+* gmk_add_function:                      Loaded Object API.   (line  53)
+* gmk_alloc:                             Loaded Object API.   (line 149)
+* gmk_eval:                              Loaded Object API.   (line 123)
+* gmk_expand:                            Loaded Object API.   (line 117)
+* gmk_free:                              Loaded Object API.   (line 154)
+* gmk_func_ptr:                          Loaded Object API.   (line  95)
 * GNUmakefile:                           Makefile Names.      (line   7)
 * GPATH:                                 Search Algorithm.    (line  48)
 * guile:                                 Guile Function.      (line   6)
 * if:                                    Conditional Functions.
                                                               (line   6)
+* if <1>:                                Conditional Functions.
+                                                              (line  12)
 * ifdef:                                 Conditional Syntax.  (line   6)
 * ifeq:                                  Conditional Syntax.  (line   6)
 * ifndef:                                Conditional Syntax.  (line   6)
@@ -6094,8 +5797,8 @@ Index of Functions, Variables, & Directives
 * include:                               Include.             (line   6)
 * info:                                  Make Control Functions.
                                                               (line  43)
-* join:                                  File Name Functions. (line  90)
-* lastword:                              Text Functions.      (line 197)
+* join:                                  File Name Functions. (line  89)
+* lastword:                              Text Functions.      (line 198)
 * LDFLAGS:                               Implicit Variables.  (line 139)
 * LDLIBS:                                Implicit Variables.  (line 144)
 * LEX:                                   Implicit Variables.  (line  72)
@@ -6106,52 +5809,57 @@ Index of Functions, Variables, & Directives
 * load:                                  load Directive.      (line   9)
 * LOADLIBES:                             Implicit Variables.  (line 144)
 * M2C:                                   Implicit Variables.  (line  60)
-* MAKE <1>:                              Flavors.             (line  88)
 * MAKE:                                  MAKE Variable.       (line   6)
-* MAKE_HOST:                             Quick Reference.     (line 341)
-* MAKE_RESTARTS (number of times make has restarted): Special Variables.
-                                                              (line  73)
-* MAKE_VERSION:                          Quick Reference.     (line 337)
+* MAKE <1>:                              Flavors.             (line  88)
 * MAKECMDGOALS:                          Goals.               (line  30)
-* makefile:                              Makefile Names.      (line   7)
 * Makefile:                              Makefile Names.      (line   7)
+* makefile:                              Makefile Names.      (line   7)
+* MAKEFILES:                             MAKEFILES Variable.  (line   6)
+* MAKEFILES <1>:                         Variables/Recursion. (line 126)
 * MAKEFILE_LIST (list of parsed makefiles): Special Variables.
                                                               (line   8)
-* MAKEFILES <1>:                         Variables/Recursion. (line 127)
-* MAKEFILES:                             MAKEFILES Variable.  (line   6)
 * MAKEFLAGS:                             Options/Recursion.   (line   6)
 * MAKEINFO:                              Implicit Variables.  (line  83)
+* MAKELEVEL:                             Variables/Recursion. (line 114)
 * MAKELEVEL <1>:                         Flavors.             (line  88)
-* MAKELEVEL:                             Variables/Recursion. (line 115)
-* MAKEOVERRIDES:                         Options/Recursion.   (line  49)
-* MAKESHELL (MS-DOS alternative to SHELL): Choosing the Shell.
+* MAKEOVERRIDES:                         Options/Recursion.   (line  50)
+* 'MAKESHELL' (MS-DOS alternative to 'SHELL'): Choosing the Shell.
                                                               (line  27)
-* MFLAGS:                                Options/Recursion.   (line  65)
-* notdir:                                File Name Functions. (line  27)
+* MAKE_HOST:                             Quick Reference.     (line 348)
+* MAKE_RESTARTS (number of times 'make' has restarted): Special Variables.
+                                                              (line  73)
+* MAKE_TERMERR (whether stderr is a terminal): Special Variables.
+                                                              (line  80)
+* MAKE_TERMOUT (whether stdout is a terminal): Special Variables.
+                                                              (line  80)
+* MAKE_VERSION:                          Quick Reference.     (line 343)
+* MFLAGS:                                Options/Recursion.   (line  66)
+* notdir:                                File Name Functions. (line  26)
 * or:                                    Conditional Functions.
                                                               (line  37)
 * origin:                                Origin Function.     (line   6)
-* OUTPUT_OPTION:                         Catalogue of Rules.  (line 202)
+* OUTPUT_OPTION:                         Catalogue of Rules.  (line 200)
 * override:                              Override Directive.  (line   6)
-* patsubst <1>:                          Text Functions.      (line  18)
 * patsubst:                              Substitution Refs.   (line  28)
+* patsubst <1>:                          Text Functions.      (line  18)
 * PC:                                    Implicit Variables.  (line  63)
 * PFLAGS:                                Implicit Variables.  (line 156)
 * prefix:                                Directory Variables. (line  29)
 * private:                               Suppressing Inheritance.
                                                               (line   6)
-* realpath:                              File Name Functions. (line 114)
+* realpath:                              File Name Functions. (line 113)
 * RFLAGS:                                Implicit Variables.  (line 159)
 * RM:                                    Implicit Variables.  (line 106)
 * sbindir:                               Directory Variables. (line  63)
-* shell:                                 Shell Function.      (line   6)
 * SHELL:                                 Choosing the Shell.  (line   6)
-* SHELL (recipe execution):              Execution.           (line   6)
-* sort:                                  Text Functions.      (line 146)
+* SHELL <1>:                             Choosing the Shell.  (line  88)
+* shell:                                 Shell Function.      (line   6)
+* 'SHELL' (recipe execution):            Execution.           (line   6)
+* sort:                                  Text Functions.      (line 147)
 * strip:                                 Text Functions.      (line  80)
-* subst <1>:                             Text Functions.      (line   9)
 * subst:                                 Multiple Targets.    (line  28)
-* suffix:                                File Name Functions. (line  43)
+* subst <1>:                             Text Functions.      (line   9)
+* suffix:                                File Name Functions. (line  42)
 * SUFFIXES:                              Suffix Rules.        (line  81)
 * TANGLE:                                Implicit Variables.  (line 100)
 * TEX:                                   Implicit Variables.  (line  87)
@@ -6159,20 +5867,18 @@ Index of Functions, Variables, & Directives
 * undefine:                              Undefine Directive.  (line   6)
 * unexport:                              Variables/Recursion. (line  45)
 * value:                                 Value Function.      (line   6)
-* vpath:                                 Selective Search.    (line   6)
-* VPATH:                                 General Search.      (line   6)
-* vpath:                                 Directory Search.    (line   6)
 * VPATH:                                 Directory Search.    (line   6)
+* VPATH <1>:                             General Search.      (line   6)
+* vpath:                                 Directory Search.    (line   6)
+* vpath <1>:                             Selective Search.    (line   6)
 * warning:                               Make Control Functions.
                                                               (line  35)
 * WEAVE:                                 Implicit Variables.  (line  94)
-* wildcard <1>:                          File Name Functions. (line 107)
 * wildcard:                              Wildcard Function.   (line   6)
+* wildcard <1>:                          File Name Functions. (line 106)
 * word:                                  Text Functions.      (line 159)
 * wordlist:                              Text Functions.      (line 168)
 * words:                                 Text Functions.      (line 180)
 * YACC:                                  Implicit Variables.  (line  76)
 * YFLAGS:                                Implicit Variables.  (line 153)
-* | (automatic variable):                Automatic Variables. (line  69)
-
 
index 8fbdb614f5b5b597fcf10e06e788c152aa0ec2b8..b0f5af73f99336aa28441e321184b98758979f92 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename make.info
 
 @include version.texi
-@set EDITION 0.72
+@set EDITION 0.73
 
 @settitle GNU @code{make}
 @setchapternewpage odd
@@ -26,7 +26,7 @@ of @cite{The GNU Make Manual}, for GNU @code{make} version @value{VERSION}.
 
 Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -304,7 +304,7 @@ Using Implicit Rules
 
 * Using Implicit::              How to use an existing implicit rule
                                   to get the recipes for updating a file.
-* Catalogue of Rules::          A list of built-in implicit rules.
+* Catalogue of Rules::          A list of built-in rules.
 * Implicit Variables::          How to change what predefined rules do.
 * Chained Rules::               How to use a chain of implicit rules.
 * Pattern Rules::               How to define new implicit rules.
@@ -1528,7 +1528,7 @@ A rule is always expanded the same way, regardless of the form:
 
 @example
 @var{immediate} : @var{immediate} ; @var{deferred}
-       @var{deferred}
+        @var{deferred}
 @end example
 
 That is, the target and prerequisite sections are expanded immediately,
@@ -2584,30 +2584,14 @@ will be executed every time you say @samp{make clean}.
 @cindex @code{rm} (shell command)
 
 @findex .PHONY
-The phony target will cease to work if anything ever does create a file
-named @file{clean} in this directory.  Since it has no prerequisites, the
-file @file{clean} would inevitably be considered up to date, and its
-recipe would not be executed.  To avoid this problem, you can explicitly
-declare the target to be phony, using the special target @code{.PHONY}
+In this example, the @file{clean} target will not work properly if a
+file named @file{clean} is ever created in this directory.  Since it
+has no prerequisites, @file{clean} would always be considered up to
+date and its recipe would not be executed.  To avoid this problem you
+can explicitly declare the target to be phony by making it a
+prerequisite of the special target @code{.PHONY}
 (@pxref{Special Targets, ,Special Built-in Target Names}) as follows:
 
-@example
-.PHONY : clean
-@end example
-
-@noindent
-Once this is done, @samp{make clean} will run the recipe regardless of
-whether there is a file named @file{clean}.
-
-Since it knows that phony targets do not name actual files that could be
-remade from other files, @code{make} skips the implicit rule search for
-phony targets (@pxref{Implicit Rules}).  This is why declaring a target
-phony is good for performance, even if you are not worried about the
-actual file existing.
-
-Thus, you first write the line that states that @code{clean} is a
-phony target, then you write the rule, like this:
-
 @example
 @group
 .PHONY: clean
@@ -2616,12 +2600,16 @@ clean:
 @end group
 @end example
 
-Another example of the usefulness of phony targets is in conjunction
-with recursive invocations of @code{make} (for more information, see
-@ref{Recursion, ,Recursive Use of @code{make}}).  In this case the
-makefile will often contain a variable which lists a number of
-sub-directories to be built.  One way to handle this is with one rule
-whose recipe is a shell loop over the sub-directories, like this:
+@noindent
+Once this is done, @samp{make clean} will run the recipe regardless of
+whether there is a file named @file{clean}.
+
+Phony targets are also useful in conjunction with recursive
+invocations of @code{make} (@pxref{Recursion, ,Recursive Use of @code{make}}).
+In this situation the makefile will often contain a variable which
+lists a number of sub-directories to be built.  A simplistic way to
+handle this is to define one rule with a recipe that loops over the
+sub-directories, like this:
 
 @example
 @group
@@ -2644,9 +2632,9 @@ you cannot take advantage of @code{make}'s ability to build targets in
 parallel (@pxref{Parallel, ,Parallel Execution}), since there is only
 one rule.
 
-By declaring the sub-directories as phony targets (you must do this as
-the sub-directory obviously always exists; otherwise it won't be built)
-you can remove these problems:
+By declaring the sub-directories as @code{.PHONY} targets (you must do
+this as the sub-directory obviously always exists; otherwise it won't
+be built) you can remove these problems:
 
 @example
 @group
@@ -2668,6 +2656,11 @@ built until after the @file{baz} sub-directory is complete; this kind of
 relationship declaration is particularly important when attempting
 parallel builds.
 
+The implicit rule search (@pxref{Implicit Rules}) is skipped for
+@code{.PHONY} targets.  This is why declaring a target as
+@code{.PHONY} is good for performance, even if you are not worried
+about the actual file existing.
+
 A phony target should not be a prerequisite of a real target file; if it
 is, its recipe will be run every time @code{make} goes to update that
 file.  As long as a phony target is never a prerequisite of a real
@@ -5809,7 +5802,7 @@ CFLAGS += -pg # enable profiling
 @noindent
 The first line defines the @code{CFLAGS} variable with a reference to another
 variable, @code{includes}.  (@code{CFLAGS} is used by the rules for C
-compilation; @pxref{Catalogue of Rules, ,Catalogue of Implicit Rules}.)
+compilation; @pxref{Catalogue of Rules, ,Catalogue of Built-In Rules}.)
 Using @samp{=} for the definition makes @code{CFLAGS} a recursively-expanded
 variable, meaning @w{@samp{$(includes) -O}} is @emph{not} expanded when
 @code{make} processes the definition of @code{CFLAGS}.  Thus, @code{includes}
@@ -6328,6 +6321,28 @@ will contain the number of times this instance has restarted.  Note
 this is not the same as recursion (counted by the @code{MAKELEVEL}
 variable).  You should not set, modify, or export this variable.
 
+@vindex MAKE_TERMOUT @r{(whether stdout is a terminal)}
+@vindex MAKE_TERMERR @r{(whether stderr is a terminal)}
+@item MAKE_TERMOUT
+@itemx MAKE_TERMERR
+When @code{make} starts it will check whether stdout and stderr will
+show their output on a terminal.  If so, it will set
+@code{MAKE_TERMOUT} and @code{MAKE_TERMERR}, respectively, to the name
+of the terminal device (or @code{true} if this cannot be determined).
+If set these variables will be marked for export.  These variables
+will not be changed by @code{make} and they will not be modified if
+already set.
+
+These values can be used (particularly in combination with output
+synchronization (@pxref{Parallel Output, ,Output During Parallel
+Execution}) to determine whether @code{make} itself is writing to a
+terminal; they can be tested to decide whether to force recipe
+commands to generate colorized output for example.
+
+If you invoke a sub-@code{make} and redirect its stdout or stderr it
+is your responsibility to reset or unexport these variables as well,
+if your makefiles rely on them.
+
 @vindex .RECIPEPREFIX @r{(change the recipe prefix character)}
 @item .RECIPEPREFIX
 The first character of the value of this variable is used as the
@@ -7516,7 +7531,7 @@ exist.
 The syntax of the @code{file} function is:
 
 @example
-$(file @var{op} @var{filename},@var{text})
+$(file @var{op} @var{filename}[,@var{text}])
 @end example
 
 The operator @var{op} can be either @code{>} which indicates overwrite
@@ -7528,8 +7543,9 @@ When the @code{file} function is expanded all its arguments are
 expanded first, then the file indicated by @var{filename} will be
 opened in the mode described by @var{op}.  Finally @var{text} will be
 written to the file.  If @var{text} does not already end in a newline,
-a final newline will be written.  The result of evaluating the
-@code{file} function is always the empty string.
+even if empty, a final newline will be written.  If the @var{text}
+argument is not given, nothing will be written.  The result of
+evaluating the @code{file} function is always the empty string.
 
 It is a fatal error if the file cannot be opened for writing, or if
 the write operation fails.
@@ -7556,7 +7572,7 @@ input file, you might write your recipe like this:
 @example
 @group
 program: $(OBJECTS)
-        $(file >$@@.in,) $(foreach O,$^,$(file >>$@@.in,$O))
+        $(file >$@@.in) $(foreach O,$^,$(file >>$@@.in,$O))
         $(CMD) $(CMDFLAGS) @@$@@.in
         @@rm $@@.in
 @end group
@@ -8934,7 +8950,7 @@ retained for compatibility.
 @menu
 * Using Implicit::              How to use an existing implicit rule
                                   to get the recipes for updating a file.
-* Catalogue of Rules::          A list of built-in implicit rules.
+* Catalogue of Rules::          A list of built-in rules.
 * Implicit Variables::          How to change what predefined rules do.
 * Chained Rules::               How to use a chain of implicit rules.
 * Pattern Rules::               How to define new implicit rules.
@@ -8986,7 +9002,7 @@ compiler; and so on.
 Of course, when you write the makefile, you know which implicit rule you
 want @code{make} to use, and you know it will choose that one because you
 know which possible prerequisite files are supposed to exist.
-@xref{Catalogue of Rules, ,Catalogue of Implicit Rules},
+@xref{Catalogue of Rules, ,Catalogue of Built-In Rules},
 for a catalogue of all the predefined implicit rules.
 
 Above, we said an implicit rule applies if the required prerequisites ``exist
@@ -9016,7 +9032,7 @@ make an object file, a @file{.o} file, from a Pascal source file, a
 @file{.p} file.  For example, if @file{foo.c} also exists, the implicit
 rule to make an object file from a C source file is used instead,
 because it appears before the Pascal rule in the list of predefined
-implicit rules (@pxref{Catalogue of Rules, , Catalogue of Implicit
+implicit rules (@pxref{Catalogue of Rules, , Catalogue of Built-In
 Rules}).
 
 If you do not want an implicit rule to be used for a target that has no
@@ -9024,7 +9040,7 @@ recipe, you can give that target an empty recipe by writing a semicolon
 (@pxref{Empty Recipes, ,Defining Empty Recipes}).
 
 @node Catalogue of Rules, Implicit Variables, Using Implicit, Implicit Rules
-@section Catalogue of Implicit Rules
+@section Catalogue of Built-In Rules
 @cindex implicit rule, predefined
 @cindex rule, implicit, predefined
 
@@ -11572,7 +11588,7 @@ functionality in that it will check out SCCS files for makefiles.
 
 @item
 Various new built-in implicit rules.
-@xref{Catalogue of Rules, ,Catalogue of Implicit Rules}.
+@xref{Catalogue of Rules, ,Catalogue of Built-In Rules}.
 
 @item
 Load dynamic objects which can modify the behavior of @code{make}.
@@ -11695,7 +11711,7 @@ special treatment.
 
 This appendix summarizes the directives, text manipulation functions,
 and special variables which GNU @code{make} understands.
-@xref{Special Targets}, @ref{Catalogue of Rules, ,Catalogue of Implicit Rules},
+@xref{Special Targets}, @ref{Catalogue of Rules, ,Catalogue of Built-In Rules},
 and @ref{Options Summary, ,Summary of Options},
 for other summaries.
 
index 047ad02e626f6a75bbdaccced0660f91fe0cbfa9..c46333e37c6feb133297b506648b71cff86a6103 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 9 October 2013
-@set UPDATED-MONTH October 2013
-@set EDITION 4.0
-@set VERSION 4.0
+@set UPDATED 5 October 2014
+@set UPDATED-MONTH October 2014
+@set EDITION 4.1
+@set VERSION 4.1
index 047ad02e626f6a75bbdaccced0660f91fe0cbfa9..c46333e37c6feb133297b506648b71cff86a6103 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 9 October 2013
-@set UPDATED-MONTH October 2013
-@set EDITION 4.0
-@set VERSION 4.0
+@set UPDATED 5 October 2014
+@set UPDATED-MONTH October 2014
+@set EDITION 4.1
+@set VERSION 4.1
index 4091463a04c1f3a248b8bc75261f033d8f21bcb8..fac2e8812c7cda552d83643fd6936fdef6856c5a 100644 (file)
@@ -1,5 +1,5 @@
 @echo off\r
-rem Copyright (C) 1998-2013 Free Software Foundation, Inc.\r
+rem Copyright (C) 1998-2014 Free Software Foundation, Inc.\r
 rem This file is part of GNU Make.\r
 rem\r
 rem GNU Make is free software; you can redistribute it and/or modify it under\r
index ba04e48430df10af9733184b1ca116ec3316c119..1c87db10a5b9c5e863b1ae36ff1a12f6034358e3 100644 (file)
--- a/expand.c
+++ b/expand.c
@@ -1,5 +1,5 @@
 /* Variable expansion functions for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -121,9 +121,9 @@ recursively_expand_for_file (struct variable *v, struct file *file)
     {
       if (!v->exp_count)
         /* Expanding V causes infinite recursion.  Lose.  */
-        fatal (*expanding_var,
-               _("Recursive variable '%s' references itself (eventually)"),
-               v->name);
+        OS (fatal, *expanding_var,
+            _("Recursive variable '%s' references itself (eventually)"),
+            v->name);
       --v->exp_count;
     }
 
@@ -266,7 +266,7 @@ variable_expand_string (char *line, const char *string, long length)
             end = strchr (beg, closeparen);
             if (end == 0)
               /* Unterminated variable reference.  */
-              fatal (*expanding_var, _("unterminated variable reference"));
+              O (fatal, *expanding_var, _("unterminated variable reference"));
             p1 = lindex (beg, end, '$');
             if (p1 != 0)
               {
@@ -377,7 +377,6 @@ variable_expand_string (char *line, const char *string, long length)
                  Look up the value of the variable.  */
                 o = reference_variable (o, beg, end - beg);
 
-          if (abeg)
             free (abeg);
           }
           break;
@@ -447,8 +446,7 @@ expand_argument (const char *str, const char *end)
 
   r = allocated_variable_expand (tmp);
 
-  if (alloc)
-    free (alloc);
+  free (alloc);
 
   return r;
 }
diff --git a/file.c b/file.c
index b209d880a9942190eb9d6439a94849a7be552ba2..e1a8e8008f16fe50c4c6ea71af457056c2968d63 100644 (file)
--- a/file.c
+++ b/file.c
@@ -1,5 +1,5 @@
 /* Target file management for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -261,22 +261,25 @@ rehash_file (struct file *from_file, const char *to_hname)
         to_file->cmds = from_file->cmds;
       else if (from_file->cmds != to_file->cmds)
         {
+          size_t l = strlen (from_file->name);
           /* We have two sets of commands.  We will go with the
              one given in the rule explicitly mentioning this name,
              but give a message to let the user know what's going on.  */
           if (to_file->cmds->fileinfo.filenm != 0)
             error (&from_file->cmds->fileinfo,
+                   l + strlen (to_file->cmds->fileinfo.filenm) + INTSTR_LENGTH,
                    _("Recipe was specified for file '%s' at %s:%lu,"),
                    from_file->name, to_file->cmds->fileinfo.filenm,
                    to_file->cmds->fileinfo.lineno);
           else
-            error (&from_file->cmds->fileinfo,
+            error (&from_file->cmds->fileinfo, l,
                    _("Recipe for file '%s' was found by implicit rule search,"),
                    from_file->name);
-          error (&from_file->cmds->fileinfo,
+          l += strlen (to_hname);
+          error (&from_file->cmds->fileinfo, l,
                  _("but '%s' is now considered the same file as '%s'."),
                  from_file->name, to_hname);
-          error (&from_file->cmds->fileinfo,
+          error (&from_file->cmds->fileinfo, l,
                  _("Recipe for '%s' will be ignored in favor of the one for '%s'."),
                  to_hname, from_file->name);
         }
@@ -297,13 +300,14 @@ rehash_file (struct file *from_file, const char *to_hname)
   merge_variable_set_lists (&to_file->variables, from_file->variables);
 
   if (to_file->double_colon && from_file->is_target && !from_file->double_colon)
-    fatal (NILF, _("can't rename single-colon '%s' to double-colon '%s'"),
-           from_file->name, to_hname);
+    OSS (fatal, NILF, _("can't rename single-colon '%s' to double-colon '%s'"),
+         from_file->name, to_hname);
   if (!to_file->double_colon  && from_file->double_colon)
     {
       if (to_file->is_target)
-        fatal (NILF, _("can't rename double-colon '%s' to single-colon '%s'"),
-               from_file->name, to_hname);
+        OSS (fatal, NILF,
+             _("can't rename double-colon '%s' to single-colon '%s'"),
+             from_file->name, to_hname);
       else
         to_file->double_colon = from_file->double_colon;
     }
@@ -393,7 +397,8 @@ remove_intermediates (int sig)
             if (!f->dontcare)
               {
                 if (sig)
-                  error (NILF, _("*** Deleting intermediate file '%s'"), f->name);
+                  OS (error, NILF,
+                      _("*** Deleting intermediate file '%s'"), f->name);
                 else
                   {
                     if (! doneany)
@@ -803,10 +808,11 @@ file_timestamp_cons (const char *fname, time_t stamp, long int ns)
          && product <= ts && ts <= ORDINARY_MTIME_MAX))
     {
       char buf[FILE_TIMESTAMP_PRINT_LEN_BOUND + 1];
+      const char *f = fname ? fname : _("Current time");
       ts = s <= OLD_MTIME ? ORDINARY_MTIME_MIN : ORDINARY_MTIME_MAX;
       file_timestamp_sprintf (buf, ts);
-      error (NILF, _("%s: Timestamp out of range; substituting %s"),
-             fname ? fname : _("Current time"), buf);
+      OSS (error, NILF,
+           _("%s: Timestamp out of range; substituting %s"), f, buf);
     }
 
   return ts;
@@ -1046,9 +1052,10 @@ print_file_data_base (void)
 /* Verify the integrity of the data base of files.  */
 
 #define VERIFY_CACHED(_p,_n) \
-    do{\
-        if (_p->_n && _p->_n[0] && !strcache_iscached (_p->_n)) \
-          error (NULL, _("%s: Field '%s' not cached: %s"), _p->name, # _n, _p->_n); \
+    do{                                                                       \
+        if (_p->_n && _p->_n[0] && !strcache_iscached (_p->_n))               \
+          error (NULL, strlen (_p->name) + CSTRLEN (# _n) + strlen (_p->_n),  \
+                 _("%s: Field '%s' not cached: %s"), _p->name, # _n, _p->_n); \
     }while(0)
 
 static void
index f4585512af7d0fc2bdb842f77b6c31f89aefd909..b8973db1942351ff8d3121d34fc567b26f9dc59f 100644 (file)
--- a/filedef.h
+++ b/filedef.h
@@ -1,5 +1,5 @@
 /* Definition of target file data structures for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -143,7 +143,7 @@ void print_file_data_base (void);
                                       & ((1 << FILE_TIMESTAMP_LO_BITS) - 1)))
 
 /* Upper bound on length of string "YYYY-MM-DD HH:MM:SS.NNNNNNNNN"
-   representing a file timestamp.  The upper bound is not necessarily 19,
+   representing a file timestamp.  The upper bound is not necessarily 29,
    since the year might be less than -999 or greater than 9999.
 
    Subtract one for the sign bit if in case file timestamps can be negative;
index ecce627f6e912a5eb8758b08475f11a4470433e4..169c3a17e8802f1c47bfb391293e9a2e5bfc67d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Builtin function expansion for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -519,8 +519,25 @@ func_notdir_suffix (char *o, char **argv, const char *funcname)
 
   int is_suffix = funcname[0] == 's';
   int is_notdir = !is_suffix;
-  int stop = MAP_PATHSEP | (is_suffix ? MAP_DOT : 0);
+  int stop = MAP_DIRSEP | (is_suffix ? MAP_DOT : 0);
+#ifdef VMS
+  /* For VMS list_iterator points to a comma separated list. To use the common
+     [find_]next_token, create a local copy and replace the commas with
+     spaces. Obviously, there is a problem if there is a ',' in the VMS filename
+     (can only happen on ODS5), the same problem as with spaces in filenames,
+     which seems to be present in make on all platforms. */
+  char *vms_list_iterator = alloca(strlen(list_iterator) + 1);
+  int i;
+  for (i = 0; list_iterator[i]; i++)
+    if (list_iterator[i] == ',')
+      vms_list_iterator[i] = ' ';
+    else
+      vms_list_iterator[i] = list_iterator[i];
+  vms_list_iterator[i] = list_iterator[i];
+  while ((p2 = find_next_token((const char**) &vms_list_iterator, &len)) != 0)
+#else
   while ((p2 = find_next_token (&list_iterator, &len)) != 0)
+#endif
     {
       const char *p = p2 + len - 1;
 
@@ -548,7 +565,11 @@ func_notdir_suffix (char *o, char **argv, const char *funcname)
 
       if (is_notdir || p >= p2)
         {
+#ifdef VMS
+          o = variable_buffer_output (o, ",", 1);
+#else
           o = variable_buffer_output (o, " ", 1);
+#endif
           doneany = 1;
         }
     }
@@ -572,8 +593,21 @@ func_basename_dir (char *o, char **argv, const char *funcname)
 
   int is_basename = funcname[0] == 'b';
   int is_dir = !is_basename;
-  int stop = MAP_PATHSEP | (is_basename ? MAP_DOT : 0) | MAP_NUL;
+  int stop = MAP_DIRSEP | (is_basename ? MAP_DOT : 0) | MAP_NUL;
+#ifdef VMS
+  /* As in func_notdir_suffix ... */
+  char *vms_p3 = alloca(strlen(p3) + 1);
+  int i;
+  for (i = 0; p3[i]; i++)
+    if (p3[i] == ',')
+      vms_p3[i] = ' ';
+    else
+      vms_p3[i] = p3[i];
+  vms_p3[i] = p3[i];
+  while ((p2 = find_next_token((const char**) &vms_p3, &len)) != 0)
+#else
   while ((p2 = find_next_token (&p3, &len)) != 0)
+#endif
     {
       const char *p = p2 + len - 1;
       while (p >= p2 && ! STOP_SET (*p, stop))
@@ -602,7 +636,11 @@ func_basename_dir (char *o, char **argv, const char *funcname)
         /* The entire name is the basename.  */
         o = variable_buffer_output (o, p2, len);
 
+#ifdef VMS
+      o = variable_buffer_output (o, ",", 1);
+#else
       o = variable_buffer_output (o, " ", 1);
+#endif
       doneany = 1;
     }
 
@@ -726,7 +764,7 @@ check_numeric (const char *s, const char *msg)
       break;
 
   if (s <= end || end - beg < 0)
-    fatal (*expanding_var, "%s: '%s'", msg, beg);
+    OSS (fatal, *expanding_var, "%s: '%s'", msg, beg);
 }
 
 
@@ -743,8 +781,8 @@ func_word (char *o, char **argv, const char *funcname UNUSED)
   i = atoi (argv[0]);
 
   if (i == 0)
-    fatal (*expanding_var,
-           _("first argument to 'word' function must be greater than 0"));
+    O (fatal, *expanding_var,
+       _("first argument to 'word' function must be greater than 0"));
 
   end_p = argv[1];
   while ((p = find_next_token (&end_p, 0)) != 0)
@@ -770,8 +808,8 @@ func_wordlist (char *o, char **argv, const char *funcname UNUSED)
 
   start = atoi (argv[0]);
   if (start < 1)
-    fatal (*expanding_var,
-           "invalid first argument to 'wordlist' function: '%d'", start);
+    ON (fatal, *expanding_var,
+        "invalid first argument to 'wordlist' function: '%d'", start);
 
   count = atoi (argv[1]) - start + 1;
 
@@ -1082,10 +1120,10 @@ func_error (char *o, char **argv, const char *funcname)
   switch (*funcname)
     {
     case 'e':
-      fatal (reading_file, "%s", msg);
+      OS (fatal, reading_file, "%s", msg);
 
     case 'w':
-      error (reading_file, "%s", msg);
+      OS (error, reading_file, "%s", msg);
       break;
 
     case 'i':
@@ -1094,7 +1132,7 @@ func_error (char *o, char **argv, const char *funcname)
       break;
 
     default:
-      fatal (*expanding_var, "Internal error: func_error: '%s'", funcname);
+      OS (fatal, *expanding_var, "Internal error: func_error: '%s'", funcname);
     }
 
   /* The warning function expands to the empty string.  */
@@ -1416,7 +1454,7 @@ int shell_function_pid = 0, shell_function_completed;
 
 
 int
-windows32_openpipe (int *pipedes, pid_t *pid_p, char **command_argv, char **envp)
+windows32_openpipe (int *pipedes, int errfd, pid_t *pid_p, char **command_argv, char **envp)
 {
   SECURITY_ATTRIBUTES saAttr;
   HANDLE hIn = INVALID_HANDLE_VALUE;
@@ -1457,11 +1495,12 @@ windows32_openpipe (int *pipedes, pid_t *pid_p, char **command_argv, char **envp
         }
       if (hIn == INVALID_HANDLE_VALUE)
         {
-          error (NILF, _("windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"), e);
+          ON (error, NILF,
+              _("windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"), e);
           return -1;
         }
     }
-  tmpErr = GetStdHandle (STD_ERROR_HANDLE);
+  tmpErr = (HANDLE)_get_osfhandle (errfd);
   if (DuplicateHandle (GetCurrentProcess (), tmpErr,
                        GetCurrentProcess (), &hErr,
                        0, TRUE, DUPLICATE_SAME_ACCESS) == FALSE)
@@ -1480,14 +1519,15 @@ windows32_openpipe (int *pipedes, pid_t *pid_p, char **command_argv, char **envp
         }
       if (hErr == INVALID_HANDLE_VALUE)
         {
-          error (NILF, _("windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"), e);
+          ON (error, NILF,
+              _("windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"), e);
           return -1;
         }
     }
 
   if (! CreatePipe (&hChildOutRd, &hChildOutWr, &saAttr, 0))
     {
-      error (NILF, _("CreatePipe() failed (e=%ld)\n"), GetLastError());
+      ON (error, NILF, _("CreatePipe() failed (e=%ld)\n"), GetLastError());
       return -1;
     }
 
@@ -1495,7 +1535,7 @@ windows32_openpipe (int *pipedes, pid_t *pid_p, char **command_argv, char **envp
 
   if (!hProcess)
     {
-      error (NILF, _("windows32_openpipe(): process_init_fd() failed\n"));
+      O (error, NILF, _("windows32_openpipe(): process_init_fd() failed\n"));
       return -1;
     }
 
@@ -1608,7 +1648,7 @@ char *
 func_shell_base (char *o, char **argv, int trim_newlines)
 {
   fprintf (stderr, "This platform does not support shell\n");
-  die (EXIT_FAILURE);
+  die (MAKE_TROUBLE);
   return NULL;
 }
 
@@ -1689,7 +1729,7 @@ func_shell_base (char *o, char **argv, int trim_newlines)
       return o;
     }
 #elif defined(WINDOWS32)
-  windows32_openpipe (pipedes, &pid, command_argv, envp);
+  windows32_openpipe (pipedes, errfd, &pid, command_argv, envp);
   /* Restore the value of just_print_flag.  */
   just_print_flag = j_p_f;
 
@@ -1950,7 +1990,7 @@ func_not (char *o, char **argv, char *funcname UNUSED)
 
 #ifdef HAVE_DOS_PATHS
 # ifdef __CYGWIN__
-#  define IS_ABSOLUTE(n) ((n[0] && n[1] == ':') || STOP_SET (n[0], MAP_PATHSEP))
+#  define IS_ABSOLUTE(n) ((n[0] && n[1] == ':') || STOP_SET (n[0], MAP_DIRSEP))
 # else
 #  define IS_ABSOLUTE(n) (n[0] && n[1] == ':')
 # endif
@@ -1984,9 +2024,9 @@ abspath (const char *name, char *apath)
       strcpy (apath, starting_directory);
 
 #ifdef HAVE_DOS_PATHS
-      if (STOP_SET (name[0], MAP_PATHSEP))
+      if (STOP_SET (name[0], MAP_DIRSEP))
         {
-          if (STOP_SET (name[1], MAP_PATHSEP))
+          if (STOP_SET (name[1], MAP_DIRSEP))
             {
               /* A UNC.  Don't prepend a drive letter.  */
               apath[0] = name[0];
@@ -2006,8 +2046,8 @@ abspath (const char *name, char *apath)
   else
     {
 #if defined(__CYGWIN__) && defined(HAVE_DOS_PATHS)
-      if (STOP_SET (name[0], MAP_PATHSEP))
-       root_len = 1;
+      if (STOP_SET (name[0], MAP_DIRSEP))
+        root_len = 1;
 #endif
       strncpy (apath, name, root_len);
       apath[root_len] = '\0';
@@ -2015,7 +2055,7 @@ abspath (const char *name, char *apath)
       /* Get past the root, since we already copied it.  */
       name += root_len;
 #ifdef HAVE_DOS_PATHS
-      if (! STOP_SET (apath[root_len - 1], MAP_PATHSEP))
+      if (! STOP_SET (apath[root_len - 1], MAP_DIRSEP))
         {
           /* Convert d:foo into d:./foo and increase root_len.  */
           apath[2] = '.';
@@ -2035,11 +2075,11 @@ abspath (const char *name, char *apath)
       unsigned long len;
 
       /* Skip sequence of multiple path-separators.  */
-      while (STOP_SET (*start, MAP_PATHSEP))
+      while (STOP_SET (*start, MAP_DIRSEP))
         ++start;
 
       /* Find end of path component.  */
-      for (end = start; ! STOP_SET (*end, MAP_PATHSEP|MAP_NUL); ++end)
+      for (end = start; ! STOP_SET (*end, MAP_DIRSEP|MAP_NUL); ++end)
         ;
 
       len = end - start;
@@ -2052,12 +2092,12 @@ abspath (const char *name, char *apath)
         {
           /* Back up to previous component, ignore if at root already.  */
           if (dest > apath + root_len)
-            for (--dest; ! STOP_SET (dest[-1], MAP_PATHSEP); --dest)
+            for (--dest; ! STOP_SET (dest[-1], MAP_DIRSEP); --dest)
               ;
         }
       else
         {
-          if (! STOP_SET (dest[-1], MAP_PATHSEP))
+          if (! STOP_SET (dest[-1], MAP_DIRSEP))
             *dest++ = '/';
 
           if (dest + len >= apath_limit)
@@ -2070,7 +2110,7 @@ abspath (const char *name, char *apath)
     }
 
   /* Unless it is root strip trailing separator.  */
-  if (dest > apath + root_len && STOP_SET (dest[-1], MAP_PATHSEP))
+  if (dest > apath + root_len && STOP_SET (dest[-1], MAP_DIRSEP))
     --dest;
 
   *dest = '\0';
@@ -2148,20 +2188,25 @@ func_file (char *o, char **argv, const char *funcname UNUSED)
 
       fp = fopen (fn, mode);
       if (fp == NULL)
-        fatal (reading_file, _("open: %s: %s"), fn, strerror (errno));
-      else
+        {
+          const char *err = strerror (errno);
+          OSS (fatal, reading_file, _("open: %s: %s"), fn, err);
+        }
+      if (argv[1])
         {
           int l = strlen (argv[1]);
-          int nl = (l == 0 || argv[1][l-1] != '\n');
+          int nl = l == 0 || argv[1][l-1] != '\n';
 
           if (fputs (argv[1], fp) == EOF || (nl && fputc ('\n', fp) == EOF))
-            fatal (reading_file, _("write: %s: %s"), fn, strerror (errno));
-
-          fclose (fp);
+            {
+              const char *err = strerror (errno);
+              OSS (fatal, reading_file, _("write: %s: %s"), fn, err);
+            }
         }
+      fclose (fp);
     }
   else
-    fatal (reading_file, _("Invalid file operation: %s"), fn);
+    OS (fatal, reading_file, _("Invalid file operation: %s"), fn);
 
   return o;
 }
@@ -2275,7 +2320,7 @@ expand_builtin_function (char *o, int argc, char **argv,
   char *p;
 
   if (argc < (int)entry_p->minimum_args)
-    fatal (*expanding_var,
+    fatal (*expanding_var, strlen (entry_p->name),
            _("insufficient number of arguments (%d) to function '%s'"),
            argc, entry_p->name);
 
@@ -2287,8 +2332,8 @@ expand_builtin_function (char *o, int argc, char **argv,
     return o;
 
   if (!entry_p->fptr.func_ptr)
-    fatal (*expanding_var,
-           _("unimplemented on this platform: function '%s'"), entry_p->name);
+    OS (fatal, *expanding_var,
+        _("unimplemented on this platform: function '%s'"), entry_p->name);
 
   if (!entry_p->alloc_fn)
     return entry_p->fptr.func_ptr (o, argv, entry_p->name);
@@ -2350,7 +2395,7 @@ handle_function (char **op, const char **stringp)
       break;
 
   if (count >= 0)
-    fatal (*expanding_var,
+    fatal (*expanding_var, strlen (entry_p->name),
            _("unterminated call to function '%s': missing '%c'"),
            entry_p->name, closeparen);
 
@@ -2418,7 +2463,7 @@ handle_function (char **op, const char **stringp)
   if (entry_p->expand_args)
     for (argvp=argv; *argvp != 0; ++argvp)
       free (*argvp);
-  else if (abeg)
+  else
     free (abeg);
 
   return 1;
@@ -2543,17 +2588,17 @@ define_new_function (const gmk_floc *flocp, const char *name,
   len = e - name;
 
   if (len == 0)
-    fatal (flocp, _("Empty function name\n"));
+    O (fatal, flocp, _("Empty function name"));
   if (*name == '.' || *e != '\0')
-    fatal (flocp, _("Invalid function name: %s\n"), name);
+    OS (fatal, flocp, _("Invalid function name: %s"), name);
   if (len > 255)
-    fatal (flocp, _("Function name too long: %s\n"), name);
+    OS (fatal, flocp, _("Function name too long: %s"), name);
   if (min > 255)
-    fatal (flocp, _("Invalid minimum argument count (%d) for function %s\n"),
-           min, name);
+    ONS (fatal, flocp,
+         _("Invalid minimum argument count (%d) for function %s"), min, name);
   if (max > 255 || (max && max < min))
-    fatal (flocp, _("Invalid maximum argument count (%d) for function %s\n"),
-           max, name);
+    ONS (fatal, flocp,
+         _("Invalid maximum argument count (%d) for function %s"), max, name);
 
   ent = xmalloc (sizeof (struct function_table_entry));
   ent->name = name;
index 0f5d40002859bf0c2ce8714d3fb1f01478e7b053..a755b6d80ae837cc075bfa42f18e49199614f215 100644 (file)
@@ -1,5 +1,5 @@
 /* Get the system load averages.
-Copyright (C) 1985-2013 Free Software Foundation, Inc.
+Copyright (C) 1985-2014 Free Software Foundation, Inc.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
 terms of the GNU General Public License as published by the Free Software
index 5a40b6cfe824ba18b260e003dc7a7935d2c44c76..a8051fcc496862b8cd7cd84bdcd86c78a5e72d1b 100644 (file)
--- a/getopt.c
+++ b/getopt.c
@@ -3,7 +3,7 @@ NOTE: getopt is now part of the C library, so if you don't know what
 "Keep this file name-space clean" means, talk to drepper@gnu.org
 before changing it!
 
-Copyright (C) 1987-2013 Free Software Foundation, Inc.
+Copyright (C) 1987-2014 Free Software Foundation, Inc.
 
 NOTE: The canonical source of this file is maintained with the GNU C Library.
 Bugs can be reported to bug-glibc@gnu.org.
index cb8865ecdf44b37912ece79b23a7857193c63cef..adef9a5331267d7210ab16352b623ac5cd723287 100644 (file)
--- a/getopt.h
+++ b/getopt.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-Copyright (C) 1989-2013 Free Software Foundation, Inc.
+Copyright (C) 1989-2014 Free Software Foundation, Inc.
 
 NOTE: The canonical source of this file is maintained with the GNU C Library.
 Bugs can be reported to bug-glibc@gnu.org.
index 51bea51469c9dc3010ce4ce8f63c5a4680eb4074..42dea2238493663a0a2f1f8009fbb3c0bec58084 100644 (file)
--- a/getopt1.c
+++ b/getopt1.c
@@ -1,5 +1,5 @@
 /* getopt_long and getopt_long_only entry points for GNU getopt.
-Copyright (C) 1987-1994, 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1987-1994, 1996-2014 Free Software Foundation, Inc.
 
 NOTE: The canonical source of this file is maintained with the GNU C Library.
 Bugs can be reported to bug-glibc@gnu.org.
index f1156b9fe0e8e169cb69cf9a8a20b4a6e62f0ac3..c2030ff50a07179b8d3c328395e997a539d72987 100644 (file)
--- a/gettext.h
+++ b/gettext.h
@@ -1,5 +1,5 @@
 /* Convenience header for conditional use of GNU <libintl.h>.
-Copyright (C) 1995-2013 Free Software Foundation, Inc.
+Copyright (C) 1995-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 8f0739c2b3516801c1a01751a5293991172465f0..c543c850a60c0ce3ed332135316e3acd96374838 100644 (file)
@@ -1,3 +1,9 @@
+2013-10-20  Paul Smith  <psmith@gnu.org>
+
+       * glob.c (glob): Cherry-pick a471e96a5352a5f0bde6d32dd36d33524811a2b1
+       from git://sourceware.org/git/glibc.git to fix SV 18123,
+       https://sourceware.org/bugzilla/show_bug.cgi?id=10278
+
 2008-09-28  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
 
        * glob.c (my_realloc) [__DJGPP__]: Don't define, and don't
index 3f79418f613c12b5d5152fd7a8a3e2fcb1eb5f4d..7a638611a6e1d55d2c500ec12dcc90bf07c35461 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -70,8 +97,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = glob
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in COPYING.LIB \
-       ChangeLog
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/config/depcomp COPYING.LIB ChangeLog
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
        $(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
@@ -91,14 +118,24 @@ LIBRARIES = $(noinst_LIBRARIES)
 ARFLAGS = cru
 AM_V_AR = $(am__v_AR_@AM_V@)
 am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_AR_0 = @echo "  AR      " $@;
+am__v_AR_1 = 
 libglob_a_AR = $(AR) $(ARFLAGS)
 libglob_a_LIBADD =
 am_libglob_a_OBJECTS = glob.$(OBJEXT) fnmatch.$(OBJEXT)
 libglob_a_OBJECTS = $(am_libglob_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -107,15 +144,14 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libglob_a_SOURCES)
 DIST_SOURCES = $(libglob_a_SOURCES)
 am__can_run_installinfo = \
@@ -123,6 +159,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -209,6 +262,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
@@ -300,6 +354,7 @@ $(am__aclocal_m4_deps):
 
 clean-noinstLIBRARIES:
        -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
 libglob.a: $(libglob_a_OBJECTS) $(libglob_a_DEPENDENCIES) $(EXTRA_libglob_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libglob.a
        $(AM_V_AR)$(libglob_a_AR) libglob.a $(libglob_a_OBJECTS) $(libglob_a_LIBADD)
@@ -319,35 +374,24 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -359,15 +403,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -376,6 +416,21 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -515,17 +570,17 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-noinstLIBRARIES ctags distclean distclean-compile \
-       distclean-generic distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+       distclean-compile distclean-generic distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
        uninstall-am
 
 
index 1a1920519b17f2034a1d855c57f00e818e5b796e..f3911bcd861f0b254875bbd19465968a925dd27e 100644 (file)
@@ -377,6 +377,11 @@ glob (pattern, flags, errfunc, pglob)
       return -1;
     }
 
+  /* POSIX requires all slashes to be matched.  This means that with
+     a trailing slash we must match only directories.  */
+  if (pattern[0] && pattern[strlen (pattern) - 1] == '/')
+    flags |= GLOB_ONLYDIR;
+
   if (flags & GLOB_BRACE)
     {
       const char *begin = strchr (pattern, '{');
index 89db652e17565747fd264b4a1089dd8349cd339f..fa19d3c454c509030efaaaf95246df281641f759 100644 (file)
@@ -1,5 +1,5 @@
 ;; Contents of the (gnu make) Guile module
-;; Copyright (C) 2011-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2014 Free Software Foundation, Inc.
 ;; This file is part of GNU Make.
 ;;
 ;; GNU Make is free software; you can redistribute it and/or modify it under
index 94d725e83b5fe38e67cd31c8363be2660eecf93f..fd0b3a49f9adcb723e35e899d7ddd64127547c86 100644 (file)
--- a/gnumake.h
+++ b/gnumake.h
@@ -1,7 +1,7 @@
 /* External interfaces usable by dynamic objects loaded into GNU Make.
    --THIS API IS A "TECHNOLOGY PREVIEW" ONLY.  IT IS NOT A STABLE INTERFACE--
 
-Copyright (C) 2013 Free Software Foundation, Inc.
+Copyright (C) 2013-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/guile.c b/guile.c
index 499585cfa7913baa09aa1565ea9aa05ff2b8d152..7c9a01579bbc079bdab578261cb9d9e08fd138fe 100644 (file)
--- a/guile.c
+++ b/guile.c
@@ -1,5 +1,5 @@
 /* GNU Guile interface for GNU Make.
-Copyright (C) 2011-2013 Free Software Foundation, Inc.
+Copyright (C) 2011-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -15,6 +15,9 @@ You should have received a copy of the GNU General Public License along with
 this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "makeint.h"
+
+#ifdef HAVE_GUILE
+
 #include "gnumake.h"
 
 #include "debug.h"
@@ -144,3 +147,13 @@ guile_gmake_setup (const gmk_floc *flocp UNUSED)
 
   return 1;
 }
+
+#else
+
+int
+guile_gmake_setup (const gmk_floc *flocp UNUSED)
+{
+  return 1;
+}
+
+#endif
diff --git a/hash.c b/hash.c
index ca2d02d66702b589c2823362447c0ca40d039fc9..7b4b2715cf57a7f936babba22e79da2e416b8662 100644 (file)
--- a/hash.c
+++ b/hash.c
@@ -48,7 +48,7 @@ hash_init (struct hash_table *ht, unsigned long size,
     {
       fprintf (stderr, _("can't allocate %lu bytes for hash table: memory exhausted"),
               ht->ht_size * (unsigned long) sizeof (struct token *));
-      exit (1);
+      exit (MAKE_TROUBLE);
     }
 
   ht->ht_capacity = ht->ht_size - (ht->ht_size / 16); /* 93.75% loading factor */
index 5fedec08a0b7da2b0a549c809b4d31c6faf6d8e2..8e1d5416e5f379bd95c0e4534f4f3d083ab08e33 100644 (file)
@@ -1,5 +1,5 @@
 /* Implicit rule searching for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/job.c b/job.c
index febfac0cd5f19c471668ca6a87fba99f3c1f5adc..2989249063cba393004cf4d853d4ba021340158d 100644 (file)
--- a/job.c
+++ b/job.c
@@ -1,5 +1,5 @@
 /* Job execution and handling for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -31,14 +31,14 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifdef WINDOWS32
 #include <windows.h>
 
-char *default_shell = "sh.exe";
+const char *default_shell = "sh.exe";
 int no_default_sh_exe = 1;
 int batch_mode_shell = 1;
 HANDLE main_thread;
 
 #elif defined (_AMIGA)
 
-char default_shell[] = "";
+const char *default_shell = "";
 extern int MyExecute (char **);
 int batch_mode_shell = 0;
 
@@ -48,28 +48,28 @@ int batch_mode_shell = 0;
    says so.  It is without an explicit path so we get a chance
    to search the $PATH for it (since MSDOS doesn't have standard
    directories we could trust).  */
-char *default_shell = "command.com";
+const char *default_shell = "command.com";
 int batch_mode_shell = 0;
 
 #elif defined (__EMX__)
 
-char *default_shell = "/bin/sh";
+const char *default_shell = "/bin/sh";
 int batch_mode_shell = 0;
 
 #elif defined (VMS)
 
 # include <descrip.h>
-char default_shell[] = "";
+const char *default_shell = "";
 int batch_mode_shell = 0;
 
 #elif defined (__riscos__)
 
-char default_shell[] = "";
+const char *default_shell = "";
 int batch_mode_shell = 0;
 
 #else
 
-char default_shell[] = "/bin/sh";
+const char *default_shell = "/bin/sh";
 int batch_mode_shell = 0;
 
 #endif
@@ -359,7 +359,7 @@ create_batch_file (char const *base, int unixy, int *fd)
   *fd = -1;
   if (error_string == NULL)
     error_string = _("Cannot create a temporary file\n");
-  fatal (NILF, error_string);
+  O (fatal, NILF, error_string);
 
   /* not reached */
   return NULL;
@@ -474,6 +474,7 @@ child_error (struct child *child,
   const struct file *f = child->file;
   const gmk_floc *flocp = &f->cmds->fileinfo;
   const char *nm;
+  size_t l = strlen (f->name);
 
   if (ignored && silent_flag)
     return;
@@ -498,7 +499,10 @@ child_error (struct child *child,
 
   OUTPUT_SET (&child->output);
 
-  message (0, _("%s: recipe for target '%s' failed"), nm, f->name);
+  message (0, l + strlen (nm),
+           _("%s: recipe for target '%s' failed"), nm, f->name);
+
+  l += strlen (pre) + strlen (post);
 
 #ifdef VMS
   if ((exit_code & 1) != 0)
@@ -506,15 +510,23 @@ child_error (struct child *child,
       OUTPUT_UNSET ();
       return;
     }
-
-  error (NILF, _("%s[%s] Error 0x%x%s"), pre, f->name, exit_code, post);
+  /* Check for a Posix compatible VMS style exit code:
+     decode and print the Posix exit code */
+  if ((exit_code & 0x35a000) == 0x35a000)
+    error(NILF, l + INTSTR_LENGTH, _("%s[%s] Error %d%s"), pre, f->name,
+        ((exit_code & 0x7f8) >> 3), post);
+  else
+    error(NILF, l + INTSTR_LENGTH, _("%s[%s] Error 0x%x%s"), pre, f->name,
+        exit_code, post);
 #else
   if (exit_sig == 0)
-    error (NILF, _("%s[%s] Error %d%s"), pre, f->name, exit_code, post);
+    error (NILF, l + INTSTR_LENGTH,
+           _("%s[%s] Error %d%s"), pre, f->name, exit_code, post);
   else
     {
       const char *s = strsignal (exit_sig);
-      error (NILF, _("%s[%s] %s%s%s"), pre, f->name, s, dump, post);
+      error (NILF, l + strlen (s) + strlen (dump),
+             _("%s[%s] %s%s%s"), pre, f->name, s, dump, post);
     }
 #endif /* VMS */
 
@@ -606,7 +618,7 @@ reap_children (int block, int err)
              Only print this message once no matter how many jobs are left.  */
           fflush (stdout);
           if (!printed)
-            error (NILF, _("*** Waiting for unfinished jobs...."));
+            O (error, NILF, _("*** Waiting for unfinished jobs...."));
           printed = 1;
         }
 
@@ -975,7 +987,7 @@ reap_children (int block, int err)
       if (!err && child_failed && !dontcare && !keep_going_flag &&
           /* fatal_error_signal will die with the right signal.  */
           !handling_fatal_signal)
-        die (2);
+        die (MAKE_FAILURE);
 
       /* Only block for one child.  */
       block = 0;
@@ -992,8 +1004,8 @@ free_child (struct child *child)
   output_close (&child->output);
 
   if (!jobserver_tokens)
-    fatal (NILF, "INTERNAL: Freeing child %p (%s) but no tokens left!\n",
-           child, child->file->name);
+    ONS (fatal, NILF, "INTERNAL: Freeing child %p (%s) but no tokens left!\n",
+         child, child->file->name);
 
   /* If we're using the jobserver and this child is not the only outstanding
      job, put a token back into the pipe for it.  */
@@ -1004,8 +1016,9 @@ free_child (struct child *child)
       if (! release_jobserver_semaphore ())
         {
           DWORD err = GetLastError ();
-          fatal (NILF, _("release jobserver semaphore: (Error %ld: %s)"),
-                 err, map_windows32_error_to_string (err));
+          const char *estr = map_windows32_error_to_string (err);
+          ONS (fatal, NILF,
+               _("release jobserver semaphore: (Error %ld: %s)"), err, estr);
         }
 
       DB (DB_JOBS, (_("Released token for child %p (%s).\n"), child, child->file->name));
@@ -1108,10 +1121,20 @@ set_child_handler_action_flags (int set_handler, int set_alarm)
       /* If we're about to enter the read(), set an alarm to wake up in a
          second so we can check if the load has dropped and we can start more
          work.  On the way out, turn off the alarm and set SIG_DFL.  */
-      alarm (set_handler ? 1 : 0);
-      sa.sa_handler = set_handler ? job_noop : SIG_DFL;
-      sa.sa_flags = 0;
-      sigaction (SIGALRM, &sa, NULL);
+      if (set_handler)
+        {
+          sa.sa_handler = job_noop;
+          sa.sa_flags = 0;
+          sigaction (SIGALRM, &sa, NULL);
+          alarm (1);
+        }
+      else
+        {
+          alarm (0);
+          sa.sa_handler = SIG_DFL;
+          sa.sa_flags = 0;
+          sigaction (SIGALRM, &sa, NULL);
+        }
     }
 #endif
 }
@@ -1137,6 +1160,8 @@ start_job_command (struct child *child)
   char *argv;
 #else
   char **argv;
+  int outfd = FD_STDOUT;
+  int errfd = FD_STDERR;
 #endif
 
   /* If we have a completely empty commandset, stop now.  */
@@ -1194,6 +1219,30 @@ start_job_command (struct child *child)
     char *end = 0;
 #ifdef VMS
     argv = p;
+    /* Although construct_command_argv contains some code for VMS, it was/is
+       not called/used.  Please note, for VMS argv is a string (not an array
+       of strings) which contains the complete command line, which for
+       multi-line variables still includes the newlines.  So detect newlines
+       and set 'end' (which is used for child->command_ptr) instead of
+       (re-)writing construct_command_argv */
+    if (!one_shell)
+      {
+        char *s = p;
+        int instring = 0;
+        while (*s)
+          {
+            if (*s == '"')
+              instring = !instring;
+            else if (*s == '\\' && !instring && *(s+1) != 0)
+              s++;
+            else if (*s == '\n' && !instring)
+              {
+                end = s;
+                break;
+              }
+            ++s;
+          }
+      }
 #else
     argv = construct_command_argv (p, &end, child->file,
                                    child->file->cmds->lines_flags[child->command_line - 1],
@@ -1277,7 +1326,7 @@ start_job_command (struct child *child)
   /* Print the command if appropriate.  */
   if (just_print_flag || trace_flag
       || (!(flags & COMMANDS_SILENT) && !silent_flag))
-    message (0, "%s", p);
+    OS (message, 0, "%s", p);
 
   /* Tell update_goal_chain that a command has been started on behalf of
      this target.  It is important that this happens here and not in
@@ -1426,6 +1475,16 @@ start_job_command (struct child *child)
 
       parent_environ = environ;
 
+#ifndef NO_OUTPUT_SYNC
+      /* Divert child output if output_sync in use.  */
+      if (child->output.syncout)
+        {
+          if (child->output.out >= 0)
+            outfd = child->output.out;
+          if (child->output.err >= 0)
+            errfd = child->output.err;
+        }
+#endif
 # ifdef __EMX__
       /* If we aren't running a recursive command and we have a jobserver
          pipe, close it before exec'ing.  */
@@ -1439,7 +1498,7 @@ start_job_command (struct child *child)
 
       /* Never use fork()/exec() here! Use spawn() instead in exec_command() */
       child->pid = child_execute_job (child->good_stdin ? FD_STDIN : bad_stdin,
-                                      FD_STDOUT, FD_STDERR,
+                                      outfd, errfd,
                                       argv, child->environment);
       if (child->pid < 0)
         {
@@ -1464,9 +1523,6 @@ start_job_command (struct child *child)
       environ = parent_environ; /* Restore value child may have clobbered.  */
       if (child->pid == 0)
         {
-          int outfd = FD_STDOUT;
-          int errfd = FD_STDERR;
-
           /* We are the child side.  */
           unblock_sigs ();
 
@@ -1485,16 +1541,6 @@ start_job_command (struct child *child)
           if (stack_limit.rlim_cur)
             setrlimit (RLIMIT_STACK, &stack_limit);
 #endif
-
-          /* Divert child output if output_sync in use.  */
-          if (child->output.syncout)
-            {
-              if (child->output.out >= 0)
-                outfd = child->output.out;
-              if (child->output.err >= 0)
-                errfd = child->output.err;
-            }
-
           child_execute_job (child->good_stdin ? FD_STDIN : bad_stdin,
                              outfd, errfd, argv, child->environment);
         }
@@ -1593,14 +1639,18 @@ start_job_command (struct child *child)
       sync_Path_environment ();
 
 #ifndef NO_OUTPUT_SYNC
-          /* Divert child output if output_sync in use.  Don't capture
-             recursive make output unless we are synchronizing "make" mode.  */
-          if (child->output.syncout)
-            hPID = process_easy (argv, child->environment,
-                                 child->output.out, child->output.err);
-          else
+      /* Divert child output if output_sync in use.  */
+      if (child->output.syncout)
+        {
+          if (child->output.out >= 0)
+            outfd = child->output.out;
+          if (child->output.err >= 0)
+            errfd = child->output.err;
+        }
+#else
+      outfd = errfd = -1;
 #endif
-            hPID = process_easy (argv, child->environment, -1, -1);
+      hPID = process_easy (argv, child->environment, outfd, errfd);
 
       if (hPID != INVALID_HANDLE_VALUE)
         child->pid = (pid_t) hPID;
@@ -1940,7 +1990,7 @@ new_job (struct file *file)
         /* There must be at least one child already, or we have no business
            waiting for a token. */
         if (!children)
-          fatal (NILF, "INTERNAL: no children as we go to sleep on read\n");
+          O (fatal, NILF, "INTERNAL: no children as we go to sleep on read\n");
 
 #ifdef WINDOWS32
         /* On Windows we simply wait for the jobserver semaphore to become
@@ -1950,8 +2000,10 @@ new_job (struct file *file)
         if (got_token < 0)
           {
             DWORD err = GetLastError ();
-            fatal (NILF, _("semaphore or child process wait: (Error %ld: %s)"),
-                   err, map_windows32_error_to_string (err));
+            const char *estr = map_windows32_error_to_string (err);
+            ONS (fatal, NILF,
+                 _("semaphore or child process wait: (Error %ld: %s)"),
+                 err, estr);
           }
 #else
         /* Set interruptible system calls, and read() for a job token.  */
@@ -2000,10 +2052,11 @@ new_job (struct file *file)
         }
 
       if (newer[0] == '\0')
-        message (0, _("%s: target '%s' does not exist"), nm, c->file->name);
+        OSS (message, 0,
+             _("%s: target '%s' does not exist"), nm, c->file->name);
       else
-        message (0, _("%s: update target '%s' due to: %s"), nm,
-                 c->file->name, newer);
+        OSSS (message, 0,
+              _("%s: update target '%s' due to: %s"), nm, c->file->name, newer);
 
       free (newer);
     }
@@ -2114,8 +2167,8 @@ load_too_high (void)
         {
           if (errno == 0)
             /* An errno value of zero means getloadavg is just unsupported.  */
-            error (NILF,
-                   _("cannot enforce load limits on this operating system"));
+            O (error, NILF,
+               _("cannot enforce load limits on this operating system"));
           else
             perror_with_name (_("cannot enforce load limit: "), "getloadavg");
         }
@@ -2196,7 +2249,7 @@ child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
     {
       save_stdin = dup (FD_STDIN);
       if (save_stdin < 0)
-        fatal (NILF, _("no more file handles: could not duplicate stdin\n"));
+        O (fatal, NILF, _("no more file handles: could not duplicate stdin\n"));
       CLOSE_ON_EXEC (save_stdin);
 
       dup2 (stdin_fd, FD_STDIN);
@@ -2207,7 +2260,8 @@ child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
     {
       save_stdout = dup (FD_STDOUT);
       if (save_stdout < 0)
-        fatal (NILF, _("no more file handles: could not duplicate stdout\n"));
+        O (fatal, NILF,
+           _("no more file handles: could not duplicate stdout\n"));
       CLOSE_ON_EXEC (save_stdout);
 
       dup2 (stdout_fd, FD_STDOUT);
@@ -2220,7 +2274,8 @@ child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
         {
           save_stderr = dup (FD_STDERR);
           if (save_stderr < 0)
-            fatal (NILF, _("no more file handles: could not duplicate stderr\n"));
+            O (fatal, NILF,
+               _("no more file handles: could not duplicate stderr\n"));
           CLOSE_ON_EXEC (save_stderr);
         }
 
@@ -2235,7 +2290,7 @@ child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
   if (save_stdin >= 0)
     {
       if (dup2 (save_stdin, FD_STDIN) != FD_STDIN)
-        fatal (NILF, _("Could not restore stdin\n"));
+        O (fatal, NILF, _("Could not restore stdin\n"));
       else
         close (save_stdin);
     }
@@ -2243,7 +2298,7 @@ child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
   if (save_stdout >= 0)
     {
       if (dup2 (save_stdout, FD_STDOUT) != FD_STDOUT)
-        fatal (NILF, _("Could not restore stdout\n"));
+        O (fatal, NILF, _("Could not restore stdout\n"));
       else
         close (save_stdout);
     }
@@ -2251,7 +2306,7 @@ child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
   if (save_stderr >= 0)
     {
       if (dup2 (save_stderr, FD_STDERR) != FD_STDERR)
-        fatal (NILF, _("Could not restore stderr\n"));
+        O (fatal, NILF, _("Could not restore stderr\n"));
       else
         close (save_stderr);
     }
@@ -2400,13 +2455,13 @@ exec_command (char **argv, char **envp)
   switch (errno)
     {
     case ENOENT:
-      error (NILF, _("%s: Command not found"), argv[0]);
+      OS (error, NILF, _("%s: Command not found"), argv[0]);
       break;
     case ENOEXEC:
       {
         /* The file is not executable.  Try it as a shell script.  */
         extern char *getenv ();
-        char *shell;
+        const char *shell;
         char **new_argv;
         int argc;
         int i=1;
@@ -2434,7 +2489,7 @@ exec_command (char **argv, char **envp)
 # endif
 
         new_argv = alloca ((1 + argc + 1) * sizeof (char *));
-        new_argv[0] = shell;
+        new_argv[0] = (char *)shell;
 
 # ifdef __EMX__
         if (!unixy_shell)
@@ -2460,7 +2515,7 @@ exec_command (char **argv, char **envp)
         execvp (shell, new_argv);
 # endif
         if (errno == ENOENT)
-          error (NILF, _("%s: Shell program not found"), shell);
+          OS (error, NILF, _("%s: Shell program not found"), shell);
         else
           perror_with_name ("execvp: ", shell);
         break;
@@ -2469,7 +2524,7 @@ exec_command (char **argv, char **envp)
 # ifdef __EMX__
     case EINVAL:
       /* this nasty error was driving me nuts :-( */
-      error (NILF, _("spawnvpe: environment space might be exhausted"));
+      O (error, NILF, _("spawnvpe: environment space might be exhausted"));
       /* FALLTHROUGH */
 # endif
 
@@ -2487,7 +2542,8 @@ exec_command (char **argv, char **envp)
 #endif /* !VMS */
 }
 #else /* On Amiga */
-void exec_command (char **argv)
+void
+exec_command (char **argv)
 {
   MyExecute (argv);
 }
@@ -2504,7 +2560,7 @@ void clean_tmp (void)
    avoid using a shell.  This routine handles only ' quoting, and " quoting
    when no backslash, $ or ' characters are seen in the quotes.  Starting
    quotes may be escaped with a backslash.  If any of the characters in
-   sh_chars[] is seen, or any of the builtin commands listed in sh_cmds[]
+   sh_chars is seen, or any of the builtin commands listed in sh_cmds
    is the first word of a line, the shell is used.
 
    If RESTP is not NULL, *RESTP is set to point to the first newline in LINE.
@@ -2519,9 +2575,9 @@ void clean_tmp (void)
    is overridden.  */
 
 static char **
-construct_command_argv_internal (char *line, char **restp, char *shell,
-                                 char *shellflags, char *ifs, int flags,
-                                 char **batch_filename UNUSED)
+construct_command_argv_internal (char *line, char **restp, const char *shell,
+                                 const char *shellflags, const char *ifs,
+                                 int flags, char **batch_filename UNUSED)
 {
 #ifdef __MSDOS__
   /* MSDOS supports both the stock DOS shell and ports of Unixy shells.
@@ -2546,61 +2602,58 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
        DOS_CHARS also include characters special to 4DOS/NDOS, so we
        won't have to tell one from another and have one more set of
        commands and special characters.  */
-  static char sh_chars_dos[] = "*?[];|<>%^&()";
-  static char *sh_cmds_dos[] = { "break", "call", "cd", "chcp", "chdir", "cls",
-                                 "copy", "ctty", "date", "del", "dir", "echo",
-                                 "erase", "exit", "for", "goto", "if", "md",
-                                 "mkdir", "path", "pause", "prompt", "rd",
-                                 "rmdir", "rem", "ren", "rename", "set",
-                                 "shift", "time", "type", "ver", "verify",
-                                 "vol", ":", 0 };
-
-  static char sh_chars_sh[]  = "#;\"*?[]&|<>(){}$`^";
-  static char *sh_cmds_sh[]  = { "cd", "echo", "eval", "exec", "exit", "login",
-                                 "logout", "set", "umask", "wait", "while",
-                                 "for", "case", "if", ":", ".", "break",
-                                 "continue", "export", "read", "readonly",
-                                 "shift", "times", "trap", "switch", "unset",
-                                 "ulimit", 0 };
-
-  char *sh_chars;
-  char **sh_cmds;
+  static const char *sh_chars_dos = "*?[];|<>%^&()";
+  static const char *sh_cmds_dos[] =
+    { "break", "call", "cd", "chcp", "chdir", "cls", "copy", "ctty", "date",
+      "del", "dir", "echo", "erase", "exit", "for", "goto", "if", "md",
+      "mkdir", "path", "pause", "prompt", "rd", "rmdir", "rem", "ren",
+      "rename", "set", "shift", "time", "type", "ver", "verify", "vol", ":",
+      0 };
+
+  static const char *sh_chars_sh = "#;\"*?[]&|<>(){}$`^";
+  static const char *sh_cmds_sh[] =
+    { "cd", "echo", "eval", "exec", "exit", "login", "logout", "set", "umask",
+      "wait", "while", "for", "case", "if", ":", ".", "break", "continue",
+      "export", "read", "readonly", "shift", "times", "trap", "switch",
+      "unset", "ulimit", 0 };
+
+  const char *sh_chars;
+  const char **sh_cmds;
+
 #elif defined (__EMX__)
-  static char sh_chars_dos[] = "*?[];|<>%^&()";
-  static char *sh_cmds_dos[] = { "break", "call", "cd", "chcp", "chdir", "cls",
-                                 "copy", "ctty", "date", "del", "dir", "echo",
-                                 "erase", "exit", "for", "goto", "if", "md",
-                                 "mkdir", "path", "pause", "prompt", "rd",
-                                 "rmdir", "rem", "ren", "rename", "set",
-                                 "shift", "time", "type", "ver", "verify",
-                                 "vol", ":", 0 };
-
-  static char sh_chars_os2[] = "*?[];|<>%^()\"'&";
-  static char *sh_cmds_os2[] = { "call", "cd", "chcp", "chdir", "cls", "copy",
-                             "date", "del", "detach", "dir", "echo",
-                             "endlocal", "erase", "exit", "for", "goto", "if",
-                             "keys", "md", "mkdir", "move", "path", "pause",
-                             "prompt", "rd", "rem", "ren", "rename", "rmdir",
-                             "set", "setlocal", "shift", "start", "time",
-                             "type", "ver", "verify", "vol", ":", 0 };
-
-  static char sh_chars_sh[]  = "#;\"*?[]&|<>(){}$`^~'";
-  static char *sh_cmds_sh[]  = { "echo", "cd", "eval", "exec", "exit", "login",
-                                 "logout", "set", "umask", "wait", "while",
-                                 "for", "case", "if", ":", ".", "break",
-                                 "continue", "export", "read", "readonly",
-                                 "shift", "times", "trap", "switch", "unset",
-                                 0 };
-  char *sh_chars;
-  char **sh_cmds;
+  static const char *sh_chars_dos = "*?[];|<>%^&()";
+  static const char *sh_cmds_dos[] =
+    { "break", "call", "cd", "chcp", "chdir", "cls", "copy", "ctty", "date",
+      "del", "dir", "echo", "erase", "exit", "for", "goto", "if", "md",
+      "mkdir", "path", "pause", "prompt", "rd", "rmdir", "rem", "ren",
+      "rename", "set", "shift", "time", "type", "ver", "verify", "vol", ":",
+      0 };
+
+  static const char *sh_chars_os2 = "*?[];|<>%^()\"'&";
+  static const char *sh_cmds_os2[] =
+    { "call", "cd", "chcp", "chdir", "cls", "copy", "date", "del", "detach",
+      "dir", "echo", "endlocal", "erase", "exit", "for", "goto", "if", "keys",
+      "md", "mkdir", "move", "path", "pause", "prompt", "rd", "rem", "ren",
+      "rename", "rmdir", "set", "setlocal", "shift", "start", "time", "type",
+      "ver", "verify", "vol", ":", 0 };
+
+  static const char *sh_chars_sh = "#;\"*?[]&|<>(){}$`^~'";
+  static const char *sh_cmds_sh[] =
+    { "echo", "cd", "eval", "exec", "exit", "login", "logout", "set", "umask",
+      "wait", "while", "for", "case", "if", ":", ".", "break", "continue",
+      "export", "read", "readonly", "shift", "times", "trap", "switch",
+      "unset", 0 };
+
+  const char *sh_chars;
+  const char **sh_cmds;
 
 #elif defined (_AMIGA)
-  static char sh_chars[] = "#;\"|<>()?*$`";
-  static char *sh_cmds[] = { "cd", "eval", "if", "delete", "echo", "copy",
-                             "rename", "set", "setenv", "date", "makedir",
-                             "skip", "else", "endif", "path", "prompt",
-                             "unset", "unsetenv", "version",
-                             0 };
+  static const char *sh_chars = "#;\"|<>()?*$`";
+  static const char *sh_cmds[] =
+    { "cd", "eval", "if", "delete", "echo", "copy", "rename", "set", "setenv",
+      "date", "makedir", "skip", "else", "endif", "path", "prompt", "unset",
+      "unsetenv", "version", 0 };
+
 #elif defined (WINDOWS32)
   /* We used to have a double quote (") in sh_chars_dos[] below, but
      that caused any command line with quoted file names be run
@@ -2609,49 +2662,54 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
      can handle quoted file names just fine, removing the quote lifts
      the limit from a very frequent use case, because using quoted
      file names is commonplace on MS-Windows.  */
-  static char sh_chars_dos[] = "|&<>";
-  static char *sh_cmds_dos[] = { "assoc", "break", "call", "cd", "chcp",
-                                 "chdir", "cls", "color", "copy", "ctty",
-                                 "date", "del", "dir", "echo", "echo.",
-                                 "endlocal", "erase", "exit", "for", "ftype",
-                                 "goto", "if", "if", "md", "mkdir", "move",
-                                 "path", "pause", "prompt", "rd", "rem", "ren",
-                                 "rename", "rmdir", "set", "setlocal",
-                                 "shift", "time", "title", "type", "ver",
-                                 "verify", "vol", ":", 0 };
-  static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^";
-  static char *sh_cmds_sh[] = { "cd", "eval", "exec", "exit", "login",
-                             "logout", "set", "umask", "wait", "while", "for",
-                             "case", "if", ":", ".", "break", "continue",
-                             "export", "read", "readonly", "shift", "times",
-                             "trap", "switch", "test",
+  static const char *sh_chars_dos = "|&<>";
+  static const char *sh_cmds_dos[] =
+    { "assoc", "break", "call", "cd", "chcp", "chdir", "cls", "color", "copy",
+      "ctty", "date", "del", "dir", "echo", "echo.", "endlocal", "erase",
+      "exit", "for", "ftype", "goto", "if", "if", "md", "mkdir", "move",
+      "path", "pause", "prompt", "rd", "rem", "ren", "rename", "rmdir",
+      "set", "setlocal", "shift", "time", "title", "type", "ver", "verify",
+      "vol", ":", 0 };
+
+  static const char *sh_chars_sh = "#;\"*?[]&|<>(){}$`^";
+  static const char *sh_cmds_sh[] =
+    { "cd", "eval", "exec", "exit", "login", "logout", "set", "umask", "wait",
+      "while", "for", "case", "if", ":", ".", "break", "continue", "export",
+      "read", "readonly", "shift", "times", "trap", "switch", "test",
 #ifdef BATCH_MODE_ONLY_SHELL
-                 "echo",
+      "echo",
 #endif
-                 0 };
-  char*  sh_chars;
-  char** sh_cmds;
+      0 };
+
+  const char *sh_chars;
+  const char **sh_cmds;
 #elif defined(__riscos__)
-  static char sh_chars[] = "";
-  static char *sh_cmds[] = { 0 };
+  static const char *sh_chars = "";
+  static const char *sh_cmds[] = { 0 };
 #else  /* must be UNIX-ish */
-  static char sh_chars[] = "#;\"*?[]&|<>(){}$`^~!";
-  static char *sh_cmds[] = { ".", ":", "break", "case", "cd", "continue",
-                             "eval", "exec", "exit", "export", "for", "if",
-                             "login", "logout", "read", "readonly", "set",
-                             "shift", "switch", "test", "times", "trap",
-                             "ulimit", "umask", "unset", "wait", "while", 0 };
+  static const char *sh_chars = "#;\"*?[]&|<>(){}$`^~!";
+  static const char *sh_cmds[] =
+    { ".", ":", "break", "case", "cd", "continue", "eval", "exec", "exit",
+      "export", "for", "if", "login", "logout", "read", "readonly", "set",
+      "shift", "switch", "test", "times", "trap", "ulimit", "umask", "unset",
+      "wait", "while", 0 };
+
 # ifdef HAVE_DOS_PATHS
   /* This is required if the MSYS/Cygwin ports (which do not define
      WINDOWS32) are compiled with HAVE_DOS_PATHS defined, which uses
-     sh_chars_sh[] directly (see below).  */
-  static char *sh_chars_sh = sh_chars;
+     sh_chars_sh directly (see below).  The value must be identical
+     to that of sh_chars immediately above.  */
+  static const char *sh_chars_sh =  "#;\"*?[]&|<>(){}$`^~!";
 # endif  /* HAVE_DOS_PATHS */
 #endif
   int i;
   char *p;
-  char *ap;
+#ifndef NDEBUG
   char *end;
+#endif
+  char *ap;
+  const char *cap;
+  const char *cp;
   int instring, word_has_equals, seen_nonequals, last_argument_was_empty;
   char **new_argv = 0;
   char *argstr = 0;
@@ -2693,10 +2751,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
 
     slow_flag = strcmp ((s1 ? s1 : ""), (s2 ? s2 : ""));
 
-    if (s1)
-      free (s1);
-    if (s2)
-      free (s2);
+    free (s1);
+    free (s2);
   }
   if (slow_flag)
     goto slow;
@@ -2736,12 +2792,12 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
 #endif /* !__MSDOS__ && !__EMX__ */
 #endif /* not WINDOWS32 */
 
-  if (ifs != 0)
-    for (ap = ifs; *ap != '\0'; ++ap)
-      if (*ap != ' ' && *ap != '\t' && *ap != '\n')
+  if (ifs)
+    for (cap = ifs; *cap != '\0'; ++cap)
+      if (*cap != ' ' && *cap != '\t' && *cap != '\n')
         goto slow;
 
-  if (shellflags != 0)
+  if (shellflags)
     if (shellflags[0] != '-'
         || ((shellflags[1] != 'c' || shellflags[2] != '\0')
             && (shellflags[1] != 'e' || shellflags[2] != 'c' || shellflags[3] != '\0')))
@@ -2754,7 +2810,9 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
 
   /* All the args can fit in a buffer as big as LINE is.   */
   ap = new_argv[0] = argstr = xmalloc (i);
+#ifndef NDEBUG
   end = ap + i;
+#endif
 
   /* I is how many complete arguments have been found.  */
   i = 0;
@@ -3229,11 +3287,11 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
        we don't escape them, construct_command_argv_internal will
        recursively call itself ad nauseam, or until stack overflow,
        whichever happens first.  */
-    for (p = shell; *p != '\0'; ++p)
+    for (cp = shell; *cp != '\0'; ++cp)
       {
-        if (strchr (sh_chars, *p) != 0)
+        if (strchr (sh_chars, *cp) != 0)
           *(ap++) = '\\';
-        *(ap++) = *p;
+        *(ap++) = *cp;
       }
     *(ap++) = ' ';
     if (shellflags)
@@ -3441,7 +3499,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
       }
 #else
     else
-      fatal (NILF, _("%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"),
+      fatal (NILF, CSTRLEN (__FILE__) + INTSTR_LENGTH,
+             _("%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"),
             __FILE__, __LINE__);
 #endif
 
@@ -3457,7 +3516,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
    avoid using a shell.  This routine handles only ' quoting, and " quoting
    when no backslash, $ or ' characters are seen in the quotes.  Starting
    quotes may be escaped with a backslash.  If any of the characters in
-   sh_chars[] is seen, or any of the builtin commands listed in sh_cmds[]
+   sh_chars is seen, or any of the builtin commands listed in sh_cmds
    is the first word of a line, the shell is used.
 
    If RESTP is not NULL, *RESTP is set to point to the first newline in LINE.
diff --git a/job.h b/job.h
index 8a2017789f3a8d0b046adf55bf3b9a618c9515fd..3c921baebe3ed58332fe638b6a904706ebe8b7d6 100644 (file)
--- a/job.h
+++ b/job.h
@@ -1,5 +1,5 @@
 /* Definitions for managing subprocesses in GNU Make.
-Copyright (C) 1992-2013 Free Software Foundation, Inc.
+Copyright (C) 1992-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -39,8 +39,8 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifdef NO_OUTPUT_SYNC
 # define RECORD_SYNC_MUTEX(m) \
-    error (NILF, \
-           _("-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."));
+    O (error, NILF,                                                    \
+       _("-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."));
 #else
 # ifdef WINDOWS32
 /* For emulations in w32/compat/posixfcn.c.  */
diff --git a/load.c b/load.c
index a2cbc25b0d9916ff2ba5c08bcc6a753c778fe9ea..79294b33a301ba79a103e59388355d0727bdf749 100644 (file)
--- a/load.c
+++ b/load.c
@@ -1,5 +1,5 @@
 /* Loading dynamic objects for GNU Make.
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
+Copyright (C) 2012-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -30,6 +30,11 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "filedef.h"
 #include "variable.h"
 
+/* Tru64 V4.0 does not have this flag */
+#ifndef RTLD_GLOBAL
+# define RTLD_GLOBAL 0
+#endif
+
 struct load_list
   {
     struct load_list *next;
@@ -50,7 +55,10 @@ load_object (const gmk_floc *flocp, int noerror,
     {
       global_dl = dlopen (NULL, RTLD_NOW|RTLD_GLOBAL);
       if (! global_dl)
-        fatal (flocp, _("Failed to open global symbol table: %s"), dlerror ());
+        {
+          const char *err = dlerror ();
+          OS (fatal, flocp, _("Failed to open global symbol table: %s"), err);
+        }
     }
 
   symp = (load_func_t) dlsym (global_dl, symname);
@@ -74,23 +82,28 @@ load_object (const gmk_floc *flocp, int noerror,
       /* Still no?  Then fail.  */
       if (! dlp)
         {
+          const char *err = dlerror ();
           if (noerror)
-            DB (DB_BASIC, ("%s", dlerror ()));
+            DB (DB_BASIC, ("%s", err));
           else
-            error (flocp, "%s", dlerror ());
+            OS (error, flocp, "%s", err);
           return NULL;
         }
 
       /* Assert that the GPL license symbol is defined.  */
       symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible");
       if (! symp)
-        fatal (flocp, _("Loaded object %s is not declared to be GPL compatible"),
-               ldname);
+        OS (fatal, flocp,
+             _("Loaded object %s is not declared to be GPL compatible"),
+             ldname);
 
       symp = (load_func_t) dlsym (dlp, symname);
       if (! symp)
-        fatal (flocp, _("Failed to load symbol %s from %s: %s"),
-               symname, ldname, dlerror ());
+        {
+          const char *err = dlerror ();
+          OSSS (fatal, flocp, _("Failed to load symbol %s from %s: %s"),
+                symname, ldname, err);
+        }
 
       /* Add this symbol to a trivial lookup table.  This is not efficient but
          it's highly unlikely we'll be loading lots of objects, and we only
@@ -133,12 +146,13 @@ load_file (const gmk_floc *flocp, const char **ldname, int noerror)
 
           ++fp;
           if (fp == ep)
-            fatal (flocp, _("Empty symbol name for load: %s"), *ldname);
+            OS (fatal, flocp, _("Empty symbol name for load: %s"), *ldname);
 
           /* Make a copy of the ldname part.  */
           memcpy (new, *ldname, l);
           new[l] = '\0';
           *ldname = new;
+          nmlen = l;
 
           /* Make a copy of the symbol name part.  */
           symname = new + l + 1;
@@ -226,7 +240,8 @@ int
 load_file (const gmk_floc *flocp, const char **ldname, int noerror)
 {
   if (! noerror)
-    fatal (flocp, _("The 'load' operation is not supported on this platform."));
+    O (fatal, flocp,
+       _("The 'load' operation is not supported on this platform."));
 
   return 0;
 }
@@ -234,7 +249,7 @@ load_file (const gmk_floc *flocp, const char **ldname, int noerror)
 void
 unload_file (const char *name)
 {
-  fatal (NILF, "INTERNAL: Cannot unload when load is not supported!");
+  O (fatal, NILF, "INTERNAL: Cannot unload when load is not supported!");
 }
 
 #endif  /* MAKE_LOAD */
index 0568cbd42fc4ea740fc48ea337a58495a9a3e805..fb275dd1bb047d39464ca4ad281a5ddaf6394870 100644 (file)
--- a/loadapi.c
+++ b/loadapi.c
@@ -1,5 +1,5 @@
 /* API for GNU Make dynamic objects.
-Copyright (C) 2013 Free Software Foundation, Inc.
+Copyright (C) 2013-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -39,9 +39,18 @@ gmk_free (char *s)
 void
 gmk_eval (const char *buffer, const gmk_floc *floc)
 {
-  char *s = xstrdup (buffer);
+  /* Preserve existing variable buffer context.  */
+  char *pbuf;
+  unsigned int plen;
+  char *s;
+
+  install_variable_buffer (&pbuf, &plen);
+
+  s = xstrdup (buffer);
   eval_buffer (s, floc);
   free (s);
+
+  restore_variable_buffer (pbuf, plen);
 }
 
 /* Expand a string and return an allocated buffer.
diff --git a/main.c b/main.c
index f60e6be9b0fc0ba6b3b0bb13c22b4f579ef93d9a..7f14cba585814bb95f9c819428d57131495d6275 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,5 +1,5 @@
 /* Argument parsing and main program of GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -77,8 +77,8 @@ double atof ();
 static void clean_jobserver (int status);
 static void print_data_base (void);
 static void print_version (void);
-static void decode_switches (int argc, char **argv, int env);
-static void decode_env_switches (char *envar, unsigned int len);
+static void decode_switches (int argc, const char **argv, int env);
+static void decode_env_switches (const char *envar, unsigned int len);
 static struct variable *define_makeflags (int all, int makefile);
 static char *quote_for_env (char *out, const char *in);
 static void initialize_global_hash_tables (void);
@@ -94,7 +94,8 @@ struct command_switch
       {
         flag,                   /* Turn int flag on.  */
         flag_off,               /* Turn int flag off.  */
-        string,                 /* One string per switch.  */
+        string,                 /* One string per invocation.  */
+        strlist,                /* One string per switch.  */
         filename,               /* A string containing a file name.  */
         positive_int,           /* A positive integer.  */
         floating,               /* A floating-point number (double).  */
@@ -110,7 +111,7 @@ struct command_switch
     const void *noarg_value;    /* Pointer to value used if no arg given.  */
     const void *default_value;  /* Pointer to default value.  */
 
-    char *long_name;            /* Long option name.  */
+    const char *long_name;      /* Long option name.  */
   };
 
 /* True if C is a switch value that corresponds to a short option.  */
@@ -118,7 +119,7 @@ struct command_switch
 #define short_option(c) ((c) <= CHAR_MAX)
 
 /* The structure used to hold the list of strings given
-   in command switches of a type that takes string arguments.  */
+   in command switches of a type that takes strlist arguments.  */
 
 struct stringlist
   {
@@ -157,7 +158,7 @@ int db_level = 0;
 
 /* Synchronize output (--output-sync).  */
 
-static struct stringlist *output_sync_option = 0;
+char *output_sync_option = 0;
 
 #ifdef WINDOWS32
 /* Suspend make in main for a short time to allow debugger to attach */
@@ -234,7 +235,7 @@ static unsigned int inf_jobs = 0;
 
 /* File descriptors for the jobs pipe.  */
 
-static struct stringlist *jobserver_fds = 0;
+char *jobserver_fds = 0;
 
 int job_fds[2] = { -1, -1 };
 int job_rfd = -1;
@@ -242,7 +243,7 @@ int job_rfd = -1;
 /* Handle for the mutex used on Windows to synchronize output of our
    children under -O.  */
 
-static struct stringlist *sync_mutex = 0;
+char *sync_mutex = 0;
 
 /* Maximum load average at which multiple jobs will be run.
    Negative values mean unlimited, while zero means limit to
@@ -436,14 +437,14 @@ static const struct command_switch switches[] =
     { 'W', filename, &new_files, 0, 0, 0, 0, 0, "what-if" },
 
     /* These are long-style options.  */
-    { CHAR_MAX+1, string, &db_flags, 1, 1, 0, "basic", 0, "debug" },
+    { CHAR_MAX+1, strlist, &db_flags, 1, 1, 0, "basic", 0, "debug" },
     { CHAR_MAX+2, string, &jobserver_fds, 1, 1, 0, 0, 0, "jobserver-fds" },
     { CHAR_MAX+3, flag, &trace_flag, 1, 1, 0, 0, 0, "trace" },
     { CHAR_MAX+4, flag, &inhibit_print_directory_flag, 1, 1, 0, 0, 0,
       "no-print-directory" },
     { CHAR_MAX+5, flag, &warn_undefined_variables_flag, 1, 1, 0, 0, 0,
       "warn-undefined-variables" },
-    { CHAR_MAX+6, string, &eval_strings, 1, 0, 0, 0, 0, "eval" },
+    { CHAR_MAX+6, strlist, &eval_strings, 1, 0, 0, 0, 0, "eval" },
     { CHAR_MAX+7, string, &sync_mutex, 1, 1, 0, 0, 0, "sync-mutex" },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0 }
   };
@@ -479,7 +480,13 @@ static struct command_variable *command_variables;
 \f
 /* The name we were invoked with.  */
 
+#ifdef WINDOWS32
+/* On MS-Windows, we chop off the .exe suffix in 'main', so this
+   cannot be 'const'.  */
 char *program;
+#else
+const char *program;
+#endif
 
 /* Our current directory before processing any -C options.  */
 
@@ -619,11 +626,11 @@ initialize_stopchar_map ()
   stopchar_map[(int)'-'] = MAP_USERFUNC;
   stopchar_map[(int)'_'] = MAP_USERFUNC;
 
-  stopchar_map[(int)'/'] = MAP_PATHSEP;
+  stopchar_map[(int)'/'] = MAP_DIRSEP;
 #if defined(VMS)
-  stopchar_map[(int)']'] = MAP_PATHSEP;
+  stopchar_map[(int)']'] = MAP_DIRSEP;
 #elif defined(HAVE_DOS_PATHS)
-  stopchar_map[(int)'\\'] = MAP_PATHSEP;
+  stopchar_map[(int)'\\'] = MAP_DIRSEP;
 #endif
 
   for (i = 1; i <= UCHAR_MAX; ++i)
@@ -638,46 +645,41 @@ initialize_stopchar_map ()
 }
 
 static const char *
-expand_command_line_file (char *name)
+expand_command_line_file (const char *name)
 {
   const char *cp;
   char *expanded = 0;
 
   if (name[0] == '\0')
-    fatal (NILF, _("empty string invalid as file name"));
+    O (fatal, NILF, _("empty string invalid as file name"));
 
   if (name[0] == '~')
     {
       expanded = tilde_expand (name);
-      if (expanded != 0)
+      if (expanded && expanded[0] != '\0')
         name = expanded;
     }
 
   /* This is also done in parse_file_seq, so this is redundant
      for names read from makefiles.  It is here for names passed
      on the command line.  */
-  while (name[0] == '.' && name[1] == '/' && name[2] != '\0')
+  while (name[0] == '.' && name[1] == '/')
     {
       name += 2;
-      while (*name == '/')
+      while (name[0] == '/')
         /* Skip following slashes: ".//foo" is "foo", not "/foo".  */
         ++name;
     }
 
-  if (*name == '\0')
+  if (name[0] == '\0')
     {
-      /* It was all slashes!  Move back to the dot and truncate
-         it after the first slash, so it becomes just "./".  */
-      do
-        --name;
-      while (name[0] != '.');
-      name[2] = '\0';
+      /* Nothing else but one or more "./", maybe plus slashes!  */
+      name = "./";
     }
 
   cp = strcache_add (name);
 
-  if (expanded)
-    free (expanded);
+  free (expanded);
 
   return cp;
 }
@@ -731,7 +733,8 @@ decode_debug_flags (void)
                 db_level |= DB_BASIC | DB_VERBOSE;
                 break;
               default:
-                fatal (NILF, _("unknown debug level specification '%s'"), p);
+                OS (fatal, NILF,
+                    _("unknown debug level specification '%s'"), p);
               }
 
             while (*(++p) != '\0')
@@ -756,40 +759,23 @@ decode_debug_flags (void)
 static void
 decode_output_sync_flags (void)
 {
-  const char **pp;
-
-  if (!output_sync_option)
-    return;
-
-  for (pp=output_sync_option->list; *pp; ++pp)
+  if (output_sync_option)
     {
-      const char *p = *pp;
-
-      if (streq (p, "none"))
+      if (streq (output_sync_option, "none"))
         output_sync = OUTPUT_SYNC_NONE;
-      else if (streq (p, "line"))
+      else if (streq (output_sync_option, "line"))
         output_sync = OUTPUT_SYNC_LINE;
-      else if (streq (p, "target"))
+      else if (streq (output_sync_option, "target"))
         output_sync = OUTPUT_SYNC_TARGET;
-      else if (streq (p, "recurse"))
+      else if (streq (output_sync_option, "recurse"))
         output_sync = OUTPUT_SYNC_RECURSE;
       else
-        fatal (NILF, _("unknown output-sync type '%s'"), p);
+        OS (fatal, NILF,
+            _("unknown output-sync type '%s'"), output_sync_option);
     }
 
   if (sync_mutex)
-    {
-      const char *mp;
-      unsigned int idx;
-
-      for (idx = 1; idx < sync_mutex->idx; idx++)
-        if (!streq (sync_mutex->list[0], sync_mutex->list[idx]))
-          fatal (NILF, _("internal error: multiple --sync-mutex options"));
-
-      /* Now parse the mutex handle string.  */
-      mp = sync_mutex->list[0];
-      RECORD_SYNC_MUTEX (mp);
-    }
+    RECORD_SYNC_MUTEX (sync_mutex);
 }
 
 #ifdef WINDOWS32
@@ -805,16 +791,10 @@ prepare_mutex_handle_string (sync_handle_t handle)
 {
   if (!sync_mutex)
     {
-      /* 2 hex digits per byte + 2 characters for "0x" + null.  */
-      char hdl_string[2 * sizeof (sync_handle_t) + 2 + 1];
-
       /* Prepare the mutex handle string for our children.  */
-      sprintf (hdl_string, "0x%x", handle);
-      sync_mutex = xmalloc (sizeof (struct stringlist));
-      sync_mutex->list = xmalloc (sizeof (char *));
-      sync_mutex->list[0] = xstrdup (hdl_string);
-      sync_mutex->idx = 1;
-      sync_mutex->max = 1;
+      /* 2 hex digits per byte + 2 characters for "0x" + null.  */
+      sync_mutex = xmalloc ((2 * sizeof (sync_handle_t)) + 2 + 1);
+      sprintf (sync_mutex, "0x%Ix", handle);
       define_makeflags (1, 0);
     }
 }
@@ -909,15 +889,15 @@ find_and_set_default_shell (const char *token)
 {
   int sh_found = 0;
   char *atoken = 0;
-  char *search_token;
-  char *tokend;
+  const char *search_token;
+  const char *tokend;
   PATH_VAR(sh_path);
-  extern char *default_shell;
+  extern const char *default_shell;
 
   if (!token)
     search_token = default_shell;
   else
-    atoken = search_token = xstrdup (token);
+    search_token = atoken = xstrdup (token);
 
   /* If the user explicitly requests the DOS cmd shell, obey that request.
      However, make sure that's what they really want by requiring the value
@@ -1022,8 +1002,7 @@ find_and_set_default_shell (const char *token)
   batch_mode_shell = 1;
 #endif
 
-  if (atoken)
-    free (atoken);
+  free (atoken);
 
   return (sh_found);
 }
@@ -1053,8 +1032,8 @@ main (int argc, char **argv, char **envp)
   unsigned int restarts = 0;
   unsigned int syncing = 0;
 #ifdef WINDOWS32
-  char *unix_path = NULL;
-  char *windows32_path = NULL;
+  const char *unix_path = NULL;
+  const char *windows32_path = NULL;
 
   SetUnhandledExceptionFilter (handle_runtime_exceptions);
 
@@ -1177,16 +1156,12 @@ main (int argc, char **argv, char **envp)
   /* Figure out where this program lives.  */
 
   if (argv[0] == 0)
-    argv[0] = "";
+    argv[0] = (char *)"";
   if (argv[0][0] == '\0')
     program = "make";
   else
     {
-#ifdef VMS
-      program = strrchr (argv[0], ']');
-#else
       program = strrchr (argv[0], '/');
-#endif
 #if defined(__MSDOS__) || defined(__EMX__)
       if (program == 0)
         program = strrchr (argv[0], '\\');
@@ -1216,7 +1191,11 @@ main (int argc, char **argv, char **envp)
         }
 #endif
       if (program == 0)
+#ifdef VMS
+        program = vms_progname(argv[0]);
+#else
         program = argv[0];
+#endif
       else
         ++program;
     }
@@ -1237,7 +1216,7 @@ main (int argc, char **argv, char **envp)
 #ifdef  HAVE_GETCWD
       perror_with_name ("getcwd", "");
 #else
-      error (NILF, "getwd: %s", current_directory);
+      OS (error, NILF, "getwd: %s", current_directory);
 #endif
       current_directory[0] = '\0';
       directory_before_chdir = 0;
@@ -1285,10 +1264,8 @@ main (int argc, char **argv, char **envp)
     define_variable_cname (".FEATURES", features, o_default, 0);
   }
 
-#ifdef HAVE_GUILE
   /* Configure GNU Guile support */
   guile_gmake_setup (NILF);
-#endif
 
   /* Read in variables from the environment.  It is important that this be
      done before $(MAKE) is figured out so its definitions will not be
@@ -1301,7 +1278,7 @@ main (int argc, char **argv, char **envp)
     for (i = 0; envp[i] != 0; ++i)
       {
         struct variable *v;
-        char *ep = envp[i];
+        const char *ep = envp[i];
         /* By default, export all variables culled from the environment.  */
         enum variable_export export = v_export;
         unsigned int len;
@@ -1350,7 +1327,7 @@ main (int argc, char **argv, char **envp)
 #ifndef __MSDOS__
             export = v_noexport;
 #endif
-            shell_var.name = "SHELL";
+            shell_var.name = xstrdup ("SHELL");
             shell_var.length = 5;
             shell_var.value = xstrdup (ep);
           }
@@ -1397,7 +1374,6 @@ main (int argc, char **argv, char **envp)
 #endif
 
   /* Decode the switches.  */
-
   decode_env_switches (STRING_SIZE_TUPLE ("GNUMAKEFLAGS"));
 
   /* Clear GNUMAKEFLAGS to avoid duplication.  */
@@ -1419,7 +1395,20 @@ main (int argc, char **argv, char **envp)
   decode_env_switches (STRING_SIZE_TUPLE ("MFLAGS"));
 #endif
 
-  decode_switches (argc, argv, 0);
+  decode_switches (argc, (const char **)argv, 0);
+
+    /* Set a variable specifying whether stdout/stdin is hooked to a TTY.  */
+#ifdef HAVE_ISATTY
+    if (isatty (fileno (stdout)))
+      if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMOUT")))
+        define_variable_cname ("MAKE_TERMOUT", TTYNAME (fileno (stdout)),
+                               o_default, 0)->export = v_export;
+
+    if (isatty (fileno (stderr)))
+      if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMERR")))
+        define_variable_cname ("MAKE_TERMERR", TTYNAME (fileno (stderr)),
+                               o_default, 0)->export = v_export;
+#endif
 
   /* Reset in case the switches changed our minds.  */
   syncing = (output_sync == OUTPUT_SYNC_LINE
@@ -1457,7 +1446,7 @@ main (int argc, char **argv, char **envp)
   if (print_version_flag)
     {
       print_version ();
-      die (0);
+      die (MAKE_SUCCESS);
     }
 
   if (ISDB (DB_BASIC))
@@ -1526,29 +1515,23 @@ main (int argc, char **argv, char **envp)
 
   if (jobserver_fds)
     {
-      const char *cp;
-      unsigned int ui;
-
-      for (ui=1; ui < jobserver_fds->idx; ++ui)
-        if (!streq (jobserver_fds->list[0], jobserver_fds->list[ui]))
-          fatal (NILF, _("internal error: multiple --jobserver-fds options"));
-
-      /* Now parse the fds string and make sure it has the proper format.  */
-
-      cp = jobserver_fds->list[0];
+      /* Make sure the jobserver option has the proper format.  */
+      const char *cp = jobserver_fds;
 
 #ifdef WINDOWS32
       if (! open_jobserver_semaphore (cp))
         {
           DWORD err = GetLastError ();
-          fatal (NILF, _("internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"),
-                 cp, err, map_windows32_error_to_string (err));
+          const char *estr = map_windows32_error_to_string (err);
+          fatal (NILF, strlen (cp) + INTSTR_LENGTH + strlen (estr),
+                 _("internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"),
+                 cp, err, estr);
         }
       DB (DB_JOBS, (_("Jobserver client (semaphore %s)\n"), cp));
 #else
       if (sscanf (cp, "%d,%d", &job_fds[0], &job_fds[1]) != 2)
-        fatal (NILF,
-               _("internal error: invalid --jobserver-fds string '%s'"), cp);
+        OS (fatal, NILF,
+            _("internal error: invalid --jobserver-fds string '%s'"), cp);
 
       DB (DB_JOBS,
           (_("Jobserver client (fds %d,%d)\n"), job_fds[0], job_fds[1]));
@@ -1564,7 +1547,8 @@ main (int argc, char **argv, char **envp)
       if (job_slots > 0)
         {
           if (! restarts)
-            error (NILF, _("warning: -jN forced in submake: disabling jobserver mode."));
+            O (error, NILF,
+               _("warning: -jN forced in submake: disabling jobserver mode."));
         }
 #ifndef WINDOWS32
 #ifdef HAVE_FCNTL
@@ -1582,8 +1566,8 @@ main (int argc, char **argv, char **envp)
           if (errno != EBADF)
             pfatal_with_name (_("dup jobserver"));
 
-          error (NILF,
-                 _("warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."));
+          O (error, NILF,
+             _("warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."));
           job_slots = 1;
           job_fds[0] = job_fds[1] = -1;
         }
@@ -1600,7 +1584,7 @@ main (int argc, char **argv, char **envp)
             close (job_fds[1]);
 #endif
           job_fds[0] = job_fds[1] = -1;
-          free (jobserver_fds->list);
+
           free (jobserver_fds);
           jobserver_fds = 0;
         }
@@ -1609,7 +1593,11 @@ main (int argc, char **argv, char **envp)
 
   /* The extra indirection through $(MAKE_COMMAND) is done
      for hysterical raisins.  */
+#ifdef VMS
+  define_variable_cname("MAKE_COMMAND", vms_command(argv[0]), o_default, 0);
+#else
   define_variable_cname ("MAKE_COMMAND", argv[0], o_default, 0);
+#endif
   define_variable_cname ("MAKE", "$(MAKE_COMMAND)", o_default, 1);
 
   if (command_variables != 0)
@@ -1724,7 +1712,7 @@ main (int argc, char **argv, char **envp)
 #ifdef  HAVE_GETCWD
           perror_with_name ("getcwd", "");
 #else
-          error (NILF, "getwd: %s", current_directory);
+          OS (error, NILF, "getwd: %s", current_directory);
 #endif
           starting_directory = 0;
         }
@@ -1746,10 +1734,12 @@ main (int argc, char **argv, char **envp)
                and thus re-read the makefiles, we read standard input
                into a temporary file and read from that.  */
             FILE *outfile;
-            char *template, *tmpdir;
+            char *template;
+            const char *tmpdir;
 
             if (stdin_nm)
-              fatal (NILF, _("Makefile from standard input specified twice."));
+              O (fatal, NILF,
+                 _("Makefile from standard input specified twice."));
 
 #ifdef VMS
 # define DEFAULT_TMPDIR     "sys$scratch:"
@@ -1916,7 +1906,7 @@ main (int argc, char **argv, char **envp)
     extern int _is_unixy_shell (const char *_path);
     struct variable *shv = lookup_variable (STRING_SIZE_TUPLE ("SHELL"));
     extern int unixy_shell;
-    extern char *default_shell;
+    extern const char *default_shell;
 
     if (shv && *shv->value)
       {
@@ -1973,16 +1963,16 @@ main (int argc, char **argv, char **envp)
       undefine_default_variables ();
   }
 
-#if defined (__MSDOS__) || defined (__EMX__)
+#if defined (__MSDOS__) || defined (__EMX__) || defined (VMS)
   if (job_slots != 1
 # ifdef __EMX__
       && _osmode != OS2_MODE /* turn off -j if we are in DOS mode */
 # endif
       )
     {
-      error (NILF,
-             _("Parallel jobs (-j) are not supported on this platform."));
-      error (NILF, _("Resetting to single job (-j1) mode."));
+      O (error, NILF,
+         _("Parallel jobs (-j) are not supported on this platform."));
+      O (error, NILF, _("Resetting to single job (-j1) mode."));
       job_slots = 1;
     }
 #endif
@@ -1993,8 +1983,6 @@ main (int argc, char **argv, char **envp)
 
   if (job_slots > 1)
     {
-      char *cp;
-
 #ifdef WINDOWS32
       /* sub_proc.c cannot wait for more than MAXIMUM_WAIT_OBJECTS objects
        * and one of them is the job-server semaphore object.  Limit the
@@ -2009,8 +1997,9 @@ main (int argc, char **argv, char **envp)
       if (! create_jobserver_semaphore (job_slots - 1))
         {
           DWORD err = GetLastError ();
-          fatal (NILF, _("creating jobserver semaphore: (Error %ld: %s)"),
-                 err, map_windows32_error_to_string (err));
+          const char *estr = map_windows32_error_to_string (err);
+          ONS (fatal, NILF,
+               _("creating jobserver semaphore: (Error %ld: %s)"), err, estr);
         }
 #else
       char c = '+';
@@ -2040,28 +2029,22 @@ main (int argc, char **argv, char **envp)
         }
 #endif
 
-      /* Fill in the jobserver_fds struct for our children.  */
+      /* Fill in the jobserver_fds for our children.  */
 
 #ifdef WINDOWS32
-      cp = xmalloc (MAX_PATH + 1);
-      strcpy (cp, get_jobserver_semaphore_name ());
+      jobserver_fds = xmalloc (MAX_PATH + 1);
+      strcpy (jobserver_fds, get_jobserver_semaphore_name ());
 #else
-      cp = xmalloc ((CSTRLEN ("1024") * 2) + 2);
-      sprintf (cp, "%d,%d", job_fds[0], job_fds[1]);
+      jobserver_fds = xmalloc ((INTSTR_LENGTH * 2) + 2);
+      sprintf (jobserver_fds, "%d,%d", job_fds[0], job_fds[1]);
 #endif
-
-      jobserver_fds = xmalloc (sizeof (struct stringlist));
-      jobserver_fds->list = xmalloc (sizeof (char *));
-      jobserver_fds->list[0] = cp;
-      jobserver_fds->idx = 1;
-      jobserver_fds->max = 1;
     }
 #endif
 
 #ifndef MAKE_SYMLINKS
   if (check_symlink_flag)
     {
-      error (NILF, _("Symbolic links not supported: disabling -L."));
+      O (error, NILF, _("Symbolic links not supported: disabling -L."));
       check_symlink_flag = 0;
     }
 #endif
@@ -2138,7 +2121,8 @@ main (int argc, char **argv, char **envp)
 
       FILE_TIMESTAMP *makefile_mtimes = 0;
       unsigned int mm_idx = 0;
-      char **nargv;
+      char **aargv = NULL;
+      const char **nargv;
       int nargc;
       int orig_db_level = db_level;
       enum update_status status;
@@ -2250,8 +2234,8 @@ main (int argc, char **argv, char **envp)
                         FILE_TIMESTAMP mtime;
                         /* The update failed and this makefile was not
                            from the MAKEFILES variable, so we care.  */
-                        error (NILF, _("Failed to remake makefile '%s'."),
-                               d->file->name);
+                        OS (error, NILF, _("Failed to remake makefile '%s'."),
+                            d->file->name);
                         mtime = file_mtime_no_search (d->file);
                         any_remade |= (mtime != NONEXISTENT_MTIME
                                        && mtime != makefile_mtimes[i]);
@@ -2262,18 +2246,20 @@ main (int argc, char **argv, char **envp)
                   /* This makefile was not found at all.  */
                   if (! (d->changed & RM_DONTCARE))
                     {
+                      const char *dnm = dep_name (d);
+                      size_t l = strlen (dnm);
+
                       /* This is a makefile we care about.  See how much.  */
                       if (d->changed & RM_INCLUDED)
-                        /* An included makefile.  We don't need
-                           to die, but we do want to complain.  */
-                        error (NILF,
-                               _("Included makefile '%s' was not found."),
-                               dep_name (d));
+                        /* An included makefile.  We don't need to die, but we
+                           do want to complain.  */
+                        error (NILF, l,
+                               _("Included makefile '%s' was not found."), dnm);
                       else
                         {
                           /* A normal makefile.  We must die later.  */
-                          error (NILF, _("Makefile '%s' was not found"),
-                                 dep_name (d));
+                          error (NILF, l,
+                                 _("Makefile '%s' was not found"), dnm);
                           any_failed = 1;
                         }
                     }
@@ -2284,7 +2270,7 @@ main (int argc, char **argv, char **envp)
             if (any_remade)
               goto re_exec;
             if (any_failed)
-              die (2);
+              die (MAKE_FAILURE);
             break;
           }
 
@@ -2319,13 +2305,15 @@ main (int argc, char **argv, char **envp)
           nargc = argc;
           if (stdin_nm)
             {
-              nargv = xmalloc ((nargc + 2) * sizeof (char *));
-              memcpy (nargv, argv, argc * sizeof (char *));
-              nargv[nargc++] = xstrdup (concat (2, "-o", stdin_nm));
-              nargv[nargc] = 0;
+              void *m = xmalloc ((nargc + 2) * sizeof (char *));
+              aargv = m;
+              memcpy (aargv, argv, argc * sizeof (char *));
+              aargv[nargc++] = xstrdup (concat (2, "-o", stdin_nm));
+              aargv[nargc] = 0;
+              nargv = m;
             }
           else
-            nargv = argv;
+            nargv = (const char**)argv;
 
           if (directories != 0 && directories->idx > 0)
             {
@@ -2338,7 +2326,8 @@ main (int argc, char **argv, char **envp)
                     bad = 0;
                 }
               if (bad)
-                fatal (NILF, _("Couldn't change back to original directory."));
+                O (fatal, NILF,
+                   _("Couldn't change back to original directory."));
             }
 
           ++restarts;
@@ -2350,7 +2339,7 @@ main (int argc, char **argv, char **envp)
 
           if (ISDB (DB_BASIC))
             {
-              char **p;
+              const char **p;
               printf (_("Re-executing[%u]:"), restarts);
               for (p = nargv; *p != 0; ++p)
                 printf (" %s", *p);
@@ -2429,15 +2418,16 @@ main (int argc, char **argv, char **envp)
             exit (WIFEXITED(r) ? WEXITSTATUS(r) : EXIT_FAILURE);
           }
 #else
-          exec_command (nargv, environ);
+          exec_command ((char **)nargv, environ);
 #endif
+          free (aargv);
+          break;
         }
 
       db_level = orig_db_level;
 
-      /* Free the makefile mtimes (if we allocated any).  */
-      if (makefile_mtimes)
-        free (makefile_mtimes);
+      /* Free the makefile mtimes.  */
+      free (makefile_mtimes);
     }
 
   /* Set up 'MAKEFLAGS' again for the normal targets.  */
@@ -2492,7 +2482,8 @@ main (int argc, char **argv, char **envp)
                 {
                   /* .DEFAULT_GOAL should contain one target. */
                   if (ns->next != 0)
-                    fatal (NILF, _(".DEFAULT_GOAL contains more than one target"));
+                    O (fatal, NILF,
+                       _(".DEFAULT_GOAL contains more than one target"));
 
                   f = enter_file (strcache_add (ns->name));
 
@@ -2515,9 +2506,9 @@ main (int argc, char **argv, char **envp)
   if (!goals)
     {
       if (read_files == 0)
-        fatal (NILF, _("No targets specified and no makefile found"));
+        O (fatal, NILF, _("No targets specified and no makefile found"));
 
-      fatal (NILF, _("No targets"));
+      O (fatal, NILF, _("No targets"));
     }
 
   /* Update the goals.  */
@@ -2546,15 +2537,15 @@ main (int argc, char **argv, char **envp)
 
     /* If we detected some clock skew, generate one last warning */
     if (clock_skew_detected)
-      error (NILF,
-             _("warning:  Clock skew detected.  Your build may be incomplete."));
+      O (error, NILF,
+         _("warning:  Clock skew detected.  Your build may be incomplete."));
 
     /* Exit.  */
     die (makefile_status);
   }
 
   /* NOTREACHED */
-  exit (0);
+  exit (MAKE_SUCCESS);
 }
 \f
 /* Parsing of arguments, decoding of switches.  */
@@ -2599,6 +2590,7 @@ init_switches (void)
           break;
 
         case string:
+        case strlist:
         case filename:
         case positive_int:
         case floating:
@@ -2626,7 +2618,7 @@ init_switches (void)
 
 /* Non-option argument.  It might be a variable definition.  */
 static void
-handle_non_switch_argument (char *arg, int env)
+handle_non_switch_argument (const char *arg, int env)
 {
   struct variable *v;
 
@@ -2733,7 +2725,7 @@ print_usage (int bad)
    They came from the environment if ENV is nonzero.  */
 
 static void
-decode_switches (int argc, char **argv, int env)
+decode_switches (int argc, const char **argv, int env)
 {
   int bad = 0;
   register const struct command_switch *cs;
@@ -2753,14 +2745,17 @@ decode_switches (int argc, char **argv, int env)
 
   while (optind < argc)
     {
+      const char *coptarg;
+
       /* Parse the next argument.  */
-      c = getopt_long (argc, argv, options, long_options, (int *) 0);
+      c = getopt_long (argc, (char*const*)argv, options, long_options, NULL);
+      coptarg = optarg;
       if (c == EOF)
         /* End of arguments, or "--" marker seen.  */
         break;
       else if (c == 1)
         /* An argument not starting with a dash.  */
-        handle_non_switch_argument (optarg, env);
+        handle_non_switch_argument (coptarg, env);
       else if (c == '?')
         /* Bad option.  We will print a usage message and die later.
            But continue to parse the other options so the user can
@@ -2791,13 +2786,14 @@ decode_switches (int argc, char **argv, int env)
                   break;
 
                 case string:
+                case strlist:
                 case filename:
                   if (!doit)
                     break;
 
-                  if (optarg == 0)
-                    optarg = xstrdup (cs->noarg_value);
-                  else if (*optarg == '\0')
+                  if (! coptarg)
+                    coptarg = xstrdup (cs->noarg_value);
+                  else if (*coptarg == '\0')
                     {
                       char opt[2] = "c";
                       const char *op = opt;
@@ -2807,9 +2803,19 @@ decode_switches (int argc, char **argv, int env)
                       else
                         op = cs->long_name;
 
-                      error (NILF, _("the '%s%s' option requires a non-empty string argument"),
+                      error (NILF, strlen (op),
+                             _("the '%s%s' option requires a non-empty string argument"),
                              short_option (cs->c) ? "-" : "--", op);
                       bad = 1;
+                      break;
+                    }
+
+                  if (cs->type == string)
+                    {
+                      char **val = (char **)cs->value_ptr;
+                      free (*val);
+                      *val = xstrdup (coptarg);
+                      break;
                     }
 
                   sl = *(struct stringlist **) cs->value_ptr;
@@ -2829,39 +2835,40 @@ decode_switches (int argc, char **argv, int env)
                                            sl->max * sizeof (char *));
                     }
                   if (cs->type == filename)
-                    sl->list[sl->idx++] = expand_command_line_file (optarg);
+                    sl->list[sl->idx++] = expand_command_line_file (coptarg);
                   else
-                    sl->list[sl->idx++] = optarg;
+                    sl->list[sl->idx++] = xstrdup (coptarg);
                   sl->list[sl->idx] = 0;
                   break;
 
                 case positive_int:
                   /* See if we have an option argument; if we do require that
                      it's all digits, not something like "10foo".  */
-                  if (optarg == 0 && argc > optind)
+                  if (coptarg == 0 && argc > optind)
                     {
                       const char *cp;
                       for (cp=argv[optind]; ISDIGIT (cp[0]); ++cp)
                         ;
                       if (cp[0] == '\0')
-                        optarg = argv[optind++];
+                        coptarg = argv[optind++];
                     }
 
                   if (!doit)
                     break;
 
-                  if (optarg != 0)
+                  if (coptarg)
                     {
-                      int i = atoi (optarg);
+                      int i = atoi (coptarg);
                       const char *cp;
 
                       /* Yes, I realize we're repeating this in some cases.  */
-                      for (cp = optarg; ISDIGIT (cp[0]); ++cp)
+                      for (cp = coptarg; ISDIGIT (cp[0]); ++cp)
                         ;
 
                       if (i < 1 || cp[0] != '\0')
                         {
-                          error (NILF, _("the '-%c' option requires a positive integer argument"),
+                          error (NILF, 0,
+                                 _("the '-%c' option requires a positive integer argument"),
                                  cs->c);
                           bad = 1;
                         }
@@ -2875,13 +2882,13 @@ decode_switches (int argc, char **argv, int env)
 
 #ifndef NO_FLOAT
                 case floating:
-                  if (optarg == 0 && optind < argc
+                  if (coptarg == 0 && optind < argc
                       && (ISDIGIT (argv[optind][0]) || argv[optind][0] == '.'))
-                    optarg = argv[optind++];
+                    coptarg = argv[optind++];
 
                   if (doit)
                     *(double *) cs->value_ptr
-                      = (optarg != 0 ? atof (optarg)
+                      = (coptarg != 0 ? atof (coptarg)
                          : *(double *) cs->noarg_value);
 
                   break;
@@ -2903,7 +2910,7 @@ decode_switches (int argc, char **argv, int env)
   if (!env && (bad || print_usage_flag))
     {
       print_usage (bad);
-      die (bad ? 2 : 0);
+      die (bad ? MAKE_FAILURE : MAKE_SUCCESS);
     }
 
   /* If there are any options that need to be decoded do it now.  */
@@ -2917,12 +2924,12 @@ decode_switches (int argc, char **argv, int env)
    decode_switches.  */
 
 static void
-decode_env_switches (char *envar, unsigned int len)
+decode_env_switches (const char *envar, unsigned int len)
 {
   char *varref = alloca (2 + len + 2);
-  char *value, *p;
+  char *value, *p, *buf;
   int argc;
-  char **argv;
+  const char **argv;
 
   /* Get the variable's value.  */
   varref[0] = '$';
@@ -2941,15 +2948,16 @@ decode_env_switches (char *envar, unsigned int len)
   /* Allocate a vector that is definitely big enough.  */
   argv = alloca ((1 + len + 1) * sizeof (char *));
 
-  /* Allocate a buffer to copy the value into while we split it into words
-     and unquote it.  We must use permanent storage for this because
-     decode_switches may store pointers into the passed argument words.  */
-  p = xmalloc (2 * len);
-
   /* getopt will look at the arguments starting at ARGV[1].
      Prepend a spacer word.  */
   argv[0] = 0;
   argc = 1;
+
+  /* We need a buffer to copy the value into while we split it into words
+     and unquote it.  Set up in case we need to prepend a dash later.  */
+  buf = alloca (1 + len + 1);
+  buf[0] = '-';
+  p = buf+1;
   argv[argc] = p;
   while (*value != '\0')
     {
@@ -2969,13 +2977,12 @@ decode_env_switches (char *envar, unsigned int len)
     }
   *p = '\0';
   argv[++argc] = 0;
+  assert (p < buf + len + 2);
 
   if (argv[1][0] != '-' && strchr (argv[1], '=') == 0)
     /* The first word doesn't start with a dash and isn't a variable
-       definition.  Add a dash and pass it along to decode_switches.  We
-       need permanent storage for this in case decode_switches saves
-       pointers into the value.  */
-    argv[1] = xstrdup (concat (2, "-", argv[1]));
+       definition, so add a dash.  */
+    argv[1] = buf;
 
   /* Parse those words.  */
   decode_switches (argc, argv, 1);
@@ -3109,8 +3116,17 @@ define_makeflags (int all, int makefile)
           break;
 #endif
 
-        case filename:
         case string:
+          if (all)
+            {
+              p = *((char **)cs->value_ptr);
+              if (p)
+                ADD_FLAG (p, strlen (p));
+            }
+          break;
+
+        case filename:
+        case strlist:
           if (all)
             {
               struct stringlist *sl = *(struct stringlist **) cs->value_ptr;
@@ -3241,7 +3257,7 @@ print_version (void)
 {
   static int printed_version = 0;
 
-  char *precede = print_data_base_flag ? "# " : "";
+  const char *precede = print_data_base_flag ? "# " : "";
 
   if (printed_version)
     /* Do it only once.  */
@@ -3260,7 +3276,7 @@ print_version (void)
      year, and none of the rest of it should be translated (including the
      word "Copyright"), so it hardly seems worth it.  */
 
-  printf ("%sCopyright (C) 1988-2013 Free Software Foundation, Inc.\n",
+  printf ("%sCopyright (C) 1988-2014 Free Software Foundation, Inc.\n",
           precede);
 
   printf (_("%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
@@ -3314,9 +3330,9 @@ clean_jobserver (int status)
 #endif
     {
       if (status != 2)
-        error (NILF,
-               "INTERNAL: Exiting with %u jobserver tokens (should be 0)!",
-               jobserver_tokens);
+        ON (error, NILF,
+            "INTERNAL: Exiting with %u jobserver tokens (should be 0)!",
+            jobserver_tokens);
       else
         /* Don't write back the "free" token */
         while (--jobserver_tokens)
@@ -3354,9 +3370,9 @@ clean_jobserver (int status)
 #endif
 
       if (tcnt != master_job_slots)
-        error (NILF,
-               "INTERNAL: Exiting with %u jobserver tokens available; should be %u!",
-               tcnt, master_job_slots);
+        ONN (error, NILF,
+             "INTERNAL: Exiting with %u jobserver tokens available; should be %u!",
+             tcnt, master_job_slots);
 
 #ifdef WINDOWS32
       free_jobserver_semaphore ();
@@ -3368,13 +3384,8 @@ clean_jobserver (int status)
          sub-makes.  Also reset job_slots since it will be put on the command
          line, not in MAKEFLAGS.  */
       job_slots = default_job_slots;
-      if (jobserver_fds)
-        {
-          /* MSVC erroneously warns without a cast here.  */
-          free ((void *)jobserver_fds->list);
-          free (jobserver_fds);
-          jobserver_fds = 0;
-        }
+      free (jobserver_fds);
+      jobserver_fds = 0;
     }
 }
 \f
@@ -3415,9 +3426,14 @@ die (int status)
 
       if (output_context)
         {
-          assert (output_context == &make_sync);
+          /* die() might be called in a recipe output context due to an
+             $(error ...) function.  */
+          output_close (output_context);
+
+          if (output_context != &make_sync)
+            output_close (&make_sync);
+
           OUTPUT_UNSET ();
-          output_close (&make_sync);
         }
 
       output_close (NULL);
diff --git a/make.1 b/make.1
index 94536fe6fe754c941c86d2934983881ed78d703a..ed04db90425f37ef2fd3a5c2efa461a28efc33a6 100644 (file)
--- a/make.1
+++ b/make.1
@@ -363,7 +363,7 @@ This manual page contributed by Dennis Morse of Stanford University.
 Further updates contributed by Mike Frysinger.  It has been reworked by Roland
 McGrath.  Maintained by Paul Smith.
 .SH "COPYRIGHT"
-Copyright \(co 1992-1993, 1996-2013 Free Software Foundation, Inc.
+Copyright \(co 1992-1993, 1996-2014 Free Software Foundation, Inc.
 This file is part of
 .IR "GNU make" .
 .LP
index be620ad12fbec2a6fe8fe306dd99691333ffa6ad..01b1f0d2ebe63c95b4e32c2f3ac357977e158aed 100644 (file)
                        <File\r
                                RelativePath=".\getopt1.c">\r
                        </File>\r
-<!--\r
+\r
                        <File\r
                                RelativePath=".\guile.c">\r
                        </File>\r
--->\r
+\r
                        <File\r
                                RelativePath=".\hash.c">\r
                        </File>\r
index 6359c47aacad0cb830c6db93b04b01442fe14ad9..fe37c05d2b290b2f5a5451e9c9737ecb2a147866 100644 (file)
@@ -1,8 +1,7 @@
 $!
 $! Makefile.com - builds GNU Make for VMS
 $!
-$! P1 is non-empty if you want to link with the VAXCRTL library instead
-$!    of the shareable executable
+$! P1 = LIST will provide compiler listings.
 $! P2 = DEBUG will build an image with debug information
 $! P3 = WALL will enable all warning messages (some are suppressed since
 $!      one macro intentionally causes an error condition)
@@ -50,6 +49,12 @@ $      endif
 $   endif
 $ endif
 $!
+$!
+$ if (p1 .eqs. "LIST")
+$ then
+$   ccopt = ccopt + "/list/show=(expan,inclu)"
+$ endif
+$!
 $! Should we build a debug image
 $!
 $ if (p2.eqs."DEBUG")
@@ -67,9 +72,11 @@ $ then
 $   gosub check_cc_qual
 $ endif
 $ filelist = "alloca ar arscan commands default dir expand file function " + -
-             "hash implicit job load main misc read remake remote-stub rule " + -
-            "output signame variable version vmsfunctions vmsify vpath " + -
+             "guile hash implicit job load main misc read remake " + -
+             "remote-stub rule output signame variable version " + -
+             "vmsfunctions vmsify vpath " + -
             "[.glob]glob [.glob]fnmatch getopt1 getopt strcache"
+$!
 $ copy config.h-vms config.h
 $ n=0
 $ open/write optf make.opt
@@ -77,18 +84,14 @@ $ loop:
 $ cfile = f$elem(n," ",filelist)
 $ if cfile .eqs. " " then goto linkit
 $ write sys$output "Compiling ''cfile'..."
-$ call compileit 'cfile' 'p1'
+$ call compileit 'cfile'
 $ n = n + 1
 $ goto loop
 $ linkit:
 $ close optf
-$ if p1 .nes. "" then goto link_using_library
 $ link/exe=make make.opt/opt'lopt
 $ goto cleanup
 $
-$ link_using_library:
-$ link/exe=make make.opt/opt,sys$library:vaxcrtl/lib'lopt
-$
 $ cleanup:
 $ if f$trnlnm("SYS").nes."" then $ deassign sys
 $ if f$trnlnm("OPTF").nes."" then $ close optf
@@ -128,17 +131,22 @@ $!-----------------------------------------------------------------------------
 $!
 $ compileit : subroutine
 $ ploc = f$locate("]",p1)
-$ filnam = p1
-$ if ploc .lt. f$length(p1) then filnam=f$extract(ploc+1,100,p1)
-$ write optf "''filnam'"
-$ cc'ccopt'/include=([],[.glob]) -
+$ if ploc .lt. f$length(p1)
+$ then
+$   objdir = f$extract(0, ploc+1, p1)
+$   write optf p1
+$ else
+$   objdir := []
+$   write optf objdir+p1
+$ endif
+$ cc'ccopt'/include=([],[.glob])/obj='objdir' -
   /define=("allocated_variable_expand_for_file=alloc_var_expand_for_file","unlink=remove","HAVE_CONFIG_H","VMS") -
   'p1'
 $ exit
 $ endsubroutine : compileit
 $!
 $!-----------------------------------------------------------------------------
-$!Copyright (C) 1996-2013 Free Software Foundation, Inc.
+$!Copyright (C) 1996-2014 Free Software Foundation, Inc.
 $!This file is part of GNU Make.
 $!
 $!GNU Make is free software; you can redistribute it and/or modify it under
index e5950b7e7de75d2036d84cbbe5aaf3cf2907a457..ad5ded7fdf236a025324d68582db6f08f336afda 100644 (file)
@@ -1,6 +1,6 @@
 # -*-Makefile-*- to build GNU make on VMS
 #
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -88,13 +88,13 @@ mandir = []
 # Number to put on the man page filename.
 manext = 1
 
-#guile = ,guile.obj
+guile = ,guile.obj
 
 objs = commands.obj,job.obj,output.obj,dir.obj,file.obj,misc.obj,hash.obj,\
        load.obj,main.obj,read.obj,remake.obj,rule.obj,implicit.obj,\
        default.obj,variable.obj,expand.obj,function.obj,strcache.obj,\
-       vpath.obj,version.obj\
-       $(ARCHIVES)$(ALLOCA)$(extras)$(getopt)$(glob)$(guile)
+       vpath.obj,version.obj$(guile)\
+       $(ARCHIVES)$(ALLOCA)$(extras)$(getopt)$(glob)
 
 srcs = commands.c job.c output.c dir.c file.c misc.c guile.c hash.c \
        load.c main.c read.c remake.c rule.c implicit.c \
@@ -118,40 +118,56 @@ clean:
        -$(RM) make.exe;,*.obj;
        -$(RM) [.glob]*.obj;
 
-# Automatically generated dependencies.
-# makeint.h: config.h gnumake.h gettext.h
-# filedef.h: hash.h
-ar.obj: ar.c makeint.h filedef.h dep.h [.glob]fnmatch.h
-arscan.obj: arscan.c makeint.h
-commands.obj: commands.c makeint.h dep.h commands.h filedef.h variable.h job.h
-default.obj: default.c makeint.h rule.h dep.h job.h filedef.h commands.h variable.h
-dir.obj: dir.c makeint.h hash.h [.glob]glob.h
-expand.obj: expand.c makeint.h commands.h filedef.h job.h rule.h variable.h
-file.obj: file.c makeint.h commands.h dep.h filedef.h variable.h job.h debug.h
-function.obj: function.c makeint.h variable.h dep.h commands.h filedef.h debug.h job.h
-getopt.obj: getopt.c getopt.h config.h gettext.h
-getopt1.obj: getopt1.c getopt.h config.h
-guile.obj: guile.c makeint.h debug.h dep.h gmk-default.h
-hash.obj: hash.c makeint.h hash.h
-implicit.obj: implicit.c makeint.h rule.h dep.h filedef.h debug.h variable.h job.h commands.h
-job.obj: job.c vmsjobs.c makeint.h commands.h job.h filedef.h variable.h debug.h
-output.obj: output.c vmsjobs.c makeint.h output.h filedef.h debug.h
-load.obj: load.c makeint.h debug.h filedef.h variable.h
-main.obj: main.c makeint.h commands.h dep.h filedef.h variable.h job.h rule.h debug.h getopt.h
-misc.obj: misc.c makeint.h dep.h debug.h
-read.obj: read.c makeint.h commands.h dep.h filedef.h variable.h [.glob]glob.h debug.h rule.h job.h
-remake.obj: remake.c makeint.h commands.h job.h dep.h filedef.h variable.h debug.h
-remote-stub.obj: remote-stub.c makeint.h filedef.h job.h commands.h
-rule.obj: rule.c makeint.h commands.h dep.h filedef.h variable.h rule.h job.h
-signame.obj: signame.c makeint.h
-strcache.obj: strcache.c makeint.h hash.h
-variable.obj: variable.c makeint.h commands.h variable.h dep.h filedef.h job.h rule.h
+ar.obj: ar.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h dep.h \
+     [.glob]fnmatch.h
+arscan.obj: arscan.c makeint.h config.h gnumake.h gettext.h
+commands.obj: commands.c makeint.h config.h gnumake.h gettext.h filedef.h \
+     hash.h dep.h variable.h job.h output.h commands.h
+default.obj: default.c makeint.h config.h gnumake.h gettext.h filedef.h \
+     hash.h variable.h rule.h dep.h job.h output.h commands.h
+dir.obj: dir.c makeint.h config.h gnumake.h gettext.h hash.h filedef.h \
+     dep.h [.glob]glob.h
+expand.obj: expand.c makeint.h config.h gnumake.h gettext.h filedef.h \
+     hash.h job.h output.h commands.h variable.h rule.h
+file.obj: file.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
+     dep.h job.h output.h commands.h variable.h debug.h
+[.glob]fnmatch.obj: [.glob]fnmatch.c config.h [.glob]fnmatch.h
+function.obj: function.c makeint.h config.h gnumake.h gettext.h filedef.h \
+     hash.h variable.h dep.h job.h output.h commands.h debug.h
+getopt.obj: getopt.c config.h gettext.h getopt.h
+getopt1.obj: getopt1.c config.h getopt.h
+[.glob]glob.obj: [.glob]glob.c config.h [.glob]fnmatch.h [.glob]glob.h
+guile.obj: guile.c makeint.h config.h gnumake.h gettext.h
+hash.obj: hash.c makeint.h config.h gnumake.h gettext.h hash.h
+implicit.obj: implicit.c makeint.h config.h gnumake.h gettext.h filedef.h \
+     hash.h rule.h dep.h debug.h variable.h job.h output.h commands.h
+job.obj: job.c makeint.h config.h gnumake.h gettext.h job.h output.h debug.h \
+     filedef.h hash.h commands.h variable.h debug.h vmsjobs.c
+load.obj: load.c makeint.h config.h gnumake.h gettext.h
+main.obj: main.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
+     dep.h variable.h job.h output.h commands.h rule.h debug.h getopt.h
+misc.obj: misc.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
+     dep.h debug.h
+output.obj: output.c makeint.h config.h gnumake.h gettext.h job.h output.h
+read.obj: read.c makeint.h config.h gnumake.h gettext.h [.glob]glob.h \
+     filedef.h hash.h dep.h job.h output.h commands.h variable.h rule.h \
+     debug.h
+remake.obj: remake.c makeint.h config.h gnumake.h gettext.h filedef.h \
+     hash.h job.h output.h commands.h dep.h variable.h debug.h
+remote-stub.obj: remote-stub.c makeint.h config.h gnumake.h gettext.h \
+     filedef.h hash.h job.h output.h commands.h
+rule.obj: rule.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
+     dep.h job.h output.h commands.h variable.h rule.h
+signame.obj: signame.c makeint.h config.h gnumake.h gettext.h
+strcache.obj: strcache.c makeint.h config.h gnumake.h gettext.h hash.h
+variable.obj: variable.c makeint.h config.h gnumake.h gettext.h filedef.h \
+     hash.h dep.h job.h output.h commands.h variable.h rule.h
 version.obj: version.c config.h
-vmsfunctions.obj: vmsfunctions.c makeint.h vmsdir.h debug.h job.h
+vmsfunctions.obj: vmsfunctions.c makeint.h config.h gnumake.h gettext.h \
+     debug.h job.h output.h vmsdir.h
 vmsify.obj: vmsify.c
-vpath.obj: vpath.c makeint.h filedef.h variable.h
-[.glob]fnmatch.obj: [.glob]fnmatch.c [.glob]fnmatch.h config.h
-[.glob]glob.obj: [.glob]glob.c [.glob]glob.h [.glob]fnmatch.h config.h
+vpath.obj: vpath.c makeint.h config.h gnumake.h gettext.h filedef.h hash.h \
+     variable.h
 
 config.h: config.h-vms
        $(CP) $< $@
index 3e222961886eab2394eaab3612f090ff9f58e116..fdcae75bd2c51476c1ff195861d60ffe72ef2479 100644 (file)
--- a/makeint.h
+++ b/makeint.h
@@ -1,5 +1,5 @@
 /* Miscellaneous global declarations and portability cruft for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -173,9 +173,6 @@ unsigned int get_path_max (void);
   (! INTEGER_TYPE_SIGNED (t) ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))
 #define INTEGER_TYPE_MAXIMUM(t) (~ (t) 0 - INTEGER_TYPE_MINIMUM (t))
 
-/* The maximum number of digits needed to represent the largest integer.  */
-#define INTEGER_LENGTH sizeof("18446744073709551616")
-
 #ifndef CHAR_MAX
 # define CHAR_MAX INTEGER_TYPE_MAXIMUM (char)
 #endif
@@ -353,8 +350,8 @@ char *strsignal (int signum);
 # include <malloc.h>
 # define pipe(_p)        _pipe((_p), 512, O_BINARY)
 # define kill(_pid,_sig) w32_kill((_pid),(_sig))
-/* MSVC doesn't have ftruncate.  */
-# ifdef _MSC_VER
+/* MSVC and Watcom C don't have ftruncate.  */
+# if defined(_MSC_VER) || defined(__WATCOMC__)
 #  define ftruncate(_fd,_len) _chsize(_fd,_len)
 # endif
 /* MinGW64 doesn't have _S_ISDIR.  */
@@ -400,8 +397,8 @@ extern int unixy_shell;
 #define MAP_USERFUNC    0x2000
 /* This means not only a '$', but skip the variable reference.  */
 #define MAP_VARIABLE    0x4000
-/* The set of characters which are path separators is OS-specific.  */
-#define MAP_PATHSEP     0x8000
+/* The set of characters which are directory separators is OS-specific.  */
+#define MAP_DIRSEP      0x8000
 
 #ifdef VMS
 # define MAP_VMSCOMMA   MAP_COMMA
@@ -409,7 +406,7 @@ extern int unixy_shell;
 # define MAP_VMSCOMMA   0x0000
 #endif
 
-#define STOP_SET(_v,_m) ANY_SET (stopchar_map[(int)(_v)],(_m))
+#define STOP_SET(_v,_m) ANY_SET (stopchar_map[(unsigned char)(_v)],(_m))
 
 #if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT)
 # define SET_STACK_SIZE
@@ -421,17 +418,42 @@ extern struct rlimit stack_limit;
 
 #define NILF ((gmk_floc *)0)
 
-#define CSTRLEN(_s) (sizeof (_s)-1)
+#define CSTRLEN(_s)           (sizeof (_s)-1)
 #define STRING_SIZE_TUPLE(_s) (_s), CSTRLEN(_s)
 
+/* The number of bytes needed to represent the largest integer as a string.  */
+#define INTSTR_LENGTH         CSTRLEN ("18446744073709551616")
+
+#ifdef HAVE_TTYNAME
+# define TTYNAME(_f) ttyname (_f)
+#else
+# define TTYNAME(_f) "true"
+#endif
+
 \f
 const char *concat (unsigned int, ...);
-void message (int prefix, const char *fmt, ...)
-              __attribute__ ((__format__ (__printf__, 2, 3)));
-void error (const gmk_floc *flocp, const char *fmt, ...)
-            __attribute__ ((__format__ (__printf__, 2, 3)));
-void fatal (const gmk_floc *flocp, const char *fmt, ...)
-                   __attribute__ ((noreturn, __format__ (__printf__, 2, 3)));
+void message (int prefix, size_t length, const char *fmt, ...)
+              __attribute__ ((__format__ (__printf__, 3, 4)));
+void error (const gmk_floc *flocp, size_t length, const char *fmt, ...)
+            __attribute__ ((__format__ (__printf__, 3, 4)));
+void fatal (const gmk_floc *flocp, size_t length, const char *fmt, ...)
+                   __attribute__ ((noreturn, __format__ (__printf__, 3, 4)));
+
+#define O(_t,_a,_f)           _t((_a), 0, (_f))
+#define OS(_t,_a,_f,_s)       _t((_a), strlen (_s), (_f), (_s))
+#define OSS(_t,_a,_f,_s1,_s2) _t((_a), strlen (_s1) + strlen (_s2), \
+                                 (_f), (_s1), (_s2))
+#define OSSS(_t,_a,_f,_s1,_s2,_s3) _t((_a), strlen (_s1) + strlen (_s2) + strlen (_s3), \
+                                      (_f), (_s1), (_s2), (_s3))
+#define ON(_t,_a,_f,_n)       _t((_a), INTSTR_LENGTH, (_f), (_n))
+#define ONN(_t,_a,_f,_n1,_n2) _t((_a), INTSTR_LENGTH*2, (_f), (_n1), (_n2))
+
+#define OSN(_t,_a,_f,_s,_n)   _t((_a), strlen (_s) + INTSTR_LENGTH, \
+                                 (_f), (_s), (_n))
+#define ONS(_t,_a,_f,_n,_s)   _t((_a), INTSTR_LENGTH + strlen (_s), \
+                                 (_f), (_n), (_s))
+
+#define OUT_OF_MEM() O (fatal, NILF, _("virtual memory exhausted"))
 
 void die (int) __attribute__ ((noreturn));
 void pfatal_with_name (const char *) __attribute__ ((noreturn));
@@ -506,9 +528,7 @@ const char *strcache_add_len (const char *str, unsigned int len);
 int strcache_setbufsize (unsigned int size);
 
 /* Guile support  */
-#ifdef HAVE_GUILE
 int guile_gmake_setup (const gmk_floc *flocp);
-#endif
 
 /* Loadable object support.  Sets to the strcached name of the loaded file.  */
 typedef int (*load_func_t)(const gmk_floc *flocp);
@@ -595,7 +615,17 @@ extern double max_load_average;
 extern int max_load_average;
 #endif
 
+#ifdef WINDOWS32
 extern char *program;
+#else
+extern const char *program;
+#endif
+
+#ifdef VMS
+const char *vms_command(const char *argv0);
+const char *vms_progname(const char *argv0);
+#endif
+
 extern char *starting_directory;
 extern unsigned int makelevel;
 extern char *version_string, *remote_description, *make_host;
@@ -612,10 +642,14 @@ extern int handling_fatal_signal;
 #define MAX(_a,_b) ((_a)>(_b)?(_a):(_b))
 #endif
 
+
 #ifdef VMS
-#  define MAKE_SUCCESS 1
-#  define MAKE_TROUBLE 2
-#  define MAKE_FAILURE 3
+/* These are the VMS __posix_exit compliant exit codes, constructed out of
+   STS$M_INHIB_MSG, C facility code, a POSIX condition code mask, MAKE_NNN<<3 and
+   the coresponding VMS severity, here STS$K_SUCCESS and STS$K_ERROR. */
+#  define MAKE_SUCCESS 0x1035a001
+#  define MAKE_TROUBLE 0x1035a00a
+#  define MAKE_FAILURE 0x1035a012
 #else
 #  define MAKE_SUCCESS 0
 #  define MAKE_TROUBLE 1
diff --git a/misc.c b/misc.c
index bc54ce649ca52bd6b1b2c9e9933889669af268df..00a3210a1ef0e41db2519997b66748c1e48a6d65 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1,5 +1,5 @@
 /* Miscellaneous generic support functions for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -219,7 +219,7 @@ xmalloc (unsigned int size)
   /* Make sure we don't allocate 0, for pre-ISO implementations.  */
   void *result = malloc (size ? size : 1);
   if (result == 0)
-    fatal (NILF, _("virtual memory exhausted"));
+    OUT_OF_MEM();
   return result;
 }
 
@@ -230,7 +230,7 @@ xcalloc (unsigned int size)
   /* Make sure we don't allocate 0, for pre-ISO implementations.  */
   void *result = calloc (size ? size : 1, 1);
   if (result == 0)
-    fatal (NILF, _("virtual memory exhausted"));
+    OUT_OF_MEM();
   return result;
 }
 
@@ -245,7 +245,7 @@ xrealloc (void *ptr, unsigned int size)
     size = 1;
   result = ptr ? realloc (ptr, size) : malloc (size);
   if (result == 0)
-    fatal (NILF, _("virtual memory exhausted"));
+    OUT_OF_MEM();
   return result;
 }
 
@@ -262,7 +262,7 @@ xstrdup (const char *ptr)
 #endif
 
   if (result == 0)
-    fatal (NILF, _("virtual memory exhausted"));
+    OUT_OF_MEM();
 
 #ifdef HAVE_STRDUP
   return result;
@@ -281,7 +281,7 @@ xstrndup (const char *str, unsigned int length)
 #ifdef HAVE_STRNDUP
   result = strndup (str, length);
   if (result == 0)
-    fatal (NILF, _("virtual memory exhausted"));
+    OUT_OF_MEM();
 #else
   result = xmalloc (length + 1);
   if (length > 0)
index fa757b075f81e1f25913af09c005cd3553d062a8..e537f3a628f212302e4d7a4a6d1bf71a66bfb8e0 100644 (file)
--- a/output.c
+++ b/output.c
@@ -1,5 +1,5 @@
 /* Output to stdout / stderr for GNU make
-Copyright (C) 2013 Free Software Foundation, Inc.
+Copyright (C) 2013-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -47,33 +47,9 @@ unsigned int stdio_traced = 0;
 #define OUTPUT_ISSET(_out) ((_out)->out >= 0 || (_out)->err >= 0)
 
 #ifdef HAVE_FCNTL
-# define STREAM_OK(_s)    ((fcntl (fileno (_s), F_GETFD) != -1) || (errno != EBADF))
+# define STREAM_OK(_s) ((fcntl (fileno (_s), F_GETFD) != -1) || (errno != EBADF))
 #else
-# define STREAM_OK(_s)    1
-#endif
-
-/* I really want to move to gnulib.  However, this is a big undertaking
-   especially for non-UNIX platforms: how to get bootstrapping to work, etc.
-   I don't want to take the time to do it right now.  Use a hack to get a
-   useful version of vsnprintf() for Windows.  */
-#ifdef __VMS
-# define va_copy(_d, _s) ((_d) = (_s))
-#endif
-#ifdef _MSC_VER
-# define va_copy(_d, _s) ((_d) = (_s))
-# define snprintf msc_vsnprintf
-static int
-msc_vsnprintf (char *str, size_t size, const char *format, va_list ap)
-{
-  int len = -1;
-
-  if (size > 0)
-    len = _vsnprintf_s (str, size, _TRUNCATE, format, ap);
-  if (len == -1)
-    len = _vscprintf (format, ap);
-
-  return len;
-}
+# define STREAM_OK(_s) 1
 #endif
 
 /* Write a string to the current STDOUT or STDERR.  */
@@ -117,7 +93,7 @@ log_working_directory (int entering)
   char *p;
 
   /* Get enough space for the longest possible output.  */
-  need = strlen (program) + INTEGER_LENGTH + 2 + 1;
+  need = strlen (program) + INTSTR_LENGTH + 2 + 1;
   if (starting_directory)
     need += strlen (starting_directory);
 
@@ -264,7 +240,11 @@ pump_from_tmp (int from, FILE *to)
       if (len <= 0)
         break;
       if (fwrite (buffer, len, 1, to) < 1)
-        perror ("fwrite()");
+        {
+          perror ("fwrite()");
+          break;
+        }
+      fflush (to);
     }
 
 #ifdef WINDOWS32
@@ -512,10 +492,10 @@ close_stdout (void)
   if (prev_fail || fclose_fail)
     {
       if (fclose_fail)
-        error (NILF, _("write error: %s"), strerror (errno));
+        perror_with_name (_("write error: stdout"), "");
       else
-        error (NILF, _("write error"));
-      exit (EXIT_FAILURE);
+        O (error, NILF, _("write error: stdout"));
+      exit (MAKE_TROUBLE);
     }
 }
 \f
@@ -606,141 +586,120 @@ outputs (int is_err, const char *msg)
 }
 \f
 
-/* Return formatted string buffers.
-   If we move to gnulib we can use vasnprintf() etc. to make this simpler.
-   Note these functions use a static buffer, so each call overwrites the
-   results of the previous call.  */
-
 static struct fmtstring
   {
     char *buffer;
-    unsigned int size;
-    unsigned int len;
-  } fmtbuf = { NULL, 0, 0 };
+    size_t size;
+  } fmtbuf = { NULL, 0 };
 
-/* Concatenate a formatted string onto the format buffer.  */
-static const char *
-vfmtconcat (const char *fmt, va_list args)
+static char *
+get_buffer (size_t need)
 {
-  va_list vcopy;
-  int tot;
-  int unused = fmtbuf.size - fmtbuf.len;
-
-  va_copy (vcopy, args);
-
-  tot = vsnprintf (&fmtbuf.buffer[fmtbuf.len], unused, fmt, args);
-  assert (tot >= 0);
-
-  if (tot >= unused)
+  /* Make sure we have room.  NEED includes space for \0.  */
+  if (need > fmtbuf.size)
     {
-      fmtbuf.size += tot * 2;
+      fmtbuf.size += need * 2;
       fmtbuf.buffer = xrealloc (fmtbuf.buffer, fmtbuf.size);
-
-      unused = fmtbuf.size - fmtbuf.len;
-      tot = vsnprintf (&fmtbuf.buffer[fmtbuf.len], unused, fmt, vcopy);
     }
 
-  va_end (vcopy);
-
-  fmtbuf.len += tot;
+  fmtbuf.buffer[need-1] = '\0';
 
   return fmtbuf.buffer;
 }
 
-static const char *
-fmtconcat (const char *fmt, ...)
-{
-  const char *p;
-  va_list args;
-
-  va_start (args, fmt);
-  p = vfmtconcat (fmt, args);
-  va_end (args);
-
-  return p;
-}
-\f
 /* Print a message on stdout.  */
 
 void
-message (int prefix, const char *fmt, ...)
+message (int prefix, size_t len, const char *fmt, ...)
 {
   va_list args;
+  char *p;
 
-  assert (fmt != NULL);
-
-  fmtbuf.len = 0;
+  len += strlen (fmt) + strlen (program) + INTSTR_LENGTH + 4 + 1 + 1;
+  p = get_buffer (len);
 
   if (prefix)
     {
       if (makelevel == 0)
-        fmtconcat ("%s: ", program);
+        sprintf (p, "%s: ", program);
       else
-        fmtconcat ("%s[%u]: ", program, makelevel);
+        sprintf (p, "%s[%u]: ", program, makelevel);
+      p += strlen (p);
     }
 
   va_start (args, fmt);
-  vfmtconcat (fmt, args);
+  vsprintf (p, fmt, args);
   va_end (args);
 
-  fmtconcat ("\n");
+  strcat (p, "\n");
 
+  assert (fmtbuf.buffer[len-1] == '\0');
   outputs (0, fmtbuf.buffer);
 }
 
 /* Print an error message.  */
 
 void
-error (const gmk_floc *flocp, const char *fmt, ...)
+error (const gmk_floc *flocp, size_t len, const char *fmt, ...)
 {
   va_list args;
+  char *p;
 
-  assert (fmt != NULL);
-
-  fmtbuf.len = 0;
+  len += (strlen (fmt) + strlen (program)
+          + (flocp && flocp->filenm ? strlen (flocp->filenm) : 0)
+          + INTSTR_LENGTH + 4 + 1 + 1);
+  p = get_buffer (len);
 
   if (flocp && flocp->filenm)
-    fmtconcat ("%s:%lu: ", flocp->filenm, flocp->lineno);
+    sprintf (p, "%s:%lu: ", flocp->filenm, flocp->lineno);
   else if (makelevel == 0)
-    fmtconcat ("%s: ", program);
+    sprintf (p, "%s: ", program);
   else
-    fmtconcat ("%s[%u]: ", program, makelevel);
+    sprintf (p, "%s[%u]: ", program, makelevel);
+  p += strlen (p);
 
   va_start (args, fmt);
-  vfmtconcat (fmt, args);
+  vsprintf (p, fmt, args);
   va_end (args);
 
-  fmtconcat ("\n");
+  strcat (p, "\n");
 
+  assert (fmtbuf.buffer[len-1] == '\0');
   outputs (1, fmtbuf.buffer);
 }
 
 /* Print an error message and exit.  */
 
 void
-fatal (const gmk_floc *flocp, const char *fmt, ...)
+fatal (const gmk_floc *flocp, size_t len, const char *fmt, ...)
 {
   va_list args;
+  const char *stop = _(".  Stop.\n");
+  char *p;
 
-  assert (fmt != NULL);
-
-  fmtbuf.len = 0;
+  len += (strlen (fmt) + strlen (program)
+          + (flocp && flocp->filenm ? strlen (flocp->filenm) : 0)
+          + INTSTR_LENGTH + 8 + strlen (stop) + 1);
+  p = get_buffer (len);
 
   if (flocp && flocp->filenm)
-    fmtconcat ("%s:%lu: *** ", flocp->filenm, flocp->lineno);
+    sprintf (p, "%s:%lu: *** ", flocp->filenm, flocp->lineno);
   else if (makelevel == 0)
-    fmtconcat ("%s: *** ", program);
+    sprintf (p, "%s: *** ", program);
   else
-    fmtconcat ("%s[%u]: *** ", program, makelevel);
+    sprintf (p, "%s[%u]: *** ", program, makelevel);
+  p += strlen (p);
 
   va_start (args, fmt);
-  vfmtconcat (fmt, args);
+  vsprintf (p, fmt, args);
   va_end (args);
 
-  fmtconcat (_(".  Stop.\n"));
+  strcat (p, stop);
+
+  assert (fmtbuf.buffer[len-1] == '\0');
   outputs (1, fmtbuf.buffer);
 
-  die (2);
+  die (MAKE_FAILURE);
 }
 
 /* Print an error message from errno.  */
@@ -748,7 +707,8 @@ fatal (const gmk_floc *flocp, const char *fmt, ...)
 void
 perror_with_name (const char *str, const char *name)
 {
-  error (NILF, _("%s%s: %s"), str, name, strerror (errno));
+  const char *err = strerror (errno);
+  OSSS (error, NILF, _("%s%s: %s"), str, name, err);
 }
 
 /* Print an error message from errno and exit.  */
@@ -756,7 +716,8 @@ perror_with_name (const char *str, const char *name)
 void
 pfatal_with_name (const char *name)
 {
-  fatal (NILF, _("%s: %s"), name, strerror (errno));
+  const char *err = strerror (errno);
+  OSS (fatal, NILF, _("%s: %s"), name, err);
 
   /* NOTREACHED */
 }
index e0d5daaa18d06ea0038fa227e951ad0995d7d6c9..7c5332cf6ce4463159e52df22531c576eb6ff3bb 100644 (file)
--- a/output.h
+++ b/output.h
@@ -1,5 +1,5 @@
 /* Output to stdout / stderr for GNU make
-Copyright (C) 2013 Free Software Foundation, Inc.
+Copyright (C) 2013-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/po/ChangeLog b/po/ChangeLog
deleted file mode 100644 (file)
index cd7de0c..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-2013-01-06  Paul Smith  <psmith@gnu.org>
-
-       * POTFILES.in: Add new load.c file.
-
-2012-01-12  Paul Smith  <psmith@gnu.org>
-
-       * POTFILES.in: Add new guile.c file.
-
-2011-09-26  Paul Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added new translation file for Czech (cs).
-
-2009-09-16  Paul Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added new translation for Italian (it).
-
-2008-05-17  Paul Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added new translation for Lithuanian (lt).
-
-2007-08-15  Paul Smith  <psmith@gnu.org>
-
-       * LINGUAS: The Kinyarwanda (rw) translation has disappeared from
-       the translation site, so remove it.
-
-2006-01-28  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added new translation for Vietnamese (vi).
-
-2005-07-14  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added new translation for Indonesian (id).
-
-2005-05-09  Paul D. Smith  <psmith@gnu.org>
-
-       * POTFILES.in: Add new file vmsjobs.c.
-
-2005-04-06  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added a new translation for Kinywarwanda (rw).
-
-2005-02-09  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added a new translation for Irish (ga).
-
-2005-02-01  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added a new translation for Finnish (fi).
-
-2003-10-18  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added a new translation for Belarusian (be).
-
-2002-12-19  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Added a new translation for Ukrainian (uk).
-
-2002-10-05  Paul D. Smith  <psmith@gnu.org>
-
-       * POTFILES.in: Add variable.h as it has a translatable string.
-
-2002-08-08  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Add a new translation for Chinese (simplified) (zh_CN).
-
-2002-08-02  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS: Add a new translation for Swedish (sv).
-
-2002-04-21  Paul D. Smith  <psmith@gnu.org>
-
-       * LINGUAS, hr.po: Added new translation: Croatian.
-
-       * da.po, de.po, es.po, fr.po, gl.po, he.po, ja.po, ko.po, nl.po,
-       pl.po, pt_BR.po, ru.po, tr.po: Moved from i18n to here.
-       * .cvsignore: Moved from i18n to here.
-
-       * POTFILES.in, LINGUAS, Makevars: Created.
-\f
-Copyright (C) 2002-2013 Free Software Foundation, Inc.
-This file is part of GNU Make.
-
-GNU Make is free software; you can redistribute it and/or modify it under the
-terms of the GNU General Public License as published by the Free Software
-Foundation; either version 3 of the License, or (at your option) any later
-version.
-
-GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see <http://www.gnu.org/licenses/>.
index 900e794b0c3c7a49b46007396da23278347e43bf..b69192ee11415090506c77cd88be042cd3e78b5b 100644 (file)
@@ -1,5 +1,5 @@
 # This is a -*-Makefile-*-
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
index ba156ee79fc0565847b136b570c26295ebdd8c9e..4287c5de67f54a8bc6909013295115a3d88e8fa7 100644 (file)
@@ -1,5 +1,5 @@
 # List of source files containing translatable strings.
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
+# Copyright (C) 2000-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
index 93a72bc86662c81f33dc01929652bac3e7a4b1b8..6c4ecf0a1aa2ec88b9c4e465d9c99a46d14c35cf 100644 (file)
Binary files a/po/be.gmo and b/po/be.gmo differ
index c296783327caac4bdc8e491bc59afc3222ea6487..738572442c6094f9bd4169d3d87b70695bc81994 100644 (file)
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.80\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2003-10-21 11:50+0300\n"
 "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
 "Language-Team: Belarusian <i18n@mova.org>\n"
@@ -45,50 +45,50 @@ msgstr "touch: удзельнік \"%s\" ня йснуе ў \"%s\""
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr ""
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr ""
 
-#: arscan.c:185
+#: arscan.c:255
 #, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr ""
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr ""
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (назва мусіла быць абрэзана)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Дата %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, рэжым = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr ""
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr ""
@@ -98,26 +98,26 @@ msgstr ""
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr ""
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Выдаляецца файл \"%s\""
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Выдаляецца файл \"%s\""
 
-#: commands.c:684
+#: commands.c:685
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  загады для выкананьня"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (убудаваны):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (з\"%s\", радок %lu):\n"
@@ -199,152 +199,152 @@ msgstr ""
 msgid "unterminated variable reference"
 msgstr ""
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr ""
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr ""
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Выдаляецца файл \"%s\""
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Выдаляюцца прамежкавыя файлы...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Бягучы час"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: адбітак часу па-за дапушчальнымі межамі, падстаўляецца %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Бягучы час"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Ня мэта:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr ""
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr ""
 
-#: file.c:958
+#: file.c:964
 #, fuzzy
 msgid "#  Command line target."
 msgstr "загадны радок"
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr ""
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr ""
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr ""
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr ""
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr ""
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr ""
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Так сама робяцца:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Час зьмяненьня ніколі не правяраўся."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Файл ня йснуе."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Файл вельмі стары."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Апошняе зьмяненьне %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Файл быў абноўлены."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Файл ня быў абноўлены."
 
-#: file.c:995
+#: file.c:1001
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Загады, што выконваюцца зараз (ГЭТА - ПАМЫЛКА)."
 
-#: file.c:998
+#: file.c:1004
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Загады, што выконваюцца зараз (ГЭТА - ПАМЫЛКА)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Пасьпяхова абноўлены."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr ""
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr ""
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr ""
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -352,111 +352,111 @@ msgstr ""
 "\n"
 "# Файлы"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr ""
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr ""
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr ""
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr ""
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe (): памылка ў process_init_fd()\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_openpipe (): памылка ў process_init_fd()\n"
 
-#: function.c:1490
+#: function.c:1530
 #, fuzzy, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "памылка ў CreatePipe() (e=%d)\n"
 
-#: function.c:1498
+#: function.c:1538
 #, fuzzy
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe (): памылка ў process_init_fd()\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr ""
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr ""
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "Ня зроблена для гэтае плятформы: функцыя \"%s\""
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr ""
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr ""
 
-#: function.c:2555
+#: function.c:2601
 #, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr ""
 
 #: getopt.c:659
@@ -514,12 +514,12 @@ msgstr "%s: выбар \"-W %s\" - неадназначын.\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: выбар \"-W %s\" не дазваляе довад.\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -603,207 +603,207 @@ msgstr "Выдаляюцца прамежкавыя файлы...\n"
 msgid "Cannot create a temporary file\n"
 msgstr "fwrite (часовы файл)"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr ""
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr ""
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (убудаваны):"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Памылка 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Памылка %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Памылка 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Чакаюцца незавершаныя працы...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr ""
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr ""
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr ""
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr ""
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr ""
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr ""
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr ""
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
 "Counted %d args in failed launch\n"
 msgstr ""
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr ""
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr ""
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: архіў \"%s\" ня йснуе"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s Няма правіла каб зрабіць мэту \"%s\", патрэбную для \"%s\"%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr ""
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr ""
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr ""
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr ""
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: загад не адшуканы"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr ""
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr ""
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL зьменена (раней \"%s\", зараз \"%s\")"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr ""
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -812,163 +812,163 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Паралельня працы (-j) не падтрымліваюцца на гэтае плятхорме."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Выбары:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr ""
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr ""
 "  -h, --help                  Друкуе гэтае паведамленьне й выходзіць.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr ""
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base        Друкуе нутраную базу даньняў make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 
-#: main.c:365
+#: main.c:366
 #, fuzzy
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet        Не адлюстроўваць загады.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -976,67 +976,63 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                               Выключае -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr ""
 "  -h, --help                  Друкуе гэтае паведамленьне й выходзіць.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory        Друкуе бягучую тэчку.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr ""
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "пусты радок нерэчаісны ў якасьці назвы файла"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr ""
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr ""
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1046,179 +1042,175 @@ msgid ""
 "ExceptionAddress = 0x%p\n"
 msgstr ""
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr ""
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr ""
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr ""
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s спынена на 30 сэкундаў..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr ""
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr ""
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr ""
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr ""
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile са стандартнага ўводу зададзены двойчы."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (часовы файл)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (часовы файл)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Паралельня працы (-j) не падтрымліваюцца на гэтае плятхорме."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr ""
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "ствараецца трубаправод прац"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr ""
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr ""
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Абнаўляюцца make-файлы....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ""
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr ""
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Makefile \"%s\" ня знойдзен"
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Makefile \"%s\" ня знойдзен"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr ""
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr ""
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (часовы файл): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ""
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr ""
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Няма мэт"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr ""
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Выкарыстаньне: %s [выбары] [мэта] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1227,7 +1219,7 @@ msgstr ""
 "\n"
 "Гэта праграма пабудавана для %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1236,36 +1228,36 @@ msgstr ""
 "\n"
 "Гэта праграма падубавана для %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Паведамляйце пра памылкі на <bug-make@gnu.org>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "выбар \"-%c\" патрабуе станоўчы цэлы довад"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "выбар \"-%c\" патрабуе станоўчы цэлы довад"
 
-#: main.c:3253
+#: main.c:3269
 #, fuzzy, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 "\n"
 "Гэта праграма пабудавана для %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, fuzzy, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 "\n"
 "Гэта праграма падубавана для %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1274,14 +1266,14 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
 "# Make data base, printed on %s"
 msgstr ""
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1293,10 +1285,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Невядомая памылка %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "віртуальная памяць вычарпана"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1318,66 +1306,60 @@ msgstr ""
 msgid "Child access"
 msgstr ""
 
-#: output.c:128
+#: output.c:104
 #, fuzzy, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: уваход у невядомую тэчку"
 
-#: output.c:130
+#: output.c:106
 #, fuzzy, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: выхад зь невядомае тэчкі"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: уваход у тэчку \"%s\"\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: выхад з тэчкі \"%s\"\n"
 
-#: output.c:139
+#: output.c:115
 #, fuzzy, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: уваход у невядомую тэчку"
 
-#: output.c:141
+#: output.c:117
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: выхад зь невядомае тэчкі"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: уваход у тэчку \"%s\"\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: выхад з тэчкі \"%s\"\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+msgid "write error: stdout"
 msgstr ""
 
-#: output.c:517
-#, fuzzy
-msgid "write error"
-msgstr "Памылка шыны"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ""
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1386,354 +1368,359 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Чытаюцца make-файлы...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Чытаецца make-файл \"%s\""
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (няма дапомнае мэты)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (пошук шляху)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr ""
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr ""
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr ""
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr ""
 
-#: read.c:1036
+#: read.c:1041
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "прапушчана правіла перад загадамі"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "прапушчан падзяляльнік %s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (вы маеце на ўвазе TAB замест 8 прагалаў?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "прапушчан падзяляльнік %s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr ""
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr ""
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr ""
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "прапушчаны \"endif\""
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr ""
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr ""
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "прапушчаны \"endef\", незавершаны \"define\""
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr ""
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr ""
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "зьнешні \"%s\""
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr ""
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr ""
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr ""
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr ""
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr ""
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr ""
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr ""
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr ""
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr ""
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr ""
 
-#: read.c:2530
+#: read.c:2229
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr ""
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr ""
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Нічога ня было зроблена для \"%s\"."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "\"%s\" - састарэл(а)."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Усё яшэ абнаўляецца файл \"%s\".\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sНяма правіла каб зрабіць мэту \"%s\"%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%s Няма правіла каб зрабіць мэту \"%s\", патрэбную для \"%s\"%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sНяма правіла каб зрабіць мэту \"%s\"%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr ""
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr ""
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Файл \"%s\" ужо быў разгледжаны.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Усё яшэ абнаўляецца файл \"%s\".\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Скончана абнаўленьне файла \"%s\".\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Файл \"%s\" ня йснуе.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr ""
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr ""
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr ""
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr ""
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Скончана абнаўленьне файла \"%s\".\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr ""
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Скончана абнаўленьне файла \"%s\".\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr ""
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr ""
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Файл \"%s\" ня йснуе.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr ""
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr ""
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr ""
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "%sНяма правіла каб зрабіць мэту \"%s\"%s"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr ""
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "%sНяма правіла каб зрабіць мэту \"%s\"%s"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr ""
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr ""
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "%sНяма правіла каб зрабіць мэту \"%s\"%s"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr ""
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr ""
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Невядомы ўбудаваны загад \"%s\".\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Увага! Файл \"%s\" мае час зьмяненьня, які шчэ не надышоў."
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Увага! Файл \"%s\" мае час зьмяненьня %.2g с, які шчэ не надышоў."
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ""
@@ -1743,30 +1730,30 @@ msgstr ""
 msgid "Customs won't export: %s\n"
 msgstr ""
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
 msgstr ""
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
 msgstr ""
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
 "# %u implicit rules, %u"
 msgstr ""
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " тэрмінал."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr ""
@@ -1972,45 +1959,45 @@ msgid ""
 "# "
 msgstr ""
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "аўтаматычна"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "дапомны"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "асяродзьдзе"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "make-файл"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr ""
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "загадны радок"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "дырэктыва \"override\""
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (з \"%s\", радок %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr ""
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2018,19 +2005,19 @@ msgstr ""
 "\n"
 "# Пераменныя\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
 msgstr ""
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
 msgstr ""
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2047,77 +2034,82 @@ msgstr "Увага! Нявызначаная пераменная \"%.*s\""
 msgid "sys$search() failed with %d\n"
 msgstr ""
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr ""
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr ""
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr ""
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr ""
 
-#: vmsjobs.c:446
+#: vmsjobs.c:501
 #, c-format
-msgid "BUILTIN RM %s\n"
+msgid "BUILTIN ECHO %s->%s\n"
 msgstr ""
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Невядомы ўбудаваны загад \"%s\".\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Памылка! Парожні загад.\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Перанакіраваны ўвод з %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr ""
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, fuzzy, c-format
 msgid "Append output to %s\n"
 msgstr "Перанакіраваны вывад у %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Перанакіраваны вывад у %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr ""
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr ""
@@ -2165,6 +2157,9 @@ msgstr ""
 #~ "%sпагадненьня аб распаўсюджваньні. Ня йснуе НІЯКАЕ гарантыі, нават аб\n"
 #~ "%sмагчымасьці выкарыстньня зь якой небудзь мэтай.\n"
 
+#~ msgid "virtual memory exhausted"
+#~ msgstr "віртуальная памяць вычарпана"
+
 #~ msgid "invalid `override' directive"
 #~ msgstr "нерэчаісная дырэктыва \"override\""
 
index babe63b890d1304195e7c5716c73499dba10ed44..e8cbeaf90c6cdf7ba09832424e5e83bb5bd53bca 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index c679df95ada0c0fac30818d5b23a68199ffeba83..9e6fa8ba62c2c34437746f00149e22afc4525a5d 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.99.93\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-02 05:55+0200\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-09 21:24+0200\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
@@ -65,52 +65,52 @@ msgstr "touch: Prvek „%s“ v „%s“ neexistuje"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: Chybný návratový kód z funkce ar_member_touch volané nad „%s“"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "funkce lbr$set_module() nedokázala vytáhnout údaje o modulu, status = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "funkce lbr$ini_control() selhala se stavem = %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "není možné otevřít knihovnu „%s“ potřebnou k najití prvku „%s“"
 
 # TODO: Pluralize
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Prvek „%s“%s: %'ld bajtů at %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (název může být zkrácen)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Datum %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  UID = %d, GID = %d, práva = 0%o\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "Návod má příliš mnoho řádků (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Přerušeno.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Prvek archivu „%s“ je možná chybný, nesmazáno"
@@ -120,25 +120,25 @@ msgstr "*** [%s] Prvek archivu „%s“ je možná chybný, nesmazáno"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Prvek archivu „%s“ ne možná chybný, nesmazáno"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Maže se soubor „%s“"
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Maže se soubor „%s“"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  spustitelný návod"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (vestavěný):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (z „%s“, řádek %lu):\n"
@@ -223,151 +223,151 @@ msgstr "Rekurzivní proměnná „%s“ odkazuje na sebe (nakonec)"
 msgid "unterminated variable reference"
 msgstr "neukončený odkaz na proměnnou"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Návod byl určen pro soubor „%s“ v %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Návod pro soubor „%s“ byl nalezen hledáním implicitních pravidel,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "ale „%s“ se nyní považuje za soubor totožný s „%s“."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Návod pro „%s“ bude ignorován ve prospěch návodu pro „%s“."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "„%s“ s jednoduchou dvojtečkou nelze přejmenovat na „%s“ s dvojitou dvojtečkou"
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 "„%s“ s dvojitou dvojtečkou nelze přejmenovat na „%s“ s jednoduchou dvojtečkou"
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "Maže se mezilehlý soubor „%s“ "
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Odstraňují se mezilehlé soubory…\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Aktuální čas"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Časový údaj mimo rozsah, nahrazuje se %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Aktuální čas"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Není cílem:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Cenný soubor (prerekvizita k .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Falešný cíl (prerekvizita k .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Cíl příkazové řádky."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Default, MAKEFILES nebo -include/sinclude makefile."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "#  Vestavěné pravidlo"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Hledalo se za pomoci implicitních pravidel."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Nehledalo se za pomoci implicitních pravidel."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Kořen implicitního/statického vzoru: „%s“\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Soubor je mezilehlá prerekvizita."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Rovněž vyrábí:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Čas změny obsahu se nikdy nekontroluje."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Soubor neexistuje."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Soubor je velmi starý."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Obsah naposledy změněn v %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Soubor byl aktualizován."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Soubor nebyl aktualizován."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Návod se právě vykonává (TOTO JE CHYBA)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Návod pro závislosti se právě vykonává (TOTO JE CHYBA)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Úspěšně aktualizováno."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Je třeba aktualizovat (-q je nastaveno)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Aktualizace selhala."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Neplatná hodnota v členu „command_state“!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -375,7 +375,7 @@ msgstr ""
 "\n"
 "# Soubory"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -385,104 +385,105 @@ msgstr ""
 "# Statistika hašovací tabulky souborů:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Položka „%s“ není v keši: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "nečíselný první argument funkce „word“"
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "první argument funkce „word“ musí být vetší než 0"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "nečíselný první argument funkce „wordlist“"
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "nečíselný druhý argument funkce „wordlist“"
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(vstup) selhalo (chyba=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr ""
 "windows32_openpipe: DuplicateHandle(chybový výstup) selhalo (chyba=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() selhalo (chyba=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() selhalo\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Dočasný dávkový soubor %s se uklízí\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "otevření: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "zápis: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Neplatná operace na souboru: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "nedostatečný počet argumentů (%d) funkce „%s“"
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "na této platformě neimplementováno: funkce „%s“"
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "neukončené volání funkce „%s“: chybí „%c“"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Prázdný název funkce\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Neplatná operace na souboru: %s"
+msgid "Invalid function name: %s"
+msgstr "Neplatný název funkce: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Název funkce je příliš dlouhý: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "Neplatný minimální počet argumentů (%d) funkce %s\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "Neplatný maximální počet argumentů (%d) funkce %s\n"
 
 #: getopt.c:659
@@ -540,12 +541,12 @@ msgstr "%s: přepínač „-W %s“ není jednoznačný\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: přepínač „-W %s“ nepřipouští argument\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: Expanduje se „%s“\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: Vyhodnocuje se „%s“\n"
@@ -629,98 +630,98 @@ msgstr "Hledá se pravidlo s mezilehlým souborem „%s“.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Dočasný soubor nelze vytvořit\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (obraz paměti uložen)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (ignorováno)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<vestavěný>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: návod pro cíl „%s“ selhal"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Chyba 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Chyba %d%s"
 
-#: job.c:517
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Chyba 0x%x%s"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Čeká se na nedokončené úlohy…"
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Živý potomek %p (%s) PID %s %s\n"
 
 # Continuation of Live child
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (vzdálený)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Uklízí se prohrávající potomek %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Uklízí se vyhrávající potomek %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Uklízí se dočasný dávkový soubor %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Úklid dočasného dávkového souboru %s selhal (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Z řetězce se odstraňuje potomek %p PID %s%s.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "uvolnění semaforu správce úloh: (Chyba %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Uvolněn token pro potomka %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "zápis správce úloh"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() nedokázala spustit proces (chyba=%ld)\n"
 
 # FIXME: Pluralize
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -729,97 +730,97 @@ msgstr ""
 "\n"
 "Napočítáno %d argumentů v selhaném spuštění\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Do řetězce se přidává potomek %p (%s) PID %s%s.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "čekání na semafor nebo potomka: (Chyba %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Získán token pro potomka %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "čtení z roury úloh"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: cíl „%s“ neexistuje"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: aktualizovat cíl „%s“ potřebný pro %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "na tomto operačním systému nelze vynutit omezení zátěže"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "omezení zátěže nelze vynutit: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "nedostatek deskriptorů souboru: standardní vstup nelze zduplikovat\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "nedostatek deskriptorů souboru: standardní výstup nelze zduplikovat\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "nedostatek deskriptorů souboru: chybový výstup nelze zduplikovat\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Standardní vstup nelze obnovit\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Standardní výstup nelze obnovit\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Chybový výstup nelze obnovit\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make uklidil potomka s PID %s, stále se čeká na PID %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Příkaz nenalezen"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Program shellu nenalezen"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: možná byl vyčerpán prostor pro prostředí"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "Proměnná $SHELL se změnila (byla „%s“, nyní je „%s“)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Vytváří se dočasný dávkový soubor %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -827,7 +828,7 @@ msgstr ""
 "Obsah dávkového souboru:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -836,7 +837,7 @@ msgstr ""
 "Obsah dávkového souboru:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (řádek %d) Chybný kontext shellu (!unixy && !batch_mode_shell)\n"
@@ -846,48 +847,48 @@ msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 "Přepínač -O[DRUH] (--output-sync[=DRUH]) není v tomto sestavení zahrnut."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Nepodařilo se otevřít tabulku globálních symbolů: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Zavedený objekt %s není veden jako slučitelný s GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Symbol %s z %s se nepodařilo zavést: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Pokus zavést prázdný název symbolu: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Zavádí se symbol %s z %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Na této platformě není operace zavedení (load) podporována."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Přepínače:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ignoruje se kvůli kompatibilitě.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Bezpodmínečně vyrobí všechny cíle.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -895,17 +896,17 @@ msgstr ""
 "  -C ADRESÁŘ, --directory=ADRESÁŘ\n"
 "                              Před děláním čehokoliv se přepne do ADRESÁŘE.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Vypisuje mnoho ladicích údajů.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=PŘÍZNAKY]          Vypisuje ladicí údaje rozličných druhů.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -913,12 +914,12 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              Proměnné prostředí přebijí ty z makefilu.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr "  --eval=ŘETĚZEC              Vyhodnotí ŘETĚZEC jako kód makefilu.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -926,15 +927,15 @@ msgstr ""
 "  -f SOUBOR, --file=SOUBOR, --makefile=SOUBOR\n"
 "                              Načte SOUBOR coby makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Vypíše tuto zprávu a skončí.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Ignoruje chyby z návodů.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -942,7 +943,7 @@ msgstr ""
 "  -I ADRESÁŘ, --include-dir=ADRESÁŘ\n"
 "                              Vložené makefily hledá v ADRESÁŘI.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -950,13 +951,13 @@ msgstr ""
 "  -j [N], --jobs[=N]          Dovolí nejvíce N úloh najednou;\n"
 "                              nekonečno úloh bez argumentu.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Pokračuje, když některé cíle nelze vyrobit.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -966,7 +967,7 @@ msgstr ""
 "                              Nespouští souběžné úlohy, dokud zátěž\n"
 "                              neklesne pod N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -974,7 +975,7 @@ msgstr ""
 "  -L, --check-symlink-times   Použije nejnovější čas změny obsahu z časů\n"
 "                              symbolických odkazů a cíle.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -984,7 +985,7 @@ msgstr ""
 "                              Ve skutečnosti nevykoná žádný návod, pouze\n"
 "                              jej vypíše.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -994,7 +995,7 @@ msgstr ""
 "                              Považuje SOUBOR za velmi starý a znovu jej\n"
 "                              nevyrobí.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -1003,11 +1004,11 @@ msgstr ""
 "                              Synchronizuje výstup souběžných úloh podle "
 "DRUHU.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Vypíše vnitřní databázi programu make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1015,19 +1016,19 @@ msgstr ""
 "  -q, --question              Nespustí žádný návod. Návratový kód řekne,\n"
 "                              jestli je aktuální.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr "  -r, --no-builtin-rules      Vypne vestavěná implicitní pravidla.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr "  -R, --no-builtin-variables  Vypne vestavěné nastavení proměnných.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Neopisuje návod.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1035,32 +1036,32 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Vypne -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr "  -t, --touch                 Namísto výroby cílů jim změní čas.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Vypisuje trasovací údaje.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 "  -v, --version               Vypíše číslo verze programu make a skončí.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Vypisuje aktuální adresář.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr ""
 "  --no-print-directory        Vypne -w, i kdyby byl zapnut implicitně.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1068,7 +1069,7 @@ msgstr ""
 "  -W SOUBOR, --what-if=SOUBOR, --new-file=SOUBOR, --assume-new=SOUBOR\n"
 "                              Považuje SOUBOR za nekonečně nový.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1076,30 +1077,26 @@ msgstr ""
 "  --warn-undefined-variables  Upozorní, kdykoliv je odkazováno na\n"
 "                              nedefinovanou proměnnou.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "prázdný řetězec není platný název souboru"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "zadána neznámá úroveň ladění „%s“"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "neznámý druh synchronizace výstupu „%s“"
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "vnitřní chyba: více přepínačů --sync-mutex"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Zachyceno přerušení/výjimka (kód = 0x%lx, adresa = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1114,183 +1111,179 @@ msgstr ""
 "Příznaky výjimky = %lx\n"
 "Adresa výjimky = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Porušení přístupu: operace zápisu na adrese 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Porušení přístupu: operace čtení na adrese 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() nastavuje default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 "find_and_set_shell() při prohledávání cesty nastavila default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s se uspí na 30 sekund…"
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) dokončeno. Pokračuje se.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "vnitřní chyba: více přepínačů --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 "vnitřní chyba: nelze otevřít semafor správce úloh „%s“: (Chyba %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Klient správce úloh (semafor %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "vnitřní chyba: neplatný řetězec --jobserver-fds „%s“"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Klient správce úloh (deskriptory %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "pozor: -jN vnuceno podřízenému maku: režim správce úloh se vypíná."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "služba dup() nad správcem úloh"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "pozor: správce úloh není dostupný: použije se -j1. Do nadřízeného pravidla "
 "maku přidejte „+“."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile na standardním vstupu uveden dvakrát."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (dočasný soubor)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (dočasný soubor)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Na této platformě nejsou paralelní úlohy (-j) podporovány."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Návrat k jednoúlohovému režimu (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Místa ve správci úloh jsou omezena na %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "vytváření semaforu správce úloh: (Chyba %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "vytváření roury úloh"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "inicializace roury správce úloh"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Symbolické odkazy nejsou podporovány: vypíná se -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Soubory makefile se aktualizují…\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Makefile „%s“ může cyklit, nebude znovu vyroben.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Výroba nového makefilu „%s“ selhala."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Vložený makefile „%s“ nebyl nalezen."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Makefile „%s“ nebyl nalezen"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Nebylo možné se vrátit do původního adresáře."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Znovu se spouští [%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (dočasný soubor): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL obsahuje více než jeden cíl"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Nezadány žádné cíle a žádné makefily nenalezeny"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Žádné cíle"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Aktualizují se cíle…\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "pozor: Zjištěn posun hodin. Vaše sestavení možná nebude úplné."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Použití: %s [PŘEPÍNAČE] [CÍLE]…\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1299,7 +1292,7 @@ msgstr ""
 "\n"
 "Tento program byl sestaven pro %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1308,34 +1301,34 @@ msgstr ""
 "\n"
 "Tento program byl sestaven pro %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Chyby v programu hlaste anglicky na <bug-make@gnu.org>. Nedostatky\n"
 "v překladu hlaste česky na <translation-team-cs@lists.sourceforge.net>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "přepínače „%s%s“ vyžaduje neprázdný řetězcový argument"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "přepínač „-%c“ vyžaduje kladný celočíselný argument"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sSestaveno pro %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%s Sestaveno pro %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1349,7 +1342,7 @@ msgstr ""
 "%sNesposkytuje se ŽÁDNÁ ZÁRUKA, jak jen zákon dovoluje.\n"
 
 # FIXME: i18n %s (time)
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1359,7 +1352,7 @@ msgstr ""
 "# Databáze maku vypsána v %s"
 
 # FIXME: i18n %s (time)
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1373,10 +1366,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Neznámá chyba %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "virtuální paměť vyčerpána"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1398,65 +1387,61 @@ msgstr "Přístup makem"
 msgid "Child access"
 msgstr "Přístup potomkem"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Vstupuje se do neznámého adresáře\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s Opouští se neznámý adresář\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Vstupuje se do adresáře „%s“\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Opouští se adresář „%s“\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Vstupuje se do neznámého adresáře\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Opouští se neznámý adresář\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Vstupuje se do adresáře „%s“\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Opouští se adresář „%s“\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "chyba zápisu: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "chyba zápisu"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ". Konec.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1465,215 +1450,221 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Čtou se makefily…\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Čte se makefile „%s“"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (žádný výchozí cíl)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (vyhledávací cesta)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (nestarat se)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (žádný expanze ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "Přeskakuje se UTF-8 BOM v makefilu „%s“\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "Přeskakuje se UTF-8 BOM v paměti makefilu\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "neplatná syntaxe podmínky"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: zavedení selhalo"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "návod zahájen před prvním cílem"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "před návodem chybí pravidlo"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "chybí oddělovač%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (mysleli jste tabulátor místo 8 mezer?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "chybí oddělovač%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "chybí vzor cíle"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "více vzorů cíle"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "vzor cíle neobsahuje „%%“"
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "chybí „endif“"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "prázdný název proměnné"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "nadbytečný text po klíčovém slovu „define“"
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "chybí „endef“, neukončený „define“"
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "nadbytečný text po klíčovém slovu „endef“"
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "nadbytečný text po klíčovém slovu „%s“"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "nadbytečný „%s“"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "pouze jeden „else“ na podmínku"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Chybě utvořená definice proměnné specifické pro cíl"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "prerekvizitu nelze definovat v návodu"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "smíšené implicitní a statická pravidla vzorů"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "smíšené implicitní a normální pravidla"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "cíl „%s“ neodpovídá vzoru cíle"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "cílový soubor „%s“ obsahuje jak :, tak i ::"
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "cíl „%s“ zadán více než jednou ve stejném pravidle"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "pozor: návod pro cíl „%s“ bude přebit"
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "pozor: starý návod pro cíl „%s“ bude ignorován"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "smíšené implicitní a normální pravidla"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "pozor: zaznamenán znak NUL, zbytek řádku bude ignorován"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Pro „%s“ nebude nic uděláno."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "„%s“ je aktuální."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Uklízí se soubor „%s“.\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sŽádné pravidlo jak vyrobit cíl „%s“%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sŽádné pravidlo jak vyrobit cíl „%s“ potřebný pro „%s“%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sŽádné pravidlo jak vyrobit cíl „%s“%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Zvažuje se cílový soubor „%s“.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Nedávná aktualizace souboru „%s“ selhala.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Soubor „%s“ již byl uvážen.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Stále se aktualizuje soubor „%s“.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Aktualizace soubor „%s“ dokončena.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Soubor „%s“ neexistuje.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1681,138 +1672,138 @@ msgstr ""
 "*** Pozor: Soubor .LOW_RESOLUTION_TIME „%s“ má časový údaj ve vysokém "
 "rozlišení"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Nalezeno implicitní pravidlo pro „%s“.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Pro „%s“ nenalezeno žádné implicitní pravidlo.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Pro „%s“ se použije výchozí návod.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Kruhová závislost „%s ← %s zahozena."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Prerekvizity cílového souboru „%s“ dokončeny.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Prerekvizity „%s“ se vyrábějí.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Výroba cílového souboru „%s“ vzdána.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Cíl „%s“ nebyl kvůli chybám znovu vyroben."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Prerekvizita „%s“ pro cíl „%s“ je jen o pořadí.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Prerekvizita „%s“ cíle „%s“ neexistuje.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Prerekvizita „%s“ je novější než cíl „%s“.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Prerekvizita „%s“ je starší než cíl „%s“.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Cíl „%s“ je dvojdvoutečkový a nemá žádnou prerekvizitu.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Pro „%s“ neexistuje návod a žádná prerekvizita se vskutku nezměnila.\n"
 
 # Always-make flag is make option -B
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Vyrábí se „%s“ kvůli přepínači --always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Cíl „%s“ není třeba znovu vyrábět"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; použije se název „%s“ z VPATH"
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Cíl „%s“ je třeba znovu vyrobit.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Ignoruje se název „%s“ z VPATH.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Právě se vykonává návod pro „%s“.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Cílový soubor „%s“ nebylo možné znovu vyrobit.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Cílový soubor „%s“ byl úspěšně znovu vyroben.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Cílový soubor „%s“ je třeba znovu vyrobit za použití -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Pro „%s„ se použijí se výchozí příkazy.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Pozor: Soubor „%s“ má čas změny obsahu v budoucnu"
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Pozor: Soubor „%s“ má čas změny obsahu %s s směrem do budoucnosti"
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Prvek .LIBPATTERNS „%s“ není vzorem"
@@ -1823,7 +1814,7 @@ msgstr "Prvek .LIBPATTERNS „%s“ není vzorem"
 msgid "Customs won't export: %s\n"
 msgstr "Customs nebude exportovat: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1831,7 +1822,7 @@ msgstr ""
 "\n"
 "# Implicitní pravidla"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1840,7 +1831,7 @@ msgstr ""
 "# Žádná implicitní pravidla."
 
 # FIXME: Pluralize by first %u
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1849,11 +1840,11 @@ msgstr ""
 "\n"
 "# Implicitních pravidel: %u, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminál."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "CHYBA: num_pattern_rules je chybný! %u != %u"
@@ -2076,44 +2067,44 @@ msgstr ""
 "# Statistika hašovací tabulky:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatická"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "výchozí"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "prostředí"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "prostředí z přepínače -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "příkazový řádek"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "klíčové slovo „override“"
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (z „%s“, řádek %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# statistika hašovací tabulky pro množinu proměnných:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2121,7 +2112,7 @@ msgstr ""
 "\n"
 "# Proměnné\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2129,7 +2120,7 @@ msgstr ""
 "\n"
 "# Hodnoty proměnných specifických pro vzor"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2138,7 +2129,7 @@ msgstr ""
 "# Žádné hodnoty proměnných specifických pro vzor."
 
 # FIXME: Pluralize
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2157,77 +2148,82 @@ msgstr "pozor: nedefinovaná proměnná „%.*s“"
 msgid "sys$search() failed with %d\n"
 msgstr "volání sys$search() selhalo s %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Pozor: Prázdné přesměrování\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "vnitřní chyba: command_state pro „%s“"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr "-pozor, možná byste měli znovu povolit obsluhu CTRL-Y z DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "VESTAVĚNÝ [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "VESTAVĚNÝ CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "VESTAVĚNÝ RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "VESTAVĚNÝ CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Neznámý vestavěný příkaz „%s“\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Chyba, prázdný příkaz\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Vstup přesměrován z %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Chyby přesměrovány do %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Výstup připojen k %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Výstup přesměrován do %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Připojit %.*s a uklidit\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Místo toho se spustí %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Chyba oddělení podprocesu, %d\n"
@@ -2272,6 +2268,21 @@ msgstr ""
 "# Obecná vyhledávací cesta (proměnná „VPATH“):\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "vnitřní chyba: více přepínačů --sync-mutex"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "vnitřní chyba: více přepínačů --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "virtuální paměť vyčerpána"
+
+#~ msgid "write error"
+#~ msgstr "chyba zápisu"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "VESTAVĚNÝ RM %s\n"
+
 #~ msgid "#  Invalid value in 'update_status' member!"
 #~ msgstr "#  Neplatná hodnota v členu „update_status“!"
 
index 3c6d27e9c3e1b1f932cdd08d5c2579a8e86f5eed..02fa3106934deb6869c48767e88fc9700132dcab 100644 (file)
Binary files a/po/da.gmo and b/po/da.gmo differ
index 94d673d02ae30642edd7394df5468c90d8eb1596..86402916eeba21be2825836f7d4d8a2c4a0f9aa1 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.82\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2011-01-05 02:26+0100\n"
 "Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -47,50 +47,50 @@ msgstr "touch: Medlemmet '%s' findes ikke i '%s'"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: Forkert returkode fra ar_member_touch på '%s'"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module() kunne ikke udtrække modulinformation, status = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() fejlede med status = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "kan ikke åbne biblioteket '%s' for at søge medlemmet '%s'"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Medlem '%s'%s: %ld byte ved %ld (/%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (navnet kan være forkortet)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Tidsstempel %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, modus = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Afbrydelse.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Arkivmedlemmet '%s' er måske falsk; ikke slettet"
@@ -100,25 +100,25 @@ msgstr "*** [%s] Arkivmedlemmet '%s' er måske falsk; ikke slettet"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Arkivmedlemmet '%s' er måske falsk; ikke slettet"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Sletter filen '%s'"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Sletter filen '%s'"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  kommandoer der skal køres"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (indbyggede):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (fra '%s', linje %lu):\n"
@@ -200,153 +200,153 @@ msgstr "Rekursiv variabel '%s' refererer (i sidste ende) til sig selv"
 msgid "unterminated variable reference"
 msgstr "uafsluttet variabelreference"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Kommandoer blev angivet for filen '%s' i %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Kommandoer for filen '%s' blev fundet ved implicit regelsøgning,"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "men '%s' bliver nu anset som samme fil som '%s'."
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Kommandoer for '%s' vil blive ignoreret til fordel for de for '%s'."
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "kan ikke ændre enkelt-kolon '%s' til dobbelt-kolon '%s'"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "kan ikke ændre dobbelt-kolon '%s' til enkelt-kolon '%s'"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Sletter mellemfil '%s'"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Sletter mellemfiler ...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Aktuel tid"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Tidsstempel i forkert område; bruger %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Aktuel tid"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Ikke et mål:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Værdifuld fil (forudsætning for .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Falsk mål (forudsætning for .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Kommandolinjemål."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Et forvalg, MAKEFILES, eller -include/sinclude makefile."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Ingen implicitte regler."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Der er udført implicit regelsøgning."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Der er ikke udført implicit regelsøgning."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Implicit/statisk mønsterstamme: '%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Filen er en mellemfil."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Skaber også:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Ændringstid ikke tjekket."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Filen findes ikke."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Filen er meget gammel."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Sidst ændret %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Filen er blevet opdateret."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Filen er ikke blevet opdateret."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Der køres kommandoer nu (DETTE ER EN FEJL)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Kommandoer for afhængigheder køres nu (DETTE ER EN FEJL)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Opdateret med godt resultat."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Behøver opdatering (-q er sat)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Opdatering mislykkedes."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Ugyldig værdi i 'command_state'-felt!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -354,7 +354,7 @@ msgstr ""
 "\n"
 "# Filer"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -364,107 +364,107 @@ msgstr ""
 "# Statistik for fil-hash-spande:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "ikke-numerisk første argument til 'word'-funktionen"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "første argument til 'word'-functionen skal være større end 0"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "ikke-numerisk første argument til 'wordlist'-funktionen"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "ikke-numerisk andet argument til 'wordlist'-funktionen"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe(): DuplicateHandle(In) mislykkedes (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_open_pipe(): DuplicateHandle(Err) mislykkedes (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() mislykkedes (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() mislykkedes\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Afrydder midlertidig batchfil %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "skrivefejl: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "utilstrækkeligt antal argumenter (%d) til funktionen '%s'"
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "ikke implementeret på denne platform: funktion '%s'"
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "uafsluttet kald til funktionen '%s'; manglende '%c'"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "utilstrækkeligt antal argumenter (%d) til funktionen '%s'"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "utilstrækkeligt antal argumenter (%d) til funktionen '%s'"
 
 #: getopt.c:659
@@ -522,12 +522,12 @@ msgstr "%s: tilvalg '-W %s' er flertydigt\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: tilvalg '-W %s' tillader ikke et argument\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -610,98 +610,98 @@ msgstr "Kigger efter en regel med mellemfil '%s'.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Kan ikke oprette midlertidig fil\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (core-fil efterladt)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] Fejl %d (ignoreret)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (indbyggede):"
 
-#: job.c:501
+#: job.c:503
 #, fuzzy, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "advarsel: tilsidesætter kommandoer for mål '%s'"
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Fejl 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Fejl %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Fejl 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Venter på uafsluttede job...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Levende underproces %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (eksternt)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Høster tabende underproces %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Høster vindende underproces %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Afrydder midlertidig jobfil %s\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Afrydder midlertidig jobfil %s\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Fjerner underproces %p PID %s%s fra kæde.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Frigav symbol for underproces %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "write jobserver"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() fejlede ved igangsætning af proces (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -710,99 +710,99 @@ msgstr ""
 "\n"
 "Talte %d argumenter i fejlet igangsætning\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Sætter underproces %p (%s) PID %s%s på kæden.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Fik symbol for underproces %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "read jobs pipe"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: Arkivet '%s' findes ikke"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%sIngen regel til at skabe mål '%s' som behøves af '%s'%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "kan ikke gennemtvinge belastningsgrænser på dette styrestystem"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "kan ikke gennemtvinge belastningsgrænse: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "ikke flere filhåndtag: Kunne ikke duplikere stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "ikke flere filhåndtag: Kunne ikke duplikere stdout\n"
 
-#: job.c:2223
+#: job.c:2278
 #, fuzzy
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "ikke flere filhåndtag: Kunne ikke duplikere stdin\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Kunne ikke gendanne stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Kunne ikke gendanne stdout\n"
 
-#: job.c:2254
+#: job.c:2309
 #, fuzzy
 msgid "Could not restore stderr\n"
 msgstr "Kunne ikke gendanne stdin\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make høstede underproces med pid %s, venter endnu på pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Kommando ikke fundet"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s; Skalprogram ikke fundet"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: miljøplads er måske opbrugt"
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL ændret (var '%s', nu '%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Opretter midlertidig jobfil %s\n"
 
-#: job.c:3148
+#: job.c:3206
 #, fuzzy
 msgid ""
 "Batch file contents:\n"
@@ -811,7 +811,7 @@ msgstr ""
 "Indhold af batchfil:%s\n"
 "\t%s\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -820,7 +820,7 @@ msgstr ""
 "Indhold af batchfil:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (linje %d) Forkert skal-kontekst (!unixy && !batch_mode_shell)\n"
@@ -829,49 +829,49 @@ msgstr "%s (linje %d) Forkert skal-kontekst (!unixy && !batch_mode_shell)\n"
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Parallelle job (-j) er ikke understøttet på denne platform."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Tilvalg:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ignoreret af hensyn til kompabilitet.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Skab alle mål betingelsesløst.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -879,19 +879,19 @@ msgstr ""
 "  -C KATALOG, --directory=KATALOG\n"
 "                              Skift allerførst til KATALOG.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 "  -d                          Udskriv en masse fejlsøgningsinformation.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=FLAG]              Udskriv forskellige slags "
 "fejlsøgningsinformation.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -899,13 +899,13 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              Miljøvariable har forrang for makefiler.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=STRENG               Evaluér STRENG som en makefil-erklæring.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -913,15 +913,15 @@ msgstr ""
 "  -f FIL, --file=FIL, --makefile=FIL\n"
 "                              Læs FIL som en makefil.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Udskriv denne besked og afslut.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Ignorér fejl fra kommandoer.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -929,7 +929,7 @@ msgstr ""
 "  -I KATALOG, --include-dir=KATALOG\n"
 "                              Søg i KATALOG efter inkluderede makefiler.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -937,13 +937,13 @@ msgstr ""
 "  -j [N], --jobs[=N]          Tillad N samtidige job; uendelig mange job "
 "uden argument.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Fortsæt selvom nogen mål ikke kan skabes.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -953,7 +953,7 @@ msgstr ""
 "                              Start ikke flere job medmindre belastningen er "
 "under N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -961,7 +961,7 @@ msgstr ""
 "  -L, --check-symlink-times   Brug sidste mtime mellem symbolske lænker og "
 "mål.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -971,7 +971,7 @@ msgstr ""
 "                              Udfør ikke nogen kommandoer; udskriv dem "
 "bare.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -981,17 +981,17 @@ msgstr ""
 "                              Anse FIL som værende meget gammel og genskab "
 "den ikke.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Udskriv makes interne database.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1000,20 +1000,20 @@ msgstr ""
 "angiver\n"
 "                                om målet er tidssvarende.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Slå de indbyggede implicitte regler fra.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr "  -R, --no-builtin-variables  Slå de indbyggede variabelværdier fra.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Udskriv ikke kommandoer.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1021,27 +1021,27 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Slår -k fra.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Berør mål i stedet for at genskabe dem.\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr ""
 "  -d                          Udskriv en masse fejlsøgningsinformation.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Udskriv makes versionnummer og afslut.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Udskriv det aktuelle katalog.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1049,7 +1049,7 @@ msgstr ""
 "  --no-print-directory        Slå -w fra, selv hvis det var slået til "
 "automatisk.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1057,38 +1057,33 @@ msgstr ""
 "  -W FIL, --what-if=FIL, --new-file=FIL, --assume-new=FIL\n"
 "                              Anse FIL som værende nyskabt.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
 "  --warn-undefined-variables  Advar når en udefineret variabel bruges.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "en tom streng er ugyldig som filnavn"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "ukendt fejlsøgningsniveau-specifikation '%s'"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "intern fejl: flere '--jobserver-fds'-tilvalg"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Afbrydelse/undtagelse fanget (kode = 0x%lx, addr = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1103,72 +1098,68 @@ msgstr ""
 "ExceptionFlags = %lx\n"
 "ExceptionAddress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Adgangskrænkelse: skriveoperation på adresse 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Adgangskrænkelse: læseoperation på adresse 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() sætter default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell()-stisøgning sætter default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s er standset i 30 sekunder..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "udført sleep(30). Fortsætter.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "intern fejl: flere '--jobserver-fds'-tilvalg"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
 # fd = fildeskriptor
-#: main.c:1547
+#: main.c:1530
 #, fuzzy, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Jobserverklient (fd'er %d,%d)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "intern fejl: ugyldig '--jobserver-fds'-streng '%s'"
 
 # fd = fildeskriptor
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Jobserverklient (fd'er %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "advarsel: tvunget -jN i undermake: slår jobserver tilstand fra."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup jobserver"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
@@ -1176,112 +1167,112 @@ msgstr ""
 "advarsel: jobserver ikke tilgængelig: bruger -j1. Tilføj '+' til "
 "ophavsmakeregel."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefil fra standard-ind er angivet to gange."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (midlertidig fil)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (midlertidig fil)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Parallelle job (-j) er ikke understøttet på denne platform."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Sætter tilbage til enkelt job-tilstand (-j1)."
 
 # fd = fildeskriptor
-#: main.c:2006
+#: main.c:1994
 #, fuzzy, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Jobserverklient (fd'er %d,%d)\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "oprettelse af jobledning"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "klargøring af jobserver-ledning"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Symbolske lænker understøttes ikke: Deaktiverer -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Opdaterer makefiler....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Makefilen '%s' får måske make til at gå i ring; genskaber den ikke.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Genskabelse af makefilen '%s' mislykkedes."
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Inkluderet makefil '%s' blev ikke fundet."
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Makefil '%s' blev ikke fundet."
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Kunne ikke skifte tilbage til det originale katalog."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Udfører igen[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (midlertidig fil): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL indeholder mere end et mål"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Ingen angivne mål og ingen makefil fundet"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Ingen mål"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Opdaterer endemål....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "advarsel: Fejl i urets tid opdaget. Din bygning kan være ukomplet."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Brug: %s [tilvalg] [mål] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1290,7 +1281,7 @@ msgstr ""
 "\n"
 "Dette program er bygget til %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1299,32 +1290,32 @@ msgstr ""
 "\n"
 "Dette program er bygget til %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Send fejlmeldinger (på engelsk) til <bug-make@gnu.org>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "'-%s%s'-tilvalget kræver et strengargument, der ikke er tomt"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "'-%c'-tilvalget kræver et positivt heltalligt argument"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sBygget til %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sBygget til %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1337,7 +1328,7 @@ msgstr ""
 "%sDer gives INGEN GARANTI i den grad, som dette tillades af loven.\n"
 
 # %s giver dato og klokkeslæt
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1347,7 +1338,7 @@ msgstr ""
 "# Makedatabase, udskrevet %s"
 
 # %s giver dato og klokkeslæt
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1361,10 +1352,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Ukendt fejl %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "virtuel hukommelse opbrugt"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1386,65 +1373,61 @@ msgstr "Make-adgang"
 msgid "Child access"
 msgstr "Barneadgang"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Går til et ukendt katalog\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Forlader et ukendt katalog\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Går til katalog '%s'\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Forlader katalog '%s'\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Går til et ukendt katalog\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Forlader et ukendt katalog\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Går til katalog '%s'\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Forlader katalog '%s'\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "skrivefejl: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "skrivefejl"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Stop.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1453,220 +1436,226 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Læser makefiler...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Læser makefil '%s'"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (ingen standard-endemål)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (søgesti)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (ikke nødvendig)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (ingen ~-udfoldning)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "ugyldig syntaks i betingelse"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "kommandoer begynder før første mål"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "manglende regel før kommandoer"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "manglende adskiller%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (mente du TAB i stedet for 8 mellemrum?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "manglende adskiller%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "manglende målmønster"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "flere målmønstre"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "målmønster indeholder ingen '%%'"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "manglende 'endif'"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "tomt variabelnavn"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "overskydende tekst efter 'define'-direktiv"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "manglende 'endef', uafsluttet 'define'"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "overskydende tekst efter 'endef'-direktiv"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Overskydende tekst efter '%s'-direktiv"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "fremmed '%s'"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "kun én 'else' per betingelse"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Misdannet målspecifik variabeldefinition"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "der kan ikke defineres forudsætninger i kommandoer"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "blandede implicitte og statiske mønsterregler"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "blandede implicitte og normale regler"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "mål '%s' passer ikke til målmønstret"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "målfil '%s' har både :- og ::-angivelser"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "target '%s' optræder mere end én gang i samme regel."
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "advarsel: tilsidesætter kommandoer for mål '%s'"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "advarsel: ignorerer gamle kommandoer for mål '%s'"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "blandede implicitte og normale regler"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "advarsel: NUL-tegn set; resten af linjen ignoreres"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Ingenting at gøre for '%s'."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "'%s' er tidssvarende."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Beskærer fil '%s'.\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sIngen regel til at skabe mål '%s'%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sIngen regel til at skabe mål '%s' som behøves af '%s'%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sIngen regel til at skabe mål '%s'%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Overvejer målfil '%s'.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Opdatering af fil '%s' er forgæves prøvet for nylig.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Fil '%s' er allerede overvejet.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Opdaterer stadig fil '%s'.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Opdatering af fil '%s' afsluttet.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Filen '%s' findes ikke.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1674,137 +1663,137 @@ msgstr ""
 "*** Advarsel: .LOW_RESOLUTION_TIME-fil '%s' har et tidsstempel med høj "
 "opløsning"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Fandt en implicit regel for '%s'.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Ingen implicit regel for '%s' fundet.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Bruger standardkommandoer for '%s'.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Cirkulær %s <- %s afhængighed opgivet."
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Afsluttet forudsætningerne for målfil '%s'.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Forudsætningerne for '%s' er ved at blive skabt.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Opgiver målfil '%s'.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Målet '%s' ikke genskabt på grund af fejl."
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Forudsætningen '%s' angiver kun rækkefølgen ift. målet '%s'.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Forudsætningen '%s' for målet '%s' findes ikke.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Forudsætningen '%s' er nyere end målet '%s'.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Forudsætningen '%s' er ældre end målet '%s'.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Målet '%s' er med dobbelt-kolon og har ingen forudsætninger.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, fuzzy, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Ingen kommandoer til '%s', og ingen forudsætninger har ændret sig.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Skaber '%s' pga. \"always-make\"-flag.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Ingen grund til at genskabe målet '%s'"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; bruger VPATH-navnet '%s'"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Skal genskabe målet '%s'.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr " Ignorerer VPATH-navnet '%s'.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Kommandoerne for '%s' er ved at blive kørt.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Genskabelse af målfil '%s' mislykkedes.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Målfil '%s' genskabt.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Med -q trænger målfilen '%s' til at blive genskabt.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Bruger standardkommandoer for '%s'.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Advarsel: Ændringstiden for filen '%s' er i fremtiden"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Advarsel: Filen '%s' har ændringstidspunkt %s s i fremtiden"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ".LIBPATTERNS-element '%s' er ikke et mønster"
@@ -1817,7 +1806,7 @@ msgstr ".LIBPATTERNS-element '%s' er ikke et mønster"
 msgid "Customs won't export: %s\n"
 msgstr "Customs kan ikke eksporteres: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1825,7 +1814,7 @@ msgstr ""
 "\n"
 "# Implicitte regler."
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1833,7 +1822,7 @@ msgstr ""
 "\n"
 "# Ingen implicitte regler."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1842,11 +1831,11 @@ msgstr ""
 "\n"
 "# %u implicitte regler, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminale."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "FEJL: forkert num_pattern_rules!  %u != %u"
@@ -2062,45 +2051,45 @@ msgstr ""
 "# Statistik for fil-hash-spande:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatisk"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "forvalgt"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "miljø"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefil"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "miljø med -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "kommandolinje"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "'override'-direktiv"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (fra '%s', linje %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# Statistik for variabelsæt-hash-spande:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2108,7 +2097,7 @@ msgstr ""
 "\n"
 "# Variabler\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2116,7 +2105,7 @@ msgstr ""
 "\n"
 "# Mønsterspecifikke variabelværdier"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2124,7 +2113,7 @@ msgstr ""
 "\n"
 "# Ingen mønsterspecifikke variabelværdier."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2143,78 +2132,83 @@ msgstr "advarsel: udefineret vaiabel '%.*s'"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() mislykkedes med %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Advarsel: Tom omdirigering\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "intern fejl: '%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-advarsel, du kan blive nødt til at genetablere CTRL-Y-behandling fra DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BUILTIN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "BUILTIN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Ukendt indbygget kommando '%s'\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Fejl, tom kommando\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Omdirigeret inddata from %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Omdirigeret fejl to %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Tilføj uddata til slutningen af %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Omdirigeret uddata til %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Tilføj %.*s og ryd op\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Udfører i stedet %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Fejl ved spawn, %d\n"
@@ -2273,6 +2267,15 @@ msgstr ""
 #~ msgid "Invoking builtin recipe to update target `%s'.\n"
 #~ msgstr "Kører indbyggede kommandoer for at opdatere målet '%s'.\n"
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "intern fejl: flere '--jobserver-fds'-tilvalg"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "virtuel hukommelse opbrugt"
+
+#~ msgid "write error"
+#~ msgstr "skrivefejl"
+
 #~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
 #~ msgstr "%s # strcache-buffere: %d (* %d B/buffer = %d B)\n"
 
@@ -2285,6 +2288,9 @@ msgstr ""
 #~ "# statistik for strcache-hashtabeller:\n"
 #~ "# "
 
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "BUILTIN RM %s\n"
+
 #~ msgid "Syntax error, still inside '\"'\n"
 #~ msgstr "Syntaksfejl, stadig inden i '\"'\n"
 
index e6455d18c864a8d02da35b90174bffdaba009960..d3250e29050429fb42a6c23e3e3d6c511864fc74 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 29e285a28290596759ed761adf74ceabeaf44b5c..1e3b1b366938b1341632bef0cf678b25819244ce 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,5 +1,7 @@
 # German message translation file for GNU make
-# Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
+# Copyright © 1996, 1997, 2002, 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
+# Philipp Thomas <pth@suse.de> 2013
 # Karl Eichwalder <ke@suse.de>, 2002, 2005.
 # Alexander Mader  <aumader@gmx.net>, 2000.
 # Alexander Mader  <mader@wias-berlin.de>, 1997.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.81-b3\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2005-10-20 20:55+0200\n"
-"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
-"Language-Team: German <de@li.org>\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-11 12:22+0200\n"
+"Last-Translator: Philipp Thomas <pth@suse.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #: ar.c:46
-#, fuzzy, c-format
+#, c-format
 msgid "attempt to use unsupported feature: '%s'"
-msgstr "Versuch, eine nicht unterstützte Funktionalität zu verwenden: »%s«"
+msgstr "Versuch, eine nicht unterstützte Funktionalität zu verwenden: „%s“"
 
 #: ar.c:123
 msgid "touch archive member is not available on VMS"
 msgstr ""
-"VMS stellt nicht die Möglichkeit einer Änderung \n"
-"der Zeitmarken von Archiveinträgen zur Verfügung"
+"VMS bietet keine Möglichkeit einer Änderung \n"
+"der Zeitmarken von Archiveinträgen"
 
 #: ar.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Archive '%s' does not exist"
-msgstr "touch: Archiv »%s« existiert nicht"
+msgstr "touch: Archiv „%s“ existiert nicht"
 
 #: ar.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "touch: '%s' is not a valid archive"
-msgstr "touch: »%s« ist kein gültiges Archiv"
+msgstr "touch: „%s“ ist kein gültiges Archiv"
 
 #: ar.c:157
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Member '%s' does not exist in '%s'"
-msgstr "touch: Eintrag »%s« existiert nicht in »%s«"
+msgstr "touch: Eintrag „%s“ existiert nicht in „%s“"
 
 #: ar.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr ""
-"touch: Ungünstiger Rückgabewert beim Zugriff \n"
-"von ar_member_touch auf »%s«"
+"touch: Ungültiger Rückgabewert beim Zugriff \n"
+"von ar_member_touch auf „%s“"
 
-#: arscan.c:67
-#, fuzzy, c-format
+#: arscan.c:124
+#, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "»lbr$set_module« konnte keine Modulinformation auslesen; Status = %d"
+msgstr "„lbr$set_module()“ konnte keine Modulinformation auslesen; Status = %d"
 
-#: arscan.c:173
-#, fuzzy, c-format
+#: arscan.c:230
+#, c-format
 msgid "lbr$ini_control() failed with status = %d"
-msgstr "»lbr$ini_control« schlug mit Status = %d fehl"
+msgstr "„lbr$ini_control()“ scheiterte mit Status = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr ""
-"Konnte die Bibliothek »%s« auf der Suche \n"
-"nach dem Eintrag »%s« nicht öffnen"
+"Konnte die Bibliothek „%s“ nicht öffnen um nach Eintrag\n"
+"„%s“ zu suchen"
 
-#: arscan.c:847
-#, fuzzy, c-format
+#: arscan.c:944
+#, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr ""
-"Eintrag »%s« %s: \n"
-"%ld Byte an Position %ld (%ld).\n"
+"Eintrag „%s“ %s: \n"
+"%ld Bytes an Position %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
-msgstr " (der Name ist möglicherweise gekürzt)"
+msgstr " (der Name ist möglicherweise abgeschnitten)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Datum %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  Nutzer-ID = %d, Gruppen-ID = %d, Modus = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
-msgstr ""
+msgstr "Die Regel hat zu viele Zeilen (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Abbruch.\n"
 
-#: commands.c:630
-#, fuzzy, c-format
+#: commands.c:629
+#, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
-msgstr "*** [%s] Archiveintrag »%s« ist wohl falsch; nicht gelöscht"
+msgstr "*** [%s] Archiveintrag „%s“ ist möglicherweise falsch; nicht gelöscht"
 
 #: commands.c:633
-#, fuzzy, c-format
+#, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
-msgstr "*** Archiveintrag »%s« ist wohl falsch; nicht gelöscht"
+msgstr "*** Archiveintrag „%s“ ist möglicherweise falsch; nicht gelöscht"
 
-#: commands.c:646
-#, fuzzy, c-format
+#: commands.c:647
+#, c-format
 msgid "*** [%s] Deleting file '%s'"
-msgstr "*** [%s] Datei »%s« wird gelöscht"
+msgstr "*** [%s] Datei „%s“ wird gelöscht"
 
-#: commands.c:648
-#, fuzzy, c-format
+#: commands.c:649
+#, c-format
 msgid "*** Deleting file '%s'"
-msgstr "*** Datei »%s« wird gelöscht"
+msgstr "*** Datei „%s“ wird gelöscht"
 
-#: commands.c:684
-#, fuzzy
+#: commands.c:685
 msgid "#  recipe to execute"
-msgstr "#  Auszuführende Kommandos"
+msgstr "#  Auszuführende Regel"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (eingebaut):"
 
-#: commands.c:689
-#, fuzzy, c-format
+#: commands.c:690
+#, c-format
 msgid " (from '%s', line %lu):\n"
-msgstr " (aus »%s«, Zeile %lu):\n"
+msgstr " (aus „%s“, Zeile %lu):\n"
 
 #: dir.c:989
 msgid ""
@@ -148,43 +149,43 @@ msgstr ""
 #: dir.c:1001
 #, c-format
 msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: Konnte den Status nicht feststellen.\n"
+msgstr "# %s: Status konnte nicht festgestellt werden.\n"
 
 #: dir.c:1005
 #, c-format
 msgid "# %s (key %s, mtime %d): could not be opened.\n"
 msgstr ""
-"# %s ( Schlüssel (key) %s,  letzte Änderung (mtime) %d): \n"
-"Konnte nicht geöffnet werden.\n"
+"# %s ( Schlüssel (key) %s,  letzte Änderung (mtime) %d): \n"
+"Konnte nicht geöffnet werden.\n"
 
 #: dir.c:1009
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
 msgstr ""
-"# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): \n"
-"Konnte nicht geöffnet werden.\n"
+"# %s (Gerät %d, Inode [%d,%d,%d]): \n"
+"Konnte nicht geöffnet werden.\n"
 
 #: dir.c:1014
 #, c-format
 msgid "# %s (device %ld, inode %ld): could not be opened.\n"
 msgstr ""
-"# %s (Gerät %ld, I-Knoten (inode) %ld): \n"
-"Konnte nicht geöffnet werden.\n"
+"# %s (Gerät %ld, Inode %ld): \n"
+"Konnte nicht geöffnet werden.\n"
 
 #: dir.c:1041
 #, c-format
 msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (Schlüssel (key) %s,  letzte Änderung (mtime) %d): "
+msgstr "# %s (Schlüssel (key) %s,  letzte Änderung (mtime) %d): "
 
 #: dir.c:1045
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): "
+msgstr "# %s (Gerät %d, Inode [%d,%d,%d]): "
 
 #: dir.c:1050
 #, c-format
 msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (Gerät %ld, I-Knoten (inode) %ld): "
+msgstr "# %s (Gerät %ld, Inode %ld): "
 
 #: dir.c:1056 dir.c:1077
 msgid "No"
@@ -200,7 +201,7 @@ msgstr "keine"
 
 #: dir.c:1064
 msgid " impossibilities"
-msgstr " Unmöglichkeiten"
+msgstr " Unmöglichkeiten"
 
 #: dir.c:1068
 msgid " so far."
@@ -209,181 +210,170 @@ msgstr " bisher."
 #: dir.c:1085
 #, c-format
 msgid " impossibilities in %lu directories.\n"
-msgstr " Unmöglichkeiten in %lu Verzeichnissen.\n"
+msgstr " Unmöglichkeiten in %lu Verzeichnissen.\n"
 
 #: expand.c:125
-#, fuzzy, c-format
+#, c-format
 msgid "Recursive variable '%s' references itself (eventually)"
-msgstr "Rekursive Variable »%s« referenziert sich (schließlich) selbst"
+msgstr "Rekursive Variable „%s“ referenziert sich (schließlich) selbst"
 
 #: expand.c:269
 msgid "unterminated variable reference"
 msgstr "Nicht abgeschlossene Variablenreferenz"
 
-#: file.c:269
-#, fuzzy, c-format
+#: file.c:271
+#, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
-msgstr ""
-"Die Kommandos wurden für die Datei »%s« angegeben \n"
-"an der Stelle %s:%lu,"
+msgstr "Die Regel für die Datei „%s“ wurde in %s angegeben:%lu,"
 
-#: file.c:274
-#, fuzzy, c-format
+#: file.c:276
+#, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
-"Die Kommandos für die Datei »%s« wurden aufgrund \n"
+"Die Regel für die Datei „%s“ wurden aufgrund \n"
 "der Suche nach impliziten Regeln gefunden,"
 
-#: file.c:277
-#, fuzzy, c-format
+#: file.c:280
+#, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr ""
-"aber »%s« wird jetzt als dieselbe Datei \n"
-"wie »%s« betrachtet."
+"aber „%s“ wird jetzt als dieselbe Datei \n"
+"wie „%s“ betrachtet."
 
-#: file.c:280
-#, fuzzy, c-format
+#: file.c:283
+#, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
-"Die Kommandos für »%s« werden ignoriert, \n"
-"die für »%s« werden bevorzugt."
+"Die Regel für „%s“ wird ignoriert, \n"
+"die für „%s“ wird bevorzugt."
 
-#: file.c:300
-#, fuzzy, c-format
+#: file.c:303
+#, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
-"»%s« mit einfachem Doppelpunkt kann nicht in \n"
-"»%s« mit doppeltem Doppelpunkt geändert werden"
+"„%s“ mit einfachem Doppelpunkt kann nicht in \n"
+"„%s“ mit doppeltem Doppelpunkt geändert werden"
 
-#: file.c:305
-#, fuzzy, c-format
+#: file.c:309
+#, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
-"»%s« mit doppeltem Doppelpunkt kann nicht in \n"
-"»%s« mit einfachem Doppelpunkt geändert werden"
+"„%s“ mit doppeltem Doppelpunkt kann nicht in \n"
+"„%s“ mit einfachem Doppelpunkt geändert werden"
 
-#: file.c:396
-#, fuzzy, c-format
+#: file.c:401
+#, c-format
 msgid "*** Deleting intermediate file '%s'"
-msgstr "*** Löschen der Zwischendatei »%s«"
+msgstr "*** Löschen der übergangsweise angelegten Datei „%s“"
 
-#: file.c:400
-#, fuzzy
+#: file.c:405
 msgid "Removing intermediate files...\n"
-msgstr "*** Löschen der Zwischendatei »%s«"
-
-#: file.c:808
-#, c-format
-msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Zeitstempel außerhalb der Reihenfolge; %s wird ersetzt"
+msgstr "Die übergangsweise angelegte Datei „%s“ wird gelöscht...\n"
 
-#: file.c:809
+#: file.c:811
 msgid "Current time"
 msgstr "Aktuelle Zeit"
 
-#: file.c:949
+#: file.c:815
+#, c-format
+msgid "%s: Timestamp out of range; substituting %s"
+msgstr "%s: Zeitstempel außerhalb des Gültigkeitsbereichs; %s wird ersetzt"
+
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Dies ist kein Ziel:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
-msgstr "#  Wertvolle Datei (Voraussetzung von .PRECIOUS)."
+msgstr "#  Wertvolle Datei (benötigt von .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
-msgstr "#  Vorgetäuschtes Ziel (Voraussetzung von .PHONY)."
+msgstr "#  Vorgetäuschtes Ziel (benötigt von .PHONY)."
 
-#: file.c:958
-#, fuzzy
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Kommandozeilen-Ziel (target)."
 
-#: file.c:960
-#, fuzzy
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "#  Ein Standardwert oder MAKEFILES »make«-Steuerdatei."
+msgstr "#  Eine standardmässige, MAKEFILES oder -include/sinclude Makedatei."
 
-#: file.c:962
-#, fuzzy
+#: file.c:968
 msgid "#  Builtin rule"
-msgstr ""
-"\n"
-"# Keine impliziten Regeln vorhanden."
+msgstr "# Eingebaute Regel"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
-msgstr "#  Suche nach impliziten Regeln wurde durchgeführt."
+msgstr "#  Die Suche nach impliziten Regeln wurde durchgeführt."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
-msgstr "#  Suche nach impliziten Regeln wurde nicht durchgeführt."
+msgstr "#  Die Suche nach impliziten Regeln wurde nicht durchgeführt."
 
-#: file.c:967
-#, fuzzy, c-format
+#: file.c:973
+#, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
-msgstr "#  Ersetzung für implizites/statisches Muster: »%s«\n"
+msgstr "#  Wurzel impliziter/statischer Muster: „%s“\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
-msgstr "#  Datei ist ein Zwischenschritt in den Abhängigkeiten."
+msgstr "#  Datei ist ein Zwischenschritt in den Abhängigkeiten."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
-msgstr "#  Erzeugt außerdem:"
+msgstr "#  Erzeugt außerdem:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
-msgstr "#  Zeit der letzten Änderung wurde nicht überprüft."
+msgstr "#  Zeit der letzten Änderung wurde nicht überprüft."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Die Datei existiert nicht."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Datei ist sehr alt."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
-msgstr "#  Zuletzt geändert %s\n"
+msgstr "#  Zuletzt geändert %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Datei wurde aktualisiert."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Datei wurde nicht aktualisiert."
 
-#: file.c:995
-#, fuzzy
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
-msgstr "#  Derzeit laufende Befehle (DAS IST EIN BUG)."
+msgstr "#  Derzeit laufende Regel (DAS IST EIN FEHLER)."
 
-#: file.c:998
-#, fuzzy
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
-msgstr "#  Derzeit laufende Befehle für Abhängigkeiten (DAS IST EIN BUG)."
+msgstr "#  Derzeit läuft die Regel für Abhängigkeiten (DAS IST EIN FEHLER)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Erfolgreich aktualisiert."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Eine Aktualisierung ist notwendig (-q ist angegeben)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
-msgstr "#  Aktualisierung fehlgeschlagen."
+msgstr "#  Aktualisierung ist fehlgeschlagen."
 
-#: file.c:1019
-#, fuzzy
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
-msgstr "#  Ungültiger Wert im »command_state«-Eintrag!"
+msgstr "#  Ungültiger Wert im „command_state“-Strukturelement!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -391,156 +381,155 @@ msgstr ""
 "\n"
 "# Dateien"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
+"\n"
+"# Statistik der Hash-Tabelle für Dateien:\n"
+"# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
-msgstr ""
+msgstr "%s: Feld „%s“ wird nicht zwischengespeichert: %s"
 
-#: function.c:742
-#, fuzzy
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
-msgstr "Nicht-numerisches erstes Argument zur  »word«-Funktion"
+msgstr "Nicht-numerisches erstes Argument für die „word“-Funktion"
 
-#: function.c:747
-#, fuzzy
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
-msgstr "Erstes Argument zur  »word«-Funktion muss größer als 0 sein"
+msgstr "Das erste Argument für  die „word“-Funktion muss größer als 0 sein"
 
-#: function.c:767
-#, fuzzy
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
-msgstr "Nicht-numerisches erstes Argument für die »wordlist«-Funktion"
+msgstr "Nicht-numerisches erstes Argument für die „wordlist“-Funktion"
 
-#: function.c:769
-#, fuzzy
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
-msgstr "Nicht-numerisches zweites Argument zur »wordlist«-Funktion"
+msgstr "Nicht-numerisches zweites Argument zur „wordlist“-Funktion"
 
-#: function.c:1460
-#, fuzzy, c-format
+#: function.c:1499
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "»create_child_process«: »DuplicateHandle(In)« schlug fehl (e=%d)\n"
+msgstr "„windows32_openpipe“: „DuplicateHandle(In)“ schlug fehl (e=%ld)\n"
 
-#: function.c:1483
-#, fuzzy, c-format
+#: function.c:1523
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "»create_child_process«: »DuplicateHandle(Err)« schlug fehl (e=%d)\n"
+msgstr "„cwindows32_openpipe“: „DuplicateHandle(Err)“ schlug fehl (e=%ld)\n"
 
-#: function.c:1490
-#, fuzzy, c-format
+#: function.c:1530
+#, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "»CreatePipe()« schlug fehl (e=%d)\n"
+msgstr "„CreatePipe()“ schlug fehl (e=%ld)\n"
 
-#: function.c:1498
-#, fuzzy
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() schlug fehl\n"
+msgstr "windows32_openpipe(): process_init_fd() schlug fehl\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
-msgstr "Lösche temporäre Stapelverarbeitungsdatei %s\n"
+msgstr "Die temporäre Stapelverarbeitungsdatei %s wird gelöscht\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
-msgstr ""
+msgstr "Öffnen: %s: %s"
 
-#: function.c:2158
-#, fuzzy, c-format
+#: function.c:2203
+#, c-format
 msgid "write: %s: %s"
-msgstr "Schreibfehler: %s"
+msgstr "Schreiben: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
-msgstr ""
+msgstr "Unzulässige Dateioperation: %s"
 
-#: function.c:2279
-#, fuzzy, c-format
+#: function.c:2324
+#, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
-msgstr "Zuwenig Argumente (%d) für die Funktion »%s«"
+msgstr "Zuwenig Argumente (%d) für die Funktion „%s“"
 
-#: function.c:2291
-#, fuzzy, c-format
+#: function.c:2336
+#, c-format
 msgid "unimplemented on this platform: function '%s'"
-msgstr "Auf dieser Rechnerkonfiguration nicht implementiert: Funktion »%s«"
+msgstr "Auf dieser Rechnerkonfiguration nicht implementiert: Funktion „%s“"
 
-#: function.c:2354
-#, fuzzy, c-format
+#: function.c:2399
+#, c-format
 msgid "unterminated call to function '%s': missing '%c'"
-msgstr "Nicht beendeter Aufruf der Funktion »%s«: »%c« fehlt"
+msgstr "Nicht beendeter Aufruf der Funktion „%s“: „%c“ fehlt"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Leere Funktionsname\n"
 
-#: function.c:2548
-#, c-format
-msgid "Invalid function name: %s\n"
-msgstr ""
+#: function.c:2593
+#, fuzzy, c-format
+msgid "Invalid function name: %s"
+msgstr "Unzulässiger Funktionsname: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
-msgstr ""
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
+msgstr "Funktionsname is zu lang: %s\n"
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
-msgstr "Zuwenig Argumente (%d) für die Funktion »%s«"
+msgid "Invalid minimum argument count (%d) for function %s"
+msgstr "Ungültige minimale Anzahl von Argumenten (%d) für die Funktion „%s“\n"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
-msgstr "Zuwenig Argumente (%d) für die Funktion »%s«"
+msgid "Invalid maximum argument count (%d) for function %s"
+msgstr "Ungülte maximale Anzahl an Argumenten (%d) für die Funktion „%s“\n"
 
 #: getopt.c:659
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: Option »%s« ist mehrdeutig\n"
+msgstr "%s: Option „%s“ ist mehrdeutig\n"
 
 #: getopt.c:683
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: Option »--%s« erlaubt kein Argument\n"
+msgstr "%s: Option „--%s“ erlaubt kein Argument\n"
 
 #: getopt.c:688
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: Option »%c%s« erlaubt kein Argument\n"
+msgstr "%s: Option „%c%s“ erlaubt kein Argument\n"
 
 #: getopt.c:705 getopt.c:878
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' requires an argument\n"
-msgstr "%s: Option »%s« erfordert ein Argument\n"
+msgstr "%s: Option „%s“ erfordert ein Argument\n"
 
 #: getopt.c:734
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: unerkannte Option »--%s«\n"
+msgstr "%s: unbekannte Option „--%s“\n"
 
 #: getopt.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: unerkannte Option »%c%s«\n"
+msgstr "%s: unbekannte Option „%c%s“\n"
 
 #: getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
-msgstr "%s: unerlaubte Option -- %c\n"
+msgstr "%s: unzulässige Option -- %c\n"
 
 #: getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
-msgstr "%s: ungültige Option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
 
 #: getopt.c:797 getopt.c:927
 #, c-format
@@ -548,313 +537,324 @@ msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: Option erfordert ein Argument -- %c\n"
 
 #: getopt.c:844
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+msgstr "%s: Option „-W %s“ ist mehrdeutig\n"
 
 #: getopt.c:862
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: Option »-W %s« erlaubt kein Argument\n"
+msgstr "%s: Option „-W %s“ erlaubt kein Argument\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
-msgstr ""
+msgstr "guile: Verarbeite „%s“\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
-msgstr ""
+msgstr "guile: begutachte „%s“\n"
 
 #: hash.c:49
 #, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
 msgstr ""
+"es können keine %lu Bytes für die Hashtabelle reserviert werden: "
+"Hauptspeicher erschöpft"
 
 #: hash.c:280
 #, c-format
 msgid "Load=%ld/%ld=%.0f%%, "
-msgstr ""
+msgstr "Auslastung=%ld/%ld=%.0f%%, "
 
 #: hash.c:282
 #, c-format
 msgid "Rehash=%d, "
-msgstr ""
+msgstr "Rehash=%d, "
 
 #: hash.c:283
 #, c-format
 msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr ""
+msgstr "Kollisionen=%ld/%ld%.0f%%"
 
 #: implicit.c:38
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for an implicit rule for '%s'.\n"
-msgstr "Suche nach einer impliziten Regel für »%s«.\n"
+msgstr "Es wird nach einer impliziten Regel für „%s“ gesucht.\n"
 
 #: implicit.c:54
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for archive-member implicit rule for '%s'.\n"
-msgstr "Suche nach einer impliziten Regel für Archiveinträge für »%s«.\n"
+msgstr ""
+"Es wird nach einer impliziten Regel für Archiveinträge für „%s“ gesucht.\n"
 
 #: implicit.c:310
 msgid "Avoiding implicit rule recursion.\n"
-msgstr "Vermeide Rekursion in den impliziten Regeln.\n"
+msgstr "Rekursion in den impliziten Regeln wird vermieden.\n"
 
 #: implicit.c:486
 #, c-format
 msgid "Stem too long: '%.*s'.\n"
-msgstr ""
+msgstr "Wurzel zu lang: „%.*s“.\n"
 
 #: implicit.c:491
-#, fuzzy, c-format
+#, c-format
 msgid "Trying pattern rule with stem '%.*s'.\n"
-msgstr "Versuche Muster-Regel mit Ersetzung »%.*s«.\n"
+msgstr "Muster-Regel mit Wurzel „%.*s“ wird probiert.\n"
 
 #: implicit.c:697
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible rule prerequisite '%s'.\n"
-msgstr "Unmögliche Voraussetzung »%s« abgelehnt.\n"
+msgstr "Unmögliche Voraussetzung „%s“ für eine Regel wird abgelehnt.\n"
 
 #: implicit.c:698
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible implicit prerequisite '%s'.\n"
-msgstr "Unmögliche implizite Voraussetzung »%s« abgelehnt.\n"
+msgstr "Unmögliche implizite Voraussetzung „%s“ wird abgelehnt.\n"
 
 #: implicit.c:711
-#, fuzzy, c-format
+#, c-format
 msgid "Trying rule prerequisite '%s'.\n"
-msgstr "Versuche Voraussetzung »%s«.\n"
+msgstr "Regel-Voraussetzung „%s“ wird auprobiert.\n"
 
 #: implicit.c:712
-#, fuzzy, c-format
+#, c-format
 msgid "Trying implicit prerequisite '%s'.\n"
-msgstr "Versuche implizite Voraussetzung »%s«.\n"
+msgstr "Implizite Voraussetzung „%s“ wird ausprobiert.\n"
 
 #: implicit.c:751
-#, fuzzy, c-format
+#, c-format
 msgid "Found prerequisite '%s' as VPATH '%s'\n"
-msgstr "Fand die Voraussetzung »%s« als VPATH »%s«\n"
+msgstr "Die Voraussetzung „%s“ wurde als VPATH „%s“ gefunden\n"
 
 #: implicit.c:765
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for a rule with intermediate file '%s'.\n"
-msgstr "Suche nach einer Regel mit der Zwischendatei »%s«.\n"
+msgstr ""
+"Es wird nach einer Regel mit der übergangsweise verwendeten Datei „%s“ "
+"gesucht.\n"
 
 #: job.c:361
 msgid "Cannot create a temporary file\n"
-msgstr "temporäre Datei kann nicht erzeugt werden\n"
+msgstr "Eine temporäre Datei kann nicht erzeugt werden\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (Speicherauszug erstellt)"
 
-#: job.c:487
-#, fuzzy
+#: job.c:488
 msgid " (ignored)"
-msgstr "[%s] Fehler %d (ignoriert)"
+msgstr " (ignoriert)"
 
-#: job.c:491 job.c:1994
-#, fuzzy
+#: job.c:492 job.c:2046
 msgid "<builtin>"
-msgstr " (eingebaut):"
+msgstr "<eingebaut>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
-msgstr ""
+msgstr "%s: die Regel für Ziel „%s“ scheiterte"
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Fehler 0x%x"
-
-#: job.c:513
-#, fuzzy, c-format
+#: job.c:516 job.c:524
+#, c-format
 msgid "%s[%s] Error %d%s"
-msgstr "*** [%s] Fehler %d"
+msgstr "%s[%s] Fehler %d%s"
+
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Fehler 0x%x%s"
 
-#: job.c:517
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
-msgstr ""
+msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Warte auf noch nicht beendete Prozesse..."
+msgstr "*** Es wird auf noch nicht beendete Prozesse gewartet..."
 
-#: job.c:639
-#, fuzzy, c-format
+#: job.c:651
+#, c-format
 msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Aktiver Kindprozess 0x%08lx (%s) PID %ld %s\n"
+msgstr "Aktiver Kindprozess %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (entfernt)"
 
-#: job.c:829
-#, fuzzy, c-format
+#: job.c:841
+#, c-format
 msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Sammle erfolglosen Kindprozess 0x%08lx PID %ld %s\n"
+msgstr "Sammle erfolglosen Kindprozess %p PID %s %s\n"
 
-#: job.c:830
-#, fuzzy, c-format
+#: job.c:842
+#, c-format
 msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Sammle erfolgreichen Kindprozess 0x%08lx PID %ld %s\n"
+msgstr "Sammle erfolgreichen Kindprozess %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
-msgstr "Lösche temporäre Stapelverarbeitungsdatei »%s«\n"
+msgstr "Lösche temporäre Stapelverarbeitungsdatei „%s“\n"
 
-#: job.c:843
-#, fuzzy, c-format
+#: job.c:855
+#, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
-msgstr "Lösche temporäre Stapelverarbeitungsdatei »%s«\n"
+msgstr "Löschen der temporären Stapelverarbeitungsdatei „%s“ scheiterte (%d)\n"
 
-#: job.c:949
-#, fuzzy, c-format
+#: job.c:961
+#, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Entferne Kindprozess 0x%08lx PID %ld %s aus der Kette.\n"
+msgstr "Entferne Kindprozess %p PID %s%s aus der Kette.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "Freigabe der Jobserver-Semaphore: (Fehler %ld: %s)"
 
-#: job.c:1011 job.c:1025
-#, fuzzy, c-format
+#: job.c:1024 job.c:1038
+#, c-format
 msgid "Released token for child %p (%s).\n"
-msgstr "Marke des Kindprozesses 0x%08lx PID (%s) freigegeben.\n"
+msgstr "Token des Kindprozesses %p PID (%s) freigegeben.\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
-msgstr "Schreibe Job-Server"
+msgstr "Job-Server wird geschrieben"
 
-#: job.c:1612 job.c:2332
-#, fuzzy, c-format
+#: job.c:1662 job.c:2387
+#, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "»process_easy()« konnte den Prozess nicht starten (e=%d)\n"
+msgstr "„process_easy()“ konnte den Prozess nicht starten (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
 "Counted %d args in failed launch\n"
 msgstr ""
 "\n"
-"%d Argumente gehörten zum fehlgeschlagenen Prozessstart\n"
+"%d Argumente gehörten zum fehlgeschlagenen Prozessstart\n"
 
-#: job.c:1685
-#, fuzzy, c-format
+#: job.c:1735
+#, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Nehme Kindprozess 0x%08lx (%s) PID %ld%s in die Kette auf.\n"
+msgstr "Nehme Kindprozess %p (%s) PID %s%s in die Kette auf.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
-msgstr ""
+msgstr "warten auf Semaphore oder Kindprozess: (Fehler %ld: %s)"
 
-#: job.c:1967
-#, fuzzy, c-format
+#: job.c:2019
+#, c-format
 msgid "Obtained token for child %p (%s).\n"
-msgstr "Marke für den Kindprozess 0x%08lx (%s) erhalten.\n"
+msgstr "Token für den Kindprozess %p (%s) erhalten.\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
-msgstr "Lese Pipe für die Jobs"
+msgstr "Lese Pipe für die Jobs"
 
-#: job.c:2003
-#, fuzzy, c-format
+#: job.c:2056
+#, c-format
 msgid "%s: target '%s' does not exist"
-msgstr "touch: Archiv »%s« existiert nicht"
+msgstr "%s: Archiv „%s“ existiert nicht"
 
-#: job.c:2005
-#, fuzzy, c-format
+#: job.c:2059
+#, c-format
 msgid "%s: update target '%s' due to: %s"
-msgstr ""
-"%sKeine Regel vorhanden, um das Target »%s«, \n"
-"  benötigt von »%s«, zu erstellen%s"
+msgstr "%s: Ziel „%s“ wird aktualisiert wegen: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 "Auf diesem Betriebssystem kann die Einhaltung\n"
-"der Lastbeschränkung nicht erzwungen werden"
+"der Lastbeschränkung nicht erzwungen werden"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
-msgstr "Lasteinschränkung kann nicht erzwungen werden: "
+msgstr "Lasteinschränkung kann nicht erzwungen werden: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
+"Keine weiteren Dateireferenzen verfügbar: die Standardeingabe konnte\n"
+"nicht dupliziert werden\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
+"Keine weiteren Dateireferenzen verfügbar: die Standardausgabe konnte\n"
+"nicht dupliziert werden\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
+"Keine weiteren Dateireferenzen verfügbar: Standardfehler konnte\n"
+"nicht dupliziert werden\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
-msgstr ""
+msgstr "Die Standardeingabe konnte nicht wieder hergestellt werden\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
-msgstr ""
+msgstr "Die Standardausgabe konnte nicht wieder hergestellt werden\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
-msgstr ""
+msgstr "Standardfehler konnte nicht wieder hergestellt werden\n"
 
-#: job.c:2365
-#, fuzzy, c-format
+#: job.c:2420
+#, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
-"»make« registrierte die Beendigung des Kindprozesses mit ID %d,\n"
-"wartet jedoch noch auf den Prozess mit ID %d.\n"
+"„make“ registrierte die Beendigung des Kindprozesses mit ID %s,\n"
+"wartet jedoch noch auf den Prozess mit ID %s.\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Kommando nicht gefunden"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Shell-Programm wurde nicht gefunden"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
-msgstr ""
+msgstr "spawnvpe: der Platz in der Programmumgebung könnte erschöpft sein"
 
-#: job.c:2709
-#, fuzzy, c-format
+#: job.c:2765
+#, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
-msgstr "$SHELL gewechselt (war »%s«, ist »%s«)\n"
+msgstr "$SHELL gewechselt (war „%s“, ist jetzt „%s“)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
-msgstr "Erstelle temporäre Stapelverarbeitungsdatei %s\n"
+msgstr "Temporäre Stapelverarbeitungsdatei %s wird erstellt\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
+"Inhalt der Stapelverarbeitungsdatei:\n"
+"\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
+"Inhalt der Stapelverarbeitungsdatei:%s\n"
+"\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (Zeile %d) Falscher Shell-Kontext (!unixy && !batch_mode_shell)\n"
@@ -862,52 +862,51 @@ msgstr "%s (Zeile %d) Falscher Shell-Kontext (!unixy && !batch_mode_shell)\n"
 #: job.h:43
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
+"-O[TYPE] (--output-sync[=TYPE]) ist für diese Bau-Aufgabe nicht konfiguriert."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
-msgstr ""
+msgstr "Die globale Symboltabelle konnte nicht geöffnet werden: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
-msgstr ""
+msgstr "Ds geladede Objekt %s wurde nicht als GPL-kompatibel deklariert"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
-msgstr ""
+msgstr "Symbol %s konnte nicht aus %s geladen werden: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
-msgstr ""
+msgstr "Zu ladedender Symbolname ist leer: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
-msgstr ""
+msgstr "Symbol %s wird aus %s geladen\n"
 
-#: load.c:229
-#, fuzzy
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
-msgstr ""
-"Parallele Abarbeitung (-j) \n"
-"wird auf dieser Plattform nicht unterstützt."
+msgstr "Die Operation „load“ wird auf dieser Plattform nicht unterstützt."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Optionen:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
-msgstr "  -b, -m                      Aus Kompatibilitätsgründen ignoriert\n"
+msgstr ""
+"  -b, -m                      Wird aus Kompatibilitätsgründen ignoriert\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Alle Ziele ohne Bedingungen erstellen\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -916,135 +915,153 @@ msgstr ""
 "                              In VERZEICHNIS wechseln, bevor etwas getan "
 "wird\n"
 
-#: main.c:320
-#, fuzzy
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
-msgstr "Viele Informationen zur Fehlersuche ausgeben"
+msgstr ""
+"  -d                          Viele Informationen zur Fehlersuche ausgeben.\n"
 
-#: main.c:322
-#, fuzzy
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
-msgstr "Verschiedene Arten von Debug-Information ausgeben"
+msgstr ""
+"  --debug[=KENNUNGEN]         Verschiedene Arten von Debug-Information "
+"ausgeben\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 "  -e, --environment-overrides\n"
-"                              Umgebungsvariablen überschreiben »make«-"
+"                              Umgebungsvariablen überschreiben „make“-"
 "Steuerdateien\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
+"  --eval=ZEIENKETTE           ZEICHENKETTE wie einen Makedatei-Eintrag "
+"auswerten.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
 "  -f DATEI, --file=DATEI, --makefile=DATEI\n"
-"                              DATEI als »make«-Steuerdatei lesen\n"
+"                              DATEI als Makefile lesen\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Diese Meldung ausgeben und beenden\n"
 
-#: main.c:334
-#, fuzzy
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
-msgstr "Fehler in den Befehlen irgnorieren"
+msgstr "  -i, --ignore-errors         Fehler in Regeln werden irgnoriert\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
 "  -I VERZEICHNIS, --include-dir=VERZEICHNIS\n"
-"                              VERZEICHNIS nach inkludierten\n"
-"                              »make«-Steuerdateien durchsuchen\n"
+"                              VERZEICHNIS nach eingebundenen\n"
+"                              Makedateien durchsuchen\n"
 
-#: main.c:339
-#, fuzzy
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr ""
-"N Jobs gleichzeitig erlauben; unbegrenzte Anzahl \n"
-"von Jobs ohne Argument"
+"  -j [N], --jobs[=N]          N Jobs gleichzeitig erlauben; unbegrenzte "
+"Anzahl \n"
+"                              von Jobs ohne Argument\n"
 
-#: main.c:341
-#, fuzzy
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
-msgstr "Weiterlaufen, auch wenn einige Targets nicht erzeugt werden konnten"
+msgstr ""
+"  -k, --keep-going            Weiterlaufen, auch wenn einige Targets nicht\n"
+"                              erzeugt werden konnten\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
+"  -l [N], --load-average[=N], --max-load[=N]\n"
+"                              Keine Jobs starten bevor die Auslastung nicht "
+"unter N ist.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
+"  -L, --check-symlink-times   Den neueste Modifizierungszeit zwischen\n"
+"                              symbolischer Verküpfung und dem Ziel "
+"verwenden.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
+"  -n, --just-print, --dry-run, --recon\n"
+"                              Keine Regel ausführen, nur ausgeben.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
+"  -o DATEI, --old-file=DATEI, --assume-old=DATEI\n"
+"                              DATEI als sehr alt ansehen und nicht neu "
+"erzeugen.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
+"  -O[TYP], --output-sync[=TYP]\n"
+"                              Synchronisiert die Ausgabe paralleler Jobs per "
+"TYP.\n"
 
-#: main.c:357
-#, fuzzy
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
-msgstr "Die interne Datenbank von »make« ausgeben"
+msgstr ""
+"  -p, --print-data-base       Die interne Datenbank von „make“ ausgeben\n"
 
-#: main.c:359
-#, fuzzy
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
-"Keine Befehle ausführen; der Exit-Status gibt an, ob die Dateien\n"
-"aktuell sind"
+"  -q, --question              Keine Regel ausführen; der Exit-Status gibt "
+"an, ob die Dateien\n"
+"                              aktuell sind\n"
 
-#: main.c:361
-#, fuzzy
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
-msgstr "Die eingebauten impliziten Regeln deaktivieren"
+msgstr ""
+"  -r, --no-builtin-rules      Die eingebauten impliziten Regeln "
+"deaktivieren.\n"
 
-#: main.c:363
-#, fuzzy
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
-msgstr "Die eingebauten Variablenbelegungen deaktivieren"
+msgstr ""
+"  -R, --no-builtin-variables  Die eingebauten Variablenbelegungen "
+"deaktivieren.\n"
 
-#: main.c:365
-#, fuzzy
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
-msgstr "  -s, --silent, --quiet       Befehle nicht ausgeben.\n"
+msgstr "  -s, --silent, --quiet       Regeln nicht ausgeben.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1052,77 +1069,75 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              -k abschalten.\n"
 
-#: main.c:370
-#, fuzzy
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
-"Die Targets werden nur als aktualisiert markiert,\n"
-"nicht tatsächlich erneuert"
+"  -t, --touch                 Die Ziele werden nur als aktualisiert "
+"markiert,\n"
+"                              nicht tatsächlich erneuert\n"
 
-#: main.c:372
-#, fuzzy
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
-msgstr "Viele Informationen zur Fehlersuche ausgeben"
+msgstr ""
+"  --trace                     Viele Informationen zur Fehlersuche ausgeben\n"
 
-#: main.c:374
-#, fuzzy
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
-msgstr "Die Versionsnummer von »make« ausgeben und beenden"
+msgstr ""
+"  -v, --version               Die Versionsnummer von „make“ ausgeben und "
+"Programm beenden\n"
 
-#: main.c:376
-#, fuzzy
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
-msgstr "Das aktuelle Verzeichnis ausgeben"
+msgstr "  -w, --print-directory       Das aktuelle Verzeichnis ausgeben\n"
 
-#: main.c:378
-#, fuzzy
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
-msgstr "-w abschalten, selbst wenn es implizit eingeschaltet wurde"
+msgstr ""
+"  --no-print-directory        -w abschalten, selbst wenn es implizit "
+"eingeschaltet wurde.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
+"  -W DATEI, --what-if=DATEI, --new-file=DATEI, --assume-new=DATEI\n"
+"                              DATEI als unendlich neu erachten.\n"
 
-#: main.c:383
-#, fuzzy
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
-"Eine Warnung ausgeben, wenn eine undefinierte Variable referenziert wird"
+"  --warn-undefined-variables  Eine Warnung ausgeben, wenn eine undefinierte\n"
+"                                     Variable referenziert wird.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
-msgstr "Eine leere Zeichenkette ist als Dateiname ungültig"
+msgstr "Eine leere Zeichenkette ist als Dateiname ungültig"
 
-#: main.c:734
-#, fuzzy, c-format
+#: main.c:737
+#, c-format
 msgid "unknown debug level specification '%s'"
-msgstr "Unbekanntes Debug-Level angegeben »%s«"
+msgstr "Unbekannte Debug-Level angegeben „%s“"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
-msgstr ""
+msgstr "unbekannter Typ von Ausgabesynchronisierung „%s“"
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "Interner Fehler: mehrfache --jobserver-fds Optionen"
-
-#: main.c:848
-#, fuzzy, c-format
+#: main.c:828
+#, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
-"%s: bekam Unterbrechung/Ausnahme signalisiert (Kode = 0x%x, Adr = 0x%x)\n"
+"%s: bekam Unterbrechung/Ausnahme signalisiert (Kode = 0x%lx, Adr = 0x%p)\n"
 
-#: main.c:855
-#, fuzzy, c-format
+#: main.c:835
+#, c-format
 msgid ""
 "\n"
 "Unhandled exception filter called from program %s\n"
@@ -1133,233 +1148,237 @@ msgstr ""
 "\n"
 "Das Programm %s rief einen Ausnahmefilter auf, \n"
 "der nicht bearbeitet wurde\n"
-"ExceptionCode = %x\n"
-"ExceptionFlags = %x\n"
-"ExceptionAddress = %x\n"
+"ExceptionCode = %lx\n"
+"ExceptionFlags = %lx\n"
+"ExceptionAddress = 0x%p\n"
 
-#: main.c:863
-#, fuzzy, c-format
+#: main.c:843
+#, c-format
 msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Zugriffsverletzung: Schreiboperation an Adresse %x\n"
+msgstr "Zugriffsverletzung: Schreiboperation an Adresse 0x%p\n"
 
-#: main.c:864
-#, fuzzy, c-format
+#: main.c:844
+#, c-format
 msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Zugriffsverletzung: Leseoperation an Adresse %x\n"
+msgstr "Zugriffsverletzung: Leseoperation an Adresse 0x%p\n"
 
-#: main.c:940 main.c:955
-#, fuzzy, c-format
+#: main.c:920 main.c:935
+#, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell setzt default_shell = %s\n"
 
-#: main.c:1008
-#, fuzzy, c-format
+#: main.c:988
+#, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell Suchpfad gesetzt; default_shell = %s\n"
+msgstr "find_and_set_shell Suche im Pfad setzte default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
-msgstr "%s setzt für 30 Sekunden aus..."
+msgstr "%s setzt für 30 Sekunden aus..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
-msgstr "»sleep(30)« ist abgeschlossen. Es geht weiter.\n"
-
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "Interner Fehler: mehrfache --jobserver-fds Optionen"
+msgstr "„sleep(30)“ ist abgeschlossen. Es geht weiter.\n"
 
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
+"interner Fehler: die Semaphore „%s“ des Jobservers kann nicht geöffnet "
+"werden:\n"
+"                 (Fehler %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
-msgstr ""
+msgstr "Jobserver-Klient (Semaphore %s)\n"
 
-#: main.c:1551
-#, fuzzy, c-format
+#: main.c:1534
+#, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
-msgstr "Interner Fehler: Falsche --jobserver-fds Angabe »%s«"
+msgstr "Interner Fehler: Falsche --jobserver-fds Angabe „%s“"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Jobserver-Klient (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
-"Warnung: -jN in »make«-Verarbeitungszweig erzwungen: \n"
-"Jobserver-Modus nicht verfügbar."
+"Warnung: -jN in „make“-Verarbeitungszweig erzwungen: \n"
+"Jobserver-Modus nicht verfügbar."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "Jobserver verdoppelt"
 
-#: main.c:1586
-#, fuzzy
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
-"Warnung: Kein Jobserver verfügbar: -j1 wird gesetzt. »+« zur Ursprungsregel\n"
-"hinzufügen."
+"Warnung: Kein Jobserver verfügbar: -j1 wird gesetzt. Fügen Sie der "
+"Ursprungsregel\n"
+"„+“ hinzu."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
-msgstr "Das Makefile wurde zweimal über die Standardeingabe angegeben."
+msgstr "Das Makefile wurde zweimal über die Standardeingabe angegeben."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
-msgstr "fopen (temporäre Datei)"
+msgstr "fopen (temporäre Datei)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
-msgstr "fwrite (temporäre Datei)"
+msgstr "fwrite (temporäre Datei)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr ""
 "Parallele Abarbeitung (-j) \n"
-"wird auf dieser Plattform nicht unterstützt."
+"wird auf dieser Plattform nicht unterstützt."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Umstellung auf Einzel-Job-Verarbeitung (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
-msgstr ""
+msgstr "Zeitschlitze der Jobservers auf %d begranzt\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "Jobserver-Semaphore wird erzeugt: (Fehler %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
-msgstr "Öffnen der Pipe für die Jobs"
+msgstr "Öffnen der Pipe für die Jobs"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
-msgstr "Initialisierung der Pipe für den jobserver"
+msgstr "Initialisierung der Pipe für den Jobserver"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
-msgstr "Symbolische Links sind nicht unterstützt: -L wird abgeschaltet."
+msgstr ""
+"Symbolische Verknfungen werdfen nicht unterstützt: -L wird abgeschaltet."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
-msgstr "Aktualisiere »make«-Steuerdateien...\n"
+msgstr "Aktualisiere „make“-Steuerdateien...\n"
 
-#: main.c:2174
-#, fuzzy, c-format
+#: main.c:2158
+#, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ""
-"»make«-Steuerdatei »%s« könnte eine Schleife enthalten; \n"
+"„make“-Steuerdatei „%s“ könnte eine Schleife enthalten; \n"
 "es wird nicht neu erzeugt.\n"
 
-#: main.c:2253
-#, fuzzy, c-format
+#: main.c:2237
+#, c-format
 msgid "Failed to remake makefile '%s'."
-msgstr "Konnte die »make«-Steuerdatei »%s« nicht neu erstellen."
+msgstr "Konnte die „make“-Steuerdatei „%s“ nicht neu erstellen."
 
-#: main.c:2270
-#, fuzzy, c-format
+#: main.c:2257
+#, c-format
 msgid "Included makefile '%s' was not found."
-msgstr "Die eingebundene »make«-Steuerdatei »%s« wurde nicht gefunden."
+msgstr "Die eingebundene „make“-Steuerdatei „%s“ wurde nicht gefunden."
 
-#: main.c:2275
-#, fuzzy, c-format
+#: main.c:2262
+#, c-format
 msgid "Makefile '%s' was not found"
-msgstr "Die »make«-Steuerdatei »%s« wurde nicht gefunden"
+msgstr "Die „make“-Steuerdatei „%s“ wurde nicht gefunden"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
-msgstr "Konnte nicht in das ursprüngliche Verzeichnis wechseln."
+msgstr "Konnte nicht in das ursprüngliche Verzeichnis wechseln."
 
-#: main.c:2354
-#, fuzzy, c-format
+#: main.c:2343
+#, c-format
 msgid "Re-executing[%u]:"
-msgstr "Erneute Ausführung:"
+msgstr "Erneute Ausführung[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
-msgstr "unlink (temporäre Datei): "
+msgstr "unlink (temporäre Datei): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL beinhaltet mehr als ein Ziel"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
-msgstr "Keine Targets angegeben und keine »make«-Steuerdatei gefunden"
+msgstr "Es wurden keine Ziele angegeben und keine „make“-Steuerdatei gefunden"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
-msgstr "Keine Targets"
+msgstr "Keine Ziele"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Aktualisieren der Ziele...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "Warnung: Mit der Uhr stimmt etwas nicht. \n"
-"Die Bearbeitung könnte unvollständig sein."
+"         Der Bauauftrag könnte unvollständig sein."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
-msgstr "Syntax: %s [Optionen] [Target] ...\n"
+msgstr "Aufruf: %s [Optionen] [Ziele] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
 "This program built for %s\n"
 msgstr ""
+"\n"
+"Diese Programm wurde für %s gebaut\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
 "This program built for %s (%s)\n"
 msgstr ""
+"\n"
+"Diese Programm wurde für %s (%s) gebaut\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Fehlermeldungen (auf Englisch) an <bug-make@gnu.org> senden.\n"
 
-#: main.c:2810
-#, fuzzy, c-format
+#: main.c:2807
+#, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
-msgstr "Die Option »-%c« verlangt eine positive ganze Zahl als Argument"
+msgstr "Die Option „%s%s“ verlangt eine nicht-leere Zeichenkette als Argument"
 
-#: main.c:2864
-#, fuzzy, c-format
+#: main.c:2871
+#, c-format
 msgid "the '-%c' option requires a positive integer argument"
-msgstr "Die Option »-%c« verlangt eine positive ganze Zahl als Argument"
+msgstr "Die Option „-%c“ verlangt eine positive ganze Zahl als Argument"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
-msgstr ""
+msgstr "%sGebaut für %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
-msgstr ""
+msgstr "%sGebaut für %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1367,38 +1386,39 @@ msgid ""
 "%sThis is free software: you are free to change and redistribute it.\n"
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
+"%sLizenz GPLv3+: GNU GPL Version 3 oder später <http://gnu.org/licenses/gpl."
+"html>\n"
+"%sDies ist freie Software: Sie können sie nach Belieben ändern und weiter "
+"verteilen.\n"
+"%sSoweit es die Gesetze erlauben gibt es KEINE GARANTIE.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
 "# Make data base, printed on %s"
 msgstr ""
 "\n"
-"# »Make«-Datenbank; erstellt am: %s"
+"# „Make“-Datenbank; erstellt am: %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
 "# Finished Make data base on %s\n"
 msgstr ""
 "\n"
-"# »Make«-Datenbank; beendet am: %s\n"
+"# „Make“-Datenbank beendet am: %s\n"
 
 #: misc.c:201
 #, c-format
 msgid "Unknown error %d"
 msgstr "Unbekannter Fehler %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "Der virtuelle Speicher ist verbraucht"
-
 #: misc.c:522
-#, fuzzy, c-format
+#, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: Nutzer %lu (tatsächlich %lu), Gruppe %lu (tatsächlich %lu)\n"
+msgstr "%s: Nutzer %lu (tatsächlich %lu), Gruppe %lu (tatsächlich %lu)\n"
 
 #: misc.c:543
 msgid "Initialized access"
@@ -1406,470 +1426,464 @@ msgstr "Initialisierter Zugriff"
 
 #: misc.c:622
 msgid "User access"
-msgstr ""
+msgstr "Zugriff durch Benutzer"
 
 #: misc.c:670
 msgid "Make access"
-msgstr ""
+msgstr "Zugriff durch „make“"
 
 #: misc.c:704
 msgid "Child access"
-msgstr ""
+msgstr "Kindprozess"
 
-#: output.c:128
-#, fuzzy, c-format
+#: output.c:104
+#, c-format
 msgid "%s: Entering an unknown directory\n"
-msgstr "ein unbekanntes Verzeichnis"
+msgstr "%s: ein unbekanntes Verzeichnis wird betreten\n"
 
-#: output.c:130
-#, fuzzy, c-format
+#: output.c:106
+#, c-format
 msgid "%s: Leaving an unknown directory\n"
-msgstr "ein unbekanntes Verzeichnis"
+msgstr "%s: ein unbekanntes Verzeichnis wird verlassen\n"
 
 # !!! Attention: concatenated with the previous messages!!!
-#: output.c:133
-#, fuzzy, c-format
+#: output.c:109
+#, c-format
 msgid "%s: Entering directory '%s'\n"
-msgstr "»%s«\n"
+msgstr "%s: Verzeichnis „%s“ wird betreten\n"
 
 # !!! Attention: concatenated with the previous messages!!!
-#: output.c:135
-#, fuzzy, c-format
+#: output.c:111
+#, c-format
 msgid "%s: Leaving directory '%s'\n"
-msgstr "»%s«\n"
+msgstr "%s: Verzeichnis „%s“ wird verlassen\n"
 
-#: output.c:139
-#, fuzzy, c-format
+#: output.c:115
+#, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "ein unbekanntes Verzeichnis"
+msgstr "%s[%u]: Ein unbekanntes Verzeichnis wird betreten\n"
 
-#: output.c:141
-#, fuzzy, c-format
+#: output.c:117
+#, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "ein unbekanntes Verzeichnis"
+msgstr "%s[%u]: Ein unbekanntes Verzeichnis wird verlassen\n"
 
 # !!! Attention: concatenated with the previous messages!!!
-#: output.c:144
-#, fuzzy, c-format
+#: output.c:120
+#, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
-msgstr "»%s«\n"
+msgstr "%s[%u]: Verzeichnis „%s“ wird betreten\n"
 
 # !!! Attention: concatenated with the previous messages!!!
-#: output.c:146
-#, fuzzy, c-format
+#: output.c:122
+#, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
-msgstr "»%s«\n"
+msgstr "%s[%u]: Verzeichnis „%s“ wird verlassen\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "Schreibfehler: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "Schreibfehler"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Schluss.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
-msgstr ""
+msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
-msgstr ""
+msgstr "%s: %s"
 
 #: read.c:180
 msgid "Reading makefiles...\n"
-msgstr "»make«-Steuerdateien werden gelesen...\n"
+msgstr "„make“-Steuerdateien werden gelesen...\n"
 
-#: read.c:333
-#, fuzzy, c-format
+#: read.c:335
+#, c-format
 msgid "Reading makefile '%s'"
-msgstr "»make«-Steuerdatei »%s« wird gelesen"
+msgstr "„make“-Steuerdatei „%s“ wird gelesen"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (kein Standard-Ziel)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (Suchpfad)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (macht nichts)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
-msgstr " (keine ~-Auflösung)"
+msgstr " (keine ~-Auflösung)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
-msgstr ""
+msgstr "UTF-8 BOM in makefile „%s“ wird übersprungen\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
-msgstr ""
+msgstr "UTF-8 BOM im makefile-Puffer wird übersprungen\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
-msgstr "Ungültige Syntax in der Bedingung"
+msgstr "Ungültige Syntax in der Bedingung"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
-msgstr ""
+msgstr "%s: konnte nicht geladen werden"
 
-#: read.c:987
-#, fuzzy
+#: read.c:992
 msgid "recipe commences before first target"
-msgstr "Befehle beginnen vor dem ersten Ziel"
+msgstr "Rezept beginnt vor dem ersten Ziel"
 
-#: read.c:1036
-#, fuzzy
+#: read.c:1041
 msgid "missing rule before recipe"
-msgstr "Es fehlt eine Regel vor den Befehlen"
-
-# Untranslatable because of weird %s usage -ke-
-#: read.c:1123
-#, fuzzy, c-format
-msgid "missing separator%s"
-msgstr "Fehlendes Trennzeichen%s"
+msgstr "Es fehlt eine Regel vor der Regel"
 
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (Meinten Sie TAB anstelle von 8 Leerzeichen?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "Fehlende Trennung%s"
+
+#: read.c:1270
 msgid "missing target pattern"
-msgstr "Es fehlt ein Target-Muster"
+msgstr "Es fehlt ein Ziel-Muster"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
-msgstr "Mehrfache Target-Muster"
+msgstr "Mehrfache Ziel-Muster"
 
-#: read.c:1269
-#, fuzzy, c-format
+#: read.c:1276
+#, c-format
 msgid "target pattern contains no '%%'"
-msgstr "Target-Muster enthält kein »%%«"
+msgstr "Ziel-Muster enthält kein „%%“"
 
-#: read.c:1391
-#, fuzzy
+#: read.c:1398
 msgid "missing 'endif'"
-msgstr "Fehlendes »endif«"
+msgstr "Fehlendes „endif“"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "Leerer Variablenname"
 
-#: read.c:1465
-#, fuzzy
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
-msgstr "Überflüssiger Text nach einer »endef«-Anweisung"
+msgstr "Überflüssiger Text nach einer „define“-Anweisung"
 
-#: read.c:1490
-#, fuzzy
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
-msgstr "Fehlendes »endef«, nicht abgeschlossenes »define«"
+msgstr "Fehlendes „endef“, nicht abgeschlossenes „define“"
 
-#: read.c:1518
-#, fuzzy
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
-msgstr "Überflüssiger Text nach einer »endef«-Anweisung"
+msgstr "Überflüssiger Text nach einer „endef“-Anweisung"
 
-#: read.c:1589
-#, fuzzy, c-format
+#: read.c:1595
+#, c-format
 msgid "extraneous text after '%s' directive"
-msgstr "Überflüssiger Text nach einer »%s«-Anweisung"
+msgstr "Überflüssiger Text nach einer „%s“-Anweisung"
 
-#: read.c:1598 read.c:1612
-#, fuzzy, c-format
+#: read.c:1596
+#, c-format
 msgid "extraneous '%s'"
-msgstr "Überflüssiges »%s«"
+msgstr "Überflüssiges „%s“"
 
-#: read.c:1617
-#, fuzzy
+#: read.c:1624
 msgid "only one 'else' per conditional"
-msgstr "Es ist nur ein »else« je Verzweigung erlaubt"
+msgstr "Es ist nur ein „else“ pro Bedingung erlaubt"
 
-#: read.c:1892
-#, fuzzy
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Falsche Ziel-bezogene Variablendefinition"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
-msgstr ""
+msgstr "Voraussetzungen können nicht in Regeln definiert werden"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
-msgstr "Implizite und statische Muster-Regel vermischt"
+msgstr "Implizite und statische Muster-Regeln wurden vermischt"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
-msgstr "Implizite und normale Regel vermischt"
+msgstr "Implizite und normale Regeln wurden vermischt"
 
-#: read.c:2084
-#, fuzzy, c-format
+#: read.c:2091
+#, c-format
 msgid "target '%s' doesn't match the target pattern"
-msgstr "Target »%s« passt nicht zum Target-Muster"
+msgstr "Target „%s“ passt nicht zum Ziel-Muster"
 
-#: read.c:2099 read.c:2144
-#, fuzzy, c-format
+#: read.c:2106 read.c:2152
+#, c-format
 msgid "target file '%s' has both : and :: entries"
-msgstr "Das Ziel »%s« enthält sowohl »:«- als auch »::«-Einträge"
+msgstr "Das Ziel „%s“ enthält sowohl „:“- als auch „::“-Einträge"
 
-#: read.c:2105
-#, fuzzy, c-format
+#: read.c:2112
+#, c-format
 msgid "target '%s' given more than once in the same rule"
-msgstr "Das Ziel »%s« steht mehrfach in derselben Regel."
+msgstr "Das Ziel „%s“ steht mehrfach in derselben Regel."
 
-#: read.c:2114
-#, fuzzy, c-format
+#: read.c:2122
+#, c-format
 msgid "warning: overriding recipe for target '%s'"
-msgstr "Warnung: Die Befehle für das Ziel »%s« werden überschrieben"
+msgstr "Warnung: Die Befehle für das Ziel „%s“ werden überschrieben"
 
-#: read.c:2117
-#, fuzzy, c-format
+#: read.c:2125
+#, c-format
 msgid "warning: ignoring old recipe for target '%s'"
-msgstr "Warnung: Alte Befehle für das Ziel »%s« werden ignoriert"
+msgstr "Warnung: Alte Befehle für das Ziel „%s“ werden ignoriert"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "Implizite und normale Regeln wurden vermischt"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
-msgstr "Warnung: NUL-Zeichen gelesen; der Rest der Zeile wird ignoriert"
+msgstr "Warnung: NULL-Zeichen gelesen; der Rest der Zeile wird ignoriert"
 
-#: remake.c:232
-#, fuzzy, c-format
+#: remake.c:230
+#, c-format
 msgid "Nothing to be done for '%s'."
-msgstr "Für das Ziel »%s« ist nichts zu tun."
+msgstr "Für das Ziel „%s“ ist nichts zu tun."
 
-#: remake.c:233
-#, fuzzy, c-format
+#: remake.c:231
+#, c-format
 msgid "'%s' is up to date."
-msgstr "»%s« ist bereits aktualisiert."
+msgstr "„%s“ ist bereits aktuell."
 
-#: remake.c:305
-#, fuzzy, c-format
+#: remake.c:303
+#, c-format
 msgid "Pruning file '%s'.\n"
-msgstr "Die Datei »%s« wird \"gestutzt\" (der Abhängigkeitsgraph).\n"
+msgstr "Die Datei „%s“ wird \"gestutzt\" (der Abhängigkeitsgraph).\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sKeine Regel, um »%s« zu erstellen%s"
-
-#: remake.c:379
-#, fuzzy, c-format
+#: remake.c:390 remake.c:393
+#, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
-"%sKeine Regel vorhanden, um das Target »%s«, \n"
-"  benötigt von »%s«, zu erstellen%s"
+"%sKeine Regel vorhanden, um das Ziel „%s“, \n"
+"  benötigt von „%s“, zu erstellen%s"
 
-#: remake.c:413
-#, fuzzy, c-format
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sKeine Regel, um „%s“ zu erstellen%s"
+
+#: remake.c:426
+#, c-format
 msgid "Considering target file '%s'.\n"
-msgstr "Betrachte Target-Datei »%s«.\n"
+msgstr "Betrachte Ziel-Datei „%s“.\n"
 
-#: remake.c:420
-#, fuzzy, c-format
+#: remake.c:433
+#, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr ""
-"Versuchte gerade die Datei »%s« zu aktualisieren, \n"
+"Es wurde kürzlich versucht, die Datei „%s“ zu aktualisieren,\n"
 "dies schlug aber fehl.\n"
 
-#: remake.c:432
-#, fuzzy, c-format
+#: remake.c:445
+#, c-format
 msgid "File '%s' was considered already.\n"
-msgstr "Die Datei »%s« wurde bereits betrachtet.\n"
+msgstr "Die Datei „%s“ wurde bereits betrachtet.\n"
 
-#: remake.c:442
-#, fuzzy, c-format
+#: remake.c:455
+#, c-format
 msgid "Still updating file '%s'.\n"
-msgstr "Die Datei »%s« wird immer noch aktualisiert.\n"
+msgstr "Die Datei „%s“ wird immer noch aktualisiert.\n"
 
-#: remake.c:445
-#, fuzzy, c-format
+#: remake.c:458
+#, c-format
 msgid "Finished updating file '%s'.\n"
-msgstr "Aktualisierung der Datei »%s« beendet.\n"
+msgstr "Aktualisierung der Datei „%s“ beendet.\n"
 
-#: remake.c:474
-#, fuzzy, c-format
+#: remake.c:487
+#, c-format
 msgid "File '%s' does not exist.\n"
-msgstr "Die Datei »%s« existiert nicht.\n"
+msgstr "Die Datei „%s“ existiert nicht.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
+"*** Warnung: mit .LOW_RESOLUTION_TIME gekennzeichnete Datei „%s“ hat einen\n"
+"             hochaufgelösten Zeitstempel"
 
-#: remake.c:494 remake.c:1019
-#, fuzzy, c-format
+#: remake.c:508 remake.c:1040
+#, c-format
 msgid "Found an implicit rule for '%s'.\n"
-msgstr "Eine implizite Regel für »%s« gefunden.\n"
+msgstr "Eine implizite Regel für „%s“ wurde gefunden.\n"
 
-#: remake.c:496 remake.c:1021
-#, fuzzy, c-format
+#: remake.c:510 remake.c:1042
+#, c-format
 msgid "No implicit rule found for '%s'.\n"
-msgstr "Keine implizite Regel für »%s« gefunden.\n"
+msgstr "Keine implizite Regel für „%s“ gefunden.\n"
 
-#: remake.c:502
-#, fuzzy, c-format
+#: remake.c:516
+#, c-format
 msgid "Using default recipe for '%s'.\n"
-msgstr "Verwende die Standard-Kommandos für »%s«.\n"
+msgstr "Die Standard-Regel für „%s“ wird verwendet.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
-msgstr "Zirkuläre Datei %s <- %s Abhängigkeit wird nicht verwendet."
+msgstr "Zirkuläre Abhängigkeit %s <- %s wird nicht verwendet."
 
-#: remake.c:655
-#, fuzzy, c-format
+#: remake.c:675
+#, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
-msgstr "Fertig mit den Voraussetzungen für die Ziel-Datei »%s«.\n"
+msgstr "Fertig mit den Voraussetzungen für die Ziel-Datei „%s“.\n"
 
-#: remake.c:661
-#, fuzzy, c-format
+#: remake.c:681
+#, c-format
 msgid "The prerequisites of '%s' are being made.\n"
-msgstr "Die Voraussetzungen von »%s« werden fertiggestellt.\n"
+msgstr "Die Voraussetzungen von „%s“ werden fertiggestellt.\n"
 
-#: remake.c:674
-#, fuzzy, c-format
+#: remake.c:695
+#, c-format
 msgid "Giving up on target file '%s'.\n"
-msgstr "Die Arbeit an der Target-Datei »%s« wurde aufgegeben.\n"
+msgstr "Die Arbeit an der Target-Datei „%s“ wurde aufgegeben.\n"
 
-#: remake.c:679
-#, fuzzy, c-format
+#: remake.c:700
+#, c-format
 msgid "Target '%s' not remade because of errors."
-msgstr "Das Target »%s« wurde wegen Fehlern nicht aktualisiert."
+msgstr "Das Ziel „%s“ wurde wegen Fehlern nicht aktualisiert."
 
-#: remake.c:731
-#, fuzzy, c-format
+#: remake.c:752
+#, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
-msgstr "Die Datei »%s« ist älter als das davon abhängige Ziel »%s«.\n"
+msgstr "Die Datei „%s“ ist älter als das davon abhängige Ziel „%s“.\n"
 
-#: remake.c:736
-#, fuzzy, c-format
+#: remake.c:757
+#, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr ""
-"Die Datei »%s«, Voraussetzung für das Ziel »%s«, \n"
+"Die Datei „%s“, Voraussetzung für das Ziel „%s“, \n"
 "existiert nicht.\n"
 
-#: remake.c:741
-#, fuzzy, c-format
+#: remake.c:762
+#, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
-msgstr "Die Datei »%s« ist jünger als das davon abhängige Ziel »%s«.\n"
+msgstr "Die Datei „%s“ ist jünger als das davon abhängige Ziel „%s“.\n"
 
-#: remake.c:744
-#, fuzzy, c-format
+#: remake.c:765
+#, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
-msgstr "Die Datei »%s« ist älter als das davon abhängige Ziel »%s«.\n"
+msgstr "Die Datei „%s“ ist älter als das davon abhängige Ziel „%s“.\n"
 
-#: remake.c:762
-#, fuzzy, c-format
+#: remake.c:783
+#, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
-"Das Ziel »%s« hat einen doppelten Doppelpunkt \n"
+"Das Ziel „%s“ hat einen doppelten Doppelpunkt \n"
 "und keine Voraussetzungen.\n"
 
-#: remake.c:769
-#, fuzzy, c-format
+#: remake.c:790
+#, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
-"Kein Kommando für »%s« und keine Voraussetzung \n"
-"wurde tatsächlich verändert.\n"
+"Kein Kommando für „%s“ und keine Voraussetzung \n"
+"wurde tatsächlich verändert.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
-msgstr ""
+msgstr "„%s“ wird aufgrund der Keinnzeichnung als always-make erzeugt.\n"
 
-#: remake.c:782
-#, fuzzy, c-format
+#: remake.c:803
+#, c-format
 msgid "No need to remake target '%s'"
-msgstr "Es ist nicht notwendig, das Target »%s« neu zu erzeugen"
+msgstr "Es ist nicht notwendig, das Ziel „%s“ neu zu erzeugen"
 
-#: remake.c:784
-#, fuzzy, c-format
+#: remake.c:805
+#, c-format
 msgid "; using VPATH name '%s'"
-msgstr "; benutze VPATH-Name »%s«"
+msgstr "; benutze VPATH-Name „%s“"
 
-#: remake.c:804
-#, fuzzy, c-format
+#: remake.c:825
+#, c-format
 msgid "Must remake target '%s'.\n"
-msgstr "Das Target »%s« muss neu erzeugt werden.\n"
+msgstr "Das Target „%s“ muss neu erzeugt werden.\n"
 
-#: remake.c:810
-#, fuzzy, c-format
+#: remake.c:831
+#, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
-msgstr "  Ignoriere VPATH-Name »%s«.\n"
+msgstr "  Der VPATH-Name „%s“ wird ignoriert.\n"
 
-#: remake.c:819
-#, fuzzy, c-format
+#: remake.c:840
+#, c-format
 msgid "Recipe of '%s' is being run.\n"
-msgstr "Die Kommandos von »%s« werden gerade ausgeführt.\n"
+msgstr "Die Regel für „%s“ wird gerade ausgeführt.\n"
 
-#: remake.c:826
-#, fuzzy, c-format
+#: remake.c:847
+#, c-format
 msgid "Failed to remake target file '%s'.\n"
-msgstr "Fehler beim Aktualisieren der Target-Datei »%s«.\n"
+msgstr "Fehler beim Aktualisieren der Ziel-Datei „%s“.\n"
 
-#: remake.c:829
-#, fuzzy, c-format
+#: remake.c:850
+#, c-format
 msgid "Successfully remade target file '%s'.\n"
-msgstr "Die Target-Datei »%s« wurde erfolgreich aktualisiert.\n"
+msgstr "Die Zieldatei „%s“ wurde erfolgreich aktualisiert.\n"
 
-#: remake.c:832
-#, fuzzy, c-format
+#: remake.c:853
+#, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
-msgstr "Target »%s« muss bei -q aktualisiert werden.\n"
+msgstr "Zieldatei „%s“ muss bei -q aktualisiert werden.\n"
 
-#: remake.c:1027
-#, fuzzy, c-format
+#: remake.c:1048
+#, c-format
 msgid "Using default commands for '%s'.\n"
-msgstr "Verwende die Standard-Kommandos für »%s«.\n"
+msgstr "Die Standard-Kommandos für „%s“ werden verwendet.\n"
 
-#: remake.c:1372
-#, fuzzy, c-format
+#: remake.c:1397
+#, c-format
 msgid "Warning: File '%s' has modification time in the future"
-msgstr "*** Warnung: Datei »%s« hat zukünftige Änderungszeit (%s > %s)!"
+msgstr "Warnung: Datei „%s“ hat zukünftige Änderungszeit"
 
-#: remake.c:1385
-#, fuzzy, c-format
+#: remake.c:1411
+#, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
-msgstr "*** Warnung: Datei »%s« hat zukünftige Änderungszeit (%s > %s)!"
+msgstr "Warnung: Datei „%s“ hat hat in der Zukunft liegende Änderungszeit %s"
 
-#: remake.c:1583
-#, fuzzy, c-format
+#: remake.c:1610
+#, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
-msgstr ".LIBPATTERNS Element »%s« ist kein Muster"
+msgstr ".LIBPATTERNS Element „%s“ ist kein Muster"
 
 #: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
 msgstr "Customs wird nicht exportieren: %s\n"
 
-#: rule.c:496
-#, fuzzy
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
 msgstr ""
 "\n"
-"# Keine impliziten Regeln vorhanden."
+"# Implizite Regeln"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1877,7 +1891,7 @@ msgstr ""
 "\n"
 "# Keine impliziten Regeln vorhanden."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1886,14 +1900,14 @@ msgstr ""
 "\n"
 "# %u implizite Regeln, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " Terminal."
 
-#: rule.c:531
-#, fuzzy, c-format
+#: rule.c:530
+#, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
-msgstr "BUG: »num_pattern_rules« falsch!  %u != %u"
+msgstr "BUG: „num_pattern_rules“ falsch!  %u != %u"
 
 #: signame.c:84
 msgid "unknown signal"
@@ -1953,7 +1967,7 @@ msgstr "Falscher Systemaufruf"
 
 #: signame.c:133
 msgid "Broken pipe"
-msgstr "Zerstörte Pipe"
+msgstr "Zerstörte Pipe"
 
 #: signame.c:136
 msgid "Alarm clock"
@@ -1997,11 +2011,11 @@ msgstr "Angehalten (signal)"
 
 #: signame.c:171
 msgid "CPU time limit exceeded"
-msgstr "CPU-Zeitschranke überschritten"
+msgstr "CPU-Zeitschranke überschritten"
 
 #: signame.c:174
 msgid "File size limit exceeded"
-msgstr "Dateigrößenschranke überschritten"
+msgstr "Dateigrößenschranke überschritten"
 
 #: signame.c:177
 msgid "Virtual timer expired"
@@ -2013,7 +2027,7 @@ msgstr "Profiling Timer erloschen"
 
 #: signame.c:186
 msgid "Window changed"
-msgstr "Fenster hat sich verändert"
+msgstr "Fenster hat sich verändert"
 
 #: signame.c:189
 msgid "Continued"
@@ -2025,7 +2039,7 @@ msgstr "Dringende I/O-Bedingung"
 
 #: signame.c:199 signame.c:208
 msgid "I/O possible"
-msgstr "I/O möglich"
+msgstr "I/O möglich"
 
 #: signame.c:202
 msgid "SIGWIND"
@@ -2049,7 +2063,7 @@ msgstr "Informationsanforderung"
 
 #: signame.c:220
 msgid "Floating point co-processor not available"
-msgstr "Es ist kein Koprozessor für Fließkommaoperationen vorhanden"
+msgstr "Es ist kein Koprozessor für Fließkommaoperationen vorhanden"
 
 #: strcache.c:236
 #, c-format
@@ -2057,6 +2071,8 @@ msgid ""
 "\n"
 "%s No strcache buffers\n"
 msgstr ""
+"\n"
+"%s Keine Puffer für strcache\n"
 
 #: strcache.c:266
 #, c-format
@@ -2065,23 +2081,29 @@ msgid ""
 "%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
 "B\n"
 msgstr ""
+"\n"
+"%s Puffer für strcache: %lu (%lu) / Zeichenketten = %lu / Speicher = %lu B / "
+"ø = %lu B\n"
 
 #: strcache.c:270
 #, c-format
 msgid ""
 "%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
+"%s aktueller Puffer: Größe = %hu B / benutzt = %hu B / Anzahl = %hu / ø = "
+"%hu B\n"
 
 #: strcache.c:280
 #, c-format
 msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
-msgstr ""
+msgstr "%s andere verwendete: Summe = %lu B / Anzahl = %lu / /ø = %lu B\n"
 
 #: strcache.c:283
 #, c-format
 msgid ""
 "%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
 msgstr ""
+"%s andere freie: Summe = %lu B / Max = %lu B / Min = %lu B / ø = %hu B\n"
 
 #: strcache.c:287
 #, c-format
@@ -2089,54 +2111,57 @@ msgid ""
 "\n"
 "%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 msgstr ""
+"\n"
+"%s Leistung von strcache: Suchen = %lu / Trefferrate = %lu%%\n"
 
 #: strcache.c:289
-#, fuzzy
 msgid ""
 "# hash-table stats:\n"
 "# "
-msgstr "# %u Variablen für %u hash-Werte.\n"
+msgstr ""
+"# Statistik für Hashtabelle:\n"
+"# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatisch"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "Standard"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "Umgebung"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "Makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "Umgebung per -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "Kommandozeile"
 
-#: variable.c:1625
-#, fuzzy
+#: variable.c:1617
 msgid "'override' directive"
-msgstr "»override«-Anweisung"
+msgstr "„override“-Anweisung"
 
-#: variable.c:1636
-#, fuzzy, c-format
+#: variable.c:1628
+#, c-format
 msgid " (from '%s', line %lu)"
-msgstr " (aus »%s«, Zeile %lu):\n"
+msgstr " (aus „%s“, Zeile %lu)"
 
-#: variable.c:1699
-#, fuzzy
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
-msgstr "# %u Variablen für %u hash-Werte.\n"
+msgstr ""
+"# Hashtabellen-Statistik für Variablen:\n"
+"\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2144,8 +2169,7 @@ msgstr ""
 "\n"
 "# Variablen\n"
 
-#: variable.c:1714
-#, fuzzy
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2153,7 +2177,7 @@ msgstr ""
 "\n"
 "# Musterspezifische Variablenwerte"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2161,7 +2185,7 @@ msgstr ""
 "\n"
 "# Keine musterspezifischen Variablenwerte."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2171,89 +2195,94 @@ msgstr ""
 "# %u musterspezifische Variablenwerte"
 
 #: variable.h:224
-#, fuzzy, c-format
+#, c-format
 msgid "warning: undefined variable '%.*s'"
-msgstr "Warnung: undefinierte Variable »%.*s«"
+msgstr "Warnung: undefinierte Variable „%.*s“"
 
 #: vmsfunctions.c:91
-#, fuzzy, c-format
+#, c-format
 msgid "sys$search() failed with %d\n"
-msgstr "»sys$search« schlug mit %d fehl\n"
+msgstr "„sys$search“ schlug mit %d fehl\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Warnung: Umleitung ins Leere!\n"
 
-#: vmsjobs.c:178
-#, fuzzy, c-format
+#: vmsjobs.c:183
+#, c-format
 msgid "internal error: '%s' command_state"
-msgstr "Interner Fehler: »%s« command_state"
+msgstr "Interner Fehler: „%s“ command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
-msgstr "-Warnung: Vielleicht müssen Sie STRG-Y aus DCL wieder ermöglichen.\n"
+msgstr "-Warnung: Vielleicht müssen Sie STRG-Y aus DCL wieder ermöglichen.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BUILTIN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "BUILTIN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
-msgstr "Unbekanntes eingebautes Kommando »%s«\n"
+msgstr "Unbekanntes eingebautes Kommando „%s“\n"
+
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
 
-#: vmsjobs.c:489
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Fehler: Leere Anweisung\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Datei %s auf Standardeingabe umgeleitet\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Fehlerausgabe nach %s umgeleitet\n"
 
-#: vmsjobs.c:518
-#, fuzzy, c-format
+#: vmsjobs.c:690
+#, c-format
 msgid "Append output to %s\n"
 msgstr "Ausgabe nach %s umgeleitet\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Ausgabe nach %s umgeleitet\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "%.*s anhängen und aufräumen\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
-msgstr "%s wird stattdessen ausgeführt\n"
+msgstr "%s wird stattdessen ausgeführt\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
-msgstr "Fehler beim Starten eines Kindprozesses, %d.\n"
+msgstr "Fehler %d beim Starten eines Kindprozesses\n"
 
 #: vpath.c:583
 msgid ""
@@ -2264,52 +2293,64 @@ msgstr ""
 "# VPATH-Suchpfade\n"
 
 #: vpath.c:600
-#, fuzzy
 msgid "# No 'vpath' search paths."
-msgstr "# Keine »vpath«-Suchpfade."
+msgstr "# Keine „vpath“-Suchpfade."
 
 #: vpath.c:602
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# %u 'vpath' search paths.\n"
 msgstr ""
 "\n"
-"# %u »vpath«-Suchpfade.\n"
+"# %u „vpath“-Suchpfade.\n"
 
 #: vpath.c:605
-#, fuzzy
 msgid ""
 "\n"
 "# No general ('VPATH' variable) search path."
 msgstr ""
 "\n"
-"# Kein allgemeiner Suchpfad (Variable »VPATH«)."
+"# Kein allgemeiner Suchpfad (Variable „VPATH“)."
 
 #: vpath.c:611
-#, fuzzy
 msgid ""
 "\n"
 "# General ('VPATH' variable) search path:\n"
 "# "
 msgstr ""
 "\n"
-"# Allgemeiner Suchpfad (Variable »VPATH«):\n"
+"# Allgemeiner Suchpfad (Variable „VPATH“):\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "Interner Fehler: mehrfache --sync-mutex Optionen"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "Interner Fehler: mehrfache --jobserver-fds Optionen"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "Der virtuelle Speicher ist verbraucht"
+
+#~ msgid "write error"
+#~ msgstr "Schreibfehler"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "BUILTIN RM %s\n"
+
 #~ msgid "#  Invalid value in `update_status' member!"
-#~ msgstr "#  Ungültiger Wert in »update_status«-Eintrag!"
+#~ msgstr "#  Ungültiger Wert in „update_status“-Eintrag!"
 
 #~ msgid "*** [%s] Error 0x%x (ignored)"
 #~ msgstr "*** [%s] Fehler 0x%x (ignoriert)"
 
 #~ msgid "Do not specify -j or --jobs if sh.exe is not available."
 #~ msgstr ""
-#~ "Wenn »sh.exe« nicht vorhanden ist, \n"
-#~ "sollten Sie nicht »-j« oder »--jobs« angeben."
+#~ "Wenn „sh.exe“ nicht vorhanden ist, \n"
+#~ "sollten Sie nicht „-j“ oder „--jobs“ angeben."
 
 #~ msgid "Resetting make for single job mode."
-#~ msgstr "»make« wird so umgestellt, dass nur ein Job laufen kann."
+#~ msgstr "„make“ wird so umgestellt, dass nur ein Job laufen kann."
 
 #, fuzzy
 #~ msgid ""
@@ -2318,29 +2359,29 @@ msgstr ""
 #~ "%sPARTICULAR PURPOSE.\n"
 #~ msgstr ""
 #~ ", von Richard Stallman und Roland McGrath.\n"
-#~ "%sErstellt für %s\n"
+#~ "%sErstellt für %s\n"
 #~ "%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000\n"
 #~ "%s\tFree Software Foundation, Inc.\n"
-#~ "%sDies ist Freie Software; siehe die Programmquellen für "
-#~ "Vervielfältigungsbedingungen.\n"
-#~ "%sEs gibt KEINE Gewährleistung; nicht einmal für VERMARKTUNG oder "
-#~ "NUTZBARKEIT FÜR EINEN\n"
+#~ "%sDies ist Freie Software; siehe die Programmquellen für "
+#~ "Vervielfältigungsbedingungen.\n"
+#~ "%sEs gibt KEINE Gewährleistung; nicht einmal für VERMARKTUNG oder "
+#~ "NUTZBARKEIT FÜR EINEN\n"
 #~ "%sBESONDEREN ZWECK.\n"
 #~ "\n"
 #~ "%sFehlermeldungen (auf Englisch) an <bug-make@gnu.org>.\n"
 #~ "\n"
 
 #~ msgid "extraneous `endef'"
-#~ msgstr "Überflüssiges »endef«"
+#~ msgstr "Überflüssiges „endef“"
 
 #~ msgid "empty `override' directive"
-#~ msgstr "Leere »override«-Anweisung"
+#~ msgstr "Leere „override“-Anweisung"
 
 #~ msgid "invalid `override' directive"
-#~ msgstr "Ungültige »override«-Anweisung"
+#~ msgstr "Ungültige „override“-Anweisung"
 
 #~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-Warnung: STRG-Y wird Unterprozesse übriglassen!\n"
+#~ msgstr "-Warnung: STRG-Y wird Unterprozesse übriglassen!\n"
 
 #~ msgid ""
 #~ "\n"
@@ -2358,37 +2399,37 @@ msgstr ""
 #~ msgstr "Syntaxfehler, immer noch in '\"'\n"
 
 #~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr "Erhielt Signal »SIGCHLD«; %u unbeendete Kindprozesse.\n"
+#~ msgstr "Erhielt Signal „SIGCHLD“; %u unbeendete Kindprozesse.\n"
 
 #~ msgid "DIRECTORY"
 #~ msgstr "VERZEICHNIS"
 
 #~ msgid "Change to DIRECTORY before doing anything"
-#~ msgstr "In das VERZEICHNIS wechseln, bevor etwas anderes ausgeführt wird"
+#~ msgstr "In das VERZEICHNIS wechseln, bevor etwas anderes ausgeführt wird"
 
 #~ msgid "FLAGS"
 #~ msgstr "FLAGS"
 
 #~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "Prozess aussetzeb, um das Einklinken eines Debuggers zu ermöglichen"
+#~ msgstr "Prozess aussetzeb, um das Einklinken eines Debuggers zu ermöglichen"
 
 #~ msgid "Environment variables override makefiles"
-#~ msgstr "Umgebungsvariablen überschreiben »make«-Steuerdateien"
+#~ msgstr "Umgebungsvariablen überschreiben „make“-Steuerdateien"
 
 #~ msgid "FILE"
 #~ msgstr "DATEI"
 
 #~ msgid "Read FILE as a makefile"
-#~ msgstr "DATEI als »make«-Steuerdatei lesen"
+#~ msgstr "DATEI als „make“-Steuerdatei lesen"
 
 #~ msgid "Search DIRECTORY for included makefiles"
-#~ msgstr "Das VERZEICHNIS nach eingebundenen »make«-Steuerdateien durchsuchen"
+#~ msgstr "Das VERZEICHNIS nach eingebundenen „make“-Steuerdateien durchsuchen"
 
 #~ msgid "Don't start multiple jobs unless load is below N"
 #~ msgstr "Nur bei Belastung unterhalb N mehrere Prozesse starten"
 
 #~ msgid "Don't actually run any commands; just print them"
-#~ msgstr "Befehle nur anzeigen, nicht ausführen"
+#~ msgstr "Befehle nur anzeigen, nicht ausführen"
 
 #~ msgid "Consider FILE to be very old and don't remake it"
 #~ msgstr "DATEI als sehr alt betrachten und sie nicht neu erzeugen"
@@ -2411,10 +2452,10 @@ msgstr ""
 #~ msgstr "Verlassen des Verzeichnisses"
 
 #~ msgid "no file name for `%sinclude'"
-#~ msgstr "Kein Dateiname für »%sinclude«"
+#~ msgstr "Kein Dateiname für „%sinclude“"
 
 #~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "Target »%s« lässt Voraussetzungs-Muster leer"
+#~ msgstr "Target „%s“ lässt Voraussetzungs-Muster leer"
 
 #~ msgid "# No variables."
 #~ msgstr "# Keine Variablen vorhanden."
@@ -2426,4 +2467,4 @@ msgstr ""
 #~ msgstr "# Durchschnittlich %d.%d Variablen pro Wert, max %u je Wert.\n"
 
 #~ msgid "the `word' function takes a positive index argument"
-#~ msgstr "Die »word«-Funktion erwartet als Argument einen positiven Index"
+#~ msgstr "Die „word“-Funktion erwartet als Argument einen positiven Index"
index 83cbb5799cdb414480a6f482a25fc62c3c971833..b671030ae09e365c8b1875fe6d4917c75748f72c 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 18a1ee2ca934b8827d76a7b2af515610dbc79b6c..904e1d3dae49a0df4692126d70138c0371564f19 100644 (file)
--- a/po/es.po
+++ b/po/es.po
-# Mensajes en español para GNU make.
-# Copyright (C) 1996, 2001, 2011 Free Software Foundation, Inc.
+# Mensajes en español para GNU make.
+# Copyright (C) 1996, 2001, 2011, 2013 Free Software Foundation, Inc.
 # This file is distributed under the same license as the make package.
-# Max de Mendizábal <max.de.mendizabal@gmail.com>, 1996, 2011.
+# Max de Mendizábal <max.de.mendizabal@gmail.com>, 1996, 2011.
+# Antonio Ceballos <aceballos@gmail.com>, 2013
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU make 3.82\n"
+"Project-Id-Version: GNU make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2011-02-16 14:50-0600\n"
-"Last-Translator: Max de Mendizábal <max.de.mendizabal@gmail.com>\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-12-08 23:28+0200\n"
+"Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
 #: ar.c:46
-#, fuzzy, c-format
+#, c-format
 msgid "attempt to use unsupported feature: '%s'"
-msgstr "Se intentó utilizar una característica no implementada: `%s'"
+msgstr "Se intentó utilizar una característica no implementada: '%s'"
 
 # Sugerencia: touch -> `touch'. sv
 # Ok, aceptada. A falta de cursivas... mm
-# No veo porqué no se ha de usar 'tocar' en vez de touch em+
-# El mensaje además hace referencia a un touch de un objeto dentro
-# de una librería, y de eso no se dice nada en el mensaje. Creo que
+# No veo porqué no se ha de usar 'tocar' en vez de touch em+
+# El mensaje además hace referencia a un touch de un objeto dentro
+# de una librería, y de eso no se dice nada en el mensaje. Creo que
 # hay que tener cuidado con estas cosas.
 # El programa para tocar un miembro de un archivo ... , y ahi estamos
 # ya en problemas con el dichoso archivo/fichero.
 # A ver que se os ocurre em+
 # Enrique: touch es un programa del sistema operativo y sirve para
 # cambiar la fecha de un programa o archivo. Es decir lo "toca" y
-# modifica sus atributos. Por eso preferí no traducirlo.
+# modifica sus atributos. Por eso preferí no traducirlo.
 #: ar.c:123
 msgid "touch archive member is not available on VMS"
-msgstr "El programa para hacer un `touch' no está disponible en VMS"
+msgstr "El programa para hacer un 'touch' no está disponible en VMS"
 
 #: ar.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Archive '%s' does not exist"
-msgstr "touch: El archivo `%s' no existe"
+msgstr "touch: El archivo '%s' no existe"
 
 #: ar.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "touch: '%s' is not a valid archive"
-msgstr "touch: `%s' no es un archivo válido"
+msgstr "touch: '%s' no es un archivo válido"
 
 #: ar.c:157
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Member '%s' does not exist in '%s'"
-msgstr "touch: El miembro `%s' no existe en `%s'"
+msgstr "touch: El miembro '%s' no existe en '%s'"
 
 #: ar.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Bad return code from ar_member_touch on '%s'"
-msgstr "touch: Código de retorno erróneo de ar_member_touch en `%s'"
+msgstr "touch: Código de retorno erróneo de ar_member_touch en '%s'"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
-"fallo en lbr$set_module() para extraer la información del módulo, estado = %d"
+"fallo en lbr$set_module() para extraer la información del módulo, estado = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "fallo en lbr$ini_control() con estado = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
-msgstr "Error al abrir la biblioteca `%s' para buscar al elemento `%s'"
+msgid "unable to open library '%s' to lookup member status %d"
+msgstr "Error al abrir la biblioteca '%s' para buscar al elemento '%s'"
 
-#: arscan.c:847
-#, fuzzy, c-format
+#: arscan.c:944
+#, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Miembro `%s'%s: %ld bytes en %ld (%ld).\n"
+msgstr "Miembro '%s'%s: %ld bytes en %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (el nombre puede estar truncado)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Fecha %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, modo = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
-msgstr ""
+msgstr "Las instrucciones tienen demasiadas líneas (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
-msgstr "*** Break.\n"
+msgstr "*** Interrumpir.\n"
 
-#: commands.c:630
-#, fuzzy, c-format
+#: commands.c:629
+#, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr ""
-"*** [%s] Miembro de archivo `%s' podría estar incorrecto; aunque no se "
+"*** [%s] El miembro de archivo '%s' podría estar incorrecto; aunque no se "
 "elimina"
 
 #: commands.c:633
-#, fuzzy, c-format
+#, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr ""
-"*** Miembro del archivo `%s' podría estar incorrecto; aunque no se elimina"
+"*** El miembro del archivo '%s' podría estar incorrecto; aunque no se elimina"
 
 # Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
 # Ok. mm
-#: commands.c:646
-#, fuzzy, c-format
+#: commands.c:647
+#, c-format
 msgid "*** [%s] Deleting file '%s'"
-msgstr "*** [%s] Se borra el archivo `%s'"
+msgstr "*** [%s] Se borra el archivo '%s'"
 
 # Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
 # Ok. mm
-#: commands.c:648
-#, fuzzy, c-format
+#: commands.c:649
+#, c-format
 msgid "*** Deleting file '%s'"
-msgstr "*** Se borra el archivo `%s'"
+msgstr "*** Se borra el archivo '%s'"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  las instrucciones para ejecutar"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
-msgstr " (interconstruido):"
+msgstr " (integrado):"
 
-#: commands.c:689
-#, fuzzy, c-format
+#: commands.c:690
+#, c-format
 msgid " (from '%s', line %lu):\n"
-msgstr " (de `%s', linea %lu):\n"
+msgstr " (de '%s', linea %lu):\n"
 
 #: dir.c:989
 msgid ""
@@ -152,9 +153,9 @@ msgstr ""
 #: dir.c:1001
 #, c-format
 msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: podría no estar establecido.\n"
+msgstr "# %s: podría no estar establecido.\n"
 
-# ¿No sobraría el "posiblemente"?
+# ¿No sobraría el "posiblemente"?
 # Propongo dejarlo en " no se pudo abrir ". sv
 # Ok. Es consistente con otras traducciones. mm
 #: dir.c:1005
@@ -162,7 +163,7 @@ msgstr "# %s: podr
 msgid "# %s (key %s, mtime %d): could not be opened.\n"
 msgstr "# %s (llave %s, mtime %d): no se pudo abrir.\n"
 
-# En el K & R aparece inode traducido como nodo-i. ¿qué te parece? sv
+# En el K & R aparece inode traducido como nodo-i. ¿qué te parece? sv
 # Bien. Me gusta con el guioncito. mm
 #: dir.c:1009
 #, c-format
@@ -170,7 +171,7 @@ msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
 msgstr ""
 "# %s (dispositivo %d, nodo-i [%d,%d,%d]): posiblemente no se pueda abrir.\n"
 
-# ¿No sobraría el "posiblemente"?
+# ¿No sobraría el "posiblemente"?
 # Propongo dejarlo en " no se pudo abrir ". sv
 # Ok. Es consistente con otras traducciones. mm
 #: dir.c:1014
@@ -209,8 +210,8 @@ msgstr "no"
 msgid " impossibilities"
 msgstr " imposibilidades"
 
-# ¿"So far" no era "hasta ahora"? (no me hagas mucho caso) sv
-# Si tu traducción es mejor. Aceptada. mm
+# Â¿"So far" no era "hasta ahora"? (no me hagas mucho caso) sv
+# Si tu traducción es mejor. Aceptada. mm
 #: dir.c:1068
 msgid " so far."
 msgstr " hasta ahora."
@@ -220,238 +221,233 @@ msgstr " hasta ahora."
 msgid " impossibilities in %lu directories.\n"
 msgstr " imposibilidades en %lu directorios.\n"
 
-# Creo que eventually sería "finalmente" o algo así. sv
+# Creo que eventually sería "finalmente" o algo así. sv
 # Si, es finalmente no a veces. Ok. mm
 # referencia me parece que no lleva tilde. sv
-# No, no lleva acento. Me emocioné con elos. mm
+# No, no lleva acento. Me emocioné con elos. mm
 # Creeis de veras que tiene sentido 'finalmente'em+
-# yo pondría ser termina autoreferenciando, por
+# yo pondría ser termina autoreferenciando, por
 # ejemplo em+
 # Mejor lo eliminamos. Es de alguna forma reiterativo e innecesario.
-# Lo de `al final' puede ser más confuso. mm
+# Lo de `al final' puede ser más confuso. mm
 #: expand.c:125
-#, fuzzy, c-format
+#, c-format
 msgid "Recursive variable '%s' references itself (eventually)"
-msgstr "La variable recursiva `%s' se auto-referencia"
+msgstr "La variable recursiva '%s' se auto-referencia"
 
 # No me gusta nada ( lo siento )
-# ¿ Qué tal : La referencia a una variable está sin terminar em+
-# Creo que tienes razón la voz pasiva es muy desagradable. mm.
+# ¿ Qué tal : La referencia a una variable está sin terminar em+
+# Creo que tienes razón la voz pasiva es muy desagradable. mm.
 #: expand.c:269
 msgid "unterminated variable reference"
-msgstr "la referencia a la variable está sin terminar"
+msgstr "la referencia a la variable está sin terminar"
 
-#: file.c:269
-#, fuzzy, c-format
+#: file.c:271
+#, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
-msgstr "Las instrucciones fueron especificadas para el archivo `%s' en %s:%lu,"
+msgstr "Se especificaron instrucciones para el archivo '%s' en %s:%lu,"
 
-# Buscando en las legras implícitas em+
-# Utilicé por búsqueda en para evitar el gerundio. mm
-#: file.c:274
-#, fuzzy, c-format
+# Buscando en las legras implícitas em+
+# Utilicé por búsqueda en para evitar el gerundio. mm
+#: file.c:276
+#, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
-"Las instrucciones para el archivo `%s' se encontraron por búsqueda en reglas "
-"implícitas,"
+"Las instrucciones para el archivo '%s' se encontraron por búsqueda en reglas "
+"implícitas,"
 
-# "now" es "ahora". ¿te lo has comido consciente o inconscientemente? sv
+# "now" es "ahora". Â¿te lo has comido consciente o inconscientemente? sv
 # inconscientemente. mm
-#: file.c:277
-#, fuzzy, c-format
+#: file.c:280
+#, c-format
 msgid "but '%s' is now considered the same file as '%s'."
-msgstr "pero `%s' se considera ahora como el mismo archivo que `%s'."
+msgstr "pero '%s' se considera ahora como el mismo archivo que `%s'."
 
-# Lo repetiré una y mil veces... :-)
+# Lo repetiré una y mil veces... :-)
 # "To ignore" *no* es ignorar. sv
-# Propongo "no serán tenidas en cuenta" a falta de algo mejor.
+# Propongo "no serán tenidas en cuenta" a falta de algo mejor.
 # Ok. Mi necedad sobrepasa el milenio. mm
-#: file.c:280
-#, fuzzy, c-format
+#: file.c:283
+#, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
-"Las instrucciones para `%s' no serán tenidas en cuenta en favor de las que "
-"están en `%s'."
+"Las instrucciones para '%s' no serán tenidas en cuenta en favor de las que "
+"están en '%s'."
 
-# Me suena que eso de colon es algo así como punto, dos puntos o punto y coma.
-# ¿Podrías comprobarlo? sv
+# Me suena que eso de colon es algo así como punto, dos puntos o punto y coma.
+# ¿Podrías comprobarlo? sv
 # Es un punto sencillo (.). A ver si te gusta mi propuesta. mm
-#: file.c:300
-#, fuzzy, c-format
+#: file.c:303
+#, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
-msgstr "no se puede cambiar un punto (.) `%s' por dos puntos (:) `%s'"
+msgstr "no se puede cambiar un punto (.) '%s' por dos puntos (:) '%s'"
 
 # Lo mismo. sv
-#: file.c:305
-#, fuzzy, c-format
+#: file.c:309
+#, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
-msgstr "no se pueden cambiar dos puntos (:) `%s' por un punto (.) `%s'"
+msgstr "no se pueden cambiar dos puntos (:) '%s' por un punto (.) '%s'"
 
 # Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
 # Ok. mm
-#: file.c:396
-#, fuzzy, c-format
+#: file.c:401
+#, c-format
 msgid "*** Deleting intermediate file '%s'"
-msgstr "*** Se borra el archivo temporal `%s'"
+msgstr "*** Se borra el archivo intermedio '%s'"
 
 # Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
 # Ok. mm
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
-msgstr "*** Se borran los archivos temporales...\n"
-
-#: file.c:808
-#, c-format
-msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Fecha fuera de intervalo; sustituyéndola %s"
+msgstr "*** Se borran los archivos intermedios...\n"
 
-#: file.c:809
+#: file.c:811
 msgid "Current time"
 msgstr "Hora actual"
 
-#: file.c:949
+#: file.c:815
+#, c-format
+msgid "%s: Timestamp out of range; substituting %s"
+msgstr "%s: Fecha fuera de intervalo; sustituyéndola %s"
+
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# No es un objetivo:"
 
-# Pondría: es una dependencia de em+
-# Si, tienes razón. mm
-#: file.c:954
+# Pondría: es una dependencia de em+
+# Si, tienes razón. mm
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Archivo valioso (es una dependencia de .PRECIOUS)."
 
 # Lo mismo. Y traducir por falso es poco menos que poco exacto.
 # Los phony target de make son aquellos que se ejecutan siempre
 # sin tener en cuenta si existe un archivo con el nombre del objetivo
-# y de si es actual. Propondría incondicional en vez de falso, ya que
-# explica exactamente qué es un phony target em+
-# No. Incondicional no es una traducción correcta. Que tal si al rato
-# se les ocurre hacer una nueva instrucción .INCONDITIONAL.
-# Si quieres podríamos pensar en otra traducción como señuelo o algo así. mm
-#: file.c:956
+# y de si es actual. Propondría incondicional en vez de falso, ya que
+# explica exactamente qué es un phony target em+
+# No. Incondicional no es una traducción correcta. Que tal si al rato
+# se les ocurre hacer una nueva instrucción .INCONDITIONAL.
+# Si quieres podríamos pensar en otra traducción como señuelo o algo así. mm
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  objetivo falso (dependencia de .PHONY)."
 
 # FUZZY
-# Pondria línea de comandos
-# Y creo que no sé exactamente a que se refiere, No creo que haya visto
+# Pondria línea de comandos
+# Y creo que no sé exactamente a que se refiere, No creo que haya visto
 # este mensaje nunca en make lo marco con FUZZY em+
-# Están traduciendo commands como comandos? Son más bien ordenes o
-# instrucciones. Por mi parte no hay problema, incluso me gusta más
+# Están traduciendo commands como comandos? Son más bien ordenes o
+# instrucciones. Por mi parte no hay problema, incluso me gusta más
 # comandos, pero es un anglicismo. mm
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
-msgstr "#  Objetivo en línea de instrucciones."
+msgstr "#  Objetivo en línea de instrucciones."
 
-# Habría que entender esto
+# Habría que entender esto
 # Creo que esto es lo que significa. El fuente no es demasiado claro. mm
 # Se refiere a que el fichero makefile es uno que encuentra por
 # defecto ( en este orden GNUmakefile, Makefile y makefile ) o uno
-# que está definido en la variable de entorno MAKEFILE em+
-# Así pues tu traducción es completamente equivocada, lo siento.
-# Pondría: Fichero por defecto o definido en la variable MAKEFILE em+
+# que está definido en la variable de entorno MAKEFILE em+
+# Así pues tu traducción es completamente equivocada, lo siento.
+# Pondría: Fichero por defecto o definido en la variable MAKEFILE em+
 # Cierto, lo has entendido bien. Arreglo acorde. mm
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "#  Por omisión, MAKEFILES, o -include/sinclude makefile."
+msgstr "#  Por omisión, MAKEFILES, o -include/sinclude makefile."
 
-#: file.c:962
-#, fuzzy
+#: file.c:968
 msgid "#  Builtin rule"
-msgstr ""
-"\n"
-"# No hay reglas implícitas."
+msgstr "#  Regla incorporada"
 
 # Propongo efectuada en lugar de terminada. sv
-# Ok. Es más literal. mm
-# Atención ! , es la búsqueda 'de'reglas implícitas em+
-# Ok. Ojo, debo pluralizar regla e implícita. Platicarlo con Ulrich. mm
-#: file.c:964
+# Ok. Es más literal. mm
+# Atención ! , es la búsqueda 'de'reglas implícitas em+
+# Ok. Ojo, debo pluralizar regla e implícita. Platicarlo con Ulrich. mm
+#: file.c:970
 msgid "#  Implicit rule search has been done."
-msgstr "#  La búsqueda de reglas implícitas ha sido efectuada."
+msgstr "#  La búsqueda de reglas implícitas ha sido efectuada."
 
 # Propongo efectuada en lugar de terminada. sv
-# Ok. Es más literal. mm
-# Atención ! , es la búsqueda 'de'reglas implícitas em+
-# Ok. Ojo, debo pluralizar regla e implícita. Platicarlo con Ulrich. mm
-#: file.c:965
+# Ok. Es más literal. mm
+# Atención ! , es la búsqueda 'de'reglas implícitas em+
+# Ok. Ojo, debo pluralizar regla e implícita. Platicarlo con Ulrich. mm
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
-msgstr "#  La búsqueda de reglas implícitas ha sido efectuada."
+msgstr "#  La búsqueda de reglas implícitas ha sido efectuada."
 
-#: file.c:967
-#, fuzzy, c-format
+#: file.c:973
+#, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
-msgstr "#  rama del patrón implícita/estática: `%s'\n"
+msgstr "#  Tema del patrón implícita/estática: '%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  El archivo es una dependencia intermedia."
 
 # Sugerencia: "crea". sv
 # Ok. Aunque, viendolo bien, que tal "hace"? mm.
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
-msgstr "#  También hace:"
+msgstr "#  También hace:"
 
-# ¿y "comprobó"? sv
+# ¿y "comprobó"? sv
 # Ok. Mejora. mm
-# No pondría nunca, sino simplemente 'no se comprobó 'em+
-# Si, es lo mismo pero es más español. mm
-#: file.c:979
+# No pondría nunca, sino simplemente 'no se comprobó 'em+
+# Si, es lo mismo pero es más español. mm
+#: file.c:985
 msgid "#  Modification time never checked."
-msgstr "#  La fecha de modificación no se comprobó."
+msgstr "#  La fecha de modificación no se comprobó."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  El archivo no existe."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  El archivo es muy viejo."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
-msgstr "#  Última modificación %s\n"
+msgstr "#  Última modificación %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  El archivo ha sido actualizado."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  El archivo ha sido actualizado."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
-msgstr "#  Las instrucciones continúan en ejecución (ESTO ES UN BUG)."
+msgstr "#  Las instrucciones continúan en ejecución (ESTO ES UN BUG)."
 
-# ¿No sería más bien "las instrucciones de las dependencias"? sv
+# ¿No sería más bien "las instrucciones de las dependencias"? sv
 # Si, que babas soy. Ahora corrijo. mm
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr ""
-"#  Las instrucciones de las dependencias continúan en ejecución (ESTO ES UN "
+"#  Las instrucciones de las dependencias continúan en ejecución (ESTO ES UN "
 "BUG)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
-msgstr "#  Actualizado con éxito."
+msgstr "#  Actualizado con éxito."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
-msgstr "#  Necesita ser actualizado (la opción -q está activa)."
+msgstr "#  Necesita ser actualizado (la opción -q está activa)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Fallo al ser actualizado."
 
-# ## Lo mismo.
-#: file.c:1019
-#, fuzzy
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
-msgstr "#  ¡Valor inválido en el miembro `command_state'!"
+msgstr "#  ¡Valor inválido en el miembro 'command_state'!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -459,203 +455,200 @@ msgstr ""
 "\n"
 "# Archivos"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
 "\n"
-"# estadísticas de la tabla de hash de los archivos:\n"
+"# estadísticas de la tabla «hash» de los archivos:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
-msgstr ""
+msgstr "%s: El campo '%s' no está en «cache»: %s"
 
-#: function.c:742
-#, fuzzy
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
-msgstr "el primer argumento de la función `word' no es numérico"
+msgstr "el primer argumento de la función 'word' no es numérico"
 
-#: function.c:747
-#, fuzzy
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
-msgstr "el primer argumento de la función `word' debe ser mayor a 0"
+msgstr "el primer argumento de la función 'word' debe ser mayor que 0"
 
-#: function.c:767
-#, fuzzy
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
-msgstr "el primer argumento de la función `wordlist' no es numérico"
+msgstr "el primer argumento de la función 'wordlist' no es numérico"
 
-#: function.c:769
-#, fuzzy
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
-msgstr "el primer argumento de la función `wordlist' no es numérico"
+msgstr "el segundo argumento de la función 'wordlist' no es numérico"
 
-#: function.c:1460
-#, fuzzy, c-format
+#: function.c:1499
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "windows32_openpipe(): fallo en DuplicateHandle(In), (e=%ld)\n"
+msgstr "windows32_openpipe: fallo en DuplicateHandle(In), (e=%ld)\n"
 
-#: function.c:1483
-#, fuzzy, c-format
+#: function.c:1523
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "windows32_open_pipe(): fallo en DuplicateHandle(Err), (e=%ld)\n"
+msgstr "windows32_openpipe: fallo en DuplicateHandle(Err), (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "Fallo en CreatePipe(), (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): fallo en process_init_fd()\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Limpiando el archivo temporal %s\n"
 
-#: function.c:2151
-#, fuzzy, c-format
+#: function.c:2193
+#, c-format
 msgid "open: %s: %s"
-msgstr "%s: %s"
+msgstr "abrir: %s: %s"
 
-# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
-# concuerde bien con esta frase y con la anterior simultáneamente. sv
-# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
 #  char *message = entering ? "Entering" : "Leaving";
 #  if (makelevel == 0)
 #    printf ("%s: %s ", program, message);
 #  else
 #    printf ("%s[%u]: %s ", program, makelevel, message);
-# Como notarás lo del directorio va en otro lado.
-#: function.c:2158
-#, fuzzy, c-format
+# Como notarás lo del directorio va en otro lado.
+#: function.c:2203
+#, c-format
 msgid "write: %s: %s"
-msgstr "error al escribir: %s"
+msgstr "escribir: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
-msgstr ""
+msgstr "Operación de archivo no válida: %s"
 
-#: function.c:2279
-#, fuzzy, c-format
+#: function.c:2324
+#, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
-msgstr "Número de argumentos (%d) insuficientes para la función `%s'"
+msgstr "Número de argumentos (%d) insuficientes para la función '%s'"
 
-#: function.c:2291
-#, fuzzy, c-format
+#: function.c:2336
+#, c-format
 msgid "unimplemented on this platform: function '%s'"
-msgstr "No implementado en esta plataforma: función `%s'"
+msgstr "No implementado en esta plataforma: función '%s'"
 
-#: function.c:2354
-#, fuzzy, c-format
+#: function.c:2399
+#, c-format
 msgid "unterminated call to function '%s': missing '%c'"
-msgstr "la llamada a la función `%s' no concluyó: falta `%c'"
+msgstr "la llamada a la función '%s' no concluyó: falta '%c'"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Nombre de función vacío\n"
 
-#: function.c:2548
-#, c-format
-msgid "Invalid function name: %s\n"
-msgstr ""
+#: function.c:2593
+#, fuzzy, c-format
+msgid "Invalid function name: %s"
+msgstr "Nombre de función no válido: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
-msgstr ""
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
+msgstr "Nombre de función demasiado largo: %s\n"
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
-msgstr "Número de argumentos (%d) insuficientes para la función `%s'"
+msgid "Invalid minimum argument count (%d) for function %s"
+msgstr "Número insuficiente de argumentos (%d) para la función %s\n"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
-msgstr "Número de argumentos (%d) insuficientes para la función `%s'"
+msgid "Invalid maximum argument count (%d) for function %s"
+msgstr "El número máximo de argumentos (%d) no es válido para la función %s\n"
 
 #: getopt.c:659
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: la opción `%s' es ambigua\n"
+msgstr "%s: la opción '%s' es ambigua\n"
 
-# No admite ningún argumento. sv
+# No admite ningún argumento. sv
 # Ok. Y vuelve la burra al trigo. mm
 #: getopt.c:683
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: la opción `--%s' no admite ningún argumento\n"
+msgstr "%s: la opción '--%s' no admite ningún argumento\n"
 
 # Lo mismo. sv
 # Ok. mm
 #: getopt.c:688
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: la opción `%c%s' no admite ningún argumento\n"
+msgstr "%s: la opción '%c%s' no admite ningún argumento\n"
 
 #: getopt.c:705 getopt.c:878
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' requires an argument\n"
-msgstr "%s: la opción `%s' requiere un argumento\n"
+msgstr "%s: la opción '%s' requiere un argumento\n"
 
 #: getopt.c:734
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: opción no reconocida `--%s'\n"
+msgstr "%s: opción no reconocida '--%s'\n"
 
 #: getopt.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: opción no reconocida `%c%s'\n"
+msgstr "%s: opción no reconocida '%c%s'\n"
 
 #: getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
-msgstr "%s: opción inválida -- %c\n"
+msgstr "%s: opción inválida -- %c\n"
 
 #: getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
-msgstr "%s: opción inválida -- %c\n"
+msgstr "%s: opción inválida -- %c\n"
 
 #: getopt.c:797 getopt.c:927
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: la opción requiere un argumento -- %c\n"
+msgstr "%s: la opción requiere un argumento -- %c\n"
 
 #: getopt.c:844
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: la opción `-W %s' es ambigua\n"
+msgstr "%s: la opción '-W %s' es ambigua\n"
 
-# No admite ningún argumento. sv
+# No admite ningún argumento. sv
 # Ok. Y vuelve la burra al trigo. mm
 #: getopt.c:862
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: la opción `-W %s' no admite ningún argumento\n"
+msgstr "%s: la opción '-W %s' no admite ningún argumento\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
-msgstr ""
+msgstr "guile: Expandiendo '%s'\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
-msgstr ""
+msgstr "guile: Evaluando '%s'\n"
 
 #: hash.c:49
 #, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "no se pueden reservar %lu bytes para la tabla de hash: memoria agotada"
+msgstr "no se pueden reservar %lu bytes para la tabla «hash»: memoria agotada"
 
 #: hash.c:280
 #, c-format
@@ -672,110 +665,110 @@ msgstr "Rehash=%d, "
 msgid "Collisions=%ld/%ld=%.0f%%"
 msgstr "Colisiones=%ld/%ld=%.0f%%"
 
-# Y no sería mejor "Buscando una regla implícita ..."
-# Ten en cuenta que este mensaje no parece un mensaje de error, sino más
+# Y no sería mejor "Buscando una regla implícita ..."
+# Ten en cuenta que este mensaje no parece un mensaje de error, sino más
 # de "debug" o de "verbose". sv
 # Cierto. mm
 #: implicit.c:38
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for an implicit rule for '%s'.\n"
-msgstr "Buscando una regla implícita para `%s'.\n"
+msgstr "Buscando una regla implícita para '%s'.\n"
 
 # Lo mismo.
-# Buscando una regla implítita para el miembro del archivo  `%s' em+
-# Se me resbaló. mm
+# Buscando una regla implítita para el miembro del archivo  `%s' em+
+# Se me resbaló. mm
 #: implicit.c:54
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for archive-member implicit rule for '%s'.\n"
-msgstr "Buscando una regla implícita para el miembro del archivo `%s'.\n"
+msgstr "Buscando una regla implícita para el miembro del archivo '%s'.\n"
 
-# Pues si ilegal le suena a cárcel a Enrique, "evade" me suena a mí a
-# escaparse de la cárcel... (fuga de alcatraz :-)
-# te voy a dar yo a tí fuga ... em+
-# ¿Qué te parecería "se evita"? sv
+# Pues si ilegal le suena a cárcel a Enrique, "evade" me suena a mí a
+# escaparse de la cárcel... (fuga de alcatraz :-)
+# te voy a dar yo a tí fuga ... em+
+# ¿Qué te parecería "se evita"? sv
 # Me gusta evade, pero evita es correcto. Acepto tu sugerencia. mm
-# No me gusta se evita, pondría evitando em+
-# Ok. Pero a mi paranoia de evitar gerundios dónde la dejas? mm
+# No me gusta se evita, pondría evitando em+
+# Ok. Pero a mi paranoia de evitar gerundios dónde la dejas? mm
 #: implicit.c:310
 msgid "Avoiding implicit rule recursion.\n"
-msgstr "Evitando la recursión en la regla implícita.\n"
+msgstr "Evitando la recursión en la regla implícita.\n"
 
 #: implicit.c:486
 #, c-format
 msgid "Stem too long: '%.*s'.\n"
-msgstr ""
+msgstr "Tema demasiado largo: '%.*s'.\n"
 
 # FUZZY
 # Esto me suena fatal. Se a que se refiere, porque lo
-# he visto, pero en cristiano no se si podría entenderlo.
-# se refiere a las reglas del tipo % , lo pongo FUZZY , tendré
+# he visto, pero en cristiano no se si podría entenderlo.
+# se refiere a las reglas del tipo % , lo pongo FUZZY , tendré
 # que pensar un poco en ello em+
 # De momento cambio la regla patron por una regla de patron , y
-# pondría a toda costa gerundio ( intentando ) em+
-# Ok con el gerundio. Pero también tengo que meditarlo. mm
+# pondría a toda costa gerundio ( intentando ) em+
+# Ok con el gerundio. Pero también tengo que meditarlo. mm
 #: implicit.c:491
-#, fuzzy, c-format
+#, c-format
 msgid "Trying pattern rule with stem '%.*s'.\n"
-msgstr "Intentando una regla de patrón con la ramificación `%.*s'.\n"
+msgstr "Intentando una regla de patrón con el tema '%.*s'.\n"
 
 # ## Corrijo la palabra "dependencia". sv
-# Cuando aparezca este mensaje tendrá poco menos que sentido
+# Cuando aparezca este mensaje tendrá poco menos que sentido
 # testimonial. Date cuenta que los argumentos estan cambiados.
-# Pon el orden correcto, siempre será más lógico que lo que vaya a
-# aparecer tal y como está ahora (Se rechaza la dependencia imposible
+# Pon el orden correcto, siempre será más lógico que lo que vaya a
+# aparecer tal y como está ahora (Se rechaza la dependencia imposible
 #  `%s' `%s )'em+
 # Ok. mm
 #: implicit.c:697
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible rule prerequisite '%s'.\n"
-msgstr "Se rechaza la regla de dependencia imposible `%s'.\n"
+msgstr "Se rechaza la regla de dependencia imposible '%s'.\n"
 
 # ## Corrijo la palabra "dependencia". sv
-# Cuando aparezca este mensaje tendrá poco menos que sentido
+# Cuando aparezca este mensaje tendrá poco menos que sentido
 # testimonial. Date cuenta que los argumentos estan cambiados.
-# Pon el orden correcto, siempre será más lógico que lo que vaya a
-# aparecer tal y como está ahora (Se rechaza la dependencia imposible
+# Pon el orden correcto, siempre será más lógico que lo que vaya a
+# aparecer tal y como está ahora (Se rechaza la dependencia imposible
 #  `%s' `%s )'em+
 # Ok. mm
 #: implicit.c:698
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible implicit prerequisite '%s'.\n"
-msgstr "Se rechaza la dependencia imposible `%s'.\n"
+msgstr "Se rechaza la dependencia implícita imposible '%s'.\n"
 
 # FUZZY
 # Esto me suena fatal. Se a que se refiere, porque lo
-# he visto, pero en cristiano no se si podría entenderlo.
-# se refiere a las reglas del tipo % , lo pongo FUZZY , tendré
+# he visto, pero en cristiano no se si podría entenderlo.
+# se refiere a las reglas del tipo % , lo pongo FUZZY , tendré
 # que pensar un poco en ello em+
 # De momento cambio la regla patron por una regla de patron , y
-# pondría a toda costa gerundio ( intentando ) em+
-# Ok con el gerundio. Pero también tengo que meditarlo. mm
+# pondría a toda costa gerundio ( intentando ) em+
+# Ok con el gerundio. Pero también tengo que meditarlo. mm
 #: implicit.c:711
-#, fuzzy, c-format
+#, c-format
 msgid "Trying rule prerequisite '%s'.\n"
-msgstr "Intentando la regla de dependencia `%s'.\n"
+msgstr "Intentando la regla de dependencia '%s'.\n"
 
-# Pues si ilegal le suena a cárcel a Enrique, "evade" me suena a mí a
-# escaparse de la cárcel... (fuga de alcatraz :-)
-# te voy a dar yo a tí fuga ... em+
-# ¿Qué te parecería "se evita"? sv
+# Pues si ilegal le suena a cárcel a Enrique, "evade" me suena a mí a
+# escaparse de la cárcel... (fuga de alcatraz :-)
+# te voy a dar yo a tí fuga ... em+
+# ¿Qué te parecería "se evita"? sv
 # Me gusta evade, pero evita es correcto. Acepto tu sugerencia. mm
-# No me gusta se evita, pondría evitando em+
-# Ok. Pero a mi paranoia de evitar gerundios dónde la dejas? mm
+# No me gusta se evita, pondría evitando em+
+# Ok. Pero a mi paranoia de evitar gerundios dónde la dejas? mm
 #: implicit.c:712
-#, fuzzy, c-format
+#, c-format
 msgid "Trying implicit prerequisite '%s'.\n"
-msgstr "Probando la dependencia implícita `%s'.\n"
+msgstr "Probando la dependencia implícita '%s'.\n"
 
 #: implicit.c:751
-#, fuzzy, c-format
+#, c-format
 msgid "Found prerequisite '%s' as VPATH '%s'\n"
-msgstr "Se encontró la dependencia `%s' como la VPATH `%s'.\n"
+msgstr "Se encontró la dependencia '%s' como la VPATH '%s'.\n"
 
 #: implicit.c:765
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for a rule with intermediate file '%s'.\n"
-msgstr "Se busca una regla con el archivo intermedio `%s'.\n"
+msgstr "Se busca una regla con el archivo intermedio '%s'.\n"
 
 #: job.c:361
 msgid "Cannot create a temporary file\n"
@@ -783,122 +776,121 @@ msgstr "No se puede crear un archivo temporal\n"
 
 # Sugerencia: " (volcado de `core')". sv
 # volcado de `core' no significa nada, que te parece si mejor dejamos
-# el core dumped, o bien volcado del núcleo o algo así. Por el momento
+# el core dumped, o bien volcado del núcleo o algo así. Por el momento
 # no cambio nada. mm
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
-msgstr " (core dumped) [Núcleo vaciado a un archivo]"
+msgstr " (core dumped) [Núcleo vaciado a un archivo]"
 
-# Preferiría mil veces "sin efecto" o algo parecido. sv
-# Ok. Habíamos quedado en `no tiene efecto'. mm
-#: job.c:487
+# Preferiría mil veces "sin efecto" o algo parecido. sv
+# Ok. Habíamos quedado en `no tiene efecto'. mm
+#: job.c:488
 msgid " (ignored)"
 msgstr " (no tiene efecto)"
 
-#: job.c:491 job.c:1994
-#, fuzzy
+#: job.c:492 job.c:2046
 msgid "<builtin>"
-msgstr " (interconstruido):"
+msgstr "<integrado>"
 
-# No me gusta esta traducción de override. Mira a ver
+# No me gusta esta traducción de override. Mira a ver
 # si encaja mejor alguna de las dos que se proponen arriba
 # em+
-# Aunque no me acaba de convencer, que te parece ésto? mm
-#: job.c:501
-#, fuzzy, c-format
+# Aunque no me acaba de convencer, que te parece ésto? mm
+#: job.c:503
+#, c-format
 msgid "%s: recipe for target '%s' failed"
-msgstr "atención: se imponen las instrucciones para el objetivo `%s'"
-
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Error 0x%x"
+msgstr "%s: fallo en las instrucciones para el objetivo '%s'"
 
-#: job.c:513
-#, fuzzy, c-format
+#: job.c:516 job.c:524
+#, c-format
 msgid "%s[%s] Error %d%s"
-msgstr "*** [%s] Error %d"
+msgstr "%s[%s] Error %d%s"
 
-#: job.c:517
-#, fuzzy, c-format
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Error 0x%x%s"
+
+#: job.c:529
+#, c-format
 msgid "%s[%s] %s%s%s"
-msgstr "%s%s: %s"
+msgstr "%s[%s] %s%s%s"
 
-# ¿Y job -> trabajos? sv
+# Â¿Y job -> trabajos? sv
 # Si, pero no hablas de una computadora multi-trabajos sino multi-tareas.
-# Por eso elegí tareas. Lo platicamos con más calma? mm
-#: job.c:609
+# Por eso elegí tareas. Lo platicamos con más calma? mm
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Se espera a que terminen otras tareas...."
 
-# ¿De verdad se dice "vivo"? Si es un proceso, se me ocurre "activo". sv
+# Â¿De verdad se dice "vivo"? Si es un proceso, se me ocurre "activo". sv
 # Me gusta lo de activo. mm
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Hijo activo %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (remoto)"
 
 # Lo mismo, pon Proceso hijo, y quita lo que hay
-# entre paréntesis em+
-#: job.c:829
+# entre paréntesis em+
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Se recupera al proceso hijo perdido %p PID %s %s\n"
 
 # Lo mismo, pon Proceso hijo, y quita lo que hay
-# entre paréntesis em+
-#: job.c:830
+# entre paréntesis em+
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Se recupera al proceso hijo ganador %p PID %s %s\n"
 
 # Give up no es enfocar, es abandonar, o desistir em+
-# Si, metí la pata. mm
-#: job.c:837
+# Si, metí la pata. mm
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Se limpia el archivo temporal %s\n"
 
 # Give up no es enfocar, es abandonar, o desistir em+
-# Si, metí la pata. mm
-#: job.c:843
-#, fuzzy, c-format
+# Si, metí la pata. mm
+#: job.c:855
+#, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
-msgstr "Se limpia el archivo temporal %s\n"
+msgstr "Fallo al limpiar el archivo temporal por lotes %s (%d)\n"
 
 # Proceso hijo em+
 # Ok.
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Se elimina al proceso hijo %p PID %s%s de la cadena.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "liberar semáforo del servidor de tareas: (Error %ld: %s)"
 
 # Lo mismo, pon Proceso hijo, y quita lo que hay
-# entre paréntesis em+
-#: job.c:1011 job.c:1025
+# entre paréntesis em+
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Se libera el token para el proceso hijo %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "escribir en el servidor de tareas"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "fallo en process_easy() para lanzar al proceso (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -909,117 +901,113 @@ msgstr ""
 
 # Proceso hijo em+
 # Ok.
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Se pone al proceso hijo %p (%s) PID %s%s en la cadena.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
-msgstr ""
+msgstr "semáforo o proceso hijo en espera: (Error %ld: %s)"
 
 # Lo mismo, pon Proceso hijo, y quita lo que hay
-# entre paréntesis em+
-#: job.c:1967
+# entre paréntesis em+
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Se obtiene el token para el proceso hijo %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
-msgstr "tubería de trabajos leídos"
+msgstr "tubería de trabajos leídos"
 
-#: job.c:2003
-#, fuzzy, c-format
+#: job.c:2056
+#, c-format
 msgid "%s: target '%s' does not exist"
-msgstr "touch: El archivo `%s' no existe"
+msgstr "%s: el objetivo '%s' no existe"
 
-#: job.c:2005
-#, fuzzy, c-format
+#: job.c:2059
+#, c-format
 msgid "%s: update target '%s' due to: %s"
-msgstr ""
-"%sNo hay ninguna regla para construir el objetivo `%s', necesario para `%s'%s"
+msgstr "%s: actualizar el objetivo '%s' a causa de: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
-msgstr "no se pueden forzar los límites de carga en este sistema operativo"
+msgstr "no se pueden forzar los límites de carga en este sistema operativo"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
-msgstr "no se puede forzar la carga límite: "
+msgstr "no se puede forzar la carga límite: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
-msgstr "no hay más manejadores de archivos: no se puede duplicar stdin\n"
+msgstr "no hay más manejadores de archivos: no se puede duplicar stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
-msgstr "no hay más manejadores de archivos: no se puede duplicar stdout\n"
+msgstr "no hay más manejadores de archivos: no se puede duplicar stdout\n"
 
-#: job.c:2223
-#, fuzzy
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
-msgstr "no hay más manejadores de archivos: no se puede duplicar stdin\n"
+msgstr "no hay más manejadores de archivos: no se puede duplicar stderr\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "No se puede restaurar stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "No se puede restaurar stdout\n"
 
-#: job.c:2254
-#, fuzzy
+#: job.c:2309
 msgid "Could not restore stderr\n"
-msgstr "No se puede restaurar stdin\n"
+msgstr "No se puede restaurar stderr\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "hacer un hijo descarriado %s, aún se espera por el pid %s\n"
+msgstr "hacer un hijo descarriado %s, aún se espera por el pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
-msgstr "%s: No se encontró el programa"
+msgstr "%s: No se encontró el programa"
 
-# ¿Y "el programa Shell"? (a secas) sv
+# Â¿Y "el programa Shell"? (a secas) sv
 # Si. Suena mucho mejor. mm
 # Suena, pero no es mejor. Tal y como esta escrito, incluso
 # yo pensaria que me falta un programa en mi sistema que se
 # llame shell. No se ha encontrado el 'shell'em+
-# Es bueno contar con una segunda opinión ... mm
-#: job.c:2463
+# Es bueno contar con una segunda opinión ... mm
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: No se ha encontrado el `shell'"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
-msgstr "spawnvpe: el espacio ambiental podría estar agotado"
+msgstr "spawnvpe: el espacio ambiental podría estar agotado"
 
-#: job.c:2709
-#, fuzzy, c-format
+#: job.c:2765
+#, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
-msgstr "$SHELL ha cambiado (era `%s' y ahora es `%s')\n"
+msgstr "$SHELL ha cambiado (era '%s' y ahora es '%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Se crea el archivo temporal %s\n"
 
-#: job.c:3148
-#, fuzzy
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 "Contenido del archivo de lotes:%s\n"
-"\t%s\n"
+"\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -1028,64 +1016,63 @@ msgstr ""
 "Contenido del archivo de lotes:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
-"%s (linea %d) Contexto de shell erróneo (!unixy && !batch_mode_shell)\n"
+"%s (linea %d) Contexto de shell erróneo (!unixy && !batch_mode_shell)\n"
 
 #: job.h:43
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
-msgstr ""
+msgstr "-O[TIPO] (--output-sync[=TIPO]) no está configurado para este «build»."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
-msgstr ""
+msgstr "Fallo al abrir tabla global de símbolos: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
+"El objeto %s que se ha cargado no está declarado como compatible con GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
-msgstr ""
+msgstr "Fallo al cargar símbolo %s desde %s: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
-msgstr ""
+msgstr "Nombre de símbolo vacío en la carga: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
-msgstr ""
+msgstr "Cargando símbolo %s desde %s\n"
 
-#: load.c:229
-#, fuzzy
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
-msgstr ""
-"Los trabajos en paralelo (-j) no están implementados en esta plataforma."
+msgstr "La operación 'load' no está implementada en esta plataforma."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opciones:\n"
 
 # Lo mismo de arriba con "ignorar". sv
 # Ok. mm.
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr ""
-"  -b, -m                      No se tendrá en cuenta por compatibilidad.\n"
+"  -b, -m                      No se tendrá en cuenta por compatibilidad.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 "  -B, --always-make           Hace incondicionalmente todos los objetivos.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -1093,25 +1080,25 @@ msgstr ""
 "  -C DIRECTORIO, --directory=DIRECTORIO\n"
 "                              Se cambia al DIRECTORIO antes de hacer nada.\n"
 
-# ¿"depurado" o "depuración"? sv
-# Puse de depurado para evitar la cacofonía información depuración.
+# ¿"depurado" o "depuración"? sv
+# Puse de depurado para evitar la cacofonía información depuración.
 # Sugerencias bienvenidas. mm
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
-"  -d          Se imprimirán grandes cantidades de información de depurado.\n"
+"  -d          Se imprimirán grandes cantidades de información de depurado.\n"
 
-# ¿"depurado" o "depuración"? sv
-# Puse de depurado para evitar la cacofonía información depuración.
+# ¿"depurado" o "depuración"? sv
+# Puse de depurado para evitar la cacofonía información depuración.
 # Sugerencias bienvenidas. mm
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
-"  --debug[=BANDERAS]    Se imprimirán varios tipos de información de "
+"  --debug[=BANDERAS]    Se imprimirán varios tipos de información de "
 "depurado.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -1120,14 +1107,14 @@ msgstr ""
 "                Las variables ambientales se imponen a las de los "
 "makefiles.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
-"   --eval=CADENA               Evalúla la CADENA como una instrucción de un "
+"   --eval=CADENA               Evalúla la CADENA como una instrucción de un "
 "makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -1135,7 +1122,7 @@ msgstr ""
 "  -f ARCHIVO, --file=ARCHIVO, --makefile=ARCHIVO\n"
 "                                   Lee al ARCHIVO como un makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Muestra este mensaje y finaliza.\n"
 
@@ -1143,15 +1130,15 @@ msgstr "  -h, --help                  Muestra este mensaje y finaliza.\n"
 # Ok. mm
 # Por favor, si has traducido commands como instrucciones , hazlo aqui
 # tambien.
-# No me gusta este mensaje, preferiría: Se ignoran los errores obtenidos
-# en la ejecución de las instrucciones  em+
-#: main.c:334
+# No me gusta este mensaje, preferiría: Se ignoran los errores obtenidos
+# en la ejecución de las instrucciones  em+
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         No se toman en cuenta los errores provenientes "
 "de las instrucciones.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -1159,10 +1146,10 @@ msgstr ""
 "  -I DIRECTORIO, --include-dir=DIRECTORIO\n"
 "                       Busca dentro del DIRECTORIO los makefiles incluidos.\n"
 
-# Yo traduciría "infinite" por "infinitos", no por "una infinidad", que
+# Yo traduciría "infinite" por "infinitos", no por "una infinidad", que
 # parece que son muchos menos... sv
 # Ok. mm
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -1171,44 +1158,44 @@ msgstr ""
 "especifica un\n"
 "argumento son infinitos.\n"
 
-# No entiendo por qué aquí empleas subjuntivo: "pudieron". sv
+# No entiendo por qué aquí empleas subjuntivo: "pudieron". sv
 # Es incorrecto. Es una de las opciones `k' que dice... mm
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
-"  -k, --keep-going            Sigue avanzando aún cuando no se puedan crear "
+"  -k, --keep-going            Sigue avanzando aún cuando no se puedan crear "
 "algunos objetivos.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
-"      No inicia con trabajos múltiples a menos que la carga esté por debajo "
+"      No inicia con trabajos múltiples a menos que la carga esté por debajo "
 "de N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
-"  -L, --check-symlink-times   Utiliza el último mtime entre los enlaces "
-"simbólicos y los objetivos.\n"
+"  -L, --check-symlink-times   Utiliza el último mtime entre los enlaces "
+"simbólicos y los objetivos.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
-"                              No ejecuta ninguna instrucción; sólo las "
+"                              No ejecuta ninguna instrucción; sólo las "
 "muestra.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -1218,110 +1205,111 @@ msgstr ""
 "                           Supone que ARCHIVO es muy viejo y no lo "
 "reconstruye.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
+"  -O[TIPO], --output-sync[=TIPO]\n"
+"                              Sincroniza la salida de tareas paralelas por "
+"tipo.\n"
 
 # de 'make' em+
 # ok. mm
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 "  -p, --print-data-base       Se imprime la base de datos interna de "
-"`make'.\n"
+"'make'.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
-"  -q, --question                     No se ejecutan las instrucciones; el "
-"estado de salida\n"
-"                                     indicará si están actualizados.\n"
+"  -q, --question             No se ejecutan las instrucciones; el estado de "
+"salida\n"
+"                                     indicará si están actualizados.\n"
 
-# ¿desabilitan o deshabilitan? sv
+# Â¿desabilitan o deshabilitan? sv
 # Error de dedo. mm
-# ¡ Por favor ! , ¿ pero qué es eso de interconstruidas ?
+# ¡ Por favor ! , ¿ pero qué es eso de interconstruidas ?
 # Pon almacenadas internamente, que es exactamente lo que son :) em+
 # Bueno, bajo protesta. mm
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
-"  -r, --no-builtin-rules      Se deshabilitan las reglas implícitas "
+"  -r, --no-builtin-rules      Se deshabilitan las reglas implícitas "
 "almacenadas internamente.\n"
 
-# ¿desabilitan o deshabilitan? sv
+# Â¿desabilitan o deshabilitan? sv
 # Error de dedo. mm
-# ¡ Por favor ! , ¿ pero qué es eso de interconstruidas ?
+# ¡ Por favor ! , ¿ pero qué es eso de interconstruidas ?
 # Pon almacenadas internamente, que es exactamente lo que son :) em+
 # Bueno, bajo protesta. mm
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Se deshabilitan los ajustes a las variables "
 "almacenadas internamente.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       No muestra las intrucciones.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
 "  -S, --no-keep-going, --stop\n"
-"                    Desactiva la opción -k.\n"
+"                              Desactiva la opción -k.\n"
 
-# Se *tocan*, ¿no? sv
+# Se *tocan*, Â¿no? sv
 # Si. mm
 #
-# Pues entonces cámbialo arriba tambien em+
+# Pues entonces cámbialo arriba tambien em+
 # En donde? mm
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Se tocan los objetivos en vez de "
 "reconstruirlos.\n"
 
-# ¿"depurado" o "depuración"? sv
-# Puse de depurado para evitar la cacofonía información depuración.
+# ¿"depurado" o "depuración"? sv
+# Puse de depurado para evitar la cacofonía información depuración.
 # Sugerencias bienvenidas. mm
-#: main.c:372
-#, fuzzy
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
-msgstr ""
-"  -d          Se imprimirán grandes cantidades de información de depurado.\n"
+msgstr "  --trace                     Muestra trazas.\n"
 
-# Me comería el "Se" inicial. "Muestra la versión..." sv
+# Me comería el "Se" inicial. "Muestra la versión..." sv
 # Ok. mm
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
-"  -v, --version               Muestra la versión del make y finaliza.\n"
+"  -v, --version               Muestra la versión del make y finaliza.\n"
 
 # Lo mismo. sv
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Muestra el directorio actual.\n"
 
 # Lo mismo. sv
 # Turn off , desactiva o deshabilita , pero no apaga em+
 # apaga luz Mari Luz apaga luz ,que yo no puedo vivir con
-# tanta luz ... ( canción tradicional ) ( no lo pude evitar ) em+
+# tanta luz ... ( canción tradicional ) ( no lo pude evitar ) em+
 # Juar, Juar, Juar. Coincido, pero el sentido es el mismo. mm
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr ""
-"  --no-print-directory        Desactiva -w, aún cuando haya sido activado "
-"implícitamente.\n"
+"  --no-print-directory        Desactiva -w, aún cuando haya sido activado "
+"implícitamente.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1332,7 +1320,7 @@ msgstr ""
 
 # Lo mismo. sv
 # Todas estas parecen descripciones de opciones.
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1340,32 +1328,27 @@ msgstr ""
 "  --warn-undefined-variables  Advierte cuando se hace una referencia a una "
 "variable no definida.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
-msgstr "no se permite que una cadena vacía sea el nombre de un archivo"
+msgstr "no se permite que una cadena vacía sea el nombre de un archivo"
 
-#: main.c:734
-#, fuzzy, c-format
+#: main.c:737
+#, c-format
 msgid "unknown debug level specification '%s'"
-msgstr "se especificó un nivel de depuración desconocido `%s'"
+msgstr "se especificó un nivel de depuración desconocido '%s'"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
-msgstr ""
-
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "error interno: hay varias opciones --jobserver-fds"
+msgstr "tipo de sincronización de salida desconocido '%s'"
 
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
-"%s: Se atrapó una interrupción/excepción (código = 0x%lx, dirección = 0x%p)\n"
+"%s: Se atrapó una interrupción/excepción (código = 0x%lx, dirección = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1375,213 +1358,211 @@ msgid ""
 "ExceptionAddress = 0x%p\n"
 msgstr ""
 "\n"
-"Se ha llamado un filtro de excepción no manejado desde el programa %s\n"
-"Código de la excepción = %lx\n"
-"Banderas de la excepción = %lx\n"
-"Dirección de la excepción = 0x%p\n"
+"Se ha llamado un filtro de excepción no manejado desde el programa %s\n"
+"Código de la excepción = %lx\n"
+"Banderas de la excepción = %lx\n"
+"Dirección de la excepción = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Violación de acceso: operación de escritura en la dirección 0x%p\n"
+msgstr "Violación de acceso: operación de escritura en la dirección 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Violación de acceso: operación de lectura en la dirección 0x%p\n"
+msgstr "Violación de acceso: operación de lectura en la dirección 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "la función find_and_set_shell() pone el valor del default_shell = %s\n"
+msgstr "la función find_and_set_shell() pone el valor del default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
-"la función find_and_set_shell() pone el valor de la ruta de búsceda "
+"la función find_and_set_shell() pone el valor de la ruta de búsceda "
 "default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
-msgstr "%s está suspendida por 30 segundos..."
+msgstr "%s está suspendida por 30 segundos..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "se hizo un sleep(30). Continuando.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "error interno: hay varias opciones --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
+"error interno: no se pudo abrir el semáforo del servidor de tareas '%s': "
+"(Error %ld: %s)"
 
-#: main.c:1547
-#, fuzzy, c-format
+#: main.c:1530
+#, c-format
 msgid "Jobserver client (semaphore %s)\n"
-msgstr "Cliente del servidor de tareas (fds %d,%d)\n"
+msgstr "Cliente del servidor de tareas (semáforo %s)\n"
 
-#: main.c:1551
-#, fuzzy, c-format
+#: main.c:1534
+#, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
-msgstr "error interno: cadena --jobserver-fds inválida `%s'"
+msgstr "error interno: cadena --jobserver-fds inválida '%s'"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Cliente del servidor de tareas (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
-"atención: se fuerza a -jN en el submake: se deshabilita el modo de servidor "
+"atención: se fuerza a -jN en el submake: se deshabilita el modo de servidor "
 "de tareas."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "servidor de tareas duplicado"
 
-#: main.c:1586
-#, fuzzy
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
-"atención: el servidor de tareas no está disponible: se utilizará -j1. Añada `"
-"+' a la regla padre del make."
+"atención: el servidor de tareas no está disponible: se utilizará -j1. Añada "
+"'+' a la regla padre del make."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr ""
-"El archivo Makefile ha sido especificado dos veces desde la entrada estándard"
+"El archivo Makefile ha sido especificado dos veces desde la entrada estándard"
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (archivo temporal)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (archivo temporal)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr ""
-"Los trabajos en paralelo (-j) no están implementados en esta plataforma."
+"Los trabajos en paralelo (-j) no están implementados en esta plataforma."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Reajustando al modo monotarea (-j1)."
 
-#: main.c:2006
-#, fuzzy, c-format
+#: main.c:1994
+#, c-format
 msgid "Jobserver slots limited to %d\n"
-msgstr "Cliente del servidor de tareas (fds %d,%d)\n"
+msgstr "Ranuras del servidor de tareas limitads a %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "creando semáforo del servidor de tareas: (Error %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
-msgstr "creando una tubería de trabajos"
+msgstr "creando una tubería de tareas"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
-msgstr "se inicializa la tubería al servidor de tareas"
+msgstr "se inicializa la tubería al servidor de tareas"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
-msgstr "Los enlaces simbólicos no están implementados: se deshabilitan con -L."
+msgstr "Los enlaces simbólicos no están implementados: se deshabilitan con -L."
 
 # Antes pusiste "makefiles". Coherencia. sv
 # Cierto. mm
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Actualizando archivos makefiles....\n"
 
-# Me comería el "archivo" inicial.
+# Me comería el "archivo" inicial.
 # Ok. mm
 # "El Makefile `%s' ..." sv
-# Pondría ( como en un mensaje anterior ) se autoreferencia ... em+
-# He puesto makefile con minúsculas , par ser coherentes em+
-# Ok. Es más breve. mm.
-#: main.c:2174
-#, fuzzy, c-format
+# Pondría ( como en un mensaje anterior ) se autoreferencia ... em+
+# He puesto makefile con minúsculas , par ser coherentes em+
+# Ok. Es más breve. mm.
+#: main.c:2158
+#, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
-msgstr "El makefile `%s' se autoreferencia; por lo cual no se reconstruye.\n"
+msgstr ""
+"El makefile '%s' podría entrar en bucle; por lo tanto, no se reconstruye.\n"
 
 # Lo mismo. sv
-#: main.c:2253
-#, fuzzy, c-format
+#: main.c:2237
+#, c-format
 msgid "Failed to remake makefile '%s'."
-msgstr "Fallo al reconstruir el makefile `%s'."
+msgstr "Fallo al reconstruir el makefile '%s'."
 
 # Lo mismo. sv
-#: main.c:2270
-#, fuzzy, c-format
+#: main.c:2257
+#, c-format
 msgid "Included makefile '%s' was not found."
-msgstr "No se encontró el makefile incluído `%s'."
+msgstr "No se encontró el makefile incluído '%s'."
 
 # Lo mismo. sv
-#: main.c:2275
-#, fuzzy, c-format
+#: main.c:2262
+#, c-format
 msgid "Makefile '%s' was not found"
-msgstr "No se encontró el Makefile `%s'"
+msgstr "No se encontró el makefile '%s'"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "No se pudo regresar al directorio original."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Re-ejecutando[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (archivo temporal)"
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ".DEFAULT_GOAL contien más de un objetivo"
+msgstr ".DEFAULT_GOAL contien más de un objetivo"
 
-# Sugerencia: "No se especificó ningún objetivo ... " sv
+# Sugerencia: "No se especificó ningún objetivo ... " sv
 # Ok. Me gusta. mm
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
-msgstr "No se especificó ningún objetivo y no se encontró ningún makefile"
+msgstr "No se especificó ningún objetivo y no se encontró ningún makefile"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "No hay objetivos"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Actualizando los objetivos finales....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
-"atención: Se ha detectado una desviación en el reloj. La construcción podría "
+"atención: Se ha detectado una desviación en el reloj. La construcción podría "
 "estar incompleta."
 
-# ¿Y Modo de empleo? sv
-# Soy medio bestia. Debería hacerlo automático. mm
-# "target" es "objetivo", no "objetivos". Fíjate que lleva puntos
-# suspensivos, permitiendo así varios objetivos. sv
+# Â¿Y Modo de empleo? sv
+# Soy medio bestia. Debería hacerlo automático. mm
+# "target" es "objetivo", no "objetivos". Fíjate que lleva puntos
+# suspensivos, permitiendo así varios objetivos. sv
 # Ok. mm
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Modo de empleo: %s [opciones] [objetivo] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1590,7 +1571,7 @@ msgstr ""
 "\n"
 "Este programa fue construido para %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1599,36 +1580,36 @@ msgstr ""
 "\n"
 "Este programa construido para %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Informe sobre los errores a <bug-make@gnu.org>\n"
 
-# Me comería el "de" de "requiere de" sv
+# Me comería el "de" de "requiere de" sv
 # Ok. mm
-#: main.c:2810
-#, fuzzy, c-format
+#: main.c:2807
+#, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
-msgstr "la opción `%s%s' requiere un argumento no-vacío de tipo cadena"
+msgstr "la opción '%s%s' requiere un argumento no-vacío de tipo cadena"
 
-# Me comería el "de" de "requiere de" sv
+# Me comería el "de" de "requiere de" sv
 # Ok. mm
-#: main.c:2864
-#, fuzzy, c-format
+#: main.c:2871
+#, c-format
 msgid "the '-%c' option requires a positive integer argument"
-msgstr "la opción `-%c' requiere un argumento positivo y entero"
+msgstr "la opción '-%c' requiere un argumento positivo y entero"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sEste programa fue construido para %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sEste programa fue construido para %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1636,14 +1617,14 @@ msgid ""
 "%sThis is free software: you are free to change and redistribute it.\n"
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"%sLicencia GPLv3+: GNU GPL versión 3 o posterior <http://gnu.org/licenses/"
+"%sLicencia GPLv3+: GNU GPL versión 3 o posterior <http://gnu.org/licenses/"
 "gpl.html>\n"
 "%sEste es software libre: cualquiera es libre para redistribuirlo y "
 "modificarlo.\n"
-"%sNo existe GARANTÍA ALGUNA, hasta los límites permitidos por las leyes "
+"%sNo existe GARANTÍA ALGUNA, hasta los límites permitidos por las leyes "
 "aplicables.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1654,10 +1635,10 @@ msgstr ""
 
 # make -> Make. sv
 # Ok. mm
-# Porqué 'del', o pones 'del programa' Make o pones
+# Porqué 'del', o pones 'del programa' Make o pones
 # 'de Make' em+
 # Ok. mm
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1671,13 +1652,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Error desconocido %d"
 
-# Propongo eliminar la palabra virtual. sv
-# Pero si es muy bonita. :) Bueno. Como ya platicamos puede que sea
-# una buena idea pero, por ahora la dejaría. mm
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "memoria virtual agotada"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1699,113 +1673,109 @@ msgstr "Acceso del Make"
 msgid "Child access"
 msgstr "Acceso del hijo"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: se ingresa a un directorio desconocido\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: se sale del directorio desconocido\n"
 
-# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
-# concuerde bien con esta frase y con la anterior simultáneamente. sv
-# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
 #  char *message = entering ? "Entering" : "Leaving";
 #  if (makelevel == 0)
 #    printf ("%s: %s ", program, message);
 #  else
 #    printf ("%s[%u]: %s ", program, makelevel, message);
-# Como notarás lo del directorio va en otro lado.
-#: output.c:133
-#, fuzzy, c-format
+# Como notarás lo del directorio va en otro lado.
+#: output.c:109
+#, c-format
 msgid "%s: Entering directory '%s'\n"
-msgstr "%s: se ingresa al directorio `%s'\n"
+msgstr "%s: se entra en el directorio '%s'\n"
 
-# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
-# concuerde bien con esta frase y con la anterior simultáneamente. sv
-# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
 #  char *message = entering ? "Entering" : "Leaving";
 #  if (makelevel == 0)
 #    printf ("%s: %s ", program, message);
 #  else
 #    printf ("%s[%u]: %s ", program, makelevel, message);
-# Como notarás lo del directorio va en otro lado.
-#: output.c:135
-#, fuzzy, c-format
+# Como notarás lo del directorio va en otro lado.
+#: output.c:111
+#, c-format
 msgid "%s: Leaving directory '%s'\n"
-msgstr "%s: se sale del directorio `%s'\n"
+msgstr "%s: se sale del directorio '%s'\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: se ingresa a un directorio desconocido\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: se sale del directorio desconocido\n"
 
-# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
-# concuerde bien con esta frase y con la anterior simultáneamente. sv
-# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
 #  char *message = entering ? "Entering" : "Leaving";
 #  if (makelevel == 0)
 #    printf ("%s: %s ", program, message);
 #  else
 #    printf ("%s[%u]: %s ", program, makelevel, message);
-# Como notarás lo del directorio va en otro lado.
-#: output.c:144
-#, fuzzy, c-format
+# Como notarás lo del directorio va en otro lado.
+#: output.c:120
+#, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
-msgstr "%s[%u]: se ingresa al directorio `%s'\n"
+msgstr "%s[%u]: se entra en el directorio '%s'\n"
 
-# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
-# concuerde bien con esta frase y con la anterior simultáneamente. sv
-# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
 #  char *message = entering ? "Entering" : "Leaving";
 #  if (makelevel == 0)
 #    printf ("%s: %s ", program, message);
 #  else
 #    printf ("%s[%u]: %s ", program, makelevel, message);
-# Como notarás lo del directorio va en otro lado.
-#: output.c:146
-#, fuzzy, c-format
+# Como notarás lo del directorio va en otro lado.
+#: output.c:122
+#, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
-msgstr "%s[%u]: se sale del directorio `%s'\n"
+msgstr "%s[%u]: se sale del directorio '%s'\n"
 
-# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
-# concuerde bien con esta frase y con la anterior simultáneamente. sv
-# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
 #  char *message = entering ? "Entering" : "Leaving";
 #  if (makelevel == 0)
 #    printf ("%s: %s ", program, message);
 #  else
 #    printf ("%s[%u]: %s ", program, makelevel, message);
-# Como notarás lo del directorio va en otro lado.
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+# Como notarás lo del directorio va en otro lado.
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "error al escribir: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "error al escribir"
-
 # Interrumpido (?). sv
-# Mmgmh... El mensaje indica que hubo algún error muy grave y que por
-# eso se detiene el make. Probablemente sea mejor dejarlo así. mm
-#: output.c:740
+# Mmgmh... El mensaje indica que hubo algún error muy grave y que por
+# eso se detiene el make. Probablemente sea mejor dejarlo así. mm
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Alto.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1816,494 +1786,497 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Leyendo makefiles...\n"
 
-#: read.c:333
-#, fuzzy, c-format
+#: read.c:335
+#, c-format
 msgid "Reading makefile '%s'"
-msgstr "Leyendo makefile `%s'"
+msgstr "Leyendo makefile '%s'"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (no hay objetivo por defecto)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
-msgstr " (ruta de búsqueda)"
+msgstr " (ruta de búsqueda)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (no importa)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
-msgstr " (no hay expansión del ~)"
+msgstr " (no hay expansión del ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
-msgstr ""
+msgstr "se salta BOM UTF-8 en el makefile '%s'\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
-msgstr ""
+msgstr "se salta BOM UTF-8 en el «buffer» del makefile\n"
 
 # ## Sintaxis no llevaba tilde.
 # Ok. mm
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
-msgstr "sintaxis no válida en condicional"
+msgstr "sintaxis no válida en condicional"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
-msgstr ""
+msgstr "%s: fallo al cargar"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "las instrucciones comenzaron antes del primer objetivo"
 
 # "falta una regla". sv
 # (es que extraviada me suena muy raro).
-# Cierto pareciera que se perdió dentro de algún circuito. mm
+# Cierto pareciera que se perdió dentro de algún circuito. mm
 # Falta 'la' regla em+
 # No no es la regla sino una regla pues puede ser cualquiera de ellas. mm
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "falta una regla antes de las instrucciones"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "falta un separador%s"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
+msgstr " (¿Quiere decir TAB en vez de 8 espacios?)"
 
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (¿Quiere decir TAB en vez de 8 espacios?)"
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "falta un separador%s"
 
-#: read.c:1263
+#: read.c:1270
 msgid "missing target pattern"
-msgstr "falta un patrón de objetivos"
+msgstr "falta un patrón de objetivos"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "hay varios patrones de objetivos"
 
-#: read.c:1269
-#, fuzzy, c-format
+#: read.c:1276
+#, c-format
 msgid "target pattern contains no '%%'"
-msgstr "el patrón de objetivo no contiene `%%'"
+msgstr "el patrón de objetivo no contiene '%%'"
 
-#: read.c:1391
-#, fuzzy
+#: read.c:1398
 msgid "missing 'endif'"
-msgstr "falta un `endif'"
+msgstr "falta un 'endif'"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
-msgstr "nombre de variable vacío"
+msgstr "nombre de variable vacío"
 
-#: read.c:1465
-#, fuzzy
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr ""
-"Hay un texto irrelevante o mal colocado después de la instrucción `define'"
+"Hay un texto irrelevante o mal colocado después de la instrucción 'define'"
 
-#: read.c:1490
-#, fuzzy
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
-msgstr "falta un `endef', no se terminó un `define'"
+msgstr "falta un 'endef', no se terminó un 'define'"
 
-#: read.c:1518
-#, fuzzy
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr ""
-"Hay un texto irrelevante o mal colocado después de la instrucción `endef'"
+"Hay un texto irrelevante o mal colocado después de la instrucción 'endef'"
 
-#: read.c:1589
-#, fuzzy, c-format
+#: read.c:1595
+#, c-format
 msgid "extraneous text after '%s' directive"
-msgstr "Texto irrelevante o mal colocado después de la instrucción `%s'"
+msgstr "Texto irrelevante o mal colocado después de la instrucción '%s'"
 
-#: read.c:1598 read.c:1612
-#, fuzzy, c-format
+#: read.c:1596
+#, c-format
 msgid "extraneous '%s'"
-msgstr "irrelevante o mal colocado `%s'"
+msgstr "irrelevante o mal colocado '%s'"
 
-#: read.c:1617
-#, fuzzy
+#: read.c:1624
 msgid "only one 'else' per conditional"
-msgstr "sólo se admite un `else' por condicional"
+msgstr "sólo se admite un 'else' por condicional"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr ""
-"La definición de las variables específicas al blanco está mal construida"
+"La definición de las variables específicas al blanco está mal construida"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr ""
 "los prerequisitos no pueden ser definidos por los guiones de instrucciones"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
-msgstr "las reglas implícitas y las de patrón estático están mezcladas"
+msgstr "las reglas implícitas y las de patrón estático están mezcladas"
 
 # Y 'las' normales  em+
 # Ok. mm
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
-msgstr "las reglas implícitas y las normales están mezcladas"
+msgstr "las reglas implícitas y las normales están mezcladas"
 
-#: read.c:2084
-#, fuzzy, c-format
+#: read.c:2091
+#, c-format
 msgid "target '%s' doesn't match the target pattern"
-msgstr "el archivo de objetivos `%s' no coincide con el patrón de objetivos"
+msgstr "el objetivo '%s' no coincide con el patrón de objetivos"
 
-#: read.c:2099 read.c:2144
-#, fuzzy, c-format
+#: read.c:2106 read.c:2152
+#, c-format
 msgid "target file '%s' has both : and :: entries"
-msgstr "el archivo de objetivos `%s' tiene líneas con : y ::"
+msgstr "el archivo de objetivos '%s' tiene líneas con : y ::"
 
-# Cambiaría given por 'proporcionó' o 'indicó' em+
+# Cambiaría given por 'proporcionó' o 'indicó' em+
 # Ok. mm
-#: read.c:2105
-#, fuzzy, c-format
+#: read.c:2112
+#, c-format
 msgid "target '%s' given more than once in the same rule"
-msgstr "el objetivo `%s' se proporcionó más de una vez en la misma regla."
+msgstr "el objetivo '%s' se proporcionó más de una vez en la misma regla"
 
-# No me gusta esta traducción de override. Mira a ver
+# No me gusta esta traducción de override. Mira a ver
 # si encaja mejor alguna de las dos que se proponen arriba
 # em+
-# Aunque no me acaba de convencer, que te parece ésto? mm
-#: read.c:2114
-#, fuzzy, c-format
+# Aunque no me acaba de convencer, que te parece ésto? mm
+#: read.c:2122
+#, c-format
 msgid "warning: overriding recipe for target '%s'"
-msgstr "atención: se imponen las instrucciones para el objetivo `%s'"
+msgstr "atención: se anulan las instrucciones para el objetivo '%s'"
 
 # Ojo con ignora. sv
-#: read.c:2117
-#, fuzzy, c-format
+#: read.c:2125
+#, c-format
 msgid "warning: ignoring old recipe for target '%s'"
-msgstr "atención: se ignoran las instrucciones viejas para el objetivo `%s'"
+msgstr "atención: se ignoran las instrucciones viejas para el objetivo '%s'"
+
+# Y 'las' normales  em+
+# Ok. mm
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "las reglas implícitas y las normales están mezcladas"
 
-#: read.c:2530
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
-msgstr "atención: hay un carácter NUL; se ignora el resto de la línea"
+msgstr "atención: hay un carácter NUL; se ignora el resto de la línea"
 
-#: remake.c:232
-#, fuzzy, c-format
+#: remake.c:230
+#, c-format
 msgid "Nothing to be done for '%s'."
-msgstr "No se hace nada para `%s'."
+msgstr "No se hace nada para '%s'."
 
-#: remake.c:233
-#, fuzzy, c-format
+#: remake.c:231
+#, c-format
 msgid "'%s' is up to date."
-msgstr "`%s' está actualizado."
+msgstr "'%s' está actualizado."
 
-#: remake.c:305
-#, fuzzy, c-format
+#: remake.c:303
+#, c-format
 msgid "Pruning file '%s'.\n"
-msgstr "Se continúa actualizando el archivo `%s'.\n"
+msgstr "Se poda el archivo '%s'.\n"
+
+#: remake.c:390 remake.c:393
+#, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr ""
+"%sNo hay ninguna regla para construir el objetivo '%s', necesario para '%s'%s"
 
 # Sugerencia: No hay ninguna regla... sv
 # Como una no hay ninguna. mm
-#: remake.c:377
-#, fuzzy, c-format
+#: remake.c:402 remake.c:405
+#, c-format
 msgid "%sNo rule to make target '%s'%s"
-msgstr "%sNo hay ninguna regla para construir el objetivo `%s'%s"
+msgstr "%sNo hay ninguna regla para construir el objetivo '%s'%s"
 
-#: remake.c:379
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s', needed by '%s'%s"
-msgstr ""
-"%sNo hay ninguna regla para construir el objetivo `%s', necesario para `%s'%s"
-
-# ¿target file no sería "archivo objetivo"? sv
+# ¿target file no sería "archivo objetivo"? sv
 # Literalmente si pero un archivo make puede tener varios objetivos. mm
-# Max , pero no existe un archivo de objetivos. Esta línea, que es
-# de las que aparecen al hacer un make con la opción -d ( debug )
+# Max , pero no existe un archivo de objetivos. Esta línea, que es
+# de las que aparecen al hacer un make con la opción -d ( debug )
 # se refiere a lo que dice Santiago, es decir, 'archivo objetivo'  em+
-# Ok creo que tienen razón. mm
-#: remake.c:413
-#, fuzzy, c-format
+# Ok creo que tienen razón. mm
+#: remake.c:426
+#, c-format
 msgid "Considering target file '%s'.\n"
-msgstr "Se considera el archivo objetivo `%s'.\n"
-
-# Un compañero mío dice que una buena regla es poner siempre que se pueda
-# un número par de comas.
-# Es decir: "Se intentó, sin éxito, actualizar ..."
-# o bien "Se intentó sin éxito actualizar ..."
-# ¿Qué te parece? sv
-# Bien y tiene razón. mm
-#: remake.c:420
-#, fuzzy, c-format
+msgstr "Se considera el archivo objetivo '%s'.\n"
+
+# Un compañero mío dice que una buena regla es poner siempre que se pueda
+# un número par de comas.
+# Es decir: "Se intentó, sin éxito, actualizar ..."
+# o bien "Se intentó sin éxito actualizar ..."
+# ¿Qué te parece? sv
+# Bien y tiene razón. mm
+#: remake.c:433
+#, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
-msgstr "Se intentó, sin éxito, actualizar el archivo `%s'.\n"
+msgstr "Se intentó hace poco, sin éxito, actualizar el archivo '%s'.\n"
 
-#: remake.c:432
-#, fuzzy, c-format
+#: remake.c:445
+#, c-format
 msgid "File '%s' was considered already.\n"
-msgstr "El archivo `%s' ya fue considerado.\n"
+msgstr "Ya se ha tenido en cuenta el archivo '%s'.\n"
 
-#: remake.c:442
-#, fuzzy, c-format
+#: remake.c:455
+#, c-format
 msgid "Still updating file '%s'.\n"
-msgstr "Se continúa actualizando el archivo `%s'.\n"
+msgstr "Se continúa actualizando el archivo '%s'.\n"
 
-#: remake.c:445
-#, fuzzy, c-format
+#: remake.c:458
+#, c-format
 msgid "Finished updating file '%s'.\n"
-msgstr "Se terminó de actualizar el archivo `%s'.\n"
+msgstr "Se terminó de actualizar el archivo '%s'.\n"
 
-#: remake.c:474
-#, fuzzy, c-format
+#: remake.c:487
+#, c-format
 msgid "File '%s' does not exist.\n"
-msgstr "El archivo `%s' no existe.\n"
+msgstr "El archivo '%s' no existe.\n"
 
-#: remake.c:481
-#, fuzzy, c-format
+#: remake.c:495
+#, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
-"*** Atención: el archivo .LOW_RESOLUTION_TIME `%s' tiene una resolución "
-"demasiado alta"
+"*** Atención: el archivo .LOW_RESOLUTION_TIME '%s' tiene una marca de tiempo "
+"de alta resolución"
 
-#: remake.c:494 remake.c:1019
-#, fuzzy, c-format
+#: remake.c:508 remake.c:1040
+#, c-format
 msgid "Found an implicit rule for '%s'.\n"
-msgstr "Se encontró una regla implícita para `%s'.\n"
+msgstr "Se encontró una regla implícita para '%s'.\n"
 
 # Se ha encontrado em+
 # Ok, pero procuro evitar como a la muerte los gerundios. mm
-#: remake.c:496 remake.c:1021
-#, fuzzy, c-format
+#: remake.c:510 remake.c:1042
+#, c-format
 msgid "No implicit rule found for '%s'.\n"
-msgstr "No se ha encontrado una regla implícita para `%s'.\n"
+msgstr "No se ha encontrado ninguna regla implícita para '%s'.\n"
 
 # Por defecto, como haces arriba em+
 # en efecto, mm
-#: remake.c:502
-#, fuzzy, c-format
+#: remake.c:516
+#, c-format
 msgid "Using default recipe for '%s'.\n"
-msgstr "Se utilizan las instrucciones por omisión para `%s'.\n"
+msgstr "Se utilizan las instrucciones por omisión para '%s'.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Se elimina la dependencia circular %s <- %s."
 
 # Lo mismo de antes con "target file". sv
-# Estoy de acuerdo con él ( por una vez ;) ) em+
+# Estoy de acuerdo con él ( por una vez ;) ) em+
 # Ok. mm
-#: remake.c:655
-#, fuzzy, c-format
+#: remake.c:675
+#, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
-msgstr "Se terminaron las dependencias del archivo objetivo `%s'.\n"
+msgstr "Se terminaron las dependencias del archivo objetivo '%s'.\n"
 
-#: remake.c:661
-#, fuzzy, c-format
+#: remake.c:681
+#, c-format
 msgid "The prerequisites of '%s' are being made.\n"
-msgstr "Se están construyendo las dependencias de `%s'.\n"
+msgstr "Se están construyendo las dependencias de '%s'.\n"
 
 # Give up no es enfocar, es abandonar, o desistir em+
-# Si, metí la pata. mm
-#: remake.c:674
-#, fuzzy, c-format
+# Si, metí la pata. mm
+#: remake.c:695
+#, c-format
 msgid "Giving up on target file '%s'.\n"
-msgstr "Se abandona el archivo objetivo `%s'.\n"
+msgstr "Se abandona el archivo objetivo '%s'.\n"
 
-#: remake.c:679
-#, fuzzy, c-format
+#: remake.c:700
+#, c-format
 msgid "Target '%s' not remade because of errors."
-msgstr "Debido a los errores, el objetivo `%s' no se reconstruyó."
+msgstr "Debido a los errores, el objetivo '%s' no se reconstruyó."
 
-#: remake.c:731
-#, fuzzy, c-format
+#: remake.c:752
+#, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
-msgstr "El prerequisito `%s' es posterior al objetivo `%s'.\n"
+msgstr "La dependencia '%s' es solo de orden para el objetivo '%s'.\n"
 
-#: remake.c:736
-#, fuzzy, c-format
+#: remake.c:757
+#, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
-msgstr "La dependencia `%s' del blanco `%s' no existe.\n"
+msgstr "La dependencia '%s' del objetivo '%s' no existe.\n"
 
-#: remake.c:741
-#, fuzzy, c-format
+#: remake.c:762
+#, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
-msgstr "La dependencia `%s' es más reciente que el objetivo `%s'.\n"
+msgstr "La dependencia '%s' es más reciente que el objetivo '%s'.\n"
 
-#: remake.c:744
-#, fuzzy, c-format
+#: remake.c:765
+#, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
-msgstr "La dependencia `%s' es anterior al objetivo `%s'.\n"
+msgstr "La dependencia '%s' es anterior al objetivo '%s'.\n"
 
 # Ahorra espacio, y pon '::'  en vez de eso :) em+
 # Bueno, no es mala idea. A ver si te gusta lo que puse. mm
-#: remake.c:762
-#, fuzzy, c-format
+#: remake.c:783
+#, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
-"El objetivo `%s' es de tipo dos puntos dos veces (::)\n"
+"El objetivo '%s' es de tipo dos puntos dos veces (::)\n"
 "y no tiene dependencias.\n"
 
-#: remake.c:769
-#, fuzzy, c-format
+#: remake.c:790
+#, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
-msgstr "No hay instrucciones para `%s' y ningún prerrequisito ha cambiado.\n"
+msgstr "No hay instrucciones para '%s' y ninguna dependencia ha cambiado.\n"
 
-#: remake.c:774
-#, fuzzy, c-format
+#: remake.c:795
+#, c-format
 msgid "Making '%s' due to always-make flag.\n"
-msgstr "Haciendo `%s' debido a la bandera always-make.\n"
+msgstr "Haciendo '%s' debido a la bandera always-make.\n"
 
-#: remake.c:782
-#, fuzzy, c-format
+#: remake.c:803
+#, c-format
 msgid "No need to remake target '%s'"
-msgstr "No es necesario reconstruir el objetivo `%s'."
+msgstr "No es necesario reconstruir el objetivo '%s'."
 
-#: remake.c:784
-#, fuzzy, c-format
+#: remake.c:805
+#, c-format
 msgid "; using VPATH name '%s'"
-msgstr "; se usa el nombre del VPATH `%s'"
+msgstr "; se usa el nombre del VPATH '%s'"
 
 # Revisa todo el po con un search, y mira a ver si decides usar
-# regenerar o reconstruir ( prefiero lo último 10000 veces ) em+
+# regenerar o reconstruir ( prefiero lo último 10000 veces ) em+
 # Ok, buena propuesta. mm
-#: remake.c:804
-#, fuzzy, c-format
+#: remake.c:825
+#, c-format
 msgid "Must remake target '%s'.\n"
-msgstr "Se debe reconstruir el objetivo `%s'.\n"
+msgstr "Se debe reconstruir el objetivo '%s'.\n"
 
-#: remake.c:810
-#, fuzzy, c-format
+#: remake.c:831
+#, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
-msgstr "  Se ignora el nombre del VPATH `%s'.\n"
+msgstr "  Se ignora el nombre del VPATH '%s'.\n"
 
-#: remake.c:819
-#, fuzzy, c-format
+#: remake.c:840
+#, c-format
 msgid "Recipe of '%s' is being run.\n"
-msgstr "Las instrucciones de `%s' se están ejecutando.\n"
+msgstr "Las instrucciones de '%s' se están ejecutando.\n"
 
 # Target file no es archivo de objetivos, sino el archivo objetivo
-# make no tiene ningún archivo de objetivos em+
+# make no tiene ningún archivo de objetivos em+
 # Ok. mm
-#: remake.c:826
-#, fuzzy, c-format
+#: remake.c:847
+#, c-format
 msgid "Failed to remake target file '%s'.\n"
-msgstr "Fallo al reconstruir el archivo objetivo `%s'.\n"
+msgstr "Fallo al reconstruir el archivo objetivo '%s'.\n"
 
 # Lo mismo em+
 # Ok. mm
-#: remake.c:829
-#, fuzzy, c-format
+#: remake.c:850
+#, c-format
 msgid "Successfully remade target file '%s'.\n"
-msgstr "Se reconstruyó con éxito el archivo objetivo `%s'.\n"
+msgstr "Se reconstruyó con éxito el archivo objetivo '%s'.\n"
 
 # Otra vez em+
 # Ok, no te puedes quejar de falta de consistencia en este caso! mm
-#: remake.c:832
-#, fuzzy, c-format
+#: remake.c:853
+#, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
-msgstr "Se necesita reconstruir el archivo objetivo `%s' con la opción -q.\n"
+msgstr "Se necesita reconstruir el archivo objetivo '%s' con la opción -q.\n"
 
 # Por defecto, como haces arriba em+
 # en efecto, mm
-#: remake.c:1027
-#, fuzzy, c-format
+#: remake.c:1048
+#, c-format
 msgid "Using default commands for '%s'.\n"
-msgstr "Se utilizan las instrucciones por defecto para `%s'.\n"
+msgstr "Se utilizan las instrucciones por defecto para '%s'.\n"
 
 # Ubicada :)) , que tal futura, a secas ? em+
 # Bueno, sonaba como StarTrek, muy chido, pero acepto tu sugerencia. mm
-#: remake.c:1372
-#, fuzzy, c-format
+#: remake.c:1397
+#, c-format
 msgid "Warning: File '%s' has modification time in the future"
-msgstr "Atención: El archivo `%s' tiene una hora de modificación en el futuro"
+msgstr "Atención: El archivo '%s' tiene una hora de modificación en el futuro"
 
 # Ubicada :)) , que tal futura, a secas ? em+
 # Bueno, sonaba como StarTrek, muy chido, pero acepto tu sugerencia. mm
-#: remake.c:1385
-#, fuzzy, c-format
+#: remake.c:1411
+#, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr ""
-"Atención: El archivo `%s' tiene una hora de modificación %s s en el futuro"
+"Atención: El archivo '%s' tiene una hora de modificación %s s en el futuro"
 
-#: remake.c:1583
-#, fuzzy, c-format
+#: remake.c:1610
+#, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
-msgstr "El elemento .LIBPATTERNS `%s' no es un patrón"
+msgstr "El elemento .LIBPATTERNS '%s' no es un patrón"
 
-# ¿Las aduanas? sv
-# Si, las aduanas de exportación de procesos. Suena rarísimo pero
-# revisé el código y todo parece apuntar a que así son las cosas.
+# Â¿Las aduanas? sv
+# Si, las aduanas de exportación de procesos. Suena rarísimo pero
+# revisé el código y todo parece apuntar a que así son las cosas.
 # Creo que esto es otra cosa. Custom se refiere a los valores dados
-# por el usuario ( customizables ) , y que no se exportarán se refiere
-# a que al llamar a otros makefiles, no serán pasados como valores
-# que se antepongan ( otro término para override ) a los que make
+# por el usuario ( customizables ) , y que no se exportarán se refiere
+# a que al llamar a otros makefiles, no serán pasados como valores
+# que se antepongan ( otro término para override ) a los que make
 # tiene por defecto .
-# La traducción exacta por tanto es, los valores definidos por el usuario
-# no se exportarán em+
-# Muchísimo más claro (es más me gusta más en español que en inglés con tu
+# La traducción exacta por tanto es, los valores definidos por el usuario
+# no se exportarán em+
+# Muchísimo más claro (es más me gusta más en español que en inglés con tu
 # arreglo) mm
 #: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
-msgstr "Los valores definidos por el usuario no se exportarán: %s\n"
+msgstr "Los valores definidos por el usuario no se exportarán: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
 msgstr ""
 "\n"
-"# Reglas implícitas."
+"# Reglas implícitas."
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
 msgstr ""
 "\n"
-"# No hay reglas implícitas."
+"# No hay reglas implícitas."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
 "# %u implicit rules, %u"
 msgstr ""
 "\n"
-"# %u reglas implícitas, %u"
+"# %u reglas implícitas, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-# ## Añado ¡ con tu permiso. sv
+# ## Añado Â¡ con tu permiso. sv
 # Gracias. mm
-# ¿ qué tal erróneo ? em+
+# ¿ qué tal erróneo ? em+
 # Si, suena mejor. mm
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
-msgstr "BUG: ¡num_pattern_rules erróneo!  %u != %u"
+msgstr "BUG: ¡num_pattern_rules erróneo!  %u != %u"
 
 #: signame.c:84
 msgid "unknown signal"
-msgstr "señal desconocida"
+msgstr "señal desconocida"
 
 #: signame.c:92
 msgid "Hangup"
 msgstr "Colgado"
 
-# ¿ Y por qué no Interrupción ? em+
-# Porque es una acción. De hecho es un mensaje que se envía a través
-# del sistema en este caso le enviarías un kill -INT num_proceso para
-# interrumpir al programa. Lo revisé contra el fuente. mm
+# ¿ Y por qué no Interrupción ? em+
+# Porque es una acción. De hecho es un mensaje que se envía a través
+# del sistema en este caso le enviarías un kill -INT num_proceso para
+# interrumpir al programa. Lo revisé contra el fuente. mm
 #: signame.c:95
 msgid "Interrupt"
 msgstr "Interrumpir"
@@ -2314,7 +2287,7 @@ msgstr "Finalizar"
 
 #: signame.c:101
 msgid "Illegal Instruction"
-msgstr "Instrucción no válida"
+msgstr "Instrucción no válida"
 
 # Los trap los hemos dejado como traps, simplemente. em+
 # Ok. mm
@@ -2326,7 +2299,7 @@ msgstr "Trace/breakpoint trap"
 msgid "Aborted"
 msgstr "Abortado"
 
-# Ponte de acuerdo con Enrique en cómo se traduce esto.
+# Ponte de acuerdo con Enrique en cómo se traduce esto.
 # Enrique tiene esta misma frase en glibc. sv
 # Eso es :) IOT trap em+
 # Ok. mm
@@ -2341,19 +2314,19 @@ msgid "EMT trap"
 msgstr "EMT trap"
 
 # Coma flotante, por favor. sv
-# Creeme que aquí lo de coma flotante no vale. Somos pro-yanquis y
+# Creeme que aquí lo de coma flotante no vale. Somos pro-yanquis y
 # por eso usamos el punto flotante. Debemos llegar a un acuerdo.
 # Por ahora pongo coma flotante para facilitar las cosas, pero bajo
 # protesta ;-) mm
 #: signame.c:118
 msgid "Floating point exception"
-msgstr "Excepción de coma flotante"
+msgstr "Excepción de coma flotante"
 
-# "Terminado por la señal kill" quedaría un poco más suave ... sv
+# "Terminado por la señal kill" quedaría un poco más suave ... sv
 # Enrique tiene en glibc "Terminado (killed)". sv
-# Bueno, creo que mi traducción es más exacta, concisa y clara
-# pero si insisten... Además recuerda en que estoy en un país
-# en donde asesinado es palabra de todos los días. mm
+# Bueno, creo que mi traducción es más exacta, concisa y clara
+# pero si insisten... Además recuerda en que estoy en un país
+# en donde asesinado es palabra de todos los días. mm
 #: signame.c:121
 msgid "Killed"
 msgstr "Terminado (killed)"
@@ -2364,20 +2337,20 @@ msgstr "Error en el bus"
 
 #: signame.c:127
 msgid "Segmentation fault"
-msgstr "Fallo de segmentación"
+msgstr "Fallo de segmentación"
 
 #: signame.c:130
 msgid "Bad system call"
-msgstr "Llamada al sistema errónea"
+msgstr "Llamada al sistema errónea"
 
 #: signame.c:133
 msgid "Broken pipe"
-msgstr "Tubería rota"
+msgstr "Tubería rota"
 
-# ¿Temporizador? (así lo tradujo Enrique en glibc). sv
-# Suena como StarTrek. Mejor lo platico con él. A lo mejor
+# ¿Temporizador? (así lo tradujo Enrique en glibc). sv
+# Suena como StarTrek. Mejor lo platico con él. A lo mejor
 # hasta lo convenzo. mm
-# Pues tendrás que darme razones em+
+# Pues tendrás que darme razones em+
 # Bueno, un alarm clock es una alarma del reloj. No tiene pierde.
 # Temporizador es una bonita palabra pero en donde dice que va a
 # sonar una campana para despertarte? mm
@@ -2391,11 +2364,11 @@ msgstr "Finalizado"
 
 #: signame.c:142
 msgid "User defined signal 1"
-msgstr "Señal 1 definida por el usuario"
+msgstr "Señal 1 definida por el usuario"
 
 #: signame.c:145
 msgid "User defined signal 2"
-msgstr "Señal 2 definida por el usuario"
+msgstr "Señal 2 definida por el usuario"
 
 # Proceso hijo terminado em+
 # Ok. mm
@@ -2404,20 +2377,20 @@ msgid "Child exited"
 msgstr "Proceso hijo terminado"
 
 # Fallo. sv
-# Alimentación eléctrico em+
+# Alimentación eléctrico em+
 # Ok. mm
 #: signame.c:156
 msgid "Power failure"
-msgstr "Falla de alimentación eléctrica"
+msgstr "Falla de alimentación eléctrica"
 
 #: signame.c:159
 msgid "Stopped"
 msgstr "Detenido"
 
-# Enrique hizo una preciosa traducción de este mensaje que, según él,
-# mejora el original. Era algo así como:
+# Enrique hizo una preciosa traducción de este mensaje que, según él,
+# mejora el original. Era algo así como:
 # "Detenido (requiere entrada de terminal)". sv
-# Tiene razón se ve bien. mm
+# Tiene razón se ve bien. mm
 # Requiere 'de';) , como te vea Santiago que le metes
 # otro 'de' otra vez ... em+
 # Ok. mm
@@ -2434,31 +2407,31 @@ msgstr "Detenido (se requiere salida de terminal)"
 # idem em+
 #: signame.c:168
 msgid "Stopped (signal)"
-msgstr "Detenido (se requiere una señal)"
+msgstr "Detenido (se requiere una señal)"
 
 #: signame.c:171
 msgid "CPU time limit exceeded"
-msgstr "Se agotó el tiempo de CPU permitido"
+msgstr "Se agotó el tiempo de CPU permitido"
 
 #: signame.c:174
 msgid "File size limit exceeded"
-msgstr "Se excedió el tamaño máximo de archivo permitido"
+msgstr "Se excedió el tamaño máximo de archivo permitido"
 
 #: signame.c:177
 msgid "Virtual timer expired"
 msgstr "El contador de tiempo virtual ha expirado"
 
-# Nunca me enteré de cómo se traducía profile, pero perfil me suena raro.
-# ¿De dónde lo has sacado? sv
-# Es lo que quiere decir, ni modo. Perfil de un avión es plane profile.
-# Por cierto, lo más probable es que esta "traducción" haya que
+# Nunca me enteré de cómo se traducía profile, pero perfil me suena raro.
+# ¿De dónde lo has sacado? sv
+# Es lo que quiere decir, ni modo. Perfil de un avión es plane profile.
+# Por cierto, lo más probable es que esta "traducción" haya que
 # modificarla para que sea entendible. mm
-# Esto lo tengo en glibc, lo mirare otro día. Estos mensajes no son
+# Esto lo tengo en glibc, lo mirare otro día. Estos mensajes no son
 # importantes em+
-# Agregué unas palabras en aras de claridad (espero) mm
+# Agregué unas palabras en aras de claridad (espero) mm
 #: signame.c:180
 msgid "Profiling timer expired"
-msgstr "El contador de tiempo para la generación del perfil ha expirado"
+msgstr "El contador de tiempo para la generación del perfil ha expirado"
 
 #: signame.c:186
 msgid "Window changed"
@@ -2470,7 +2443,7 @@ msgstr "Continuado"
 
 #: signame.c:192
 msgid "Urgent I/O condition"
-msgstr "Condición urgente de I/O"
+msgstr "Condición urgente de I/O"
 
 #: signame.c:199 signame.c:208
 msgid "I/O possible"
@@ -2490,11 +2463,11 @@ msgstr "Recurso perdido"
 
 #: signame.c:214
 msgid "Danger signal"
-msgstr "Señal de peligro"
+msgstr "Señal de peligro"
 
 #: signame.c:217
 msgid "Information request"
-msgstr "Petición de información"
+msgstr "Petición de información"
 
 #: signame.c:220
 msgid "Floating point co-processor not available"
@@ -2506,111 +2479,113 @@ msgid ""
 "\n"
 "%s No strcache buffers\n"
 msgstr ""
+"\n"
+"%s No hay «buffers» strcache\n"
 
 #: strcache.c:266
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
 "B\n"
 msgstr ""
-"%s strcache utilizado: total = %d (%d) / máx = %d / mín = %d / promedio = "
-"%d\n"
+"\n"
+"%s «buffers» strcache: %lu (%lu) / cadenas = %lu / almacenamiento = %lu B / "
+"promedio = %lu B\n"
 
 #: strcache.c:270
 #, c-format
 msgid ""
 "%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
+"%s «buffer» actual: tamaño = %hu B / utilizado = %hu B / número = %hu / "
+"promedio = %hu B\n"
 
 #: strcache.c:280
-#, fuzzy, c-format
+#, c-format
 msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
 msgstr ""
-"%s strcache utilizado: total = %d (%d) / máx = %d / mín = %d / promedio = "
-"%d\n"
+"%s otros utilizado: total = %lu B / / número = %lu / promedio = %lu B\n"
 
 #: strcache.c:283
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
 msgstr ""
-"%s strcache libre: total = %d (%d) / máx = %d / mín = %d / promedio = %d\n"
+"%s otros libre: total = %lu B / máx = %lu B / mín = %lu B / promedio = %hu "
+"B\n"
 
 #: strcache.c:287
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 msgstr ""
 "\n"
-"%s # de cadenas en strcache: %d / búsquedas = %lu / coincidencias = %lu\n"
+"%s rendimiento de strcache: búsquedas = %lu / coincidencias = %lu%%\n"
 
 #: strcache.c:289
-#, fuzzy
 msgid ""
 "# hash-table stats:\n"
 "# "
 msgstr ""
-"\n"
-"# estadísticas de la tabla de hash de los archivos:\n"
+"# estadísticas de la tabla «hash»:\n"
 "# "
 
 # Lo he cmabiado em+
-# Ok. Deberíamos platicarlo con Ulrich. mm
-#: variable.c:1607
+# Ok. Deberíamos platicarlo con Ulrich. mm
+#: variable.c:1599
 msgid "automatic"
-msgstr "automática/o"
+msgstr "automática/o"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "por defecto"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "entorno"
 
 # Sugerencia: No poner archivo. sv
 # Ok. mm
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
 # 'bajo -e' = 'con -e activo' em+
-# Ok. Esta inversión en los idiomas sajones se pega. mm
-#: variable.c:1619
+# Ok. Esta inversión en los idiomas sajones se pega. mm
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "con -e activo"
 
-# Línea de comandos me parece correcto em+
-# Ver arriba. Estoy de acuerdo si así han traducido en otros lados. mm
-#: variable.c:1622
+# Línea de comandos me parece correcto em+
+# Ver arriba. Estoy de acuerdo si así han traducido en otros lados. mm
+#: variable.c:1614
 msgid "command line"
-msgstr "línea de instrucciones"
+msgstr "línea de instrucciones"
 
-# Creo que tendremos un problema con instrucción, comando
-# , programa y directiva . Está claro que aquí es directiva em+
-# Ok, pero no deja de sonar a RoboCop. A ver que te parece como quedó. mm
-#: variable.c:1625
-#, fuzzy
+# Creo que tendremos un problema con instrucción, comando
+# , programa y directiva . Está claro que aquí es directiva em+
+# Ok, pero no deja de sonar a RoboCop. A ver que te parece como quedó. mm
+#: variable.c:1617
 msgid "'override' directive"
-msgstr "directiva de sobreposición `override'"
+msgstr "directiva 'override'"
 
-#: variable.c:1636
-#, fuzzy, c-format
+#: variable.c:1628
+#, c-format
 msgid " (from '%s', line %lu)"
-msgstr " (de `%s', línea %lu):"
+msgstr " (de '%s', línea %lu):"
 
-# Bueno. Aquí un punto de discusión. Traduzco buckets por cubetas o
+# Bueno. Aquí un punto de discusión. Traduzco buckets por cubetas o
 # mejor las dejo tal cual? Opiniones bienvenidas. mm
 # Estos mensajes son para debug, no creo que haga falta usar cubetas ;) em+
-# Tienes razón, si el debugueador no lo entiende pues, ... que se
+# Tienes razón, si el debugueador no lo entiende pues, ... que se
 # dedique a otra cosa. mm
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
-msgstr "# estadísticas del conjunto de variables de la tabla de hash:\n"
+msgstr "# estadísticas del conjunto de variables de la tabla «hash»:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2618,132 +2593,137 @@ msgstr ""
 "\n"
 "# Variables\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
 msgstr ""
 "\n"
-"# Valores de variables específicas al patrón"
+"# Valores de variables específicas al patrón"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
 msgstr ""
 "\n"
-"# No hay valores de variables específicas al patrón."
+"# No hay valores de variables específicas al patrón."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
 "# %u pattern-specific variable values"
 msgstr ""
 "\n"
-"# %u valores de variables específicas al patrón"
+"# %u valores de variables específicas al patrón"
 
-# ¿Qué te parece "atención"? Lo hemos usado mucho en otros programas. sv
-# Pero que bestia soy. Perdón por el desbarre. mm
+# ¿Qué te parece "atención"? Lo hemos usado mucho en otros programas. sv
+# Pero que bestia soy. Perdón por el desbarre. mm
 #: variable.h:224
-#, fuzzy, c-format
+#, c-format
 msgid "warning: undefined variable '%.*s'"
-msgstr "atención: la variable `%.*s' no ha sido definida"
+msgstr "atención: la variable '%.*s' no ha sido definida"
 
 #: vmsfunctions.c:91
 #, c-format
 msgid "sys$search() failed with %d\n"
 msgstr "fallo en sys$search() con %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
-msgstr "Atención: redirección vacía\n"
+msgstr "Atención: redirección vacía\n"
 
-#: vmsjobs.c:178
-#, fuzzy, c-format
+#: vmsjobs.c:183
+#, c-format
 msgid "internal error: '%s' command_state"
-msgstr "error interno: `%s' command_state"
+msgstr "error interno: '%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
-msgstr "-atención, deberás rehabilitar el manejo del CTRL-Y desde el DCL.\n"
+msgstr "-atención, deberás rehabilitar el manejo del CTRL-Y desde el DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "INTERCONSTRUIDO [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "CD INTERCONSTRUIDO %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "RM INTERCONSTRUIDO %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "CD INTERCONSTRUIDO %s\n"
 
 # Por defecto, como haces arriba em+
 # en efecto, mm
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
-msgstr "Instrucción interconstruida desconocida `%s'.\n"
+msgstr "Instrucción integrada desconocida '%s'.\n"
+
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
 
-#: vmsjobs.c:489
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
-msgstr "Error, comando vacío\n"
+msgstr "Error, comando vacío\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Entrada redirigida desde %s\n"
 
-# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
-# concuerde bien con esta frase y con la anterior simultáneamente. sv
-# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
 #  char *message = entering ? "Entering" : "Leaving";
 #  if (makelevel == 0)
 #    printf ("%s: %s ", program, message);
 #  else
 #    printf ("%s[%u]: %s ", program, makelevel, message);
-# Como notarás lo del directorio va en otro lado.
-#: vmsjobs.c:509
+# Como notarás lo del directorio va en otro lado.
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Se redirecciona el error a %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Salida redirigida a %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Salida redirigida a %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Agregada a %.*s y limpieza\n"
 
 # "en sustituto" me suena muy raro. Propongo: "en su lugar" en su lugar :-) sv
 # Ok. mm
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "En su lugar, se ejecuta %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Error al lanzar el proceso %d\n"
 
-# ¿Y al revés?: Rutas de búsqueda VPATH. sv
+# ¿Y al revés?: Rutas de búsqueda VPATH. sv
 # Mejora
 #: vpath.c:583
 msgid ""
@@ -2751,418 +2731,57 @@ msgid ""
 "# VPATH Search Paths\n"
 msgstr ""
 "\n"
-"# Rutas de búsqueda VPATH\n"
+"# Rutas de búsqueda VPATH\n"
 
 # Rutas creo que queda mejor. sv
-# Ok. Es más común. mm
+# Ok. Es más común. mm
 #: vpath.c:600
-#, fuzzy
 msgid "# No 'vpath' search paths."
-msgstr "# No hay rutas de búsqueda `vpath'."
+msgstr "# No hay rutas de búsqueda 'vpath'."
 
-# ¡Ah! Aquí si que pones el vpath al final, ¿eh? :-) sv
+# Â¡Ah! Aquí si que pones el vpath al final, Â¿eh? :-) sv
 # You really got me! mm
 #: vpath.c:602
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# %u 'vpath' search paths.\n"
 msgstr ""
 "\n"
-"# %u rutas de búsqueda `vpath'.\n"
+"# %u rutas de búsqueda 'vpath'.\n"
 
 #: vpath.c:605
-#, fuzzy
 msgid ""
 "\n"
 "# No general ('VPATH' variable) search path."
 msgstr ""
 "\n"
-"# No hay ruta de búsqueda general (variable `VPATH')."
+"# No hay ruta de búsqueda general (variable 'VPATH')."
 
 #: vpath.c:611
-#, fuzzy
 msgid ""
 "\n"
 "# General ('VPATH' variable) search path:\n"
 "# "
 msgstr ""
 "\n"
-"# Ruta de búsqueda general (variable `VPATH'):\n"
+"# Ruta de búsqueda general (variable 'VPATH'):\n"
 "# "
 
-# ## Le he añadido un "¡" con tu permiso.
-# Gracias. No lo puse porque no se como poner ese símbolo con el
-# iso-accents-mode y luego se me olvidó. Por cierto, como se hace?
-# también tengo duda de la interrogación abierta.
-#~ msgid "#  Invalid value in `update_status' member!"
-#~ msgstr "#  ¡Valor inválido en el miembro `update_status'!"
-
-# Lo mismo. sv
-#~ msgid "*** [%s] Error 0x%x (ignored)"
-#~ msgstr "*** [%s] Error 0x%x (no tiene efecto)"
-
-# Lo mismo. sv
-#~ msgid "[%s] Error %d (ignored)"
-#~ msgstr "[%s] Error %d (no tiene efecto)"
-
-#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-#~ msgstr ""
-#~ "Se invocan la instrucciones desde %s:%lu para actualizar el objetivo `"
-#~ "%s'.\n"
-
-#~ msgid "Invoking builtin recipe to update target `%s'.\n"
-#~ msgstr ""
-#~ "Se utilizan las instrucciones internas para actualizar al objetivo `%s'.\n"
-
-#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-#~ msgstr "%s # de búfers strcache: %d (* %d B/búfer = %d B)\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "# strcache hash-table stats:\n"
-#~ "# "
-#~ msgstr ""
-#~ "\n"
-#~ "# estadísticas de la tabla de hash:\n"
-#~ "# "
-
-#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "No especifique -j o --jobs si sh.exe no está disponible."
-
-#~ msgid "Resetting make for single job mode."
-#~ msgstr "Reajustando a make para el modo monotarea."
-
-# De esto hablaremos otro día. sv
-# Si. Es bastante complicado. mm
-#~ msgid ""
-#~ "%sThis is free software; see the source for copying conditions.\n"
-#~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
-#~ "%sPARTICULAR PURPOSE.\n"
-#~ msgstr ""
-#~ "%sEste es software libre; consulte en el código fuente las condiciones de "
-#~ "copia.\n"
-#~ "%sNO hay garantía; ni siquiera para MERCANTIBILIDAD o EL CUMPLIMIENTO DE\n"
-#~ "%sALGÚN PROPÓSITO PARTICULAR.\n"
-
-#~ msgid "extraneous `endef'"
-#~ msgstr "el `endef' es irrelevante o está mal colocado"
-
-#~ msgid "empty `override' directive"
-#~ msgstr "instrucción `override' vacía"
-
-# Creo que tendremos un problema con instrucción, comando
-# , programa y directiva . Está claro que aquí es directiva em+
-# Ok, pero no deja de sonar a RoboCop. A ver que te parece como quedó. mm
-#~ msgid "invalid `override' directive"
-#~ msgstr "directiva de sobreposición `override' inválida"
-
-#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-atención, CTRL-Y dejará vivos a los subprocesos.\n"
-
-# Esto habría que revisarlo. sv
-# En efecto, había que revisarlo, no es número de archivos
-# sino que no hay archivos. mm
-#~ msgid ""
-#~ "\n"
-#~ "# No files."
-#~ msgstr ""
-#~ "\n"
-#~ "# No hay archivos."
-
-# Sugerencia: hash buckets -> `hash buckets'
-# (al menos hasta que sepamos lo que es, creo que me salió algo parecido
-# en recode). sv
-# Literalmente un hash bucket es un tonel de trozos. En un proceso de
-# partición por picadillo (hash) se deben definir "toneles" o "cubetas"
-# para guardar allí la información "hasheada". En otras palabras es el
-# tamaño de las entradas de índice hash. Claro como el lodo?
-# Finalmente, ok. Por ahora no traducimos hasta ponernos de acuerdo.
-#~ msgid ""
-#~ "\n"
-#~ "# %u files in %u hash buckets.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "# %u archivos en %u `hash buckets'.\n"
-
-#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
-#~ msgstr ""
-#~ "# promedio de %.3f archivos por `bucket', max %u archivos en un "
-#~ "`bucket'.\n"
-
-#~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "Error de sintáxis, aún se está dentro de '\"'\n"
-
-# Recibida o capturada, pero por Dios , no pongas
-# 'se tiene' . En vez de hijo pon proceso hijo , y quita lo
-# que tienes entre paréntesis em+
-# Lo del paréntesis era para escoger. mm
-#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr "Recibí una señal SIGCHLD; %u proceso hijo descarriado.\n"
-
-#~ msgid "DIRECTORY"
-#~ msgstr "DIRECTORIO"
-
-#~ msgid "Change to DIRECTORY before doing anything"
-#~ msgstr ""
-#~ "Debe desplazarse al directorio DIRECTORY antes de hacer cualquier cosa"
-
-#~ msgid "FLAGS"
-#~ msgstr "BANDERAS"
-
-#~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "Suspender el proceso para permitir que un depurador se utilice"
-
-#~ msgid "Environment variables override makefiles"
-#~ msgstr "Las variables de entorno tienen prioridad sobre los makefiles"
-
-#~ msgid "FILE"
-#~ msgstr "ARCHIVO"
-
-#~ msgid "Read FILE as a makefile"
-#~ msgstr "Se leyó el ARCHIVO como makefile"
-
-#~ msgid "Search DIRECTORY for included makefiles"
-#~ msgstr "Se buscan en DIRECTORIO los archivos makefile incluídos"
-
-# Esto me suena a descripción de una opción, más que a un mensaje de error.
-# Sugerencia por lo tanto: "No se lanzan ..." sv
-# Estás en lo correcto. mm
-#~ msgid "Don't start multiple jobs unless load is below N"
-#~ msgstr ""
-#~ "No se lanzan varios trabajos a menos que la carga\n"
-#~ "sea inferior a N"
-
-# Lo mismo de antes. sv
-# Ok. mm
-#~ msgid "Don't actually run any commands; just print them"
-#~ msgstr "No se ejecutan las instrucciones; sólamente se muestran"
-
-#~ msgid "Consider FILE to be very old and don't remake it"
-#~ msgstr "Se considera el ARCHIVO demasiado viejo y no se reconstruye"
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "error interno: hay varias opciones --sync-mutex"
 
-# ¿ qué te parece ...
-# No se hace echo de las instrucciones em+
-# No me gusta. Que te parece lo que puse ahora? mm
-#~ msgid "Don't echo commands"
-#~ msgstr "Los comandos no se muestran con eco"
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "error interno: hay varias opciones --jobserver-fds"
 
-# Corregido error de tecleos ;) em+
-# Ok.
-#~ msgid "Turns off -k"
-#~ msgstr "Se deshabilita -k"
-
-# Lo mismo. sv
-# Se considera siempre como nuevo em+
-# Ok. Elimino el 'se' porque está describiendo a una opción. mm
-#~ msgid "Consider FILE to be infinitely new"
-#~ msgstr "Considera al ARCHIVO siempre como nuevo"
-
-# "Entrando en el" (fíjate que esto lo dice cuando entra en un directorio).
-# Habría que ver cómo queda. sv
-# Ver nota más adelante. mm
-# Cambiando a , me pareceria mucho mejor em+
-# En efecto. mm
-#~ msgid "Entering"
-#~ msgstr "Cambiando a"
-
-# "Dejando el", "Abandonando el". sv
-# Que tal "saliendo"? mm
-# Prefiero 'abandonando' , o 'saliendo de' em+
-# Que tal saliendo? mm
-#~ msgid "Leaving"
-#~ msgstr "Saliendo"
-
-# corregido el efecto indio , añado un 'un'em+
-# Ok. mm
-#~ msgid "no file name for `%sinclude'"
-#~ msgstr "no hay un nombre de archivo para `%sinclude'"
-
-#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "El objetivo `%s' deja a los patrones de dependencias vacíos"
-
-#~ msgid "# No variables."
-#~ msgstr "# No hay variables."
-
-#~ msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# promedio de %.1f variables por `bucket', máx %u en un `bucket'.\n"
-
-#~ msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-#~ msgstr ""
-#~ "# promedio de %d.%d variables por `bucket', máx %u en un `bucket'.\n"
-
-#~ msgid "Error in lbr$ini_control, %d\n"
-#~ msgstr "Error en lbr$ini_control, %d\n"
-
-#~ msgid "Error looking up module %s in library %s, %d\n"
-#~ msgstr "Error al buscar el módulo %s en la biblioteca %s, %d\n"
-
-#~ msgid "Error getting module info, %d\n"
-#~ msgstr "Error al intentar obtener la información del módulo, %d\n"
-
-#~ msgid "touch: "
-#~ msgstr "touch: "
-
-#~ msgid " not"
-#~ msgstr " no"
-
-#~ msgid "#  Last modified %.24s (%0lx)\n"
-#~ msgstr "#  Última modificación %.24s (%0lx)\n"
-
-#~ msgid "undefined"
-#~ msgstr "indefinido"
-
-#~ msgid "file"
-#~ msgstr "archivo"
-
-# ¿ crees sinceramente que esto lo puede entender alguien ? em+
-# ¿ qué tal ? con preferencia sobre el entorno em+
-# No, está en AIX, ahora lo arreglo. mm
-#~ msgid "environment override"
-#~ msgstr "con preferencia sobre el entorno"
-
-# Habra que compilar esto inmediatamente e instalar
-# el .po a ver que es esto em+
-# No se puede por ahora pues make no ha sido internacionalizado aún.
-# Será una de las primeras cosas que haga en cuanto se pueda. mm
-#~ msgid "override"
-#~ msgstr "sobreposición"
-
-# Sugerencia: Borrar el "de" en "requiere de ..." sv
-# Perdón, siempre se me vá a pesar de haberlo discutido un buen rato. mm
-#~ msgid "the `word' function takes a one-origin index argument"
-#~ msgstr "la función `word' requiere un argumento indexado de tipo origen-uno"
-
-#~ msgid "implicit"
-#~ msgstr "implícita"
-
-#~ msgid "rule"
-#~ msgstr "regla"
-
-#~ msgid "Trying %s dependency `%s'.\n"
-#~ msgstr "Se intenta la dependencia %s `%s'.\n"
-
-#~ msgid "Found dependency as `%s'.%s\n"
-#~ msgstr "Se encuentra la dependencia como `%s'.%s\n"
-
-#~ msgid "intermediate"
-#~ msgstr "intermedia"
-
-# Protestar al autor. No hay forma de poner trabajo(s) desconocido(s)
-# con coherencia. sv
-# Si, si no tienen identificado a su padre. Ni modo. mm
-# Pongo /s em+
-# Ok. mm
-#~ msgid "Unknown%s job %d"
-#~ msgstr "Trabajo%s desconocido/s %d"
-
-#~ msgid " remote"
-#~ msgstr " remoto"
-
-#~ msgid "%s finished."
-#~ msgstr "%s terminado."
-
-#~ msgid "losing"
-#~ msgstr "se pierde"
-
-#~ msgid "winning"
-#~ msgstr "se gana"
-
-# No me gusta como queda así.
-# Sugerencia: "%sGNU Make versión %s" sv
-# Aceptada. mm
-#~ msgid "%sGNU Make version %s"
-#~ msgstr "%sGNU Make versión %s"
-
-#~ msgid "Unknown error 12345678901234567890"
-#~ msgstr "Error desconocido 12345678901234567890"
-
-#~ msgid "User"
-#~ msgstr "Usuario"
-
-#~ msgid "Make"
-#~ msgstr "Make"
-
-#~ msgid "Child"
-#~ msgstr "Hijo"
-
-#~ msgid "Dependency `%s' does not exist.\n"
-#~ msgstr "La dependencia `%s' no existe.\n"
-
-#~ msgid "newer"
-#~ msgstr "más reciente"
-
-#~ msgid "older"
-#~ msgstr "más antigua"
-
-# Sugerencia: `socket' sv
-# Ok. mm
-#~ msgid "exporting: Couldn't create return socket."
-#~ msgstr "exportando: No se puede crear el `socket' de regreso."
-
-#~ msgid "exporting: "
-#~ msgstr "exportando: "
-
-#~ msgid "exporting: %s"
-#~ msgstr "exportando: %s"
-
-#~ msgid "Job exported to %s ID %u\n"
-#~ msgstr "El trabajo ha sido exportado a %s ID %u\n"
-
-#~ msgid "Error getting load average"
-#~ msgstr "Error al obtener la carga promedio"
-
-#~ msgid "1-minute: %f  "
-#~ msgstr "1-minuto: %f  "
-
-#~ msgid "5-minute: %f  "
-#~ msgstr "5-minutos: %f  "
-
-#~ msgid "15-minute: %f  "
-#~ msgstr "15-minutos: %f  "
-
-# argv-elements -> elementos argv. sv
-# (A poco C que sepas, sabrás lo que es).
-# Algunos si, algunos no. Pero tienes razón. mm
-#~ msgid "digits occur in two different argv-elements.\n"
-#~ msgstr "los dígitos están en dos elementos argv distintos.\n"
-
-#~ msgid "option %c\n"
-#~ msgstr "opción %c\n"
-
-#~ msgid "option a\n"
-#~ msgstr "opción a\n"
-
-#~ msgid "option b\n"
-#~ msgstr "opción b\n"
-
-# Sugerencia: La opción c tiene el valor `%s'
-# Hay un mensaje idéntico en hello. sv
-# Me gusta mucho. mm
-#~ msgid "option c with value `%s'\n"
-#~ msgstr "La opción c tiene el valor `%s'\n"
-
-#~ msgid "?? getopt returned character code 0%o ??\n"
-#~ msgstr "?? getopt() regresó un cáracter con código 0%o ??\n"
-
-# Elementos ARGV que no son opciones: sv
-# Ok. mm.
-# Esto es:
-# Elementos de ARGV 'que' no son opciones:
-# pero tambien es un mensaje de debug del propio make, asi
-# que no me preocupa ( no aparecerá a usuarios normales de make ) em+
-# Bueno, pero de todas formas se corrige. mm
-#~ msgid "non-option ARGV-elements: "
-#~ msgstr "los elementos ARGV que no son opciones: "
-
-#~ msgid "option d with value `%s'\n"
-#~ msgstr "opción d con valor `%s'\n"
-
-#~ msgid "%s: unknown signal"
-#~ msgstr "%s: señal desconocida"
+# Propongo eliminar la palabra virtual. sv
+# Pero si es muy bonita. :) Bueno. Como ya platicamos puede que sea
+# una buena idea pero, por ahora la dejaría. mm
+#~ msgid "virtual memory exhausted"
+#~ msgstr "memoria virtual agotada"
 
-#~ msgid "Signal 12345678901234567890"
-#~ msgstr "Señal 12345678901234567890"
+#~ msgid "write error"
+#~ msgstr "error al escribir"
 
-#~ msgid "Signal %d"
-#~ msgstr "Señal %d"
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "RM INTERCONSTRUIDO %s\n"
index f950a1c234e7984daa05d9cc8bb37a1abf063265..4967e238bcf0913fb0de19956a861a8537e37a3c 100644 (file)
Binary files a/po/fi.gmo and b/po/fi.gmo differ
index efd8db2256a529c231af78cb8e95407384abd802..ab3df0219e4dbf1dda047712ebe7318836c7fb89 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.81-b3\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2005-07-06 21:36+0300\n"
 "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -45,50 +45,50 @@ msgstr "touch: Arkistossa \"%1$s\" ei ole jäsentä \"%2$s\""
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: ar_member_touch antoi virheellisen paluuarvon kohteesta \"%s\""
 
-#: arscan.c:67
+#: arscan.c:124
 #, fuzzy, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module epäonnistui moduulitietojen noutamisessa, tila = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, fuzzy, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control epäonnistui, tila = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "kirjastoa \"%s\" ei voi avata jäsenen \"%s\" etsimiseksi"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Jäsen \"%s\"%s: %ld tavua kohdassa %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (nimi voi olla typistynyt)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Päiväys %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Katkaisu.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Arkistojäsen \"%s\" voi olla viallinen - ei poisteta"
@@ -98,26 +98,26 @@ msgstr "*** [%s] Arkistojäsen \"%s\" voi olla viallinen - ei poisteta"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Arkistojäsen \"%s\" voi olla viallinen - ei poisteta"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Poistetaan tiedosto \"%s\""
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Poistetaan tiedosto \"%s\""
 
-#: commands.c:684
+#: commands.c:685
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  käynnisetttävät komennot"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (sisäänrakennettu):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (tiedostosta \"%s\", rivi %lu):\n"
@@ -200,158 +200,158 @@ msgstr "Rekursiivinen muuttuja \"%s\" viittaa (lopulta) itseensä"
 msgid "unterminated variable reference"
 msgstr "päättämätön muuttujaviittaus"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Tiedostolle \"%s\" määriteltiin komentoja paikassa %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Tiedostolle \"%s\" löytyi komentoja oletussääntöhaussa,"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "mutta \"%s\":n katsotaan nyt olevan sama tiedosto kuin \"%s\"."
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Tiedoston \"%s\" komentoja ei huomioida, vaan käytetään komentoja "
 "tiedostosta \"%s\"."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Poistetaan aputiedosto \"%s\""
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Poistetaan aputiedostot...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Tämänhetkinen aika"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Aikaleima ei ole sallitulla välillä, korvataan %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Tämänhetkinen aika"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Ei kohde:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Arvokas tiedosto (ennakkoehto .PRECIOUS:ille)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Valekohde (ennakkoehto .PHONY:lle)."
 
-#: file.c:958
+#: file.c:964
 #, fuzzy
 msgid "#  Command line target."
 msgstr "#  Komentorivikohde."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Oletus-, MAKEFILES- tai -include/sinclude -makefile-tiedosto."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Ei oletussääntöjä."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Oletussääntöhaku on suoritettu."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Oletussääntöhakua ei ole suoritettu."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr ""
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Tiedosto on välitason ennakkoehto."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Tuotetaan myös:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Muutosaikaa ei koskaan tarkastettu."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Tiedosto ei ole olemassa."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Tiedosto on hyvin vanha."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Viimeksi muutettu %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Tiedosto on päivitetty."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Tiedostoa ei ole päivitetty."
 
-#: file.c:995
+#: file.c:1001
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Ajossa olevat komennot (TÄMÄ ON OHJELMISTOVIKA)."
 
-#: file.c:998
+#: file.c:1004
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Ajossa olevat riippuvuuskomennot (TÄMÄ ON OHJELMISTOVIKA)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Päivitetty onnistuneesti."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Vaatii päivitystä (-q on asetettu)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Päivitys epäonnistui."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Virheellinen arvo \"command_state\"-jäsenessä!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -359,7 +359,7 @@ msgstr ""
 "\n"
 "# Tiedostot"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -369,108 +369,108 @@ msgstr ""
 "# tilasto tiedostojen hajautustaulusta:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "ei-numeerinen ensimmäinen argumentti \"word\"-funktiolle"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "\"word\"-funktion ensimmäisen argumentin on oltava suurempi kuin 0"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "ei-numeerinen ensimmäinen argumentti \"wordlist\"-funktiolle"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "ei-numeerinen toinen argumentti \"wordlist\"-funktiolle"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(In) epäonnistui (v=%d)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(Err) epäonnistui (v=%d)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, fuzzy, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() epäonnistui (v=%d)\n"
 
-#: function.c:1498
+#: function.c:1538
 #, fuzzy
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe (): process_init_fd() epäonnistui\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Siivotaan väliaikainen komentotiedosto %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "kirjoitusvirhe: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "Liian vähän (%d) argumenttejeja funktiolle \"%s\""
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "Ei toteutettu tällä alustalla: funktio \"%s\""
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "päättämätön kutsu funktioon \"%s\": puuttuva \"%c\""
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "Liian vähän (%d) argumenttejeja funktiolle \"%s\""
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "Liian vähän (%d) argumenttejeja funktiolle \"%s\""
 
 #: getopt.c:659
@@ -528,12 +528,12 @@ msgstr "%s: valitsin \"-W %s\" on moniselitteinen\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: valitsin \"-W %s\" ei salli argumenttia\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -616,98 +616,98 @@ msgstr "Etsitään sääntöä aputiedostolla \"%s\".\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Väliaikaistiedoston luominen ei onnistu\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (muisti vedostettu)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] Virhe %d (ei huomioida)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (sisäänrakennettu):"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Virhe 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Virhe %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Virhe 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Odotetaan keskeneräisiä töitä...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr ""
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (etä)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Siivotaan väliaikainen komentotiedosto %s\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Siivotaan väliaikainen komentotiedosto %s\n"
 
-#: job.c:949
+#: job.c:961
 #, fuzzy, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Poistetaan ketjusta lapsiprosessi 0x%08lx PID %ld%s.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "työpalvelimen kirjoitus"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, fuzzy, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() epäonnistui prosessin käynnistämisessä (v=%d)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -716,117 +716,117 @@ msgstr ""
 "\n"
 "Laskettiin %d argumenttia epäonnistuneessa käynnistyksessä\n"
 
-#: job.c:1685
+#: job.c:1735
 #, fuzzy, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Lisätään ketjuun lapsiprosessi 0x%08lx (%s) PID %ld%s.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "työputken luku"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: Arkistoa \"%s\" ei ole olemassa"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr ""
 "%1$s\"%3$s\"-kohteen tarvitseman kohteen \"%2$s\" tuottamiseen ei ole sääntöä"
 "%4$s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "kuormarajoja ei voi ottaa käyttöön tässä käyttöjärjestelmässä"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "kuormarajaa ei voi ottaa käyttöön: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 "tiedostokahvoja ei ole enempää: vakiosyötteen kahdentaminen ei onnistunut\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 "tiedostokahvoja ei ole enempää: vakiotulosteen kahdentaminen epäonnistui\n"
 
-#: job.c:2223
+#: job.c:2278
 #, fuzzy
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 "tiedostokahvoja ei ole enempää: vakiosyötteen kahdentaminen ei onnistunut\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Vakiosyötettä ei voitu palauttaa\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Vakiotulostetta ei voitu palauttaa\n"
 
-#: job.c:2254
+#: job.c:2309
 #, fuzzy
 msgid "Could not restore stderr\n"
 msgstr "Vakiosyötettä ei voitu palauttaa\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Komentoa ei löytynyt"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Kuoriohjelmaa ei löytynyt"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: ympäristötila saattaa olla lopussa"
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL muuttunut (oli \"%s\", nyt \"%s\")\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Luodaan väliaikainen komentotiedosto %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (rivi %d) Väärä kuoriympäristö (!unixy && !batch_mode_shell)\n"
@@ -835,50 +835,50 @@ msgstr "%s (rivi %d) Väärä kuoriympäristö (!unixy && !batch_mode_shell)\n"
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Rinnakkaiset työt (-j) eivät ole tuettuja tällä alustalla."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Valitsimet:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr ""
 "  -b, -m                      Yhteensopivuuden vuoksi jätetään huomiotta.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Tuota kaikki kohteet ehdoitta.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -886,16 +886,16 @@ msgstr ""
 "  -C HAKEMISTO, --directory=HAKEMISTO\n"
 "                              Siirry HAKEMISTOon ennen jatkamista.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Näytä runsaasti vianetsintätietoja.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr "  --debug[=LIPUT]             Näytä monenlaisia vianetsintätietoja.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -904,12 +904,12 @@ msgstr ""
 "                              Ympäristömuuttujat kumoavat makefile-"
 "tiedostot.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -917,18 +917,18 @@ msgstr ""
 "  -f TIEDOSTO, --file=TIEDOSTO, --makefile=TIEDOSTO\n"
 "                              Käytä TIEDOSTOa makefile-tiedostona.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Näytä tämä viesti ja poistu.\n"
 
-#: main.c:334
+#: main.c:335
 #, fuzzy
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         Älä huomioi suoritettujen komentojen "
 "virheitä.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -937,7 +937,7 @@ msgstr ""
 "                              Etsi sisällytettäviä makefile:ja "
 "HAKEMISTOsta.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -945,14 +945,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Salli N yhtäaikaista työtä; ilman N:ää "
 "ääretön.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Jatka vaikka joidenkin kohteiden tuottaminen\n"
 "                                epäonnistuisi.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -962,7 +962,7 @@ msgstr ""
 "                              Älä aloita useita töitä ellei kuormitus alle "
 "N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -970,7 +970,7 @@ msgstr ""
 "  -L, --check-symlink-times   Käytä uusinta mtime-aikaa symlinkkien ja\n"
 "                                kohteen välillä.\n"
 
-#: main.c:348
+#: main.c:349
 #, fuzzy
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
@@ -981,7 +981,7 @@ msgstr ""
 "                              Näytä ajettavat komennot, älä käynnistä "
 "niitä.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -990,17 +990,17 @@ msgstr ""
 "  -o TIEDOSTO, --old-file=TIEDOSTO, --assume-old=TIEDOSTO\n"
 "                              Käsittele TIEDOSTO vanhana, älä tuota sitä.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Näytä make:in sisäinen tietokanta.\n"
 
-#: main.c:359
+#: main.c:360
 #, fuzzy
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
@@ -1009,22 +1009,22 @@ msgstr ""
 "  -q, --question              Älä aja komentoja; paluuarvo kertoo ajan-\n"
 "                                tasaisuuden.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Poista käytöstä sisäiset oletussäännöt.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Poista käytöstä sisäiset muuttuja-asetukset.\n"
 
-#: main.c:365
+#: main.c:366
 #, fuzzy
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Älä kaiuta komentoja.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1032,25 +1032,25 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Kumoaa valitsimen -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr "  -t, --touch                 Kosketa kohteita tuottamisen sijaan.\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  -d                          Näytä runsaasti vianetsintätietoja.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Näytä make:in versionumero ja poistu.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Näytä nykyinen hakemisto.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1058,7 +1058,7 @@ msgstr ""
 "  --no-print-directory        Kumoa -w, vaikka se olisi käytössä "
 "oletuksena.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1067,7 +1067,7 @@ msgstr ""
 "new=TIEDOSTO\n"
 "                              Käsittele TIEDOSTO aina uutena.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1075,31 +1075,26 @@ msgstr ""
 "  --warn-undefined-variables  Varoita viittauksista määrittelemättömiin\n"
 "                                muuttujiin.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "tyhjä merkkijono ei kelpaa tiedostonimeksi"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "tuntematon vianetsintätason määritys \"%s\""
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "sisäinen virhe: useitan --jobserver-fds -valitsimia"
-
-#: main.c:848
+#: main.c:828
 #, fuzzy, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Keskeytys/poikkeus siepattu (koodi = 0x%x, osoite = 0x%x)\n"
 
-#: main.c:855
+#: main.c:835
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -1114,70 +1109,66 @@ msgstr ""
 "Poikkeusliput = %x\n"
 "Poikkeusosoite = %x\n"
 
-#: main.c:863
+#: main.c:843
 #, fuzzy, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Suojausvirhe: kirjoitusoperaatio osoitteeseen %x\n"
 
-#: main.c:864
+#: main.c:844
 #, fuzzy, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Suojausvirhe: lukuoperaatio osoitteeseen %x\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, fuzzy, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell asettaa default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, fuzzy, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell: polkuhaku asetti default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s keskeytyy 30 sekunniksi..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) valmis. Jatketaan.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "sisäinen virhe: useitan --jobserver-fds -valitsimia"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "sisäinen virhe: virheellinen --jobserver-fds -merkkijono \"%s\""
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "varoitus: -jN pakotettu ali-make:ssa: poistetaan työpalvelin käytöstä."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "kaksinkertainen työpalvelin"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
@@ -1185,115 +1176,115 @@ msgstr ""
 "varoitus: työpalvelin ei käytettävissä: käytetään -j1. Lisää \"+\" ylemmän "
 "tason make-sääntöön."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile-tiedosto vakiosyötteestä määritelty kahdesti."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (väliaikaistiedosto)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (väliaikaistiedosto)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Rinnakkaiset työt (-j) eivät ole tuettuja tällä alustalla."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Palataan yhden työn (-j1) tilaan."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "luodaan työputki"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "alustetaan työpalvelimen putki"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Ei tukea symbolisille linkeille: poistetaan -L käytöstä."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Päivitetään makefile-tiedostoja....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ""
 "Ei uudelleentuoteta makefile-tiedostoa \"%s\" - vältetään mahdollinen "
 "ikuinen silmukka.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Makefile-tiedoston \"%s\" uudelleentuottaminen epäonnistui."
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Sisällytettyä makefile-tiedostoa \"%s\" ei löytynyt."
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Makefile-tiedostoa \"%s\" ei löytynyt"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Ei voitu siirtyä takaisin alkuperäiseen hakemistoon."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Uudelleenkäynnistetään[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (väliaikaistiedosto): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL sisältää yli yhden kohteen"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Kohteita ei ole annettu, eikä makefileä löytynyt"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Ei kohteita"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr ""
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "varoitus: Havaittu väärä kellonaika. Käännösversio saattaa olla "
 "epätäydellinen."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Käyttö: %s [valitsimet] [kohde] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1302,7 +1293,7 @@ msgstr ""
 "\n"
 "Tämä ohjelma on käännetty järjestelmälle %s.\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1311,37 +1302,37 @@ msgstr ""
 "\n"
 "Tämä ohjelma on käännetty järjestelmälle %s (%s).\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen <bug-make@gnu.org>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "valitsin \"-%c\" vaatii ei-tyhjän merkkijonoargumentin"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "valitsin \"-%c\" vaatii positiivisen kokonaislukuargumentin"
 
-#: main.c:3253
+#: main.c:3269
 #, fuzzy, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 "\n"
 "%sTämä ohjelma on käännetty järjestelmälle %s.\n"
 
-#: main.c:3255
+#: main.c:3271
 #, fuzzy, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 "\n"
 "%sTämä ohjelma on käännetty järjestelmälle %s (%s).\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1350,7 +1341,7 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1359,7 +1350,7 @@ msgstr ""
 "\n"
 "# Make-tietokanta, tulostettu %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1373,10 +1364,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Tuntematon virhe %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "virtuaalimuisti lopussa"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1398,65 +1385,61 @@ msgstr "Make-prosessin käyttöoikeudet"
 msgid "Child access"
 msgstr "Lapsiprosessin käyttöoikeudet"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Siirrytään tuntemattomaan hakemistoon\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Poistutaan tuntemattomasta hakemistosta\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Siirrytään hakemistoon \"%s\"\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Poistutaan hakemistosta \"%s\"\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Siirrytään tuntemattomaan hakemistoon\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Poistutaan tuntemattomasta hakemistosta\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Siirrytään hakemistoon \"%s\"\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Poistutaan hakemistosta \"%s\"\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "kirjoitusvirhe: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "kirjoitusvirhe"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ". Seis.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1465,226 +1448,231 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Luetaan makefile-tiedostoja...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Luetaan makefile-tiedosto \"%s\""
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr ""
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (hakupolku)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (ei välitetä)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (ei ~-laajennusta)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "virheellinen syntaksi ehtolauseessa"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 #, fuzzy
 msgid "recipe commences before first target"
 msgstr "komennot alkavat ennen ensimmäistä kohdetta"
 
-#: read.c:1036
+#: read.c:1041
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "puuttuva sääntö ennen komentoja"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "puuttuva erotin%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (ehkä tarkoitit sarkainta eikä kahdeksaa välilyöntiä?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "puuttuva erotin%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "puuttuva kohdehahmo"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "useita kohdehahmoja"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "kohdehahmo ei sisällä %%-merkkiä"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "puuttuva \"endif\""
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "tyhjä muuttujan nimi"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "Ylimääräistä tekstiä \"endef\"-toimintaohjeen jälkeen"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "puuttuva \"endef\", päättämätön \"define\""
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "Ylimääräistä tekstiä \"endef\"-toimintaohjeen jälkeen"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Ylimääräistä tekstiä \"%s\"-toimintaohjeen jälkeen"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "ylimääräinen \"%s\""
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "vain yksi \"else\" ehtolausetta kohden"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Väärin muotoiltu kohdekohtainen muuttujamäärittely"
 
 # skripti?
-#: read.c:1951
+#: read.c:1957
 #, fuzzy
 msgid "prerequisites cannot be defined in recipes"
 msgstr "ennakkoehtoja ei voi määritellä komentoskripteissä"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr ""
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr ""
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "kohde \"%s\" ei täsmää kohdehahmon kanssa"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "kohdetiedostolla \"%s\" on sekä :- että ::-merkinnät"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "kohde \"%s\" annettu yli yhden kerran samassa säännössä."
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "varoitus: syrjäytetään kohteen \"%s\" komennot"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "varoitus: ei huomioida vanhoja komentoja kohteelle \"%s\""
 
-#: read.c:2530
+#: read.c:2229
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr ""
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "varoitus: havaittu NUL-merkki, rivin loppuosaa ei huomioida"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Kohteelle \"%s\" ei tarvitse tehdä mitään."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "\"%s\" on ajan tasalla."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Karsitaan tiedosto \"%s\".\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sKohteen \"%s\" tuottamiseen ei ole sääntöä%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
 "%1$s\"%3$s\"-kohteen tarvitseman kohteen \"%2$s\" tuottamiseen ei ole sääntöä"
 "%4$s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sKohteen \"%s\" tuottamiseen ei ole sääntöä%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Tarkastellaan tiedostoa \"%s\".\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Tiedoston \"%s\" päivitysyritys epäonnistui äskettäin.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Tiedostoa \"%s\" on jo tarkasteltu.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Päivitetään edelleen tiedostoa \"%s\".\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Tiedosto \"%s\" päivitetty.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Tiedosto \"%s\" ei ole olemassa.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1692,137 +1680,137 @@ msgstr ""
 "*** Varoitus: .LOW_RESOLUTION_TIME-tiedostolla \"%s\" on "
 "korkearesoluutioinen aikaleima"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Kohteelle \"%s\" löytyi oletussääntö.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Kohteelle \"%s\" ei löytynyt oletussääntöä.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Käytetään oletuskomentoja kohteelle \"%s\".\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Kehäriippuvuus %s <- %s hylätty."
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Kohdetiedoston \"%s\" ennakkoehdot täytetty.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Kohteen \"%s\" ennakkoehtoja täytetään.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Luovutaan kohdetiedostosta \"%s\".\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Kohdetta \"%s\" ei tuotettu uudelleen virheiden vuoksi."
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Ennakkoehto \"%s\" on vanhempi kuin kohde \"%s\".\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Kohteen \"%2$s\" ennakkoehto \"%1$s\" ei ole olemassa.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Ennakkoehto \"%s\" on uudempi kuin kohde \"%s\".\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Ennakkoehto \"%s\" on vanhempi kuin kohde \"%s\".\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Tuotetaan \"%s\", koska --always-make -valitsin on käytössä.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Ei tarvetta uudelleentuottaa kohdetta \"%s\""
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; käytetään VPATH-nimeä \"%s\""
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Kohde \"%s\" on tuotettava uudelleen.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Ei huomioida VPATH-nimeä \"%s\".\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr ""
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Kohdetiedoston \"%s\" uudelleentuottaminen epäonnistui.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Kohdetiedosto \"%s\" uudelleentuotettiin onnistuneesti.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr ""
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Käytetään oletuskomentoja kohteelle \"%s\".\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Varoitus: Tiedoston \"%s\" muutosaika on tulevaisuudessa"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Varoitus: Tiedoston \"%s\" muutosaika on %.2g sekuntia tulevaisuudessa"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ".LIBPATTERNS-elementti \"%s\" ei ole hahmo"
@@ -1832,7 +1820,7 @@ msgstr ".LIBPATTERNS-elementti \"%s\" ei ole hahmo"
 msgid "Customs won't export: %s\n"
 msgstr ""
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1840,7 +1828,7 @@ msgstr ""
 "\n"
 "# Oletussäännöt"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1848,7 +1836,7 @@ msgstr ""
 "\n"
 "# Ei oletussääntöjä."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1857,11 +1845,11 @@ msgstr ""
 "\n"
 "# %u oletussääntöä, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr ""
 
-#: rule.c:531
+#: rule.c:530
 #, fuzzy, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "VIKA: num_pattern_rules väärä! %u != %u"
@@ -2071,45 +2059,45 @@ msgstr ""
 "# tilasto tiedostojen hajautustaulusta:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automaattinen"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "oletus"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "ympäristö"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "-e:n alainen ympäristö"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "komentorivi"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "\"override\"-toimintaohje"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (tiedostosta \"%s\", rivi %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# muuttujajoukon hajautustaulutilastot:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2117,7 +2105,7 @@ msgstr ""
 "\n"
 "# Muuttujat\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2125,7 +2113,7 @@ msgstr ""
 "\n"
 "# Hahmokohtaisia muuttujien arvoja"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2133,7 +2121,7 @@ msgstr ""
 "\n"
 "# Ei hahmokohtaisia muuttuja-arvoja."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2152,78 +2140,83 @@ msgstr "varoitus: määrittelemätön muuttuja \"%.*s\""
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search epäonnistui, arvo %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Varoitus: Tyhjä uudelleenohjaus\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "sisäinen virhe: \"%s\" command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-varoitus, Ctrl-Y-käsittely on ehkä otettava uudelleen käyttöön DCL:stä.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "SISÄÄNRAKENNETTU [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "SISÄÄNRAKENNETTU CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "SISÄÄNRAKENNETTU RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "SISÄÄNRAKENNETTU CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Tuntematon sisäänrakennettu komento \"%s\"\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Virhe, tyhjä komento\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Syöte uudelleenohjattu kohteesta %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Virhetuloste uudelleenohjattu kohteeseen %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, fuzzy, c-format
 msgid "Append output to %s\n"
 msgstr "Tuloste uudelleenohjattu kohteeseen %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Tuloste uudelleenohjattu kohteeseen %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Käynnistetään sen sijaan %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Virhe käynnistyksessä, %d\n"
@@ -2282,6 +2275,9 @@ msgstr ""
 #~ msgid "Resetting make for single job mode."
 #~ msgstr "Palautetaan make yhden työn tilaan."
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "sisäinen virhe: useitan --jobserver-fds -valitsimia"
+
 #~ msgid ""
 #~ "%sThis is free software; see the source for copying conditions.\n"
 #~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
@@ -2291,6 +2287,12 @@ msgstr ""
 #~ "%sTakuuta EI ole, ei edes KAUPALLISESTI HYVÄKSYTTÄVÄSTÄ LAADUSTA tai\n"
 #~ "%sSOPIVUUDESTA TIETTYYN TARKOITUKSEEN.\n"
 
+#~ msgid "virtual memory exhausted"
+#~ msgstr "virtuaalimuisti lopussa"
+
+#~ msgid "write error"
+#~ msgstr "kirjoitusvirhe"
+
 #~ msgid "extraneous `endef'"
 #~ msgstr "ylimääräinen \"endef\""
 
@@ -2303,5 +2305,8 @@ msgstr ""
 #~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
 #~ msgstr "-varoitus, Ctrl-Y jättää aliprosessi(n/t) käyntiin.\n"
 
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "SISÄÄNRAKENNETTU RM %s\n"
+
 #~ msgid "Syntax error, still inside '\"'\n"
 #~ msgstr "Syntaksivirhe, edelleen \":n sisällä\n"
index 89271db8843ec5d7113045b6154446e52b17dda9..095850cfe4910c97daa7c9295870d745109b19e6 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index a652fcc1c2b83ad94c84dcbc35cad6bb28b2f3a0..287bb62226e4dfd88085b4dc0c337cd375035062 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,14 +6,14 @@
 # Marc Baudoin <babafou@ensta.fr>, Frédéric Liné <line@MicroNet.fr>, 1996.
 # Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-2006
 # Christophe Combelles <ccomb@free.fr>, 2009, 2010
-# Kevin Raymond <shaiton@fedoraproject.org>, 2012
+# Kevin Raymond <shaiton@fedoraproject.org>, 2012, 2013
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU make 3.82\n"
+"Project-Id-Version: GNU make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2012-02-27 23:05+0100\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-11-01 16:15+0100\n"
 "Last-Translator: Kevin Raymond <shaiton@fedoraproject.org>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -21,113 +21,115 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Poedit 1.5.4\n"
 
 #: ar.c:46
-#, fuzzy, c-format
+#, c-format
 msgid "attempt to use unsupported feature: '%s'"
-msgstr "tentative d'utiliser une caractéristique non prise en charge : « %s »"
+msgstr "tentative d'utiliser une fonctionnalité non prise en charge : « %s »"
 
 #: ar.c:123
 msgid "touch archive member is not available on VMS"
 msgstr "impossible de modifier la date d'un membre d'une archive sur VMS"
 
 #: ar.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Archive '%s' does not exist"
 msgstr "touch : l'archive « %s » n'existe pas"
 
 #: ar.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "touch: '%s' is not a valid archive"
 msgstr "touch : « %s » n'est pas une archive valide"
 
 #: ar.c:157
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Member '%s' does not exist in '%s'"
 msgstr "touch : le membre « %s » n'existe pas dans « %s »"
 
 #: ar.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch : mauvais code de retour de ar_member_touch pour « %s »"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module() n'a pas pu extraire les infos du module. Code = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() a échoué avec un code = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
-msgstr "impossible d'ouvrir la bibliothèque %s pour récupérer le membre « %s »"
+msgid "unable to open library '%s' to lookup member status %d"
+msgstr ""
+"impossible d'ouvrir la bibliothèque « %s » pour récupérer le membre « %s »"
 
-#: arscan.c:847
-#, fuzzy, c-format
+#: arscan.c:944
+#, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Membre `%s'%s : %ld octets à %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (le nom peut être tronqué)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Date %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
-msgstr ""
+msgstr "La recette contient trop de lignes (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Break.\n"
 
-#: commands.c:630
-#, fuzzy, c-format
+#: commands.c:629
+#, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr ""
-"*** [%s] le membre d'archive « %s » peut avoir un problème ; il n'a pas été "
-"supprimé"
+"*** [%s] le membre « %s » de l'archive peut avoir un problème ; il n'a pas "
+"été supprimé"
 
 #: commands.c:633
-#, fuzzy, c-format
+#, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr ""
-"*** Le membre d'archive « %s » peut avoir un problème; il n'a pas été "
+"*** Le membre « %s » de l'archive peut avoir un problème ; il n'a pas été "
 "supprimé"
 
-#: commands.c:646
-#, fuzzy, c-format
+#: commands.c:647
+#, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Suppression du fichier « %s »"
 
-#: commands.c:648
-#, fuzzy, c-format
+#: commands.c:649
+#, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Suppression du fichier « %s »"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  recette à exécuter"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (commande interne) :"
 
-#: commands.c:689
-#, fuzzy, c-format
+#: commands.c:690
+#, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (de « %s », ligne %lu) : \n"
 
@@ -200,169 +202,165 @@ msgid " impossibilities in %lu directories.\n"
 msgstr " impossibilités dans %lu répertoires.\n"
 
 #: expand.c:125
-#, fuzzy, c-format
+#, c-format
 msgid "Recursive variable '%s' references itself (eventually)"
-msgstr "La variable récursive « %s » se référence elle-même (finalement)"
+msgstr "La variable récursive « %s » se référence elle-même (à la fin)"
 
 #: expand.c:269
 msgid "unterminated variable reference"
 msgstr "référence incomplète à une variable"
 
-#: file.c:269
-#, fuzzy, c-format
+#: file.c:271
+#, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
-msgstr "Une recette a été spécifiée pour le fichier « %s » à %s:%lu,"
+msgstr "Une recette a été spécifiée pour le fichier « %s » dans %s : %lu,"
 
-#: file.c:274
-#, fuzzy, c-format
+#: file.c:276
+#, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 "La recette pour le fichier « %s » a été trouvée par une recherche de règle "
 "implicite,"
 
-#: file.c:277
-#, fuzzy, c-format
+#: file.c:280
+#, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr ""
 "mais « %s » est maintenant considéré comme étant le même fichier que « %s »."
 
-#: file.c:280
-#, fuzzy, c-format
+#: file.c:283
+#, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "La recette pour « %s » sera ignorée en faveur de celle pour « %s »."
 
-#: file.c:300
-#, fuzzy, c-format
+#: file.c:303
+#, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "impossible de renommer le deux-points simple « %s » en deux-points double "
 "« %s »"
 
-#: file.c:305
-#, fuzzy, c-format
+#: file.c:309
+#, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 "impossible de renommer le deux-points double « %s » en deux-points simple "
 "« %s »"
 
-#: file.c:396
-#, fuzzy, c-format
+#: file.c:401
+#, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Suppression du fichier intermédiaire « %s »"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Suppression des fichiers intermédiaires...\n"
 
-#: file.c:808
-#, c-format
-msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: horodatage hors limite ; remplacement par %s"
-
-#: file.c:809
+#: file.c:811
 msgid "Current time"
 msgstr "Heure actuelle"
 
-#: file.c:949
+#: file.c:815
+#, c-format
+msgid "%s: Timestamp out of range; substituting %s"
+msgstr "%s : horodatage hors limite ; remplacement par %s"
+
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Pas une cible :"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Fichier précieux (dépendance de .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Cible factice (dépendance de .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Cible de la ligne de commande."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Une valeur par défaut, MAKEFILES ou -include/sinclude makefile."
 
-#: file.c:962
-#, fuzzy
+#: file.c:968
 msgid "#  Builtin rule"
-msgstr ""
-"\n"
-"# Pas de règle implicite."
+msgstr "# Pas de règle interne"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  La recherche de règle implicite a été effectuée."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  La recherche de règle implicite n'a pas été effectuée."
 
-#: file.c:967
-#, fuzzy, c-format
+#: file.c:973
+#, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Préfixe de motif implicite ou statique : « %s »\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Le fichier est une dépendance intermédiaire."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Fabrique également :"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Heure de modification jamais vérifiée."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "# Le fichier n'existe pas."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Le fichier est très ancien."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Dernière modification %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Le fichier a été mis à jour."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Le fichier n'a pas été mis à jour."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Recette en cours d'exécution (CECI EST UNE ANOMALIE)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr ""
 "#  Recette de dépendances en cours d'exécution (CECI EST UNE ANOMALIE)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Mise à jour réussie."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  À besoin d'être mis à jour (l'option -q est activée)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  N'a pas pu être mis à jour."
 
-#: file.c:1019
-#, fuzzy
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Valeur non valable dans le membre « command_state » !"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -370,7 +368,7 @@ msgstr ""
 "\n"
 "# Fichiers"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -380,173 +378,170 @@ msgstr ""
 "# stats des tables de hachage des fichiers :\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
-msgstr ""
+msgstr "%s : le champ « %s » n'est pas en cache : %s"
 
-#: function.c:742
-#, fuzzy
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "le premier argument de la fonction « word » doit être numérique"
 
-#: function.c:747
-#, fuzzy
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
-msgstr "le premier argument de la fonction « word » doit être plus grand que 0"
+msgstr "le premier argument de la fonction « word » doit être supérieur à 0"
 
-#: function.c:767
-#, fuzzy
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "le premier argument de la fonction « wordlist » doit être numérique"
 
-#: function.c:769
-#, fuzzy
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "le deuxième argument de la fonction « wordlist » doit être numérique"
 
-#: function.c:1460
-#, fuzzy, c-format
+#: function.c:1499
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "windows32_openpipe(): DuplicateHandle(In) a échoué (e=%ld)\n"
+msgstr "windows32_openpipe : DuplicateHandle(In) a échoué (e=%ld)\n"
 
-#: function.c:1483
-#, fuzzy, c-format
+#: function.c:1523
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "windows32_open_pipe(): DuplicateHandle(Err) a échoué (e=%ld)\n"
+msgstr "windows32_openpipe : DuplicateHandle(Err) a échoué (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() a échoué (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe(): process_init_fd() a échoué\n"
+msgstr "windows32_openpipe() : process_init_fd() a échoué\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Nettoyage du fichier de commandes temporaire %s\n"
 
-#: function.c:2151
-#, fuzzy, c-format
+#: function.c:2193
+#, c-format
 msgid "open: %s: %s"
-msgstr "%s: %s"
+msgstr "open : %s : %s"
 
-#: function.c:2158
-#, fuzzy, c-format
+#: function.c:2203
+#, c-format
 msgid "write: %s: %s"
-msgstr "erreur d'écriture : %s"
+msgstr "write : %s : %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
-msgstr ""
+msgstr "Fichier d'opérations invalide : %s"
 
-#: function.c:2279
-#, fuzzy, c-format
+#: function.c:2324
+#, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »"
 
-#: function.c:2291
-#, fuzzy, c-format
+#: function.c:2336
+#, c-format
 msgid "unimplemented on this platform: function '%s'"
-msgstr "non implémenté sur cette plateforme: fonction « %s »"
+msgstr "non implémenté sur cette plateforme : fonction « %s »"
 
-#: function.c:2354
-#, fuzzy, c-format
+#: function.c:2399
+#, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "appel à la fonction « %s » non terminé : « %c » manquant"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Nom de fonction absent\n"
 
-#: function.c:2548
-#, c-format
-msgid "Invalid function name: %s\n"
-msgstr ""
+#: function.c:2593
+#, fuzzy, c-format
+msgid "Invalid function name: %s"
+msgstr "Nom de fonction invalide : %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
-msgstr ""
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
+msgstr "Nom de fonction trop long : %s\n"
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
-msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »"
+msgid "Invalid minimum argument count (%d) for function %s"
+msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »\n"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
-msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »"
+msgid "Invalid maximum argument count (%d) for function %s"
+msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »\n"
 
 #: getopt.c:659
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: l'option « %s » est ambiguë\n"
+msgstr "%s : l'option « %s » est ambiguë\n"
 
 #: getopt.c:683
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: l'option « --%s » ne prend pas d'argument\n"
+msgstr "%s : l'option « --%s » ne prend pas d'argument\n"
 
 #: getopt.c:688
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: l'option « %c%s » ne prend pas d'argument\n"
+msgstr "%s : l'option « %c%s » ne prend pas d'argument\n"
 
 #: getopt.c:705 getopt.c:878
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' requires an argument\n"
-msgstr "%s: l'option « %s » nécessite un argument\n"
+msgstr "%s : l'option « %s » nécessite un argument\n"
 
 #: getopt.c:734
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: option non reconnue « --%s »\n"
+msgstr "%s : option non reconnue « --%s »\n"
 
 #: getopt.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: option non reconnue « %c%s »\n"
+msgstr "%s : option non reconnue « %c%s »\n"
 
 #: getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
-msgstr "%s: option non admise -- %c\n"
+msgstr "%s : option non admise -- %c\n"
 
 #: getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
-msgstr "%s: option incorrecte -- %c\n"
+msgstr "%s : option incorrecte -- %c\n"
 
 #: getopt.c:797 getopt.c:927
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: l'option nécessite un argument -- %c\n"
+msgstr "%s : l'option nécessite un argument -- %c\n"
 
 #: getopt.c:844
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: l'option « -W %s » est ambiguë\n"
+msgstr "%s : l'option « -W %s » est ambiguë\n"
 
 #: getopt.c:862
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: l'option « -W %s » ne prend pas d'argument\n"
+msgstr "%s : l'option « -W %s » ne prend pas d'argument\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
-msgstr ""
+msgstr "guile : expansion de « %s »\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
-msgstr ""
+msgstr "guile : évaluation de « %s »\n"
 
 #: hash.c:49
 #, c-format
@@ -570,12 +565,12 @@ msgid "Collisions=%ld/%ld=%.0f%%"
 msgstr "Collisions=%ld/%ld=%.0f%%"
 
 #: implicit.c:38
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for an implicit rule for '%s'.\n"
 msgstr "Recherche d'une règle implicite pour « %s ».\n"
 
 #: implicit.c:54
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for archive-member implicit rule for '%s'.\n"
 msgstr "Recherche d'une règle implicite de membre d'archive pour « %s ».\n"
 
@@ -586,40 +581,40 @@ msgstr "
 #: implicit.c:486
 #, c-format
 msgid "Stem too long: '%.*s'.\n"
-msgstr ""
+msgstr "Motif trop long : « %.*s ».\n"
 
 #: implicit.c:491
-#, fuzzy, c-format
+#, c-format
 msgid "Trying pattern rule with stem '%.*s'.\n"
 msgstr "Essai du motif avec « %.*s » comme radical.\n"
 
 #: implicit.c:697
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible rule prerequisite '%s'.\n"
 msgstr "Rejet d'une dépendance de règle impossible « %s ».\n"
 
 #: implicit.c:698
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible implicit prerequisite '%s'.\n"
 msgstr "Rejet d'une dépendance implicite impossible « %s ».\n"
 
 #: implicit.c:711
-#, fuzzy, c-format
+#, c-format
 msgid "Trying rule prerequisite '%s'.\n"
 msgstr "Essai de la dépendance de règle « %s ».\n"
 
 #: implicit.c:712
-#, fuzzy, c-format
+#, c-format
 msgid "Trying implicit prerequisite '%s'.\n"
 msgstr "Essai de la dépendance implicite « %s ».\n"
 
 #: implicit.c:751
-#, fuzzy, c-format
+#, c-format
 msgid "Found prerequisite '%s' as VPATH '%s'\n"
 msgstr "Dépendance trouvée « %s » comme VPATH « %s »\n"
 
 #: implicit.c:765
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for a rule with intermediate file '%s'.\n"
 msgstr "Recherche d'une règle contenant le fichier intermédaire « %s ».\n"
 
@@ -627,97 +622,96 @@ msgstr "Recherche d'une r
 msgid "Cannot create a temporary file\n"
 msgstr "Impossible de créer un fichier temporaire\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (core dump créé)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (ignorée)"
 
-#: job.c:491 job.c:1994
-#, fuzzy
+#: job.c:492 job.c:2046
 msgid "<builtin>"
-msgstr " (commande interne) :"
+msgstr "<commande interne>"
 
-#: job.c:501
-#, fuzzy, c-format
+#: job.c:503
+#, c-format
 msgid "%s: recipe for target '%s' failed"
-msgstr "AVERTISSEMENT : surchargement de la recette pour la cible « %s »"
+msgstr "%s : la recette pour la cible « %s » a échouée"
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Erreur 0x%x"
-
-#: job.c:513
-#, fuzzy, c-format
+#: job.c:516 job.c:524
+#, c-format
 msgid "%s[%s] Error %d%s"
-msgstr "*** [%s] Erreur %d"
+msgstr "%s[%s] Erreur %d%s"
 
-#: job.c:517
-#, fuzzy, c-format
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Erreur 0x%x%s"
+
+#: job.c:529
+#, c-format
 msgid "%s[%s] %s%s%s"
-msgstr "%s%s: %s"
+msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Attente des tâches non terminées...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Processus fils actif %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (distant)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Récolte du processus fils perdant %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Récolte du processus fils gagnant %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Nettoyage du fichier de commande temporaire %s\n"
 
-#: job.c:843
-#, fuzzy, c-format
+#: job.c:855
+#, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
-msgstr "Nettoyage du fichier de commande temporaire %s\n"
+msgstr "Le nettoyage du fichier de commandes temporaire %s a échoué (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Retrait du processus fils %p PID %s%s de la chaîne.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "libération de la sémaphore jobserver : erreur (%ld : %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Jeton relâché pour le processus fils %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "écriture vers le serveur de tâches"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() n'a pas pu lancer de processus (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -726,115 +720,112 @@ msgstr ""
 "\n"
 "%d arguments comptés lors du lancement échoué\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Ajout du processus fils %p (%s) PID %s%s à la chaîne.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
-msgstr ""
+msgstr "attente de la sémaphore ou du processus fils : (erreur %ld : %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Jeton obtenu pour le processus fils %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "lecture du tube des processus"
 
-#: job.c:2003
-#, fuzzy, c-format
+#: job.c:2056
+#, c-format
 msgid "%s: target '%s' does not exist"
-msgstr "touch : l'archive « %s » n'existe pas"
+msgstr "%s : la cible « %s » n'existe pas"
 
-#: job.c:2005
-#, fuzzy, c-format
+#: job.c:2059
+#, c-format
 msgid "%s: update target '%s' due to: %s"
-msgstr ""
-"%s Aucune règle pour fabriquer la cible « %s », nécessaire pour « %s »%s"
+msgstr "%s : mise à jour de la cible « %s » nécessaire pour : %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 "impossible d'imposer des limites de charge sur ce système d'exploitation"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "impossible d'imposer des limites de charge : "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 "plus d'identificateur de fichier disponible : impossible de dupliquer stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 "plus d'identificateur de fichier disponible : impossible de dupliquer "
 "stdout\n"
 
-#: job.c:2223
-#, fuzzy
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
-"plus d'identificateur de fichier disponible : impossible de dupliquer stdin\n"
+"plus d'identificateurs de fichier disponible : impossible de dupliquer "
+"stderr\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Impossible de restaurer stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Impossible de restaurer stdout\n"
 
-#: job.c:2254
-#, fuzzy
+#: job.c:2309
 msgid "Could not restore stderr\n"
-msgstr "Impossible de restaurer stdin\n"
+msgstr "Impossible de restaurer stderr\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 "make a récolté le processus fils pid %s, toujours en attente du pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
-msgstr "%s: commande introuvable"
+msgstr "%s : commande introuvable"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
-msgstr "%s: programme Shell introuvable"
+msgstr "%s : programme Shell introuvable"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe : l'espace d'environnement est peut-être épuisé"
 
-#: job.c:2709
-#, fuzzy, c-format
+#: job.c:2765
+#, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
-msgstr "$SHELL a été modifié (valait « %s », vaut maintenant « %s »)\n"
+msgstr "$SHELL a été modifié (de « %s » à « %s »)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Création d'un fichier de commande temporaire %s\n"
 
-#: job.c:3148
-#, fuzzy
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
-"Contenu du fichier Batch :%s\n"
-"\t%s\n"
+"Contenu du fichier de commande :\n"
+"\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -843,7 +834,7 @@ msgstr ""
 "Contenu du fichier Batch :%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -852,53 +843,52 @@ msgstr ""
 #: job.h:43
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
+"-O[TYPE] (--output-sync[=TYPE]) n'est pas configuré pour cette construction."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
-msgstr ""
+msgstr "Echec de l'ouverture de la table des symboles générale : %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
-msgstr ""
+msgstr "L'objet chargé « %s » n'est pas déclaré compatible avec la GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
-msgstr ""
+msgstr "Echec du chargement du symbole %s à partir de %s : %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
-msgstr ""
+msgstr "Nom du symbole absent pour l'opération « load » : %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
-msgstr ""
+msgstr "Chargement du symbole %s à partir de %s\n"
 
-#: load.c:229
-#, fuzzy
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr ""
-"Les tâches en parallèle (-j) ne sont pas prises en charge sur cette "
-"plateforme."
+"Les opérations « load » ne sont pas prises en charge sur cette plateforme."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Options :\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ignoré pour compatibilité.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 "  -B, --always-make           Fabriquer toutes les cibles sans condition.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -907,19 +897,19 @@ msgstr ""
 "                              Se placer dans le RÉPERTOIRE avant toute "
 "action.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 "  -d                          Afficher beaucoup d'informations de débogage.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=FLAGS]             Afficher divers types d'informations de "
 "débogage.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -928,14 +918,14 @@ msgstr ""
 "                              Les variables d'environment sont prioritaires "
 "sur les makefiles.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=CHAINE               Evaluer la CHAINE comme une instruction de "
 "makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -943,16 +933,16 @@ msgstr ""
 "  -f FICHIER, --file=FICHIER, --makefile=FICHIER\n"
 "                              Lire le FICHIER comme un makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Afficher ce message et quitter.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         Ignorer les erreurs venant des recettes.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -961,7 +951,7 @@ msgstr ""
 "                              Chercher dans le RÉPERTOIRE les makefiles "
 "traités par inclusion.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -969,14 +959,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Autoriser N tâches simultanées ; nombre infini "
 "si utilisé sans argument.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Poursuivre même si certaines cibles n'ont pas "
 "pu être fabriquées.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -986,7 +976,7 @@ msgstr ""
 "                              Ne pas lancer de tâches multiples à moins que "
 "la charge soit inférieure à N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -994,7 +984,7 @@ msgstr ""
 "  -L, --check-symlink-times   Utiliser le « mtime » le plus récent entre les "
 "liens symboliques et la cible.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -1004,7 +994,7 @@ msgstr ""
 "                              N'exécuter aucune recette ; seulement les "
 "afficher.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -1014,18 +1004,21 @@ msgstr ""
 "                              Considérer le FICHIER comme étant très ancien "
 "et ne pas le refabriquer.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
+"  -O[TYPE], --output-sync[=TYPE]\n"
+"                              Synchronise la sortie des tâches parallèles "
+"par TYPE.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 "  -p, --print-data-base       Afficher la base de données interne de make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1033,22 +1026,22 @@ msgstr ""
 "  -q, --question              Ne pas exécuter de recette ; le code de sortie "
 "indique si la cible est à jour.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Désactiver les règles implicites internes.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Désactiver les réglages des variables "
 "internes.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Ne pas répéter les recettes.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1056,30 +1049,28 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Désactiver -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Assigner l'heure actuelle aux cibles au lieu "
 "de les refabriquer.\n"
 
-#: main.c:372
-#, fuzzy
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
-msgstr ""
-"  -d                          Afficher beaucoup d'informations de débogage.\n"
+msgstr "  --trace                     Afficher les traces mémoire.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 "  -v, --version               Afficher le numéro de version de make et "
 "quitter.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Afficher le répertoire courant.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1087,7 +1078,7 @@ msgstr ""
 "  --no-print-directory        Désactiver l'option -w, même si elle a été "
 "activée implicitement.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1096,7 +1087,7 @@ msgstr ""
 "                              Considérer le FICHIER comme étant toujours "
 "nouveau.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1104,32 +1095,27 @@ msgstr ""
 "  --warn-undefined-variables  Prévenir lorsqu'une variable non définie est "
 "référencée.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "une chaîne vide n'est pas un nom de fichier valable"
 
-#: main.c:734
-#, fuzzy, c-format
+#: main.c:737
+#, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "niveau de débogage inconnu « %s »"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
-msgstr ""
+msgstr "type de output-sync « %s » inconnu"
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "erreur interne : options --jobserver-fds multiples"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
 "%s: interception de l'interruption/exception (code = 0x%lx, addr = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1144,190 +1130,187 @@ msgstr ""
 "ExceptionFlags = %lx\n"
 "ExceptionAddress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Violation d'accès : opération d'écriture à l'adresse 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Violation d'accès : opération de lecture à l'adresse 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() définit default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 "La recherche de chemin de find_and_set_shell() a définit default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s s'arrête pendant 30 secondes..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) terminé. On continue.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "erreur interne : options --jobserver-fds multiples"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
+"erreur interne : impossible d'ouvrir la sémaphore « %s » du jobserver : "
+"(erreur %ld : %s) "
 
-#: main.c:1547
-#, fuzzy, c-format
+#: main.c:1530
+#, c-format
 msgid "Jobserver client (semaphore %s)\n"
-msgstr "client Jobserver (fds %d,%d)\n"
+msgstr "client Jobserver (semaphore %s)\n"
 
-#: main.c:1551
-#, fuzzy, c-format
+#: main.c:1534
+#, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
-msgstr "erreur interne : chaîne --jobserver-fds incorrecte « %s » "
+msgstr "erreur interne : chaîne --jobserver-fds incorrecte « %s »"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "client Jobserver (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "AVERTISSEMENT : -jN forcé dans un submake : désactivation du mode serveur de "
 "tâches."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "duplication du serveur de tâches"
 
-#: main.c:1586
-#, fuzzy
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
-"AVERTISSEMENT : le serveur de tâches n'est pas disponible : utilisation de -"
-"j1. Ajouter « + » à la règle parent du make."
+"avertissement : jobserver n'est pas disponible : utilisation de -j1. Ajouter "
+"« + » à la règle parent du make."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile depuis l'entrée standard spécifié deux fois."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (fichier temporaire)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (fichier temporaire)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr ""
 "Les tâches en parallèle (-j) ne sont pas prises en charge sur cette "
 "plateforme."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "On revient en mode monotâche (-j1)."
 
-#: main.c:2006
-#, fuzzy, c-format
+#: main.c:1994
+#, c-format
 msgid "Jobserver slots limited to %d\n"
-msgstr "client Jobserver (fds %d,%d)\n"
+msgstr "Nombre de clients jobserver limités à %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "création de la sémaphore du jobserver : (erreur %ld : %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "création d'un tube pour les tâches"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "initialisation du tube du serveur de tâches"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr ""
 "Les liens symboliques ne sont pas pris en charge : désactivation de -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Mise à jour des makefiles....\n"
 
-#: main.c:2174
-#, fuzzy, c-format
+#: main.c:2158
+#, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
-msgstr "Le makefile « %s » peut boucler ; on ne refabrique pas.\n"
+msgstr "Le makefile « %s » pourrait boucler ; on ne recommence pas.\n"
 
-#: main.c:2253
-#, fuzzy, c-format
+#: main.c:2237
+#, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Échec de refabrication du makefile « %s »."
 
-#: main.c:2270
-#, fuzzy, c-format
+#: main.c:2257
+#, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Le makefile inclus « %s » est introuvable."
 
-#: main.c:2275
-#, fuzzy, c-format
+#: main.c:2262
+#, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Le makefile « %s » est introuvable"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Impossible de revenir dans le répertoire d'origine."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
-msgstr "Ré-exécution[%u] :"
+msgstr "Réexécution[%u] :"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
-msgstr "unlink (fichier temporaire):"
+msgstr "unlink (fichier temporaire) :"
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL contient plus d'une cible"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Pas de cible spécifiée et aucun makefile n'a été trouvé"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Pas de cible"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Mise à jour des objectifs cibles....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "AVERTISSEMENT : décalage d'horloge détecté. La construction peut être "
 "incomplète."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Utilisation : %s [options] [cible] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1336,7 +1319,7 @@ msgstr ""
 "\n"
 "Ce programme est construit pour %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1345,32 +1328,32 @@ msgstr ""
 "\n"
 "Ce programme est construit pour %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Signaler les anomalies à <bug-make@gnu.org>.\n"
 
-#: main.c:2810
-#, fuzzy, c-format
+#: main.c:2807
+#, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "l'option « %s%s » a besoin d'une chaîne non vide comme argument"
 
-#: main.c:2864
-#, fuzzy, c-format
+#: main.c:2871
+#, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "l'option « -%c » prend en argument un entier positif"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sConstruit pour %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sConstruit pour %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1384,7 +1367,7 @@ msgstr ""
 "redistribuer.\n"
 "%sIl ne comporte AUCUNE GARANTIE, dans la mesure de ce que permet la loi.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1393,7 +1376,7 @@ msgstr ""
 "\n"
 "# Base de données de Make, imprimée le %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1407,14 +1390,10 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Erreur inconnue %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "mémoire virtuelle épuisée"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: utilisateur %lu (reél %lu), groupe %lu (réel %lu)\n"
+msgstr "%s : utilisateur %lu (reél %lu), groupe %lu (réel %lu)\n"
 
 #: misc.c:543
 msgid "Initialized access"
@@ -1432,431 +1411,428 @@ msgstr "Acc
 msgid "Child access"
 msgstr "Accès des fils"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
-msgstr "%s: on entre dans un répertoire inconnu\n"
+msgstr "%s : on entre dans un répertoire inconnu\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: on quitte un répertoire inconnu\n"
+msgstr "%s : on quitte un répertoire inconnu\n"
 
-#: output.c:133
-#, fuzzy, c-format
+#: output.c:109
+#, c-format
 msgid "%s: Entering directory '%s'\n"
-msgstr "%s: on entre dans le répertoire « %s »\n"
+msgstr "%s : on entre dans le répertoire « %s »\n"
 
-#: output.c:135
-#, fuzzy, c-format
+#: output.c:111
+#, c-format
 msgid "%s: Leaving directory '%s'\n"
-msgstr "%s: on quitte le répertoire « %s »\n"
+msgstr "%s : on quitte le répertoire « %s »\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: on entre dans un répertoire inconnu\n"
+msgstr "%s[%u] : on entre dans un répertoire inconnu\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: on quitte un répertoire inconnu\n"
+msgstr "%s[%u] : on quitte un répertoire inconnu\n"
 
-#: output.c:144
-#, fuzzy, c-format
+#: output.c:120
+#, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
-msgstr "%s[%u]: on entre dans le répertoire « %s »\n"
+msgstr "%s[%u] : on entre dans le répertoire « %s »\n"
 
-#: output.c:146
-#, fuzzy, c-format
+#: output.c:122
+#, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
-msgstr "%s[%u]: on quitte le répertoire « %s »\n"
+msgstr "%s[%u] : on quitte le répertoire « %s »\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "erreur d'écriture : %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "erreur d'écriture"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ". Arrêt.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
-msgstr "%s%s: %s"
+msgstr "%s%s : %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
-msgstr "%s: %s"
+msgstr "%s : %s"
 
 #: read.c:180
 msgid "Reading makefiles...\n"
 msgstr "Lecture des makefiles...\n"
 
-#: read.c:333
-#, fuzzy, c-format
+#: read.c:335
+#, c-format
 msgid "Reading makefile '%s'"
 msgstr "Lecture du makefile « %s »"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (pas d'objectif par défaut)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (chemin de recherche)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (peu importe)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (pas de remplacement du ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
-msgstr ""
+msgstr "On saute les BOM UTF-8 du makefile « %s »\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
-msgstr ""
+msgstr "On saute les BOM UTF-8 du tampon makefile\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "syntaxe incorrecte dans la condition"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
-msgstr ""
+msgstr "%s : echec du chargement"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "La recette commence avant la première cible"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "règle manquante avant la recette"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "séparateur manquant %s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (vouliez-vous dire TAB au lieu des 8 espaces ?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "séparateur manquant %s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "motif de cible manquant"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "motifs de cible multiples"
 
-#: read.c:1269
-#, fuzzy, c-format
+#: read.c:1276
+#, c-format
 msgid "target pattern contains no '%%'"
 msgstr "le motif de cible ne contient pas « %% »"
 
-#: read.c:1391
-#, fuzzy
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "« endif » manquant"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "nom de variable vide"
 
-#: read.c:1465
-#, fuzzy
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
-msgstr "Texte superflu après la directive « define »"
+msgstr "texte superflu après la directive « define »"
 
-#: read.c:1490
-#, fuzzy
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "« endef » manquant, « define » non terminé"
 
-#: read.c:1518
-#, fuzzy
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
-msgstr "Texte superflu après la directive « endef »"
+msgstr "texte superflu après la directive « endef »"
 
-#: read.c:1589
-#, fuzzy, c-format
+#: read.c:1595
+#, c-format
 msgid "extraneous text after '%s' directive"
-msgstr "Texte superflu après la directive « %s »"
+msgstr "texte superflu après la directive « %s »"
 
-#: read.c:1598 read.c:1612
-#, fuzzy, c-format
+#: read.c:1596
+#, c-format
 msgid "extraneous '%s'"
 msgstr "« %s » superflu"
 
-#: read.c:1617
-#, fuzzy
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "un seul « else » par condition"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Définition malformée de variable spécifique à une cible"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "les prérequis ne peuvent être définis dans des recettes"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "mélange de règles implicites et statiques pour le motif"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "mélange de règles implicites et normales"
 
-#: read.c:2084
-#, fuzzy, c-format
+#: read.c:2091
+#, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "la cible « %s » ne correspond pas au motif de cible"
 
-#: read.c:2099 read.c:2144
-#, fuzzy, c-format
+#: read.c:2106 read.c:2152
+#, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "le fichier cible « %s » possède à la fois des entrées : et ::"
 
-#: read.c:2105
-#, fuzzy, c-format
+#: read.c:2112
+#, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "la cible « %s » apparaît plus d'une fois dans la même règle."
 
-#: read.c:2114
-#, fuzzy, c-format
+#: read.c:2122
+#, c-format
 msgid "warning: overriding recipe for target '%s'"
-msgstr "AVERTISSEMENT : surchargement de la recette pour la cible « %s »"
+msgstr "avertissement : surchargement de la recette pour la cible « %s »"
 
-#: read.c:2117
-#, fuzzy, c-format
+#: read.c:2125
+#, c-format
 msgid "warning: ignoring old recipe for target '%s'"
-msgstr "AVERTISSEMENT : ancienne recette ignorée pour la cible « %s »"
+msgstr "avertissement : ancienne recette ignorée pour la cible « %s »"
+
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "mélange de règles implicites et normales"
 
-#: read.c:2530
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr ""
 "AVERTISSEMENT : caractère NUL détecté ; le reste de la ligne est ignoré"
 
-#: remake.c:232
-#, fuzzy, c-format
+#: remake.c:230
+#, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "rien à faire pour « %s »."
 
-#: remake.c:233
-#, fuzzy, c-format
+#: remake.c:231
+#, c-format
 msgid "'%s' is up to date."
 msgstr "« %s » est à jour."
 
-#: remake.c:305
-#, fuzzy, c-format
+#: remake.c:303
+#, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Élagage du fichier « %s ».\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sAucune règle pour fabriquer la cible « %s »%s"
-
-#: remake.c:379
-#, fuzzy, c-format
+#: remake.c:390 remake.c:393
+#, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
 "%s Aucune règle pour fabriquer la cible « %s », nécessaire pour « %s »%s"
 
-#: remake.c:413
-#, fuzzy, c-format
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sAucune règle pour fabriquer la cible « %s »%s"
+
+#: remake.c:426
+#, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Étude du fichier cible « %s ».\n"
 
-#: remake.c:420
-#, fuzzy, c-format
+#: remake.c:433
+#, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Tentative récente échouée de mettre à jour le fichier « %s ».\n"
 
-#: remake.c:432
-#, fuzzy, c-format
+#: remake.c:445
+#, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Le fichier « %s » a déjà été étudié.\n"
 
-#: remake.c:442
-#, fuzzy, c-format
+#: remake.c:455
+#, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Mise à jour du fichier « %s » en cours.\n"
 
-#: remake.c:445
-#, fuzzy, c-format
+#: remake.c:458
+#, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Fin de la mise à jour du fichier « %s ».\n"
 
-#: remake.c:474
-#, fuzzy, c-format
+#: remake.c:487
+#, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Le fichier « %s » n'existe pas.\n"
 
-#: remake.c:481
-#, fuzzy, c-format
+#: remake.c:495
+#, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
-"*** AVERTISSEMENT : le fichier .LOW_RESOLUTION_TIME « %s » a un horodatage à "
+"*** Avertissement : le fichier .LOW_RESOLUTION_TIME « %s » a un horodatage à "
 "haute résolution"
 
-#: remake.c:494 remake.c:1019
-#, fuzzy, c-format
+#: remake.c:508 remake.c:1040
+#, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Règle implicite trouvée pour « %s ».\n"
 
-#: remake.c:496 remake.c:1021
-#, fuzzy, c-format
+#: remake.c:510 remake.c:1042
+#, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Pas de règle implicite trouvée pour « %s ».\n"
 
-#: remake.c:502
-#, fuzzy, c-format
+#: remake.c:516
+#, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Utilisation de la recette par défaut pour « %s ».\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Dépendance circulaire %s <- %s abandonnée."
 
-#: remake.c:655
-#, fuzzy, c-format
+#: remake.c:675
+#, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Fin des dépendances du fichier cible « %s ».\n"
 
-#: remake.c:661
-#, fuzzy, c-format
+#: remake.c:681
+#, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Les dépendances de « %s » sont en cours de fabrication.\n"
 
-#: remake.c:674
-#, fuzzy, c-format
+#: remake.c:695
+#, c-format
 msgid "Giving up on target file '%s'.\n"
-msgstr "Abandon sur le fichier cible « %s ».\n"
+msgstr "Abandon du fichier cible « %s ».\n"
 
-#: remake.c:679
-#, fuzzy, c-format
+#: remake.c:700
+#, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "La cible « %s » n'a pas été refabriquée à cause d'erreurs."
 
-#: remake.c:731
-#, fuzzy, c-format
+#: remake.c:752
+#, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
-msgstr "Le prérequis « %s » est seulement d'ordre pour la cible « %s ».\n"
+msgstr "La dépendance « %s » ne commande que la cible « %s ».\n"
 
-#: remake.c:736
-#, fuzzy, c-format
+#: remake.c:757
+#, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "La dépendance « %s » de la cible « %s » n'existe pas.\n"
 
-#: remake.c:741
-#, fuzzy, c-format
+#: remake.c:762
+#, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "La dépendance « %s » est plus récente que la cible « %s ».\n"
 
-#: remake.c:744
-#, fuzzy, c-format
+#: remake.c:765
+#, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
-msgstr "La dépendance « %s » est plus ancienne que la cible « %s ».\n"
+msgstr "uLa dépendance « %s » est plus ancienne que la cible « %s ».\n"
 
-#: remake.c:762
-#, fuzzy, c-format
+#: remake.c:783
+#, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
-msgstr "La cible « %s » a un double deux-points et n'a pas de dépendance.\n"
+msgstr "La cible « %s » a un deux-points double et n'a pas de dépendance.\n"
 
-#: remake.c:769
-#, fuzzy, c-format
+#: remake.c:790
+#, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Pas de recette pour « %s » et aucune dépendance n'a changé.\n"
 
-#: remake.c:774
-#, fuzzy, c-format
+#: remake.c:795
+#, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Fabrication de « %s » à cause de l'indicateur « always-make ».\n"
 
-#: remake.c:782
-#, fuzzy, c-format
+#: remake.c:803
+#, c-format
 msgid "No need to remake target '%s'"
-msgstr "Inutile de refabriquer la cible « %s »."
+msgstr "Inutile de refabriquer la cible « %s »"
 
-#: remake.c:784
-#, fuzzy, c-format
+#: remake.c:805
+#, c-format
 msgid "; using VPATH name '%s'"
-msgstr "; utilisation du nom VPATH « %s »"
+msgstr " ; utilisation du nom VPATH « %s »"
 
-#: remake.c:804
-#, fuzzy, c-format
+#: remake.c:825
+#, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Il faut refabriquer la cible « %s ».\n"
 
-#: remake.c:810
-#, fuzzy, c-format
+#: remake.c:831
+#, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  On ignore le nom VPATH « %s ».\n"
 
-#: remake.c:819
-#, fuzzy, c-format
+#: remake.c:840
+#, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "La recette de « %s » est en cours d'exécution.\n"
 
-#: remake.c:826
-#, fuzzy, c-format
+#: remake.c:847
+#, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Échec de refabrication du fichier cible « %s ».\n"
 
-#: remake.c:829
-#, fuzzy, c-format
+#: remake.c:850
+#, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Refabrication réussie du fichier cible « %s ».\n"
 
-#: remake.c:832
-#, fuzzy, c-format
+#: remake.c:853
+#, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Le fichier cible « %s » a besoin d'être refabriqué avec l'option -q.\n"
 
-#: remake.c:1027
-#, fuzzy, c-format
+#: remake.c:1048
+#, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Utilisation des commandes par défaut pour « %s ».\n"
 
-#: remake.c:1372
-#, fuzzy, c-format
+#: remake.c:1397
+#, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr ""
-"AVERTISSEMENT : le fichier « %s » a une date de modification dans le futur"
+"Avertissement : le fichier « %s » a une date de modification dans le futur"
 
-#: remake.c:1385
-#, fuzzy, c-format
+#: remake.c:1411
+#, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr ""
-"AVERTISSEMENT : le fichier « %s » a une date de modification %s s dans le "
+"Avertissement : le fichier « %s » a une date de modification %s s dans le "
 "futur"
 
-#: remake.c:1583
-#, fuzzy, c-format
+#: remake.c:1610
+#, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "l'élément « %s » de .LIBPATTERNS n'est pas un motif"
 
@@ -1865,7 +1841,7 @@ msgstr "l'
 msgid "Customs won't export: %s\n"
 msgstr "« customs » n'exportera pas : %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1873,7 +1849,7 @@ msgstr ""
 "\n"
 "# Règles implicites"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1881,7 +1857,7 @@ msgstr ""
 "\n"
 "# Pas de règle implicite."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1890,11 +1866,11 @@ msgstr ""
 "\n"
 "# %u règles implicites, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
-msgstr " terminales."
+msgstr " terminal."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "ANOMALIE : num_pattern_rules est faux !  %u != %u"
@@ -2061,92 +2037,95 @@ msgid ""
 "\n"
 "%s No strcache buffers\n"
 msgstr ""
+"\n"
+"%s pas de tampons strcache\n"
 
 #: strcache.c:266
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
 "B\n"
 msgstr ""
-"%s strcache utilisé : total = %d (%d) / max = %d / min = %d / moy = %d\n"
+"\n"
+"%s strcache utilisé : %lu (%lu) / chaînes = %lu / espace = %lu o / moy = %lu "
+"o\n"
 
 #: strcache.c:270
 #, c-format
 msgid ""
 "%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
+"%s tampon courant : taille = %hu o / utilisé = %hu o / nombre = %hu / moy = "
+"%hu o\n"
 
 #: strcache.c:280
-#, fuzzy, c-format
+#, c-format
 msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
-msgstr ""
-"%s strcache utilisé : total = %d (%d) / max = %d / min = %d / moy = %d\n"
+msgstr "%s autre utilisé : total = %lu o / nombre = %lu / moy = %lu o\n"
 
 #: strcache.c:283
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
-msgstr "%s strcache libre : total = %d (%d) / max = %d / min = %d / moy = %d\n"
+msgstr ""
+"%s autre libre : total = %lu o / max = %lu o / min = %lu o / moy = %hu o\n"
 
 #: strcache.c:287
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 msgstr ""
 "\n"
-"%s nombre de chaines dans strcache: %d / lookups = %lu / hits = %lu\n"
+"%s performance strcache : lookups = %lu / accès = %lu%%\n"
 
 #: strcache.c:289
-#, fuzzy
 msgid ""
 "# hash-table stats:\n"
 "# "
 msgstr ""
-"\n"
-"# stats des tables de hachage des fichiers :\n"
+"# stats des tables de hachage :\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatique"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "défaut"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "environnement"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "environnement avec l'option -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "ligne de commande"
 
-#: variable.c:1625
-#, fuzzy
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "directive « override »"
 
-#: variable.c:1636
-#, fuzzy, c-format
+#: variable.c:1628
+#, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (depuis « %s », ligne %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# stats des tables de hachage de la variable « set » :\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2154,7 +2133,7 @@ msgstr ""
 "\n"
 "# Variables\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2162,7 +2141,7 @@ msgstr ""
 "\n"
 "# Valeurs de variable spécifiques au motif"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2170,7 +2149,7 @@ msgstr ""
 "\n"
 "# pas de valeurs de variable spécifiques au motif"
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2180,88 +2159,93 @@ msgstr ""
 "# %u valeurs de variable spécifiques au motif"
 
 #: variable.h:224
-#, fuzzy, c-format
+#, c-format
 msgid "warning: undefined variable '%.*s'"
-msgstr "AVERTISSEMENT : variable indéfinie « %.*s »"
+msgstr "avertissement : variable « %.*s » indéfinie"
 
 #: vmsfunctions.c:91
 #, c-format
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() a échoué avec %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "AVERTISSEMENT : redirection vide\n"
 
-#: vmsjobs.c:178
-#, fuzzy, c-format
+#: vmsjobs.c:183
+#, c-format
 msgid "internal error: '%s' command_state"
 msgstr "erreur interne : « %s » command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-warning, vous pourriez avoir besoin de réactiver le traitement de CTRL-Y "
 "par DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "COMMANDE INTERNE [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "COMMANDE CD INTERNE %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "COMMANDE RM INTERNE %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "COMMANDE CD INTERNE %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Commande interne inconnue « %s »\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Erreur, commande vide\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Entrée redirigée depuis %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Erreur redirigée vers %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Sortie ajoutée à %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Sortie redirigée vers %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Ajoute %.*s et nettoie\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Exécution de %s à la place\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Erreur de lancement, %d\n"
@@ -2272,15 +2256,14 @@ msgid ""
 "# VPATH Search Paths\n"
 msgstr ""
 "\n"
-"# Chemins de Recherche VPATH\n"
+"# Chemins de recherche VPATH\n"
 
 #: vpath.c:600
-#, fuzzy
 msgid "# No 'vpath' search paths."
 msgstr "# Aucun chemin de recherche « vpath »."
 
 #: vpath.c:602
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# %u 'vpath' search paths.\n"
@@ -2289,7 +2272,6 @@ msgstr ""
 "# %u chemins de recherche « vpath ».\n"
 
 #: vpath.c:605
-#, fuzzy
 msgid ""
 "\n"
 "# No general ('VPATH' variable) search path."
@@ -2298,7 +2280,6 @@ msgstr ""
 "# Aucun chemin de recherche général (variable « VPATH »)."
 
 #: vpath.c:611
-#, fuzzy
 msgid ""
 "\n"
 "# General ('VPATH' variable) search path:\n"
@@ -2308,6 +2289,21 @@ msgstr ""
 "# Chemin de recherche général (variable « VPATH ») :\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "erreur interne : options --sync-mutex multiples"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "erreur interne : options --jobserver-fds multiples"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "mémoire virtuelle épuisée"
+
+#~ msgid "write error"
+#~ msgstr "erreur d'écriture"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "COMMANDE RM INTERNE %s\n"
+
 #~ msgid "#  Invalid value in `update_status' member!"
 #~ msgstr "#  Valeur non valable dans le membre « update_status » !"
 
index aaf3e74fdcfca01753a0f58d86c63d417e9098ad..39e658ea27f4e2de62719a8eb7c0f6e31d44d4d3 100644 (file)
Binary files a/po/ga.gmo and b/po/ga.gmo differ
index ef86f28af38f76d44bc30016c5eabbeca53641c6..7e865a574a5dc98e9b995ecc868171941e3925e2 100644 (file)
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.81\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2006-04-22 16:02-0500\n"
 "Last-Translator: Kevin Patrick Scannell <scannell@SLU.EDU>\n"
 "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
@@ -45,54 +45,54 @@ msgstr "touch: N
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: Droch-chód aisfhillidh ó ar_member_touch ar `%s'"
 
-#: arscan.c:67
+#: arscan.c:124
 #, fuzzy, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "níorbh fhéidir le lbr$set_module an t-eolas modúil a bhaint amach, stádas = "
 "%d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, fuzzy, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "theip ar lbr$ini_control le stádas = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr ""
 "ní féidir leabharlann `%s' a oscailt chun cuardach a dhéanamh ar an mball `"
 "%s'"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Ball `%s'%s: %ld beart ag %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (is féidir go bhfuil an t-ainm teasctha)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Dáta %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mód = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Briseadh.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Is féidir gur ball bréige é `%s'; ní scriosadh"
@@ -102,26 +102,26 @@ msgstr "*** [%s] Is f
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Is féidir gur ball bréige é `%s'; ní scriosadh"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Comhad `%s' á scriosadh"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Comhad `%s' á scriosadh"
 
-#: commands.c:684
+#: commands.c:685
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  orduithe le rith"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (insuite):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (ó `%s', líne %lu):\n"
@@ -203,160 +203,160 @@ msgstr "D
 msgid "unterminated variable reference"
 msgstr "tagairt athróige gan chríochnú"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Sonraíodh orduithe le haghaidh comhaid `%s' ag %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 "Aimsíodh orduithe le haghaidh `%s' trí chuardach ar rialacha intuigthe,"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "ach anois is ionann iad na comhaid `%s' agus `%s'."
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Déanfar neamhshuim ar orduithe le haghaidh `%s'; úsáidfear na cinn le "
 "haghaidh `%s' ina n-ionad."
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "ní féidir idirstad aonair `%s' a athainmnigh le hidirstad dúbailte `%s'"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "ní féidir idirstad dúbailte `%s' a athainmniú le hidirstad aonair `%s'"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Comhad idirmheánach `%s' á scriosadh"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Comhaid idirmheánacha á mbaint...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "An t-am anois"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Stampa ama as raon; %s á úsáid ina ionad"
 
-#: file.c:809
-msgid "Current time"
-msgstr "An t-am anois"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Ní sprioc é:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Comhad luachmhar (réamhriachtanas de .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Sprioc bhréige (réamhriachtanas de .PHONY)."
 
-#: file.c:958
+#: file.c:964
 #, fuzzy
 msgid "#  Command line target."
 msgstr "#  Sprioc líne na n-orduithe."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Makefile réamhshocraithe, nó ó MAKEFILES, nó -include/sinclude."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Níl aon riail intuigthe."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Rinneadh cuardach ar rialacha intuigthe."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Ní dhearna cuardach ar rialacha intuigthe."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Stoc patrúin intuigthe/statach: `%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Tá an comhad ina réamhriachtanas idirmheánach."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Déantar fosta:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Níor seiceáladh an t-am mionathraithe riamh."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Níl a leithéid de chomhad ann."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Is cianaosta an comhad seo."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Athraithe %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Nuashonraíodh an comhad."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Níor nuashonraíodh an comhad."
 
-#: file.c:995
+#: file.c:1001
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Tá orduithe ann atá ag rith faoi láthair (IS FABHT É SEO)."
 
-#: file.c:998
+#: file.c:1004
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Tá orduithe spleáchais ag rith (IS FABHT É SEO)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  D'éirigh leis an nuashonrú."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Tá gá le nuashonrú (-q ceaptha)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Theip ar nuashonrú."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Luach neamhbhailí sa bhall `command_state'!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -364,7 +364,7 @@ msgstr ""
 "\n"
 "# Comhaid"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -374,108 +374,108 @@ msgstr ""
 "# comhaid hais-tábla stait:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "tá an chéad argóint neamhuimhriúil leis an fheidhm `word'"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "caithfidh an chéad argóint leis an fheidhm `word' a bheith deimhneach"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "is neamhuimhriúil í an chéad argóint leis an fheidhm `wordlist'"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "is neamhuimhriúil í an dara hargóint leis an fheidhm `wordlist'"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "create_child_process: theip ar DuplicateHandle(In) (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "create_child_process: theip ar DuplicateHandle(Earr) (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "Theip ar CreatePipe() (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 #, fuzzy
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe (): theip ar process_init_fd()\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Baisc-chomhad sealadach %s á ghlanadh\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "earráid sa scríobh: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "easpa argóintí (%d) d'fheidhm `%s'"
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "níl an fheidhm `%s' ar fáil ar an chóras seo"
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "glao ar fheidhm `%s' gan chríochnú: `%c' ar iarraidh"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "easpa argóintí (%d) d'fheidhm `%s'"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "easpa argóintí (%d) d'fheidhm `%s'"
 
 #: getopt.c:659
@@ -533,12 +533,12 @@ msgstr "%s: T
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `-W %s'\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -622,98 +622,98 @@ msgstr "Ag d
 msgid "Cannot create a temporary file\n"
 msgstr "Ní féidir comhad sealadach a chruthú\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (córdhumpa)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] Earráid %d (rinneadh neamhshuim)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (insuite):"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Earráid 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Earráid %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Earráid 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Ag fanacht le jabanna neamhchríochnaithe..."
 
-#: job.c:639
+#: job.c:651
 #, fuzzy, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Mac beo 0x%08lx (%s) PID %ld %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (cianda)"
 
-#: job.c:829
+#: job.c:841
 #, fuzzy, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Mac caillteach á bhaint: 0x%08lx PID %ld %s\n"
 
-#: job.c:830
+#: job.c:842
 #, fuzzy, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Mac buaiteach á bhaint: 0x%08lx PID %ld %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Baisc-chomhad sealadach %s á ghlanadh\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Baisc-chomhad sealadach %s á ghlanadh\n"
 
-#: job.c:949
+#: job.c:961
 #, fuzzy, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Mac 0x%08lx PID %ld%s á dhealú ón slabhra.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, fuzzy, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Saoradh ceadchomhartha le haghaidh mac 0x%08lx (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "scríobh jabfhreastalaí"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "theip ar process_easy(); níor tosaíodh próiseas (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -722,114 +722,114 @@ msgstr ""
 "\n"
 "%d argóint sa tosú theipthe\n"
 
-#: job.c:1685
+#: job.c:1735
 #, fuzzy, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Ag cur mac 0x%08lx (%s) PID %ld%s ar an slabhra.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, fuzzy, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Fuarthas ceadchomhartha le haghaidh mac 0x%08lx (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "léadh píopa na jabanna"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: Níl an chartlann `%s' ann"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr ""
 "%sNíl aon riail chun an sprioc `%s' a dhéanamh, riachtanach le haghaidh `"
 "%s'%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "ní féidir srianta lóid a chur i bhfeidhm ar an chóras oibriúcháin seo"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "ní féidir srian lóid a chur i bhfeidhm: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "níl aon hanla comhaid le fáil: níorbh fhéidir stdin a chóipeáil\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "níl aon hanla comhaid le fáil: níorbh fhéidir stdout a chóipeáil\n"
 
-#: job.c:2223
+#: job.c:2278
 #, fuzzy
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "níl aon hanla comhaid le fáil: níorbh fhéidir stdin a chóipeáil\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Níorbh fhéidir stdin a athchóiriú\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Níorbh fhéidir stdout a athchóiriú\n"
 
-#: job.c:2254
+#: job.c:2309
 #, fuzzy
 msgid "Could not restore stderr\n"
 msgstr "Níorbh fhéidir stdin a athchóiriú\n"
 
-#: job.c:2365
+#: job.c:2420
 #, fuzzy, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "ghin make mac le pid %ld, ag feitheamh le pid %ld fós\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Ní bhfuarthas an t-ordú"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Ní bhfuarthas an clár blaoisce"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: is féidir gur ídithe í cuimhne na timpeallachta"
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "Athraíodh $SHELL (ba `%s' é, agus is `%s' é anois)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Baisc-chomhad sealadach %s á chruthú\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -839,49 +839,49 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Níl jabanna parailéalacha (-j) ar fáil ar an gcóras seo."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Roghanna:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Déan neamhshuim (comhoiriúnacht)\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Déan gach sprioc, gan choinníollacha.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -889,18 +889,18 @@ msgstr ""
 "  -C COMHADLANN, --directory=COMHADLANN\n"
 "                              Téigh go COMHADLANN roimh dhéanamh aon rud.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Taispeáin go leor eolas dífhabhtaithe.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=BRATACHA]          Taispeáin eolas fabhtaithe de chineálacha "
 "éagsúla.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -908,12 +908,12 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              Sáraíonn athróga timpeallachta makefileanna.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -921,17 +921,17 @@ msgstr ""
 "  -f COMHAD, --file=COMHAD, --makefile=COMHAD\n"
 "                              Léigh COMHAD mar makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Taispeáin an chabhair seo agus scoir.\n"
 
-#: main.c:334
+#: main.c:335
 #, fuzzy
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         Déan neamhshuim ar earráidí ó orduithe.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -940,7 +940,7 @@ msgstr ""
 "                              Cuardaigh i gCOMHADLANN ar makefileanna "
 "breise.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -948,14 +948,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Ceadaigh N jab le chéile; éigríoch mura "
 "gceaptar arg.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Lean ar aghaidh fiú nach féidir sprioc a "
 "dhéanamh.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -965,7 +965,7 @@ msgstr ""
 "                              Ná tosaigh jabanna iomadúla mura bhfuil an lód "
 "níos lú ná N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -974,7 +974,7 @@ msgstr ""
 "nasc\n"
 "                                 siombalach nó ar an sprioc.\n"
 
-#: main.c:348
+#: main.c:349
 #, fuzzy
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
@@ -985,7 +985,7 @@ msgstr ""
 "                              Ná rith aon ordú; taispeáin torthaí mar dhea "
 "amháin.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -995,18 +995,18 @@ msgstr ""
 "                              Caith le COMHAD mar cheann cianaosta; ná "
 "hathdhéan é.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 "  -p, --print-data-base       Taispeáin an bunachar sonraí inmheánach.\n"
 
-#: main.c:359
+#: main.c:360
 #, fuzzy
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
@@ -1015,21 +1015,21 @@ msgstr ""
 "  -q, --question              Ná rith aon ordú; stádas scortha = 0 mura gá "
 "le nuashonrú.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Díchumasaigh na rialacha intuigthe insuite.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr "  -R, --no-builtin-variables  Díchumasaigh na hathróga insuite.\n"
 
-#: main.c:365
+#: main.c:366
 #, fuzzy
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Ná déan macalla ar orduithe.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1037,28 +1037,28 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Múch -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Teagmhaigh spriocanna in ionad iad a "
 "athdhéanamh.\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  -d                          Taispeáin go leor eolas dífhabhtaithe.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 "  -v, --version               Taispeáin eolas faoin leagan agus scoir.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Taispeáin an chomhadlann reatha.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1066,7 +1066,7 @@ msgstr ""
 "  --no-print-directory        Múch -w, fiú má tá sé i bhfeidhm go "
 "hintuigthe.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1075,7 +1075,7 @@ msgstr ""
 "                              Caith le COMHAD mar cheann úrnua (go "
 "héigríoch).\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1083,31 +1083,26 @@ msgstr ""
 "  --warn-undefined-variables  Tabhair rabhadh má dhéantar tagairt d'athróg "
 "gan sainmhíniú.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "ní féidir teaghrán folamh a úsáid mar ainm comhaid"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "sonrú anaithnid `%s' ar an leibhéal dífhabhtaithe"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "earráid inmheánach: roghanna --jobserver-fds iomadúla"
-
-#: main.c:848
+#: main.c:828
 #, fuzzy, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Fuarthas idirbhriseadh/eisceacht (cód = 0x%lx, seoladh = 0x%lx)\n"
 
-#: main.c:855
+#: main.c:835
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -1122,70 +1117,66 @@ msgstr ""
 "BratachaEisceachta = %lx\n"
 "SeoladhEisceachta = %lx\n"
 
-#: main.c:863
+#: main.c:843
 #, fuzzy, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Sárú rochtana: oibríocht scríofa ag seoladh %lx\n"
 
-#: main.c:864
+#: main.c:844
 #, fuzzy, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Sárú rochtana: oibríocht léimh ag seoladh %lx\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, fuzzy, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "tá find_and_set_shell ag socrú default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, fuzzy, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "shocraigh find_and_set_shell conair chuardaigh default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "cuirfear %s ar fionraí ar feadh tréimhse 30 soicind..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) críochnaithe. Ag gabháil ar aghaidh.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "earráid inmheánach: roghanna --jobserver-fds iomadúla"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "earráid inmheánach: teaghrán neamhbhailí --jobserver-fds `%s'"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "rabhadh: -jN fórsáilte i bhfo-make: mód jabfhreastalaí á dhíchumasú."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "jabfhreastalaí dup"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
@@ -1193,111 +1184,111 @@ msgstr ""
 "rabhadh: níl jabfhreastalaí ar fáil: ag baint úsáid as -j1.  Cuir `+' leis "
 "an máthair-riail."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Sonraíodh Makefile ón ionchur caighdeánach faoi dhó."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (comhad sealadach)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (comhad sealadach)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Níl jabanna parailéalacha (-j) ar fáil ar an gcóras seo."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Á athshocrú le haghaidh jabanna aonair (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "píopa na jabanna á chruthú"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "píopa an jabfhreastalaí á thúsú"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "ní thacaítear le naisc shiombalacha: -L á dhíchumasú."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Makefileanna á nuashonrú....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "is féidir go lúbfar an Makefile `%s'; ní athdhéanfar é.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Theip ar athdhéanamh an makefile `%s'."
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Níor aimsíodh an makefile `%s' san áireamh."
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Níor aimsíodh an makefile `%s'"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Níorbh fhéidir an chomhadlann oibre a athrú ar ais."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Á rith arís[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (comhad sealadach): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr "tá níos mó ná aon sprioc amháin i .DEFAULT_GOAL"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Níor sonraíodh aon sprioc agus níor aimsíodh aon makefile"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Níl aon sprioc ann"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Cinn sprice á nuashonrú....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "rabhadh:  Clog ar sceabha.  Is féidir go bhfuil an tógáil neamhiomlán."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Úsáid: %s [roghanna] [sprioc] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1306,7 +1297,7 @@ msgstr ""
 "\n"
 "Tógadh an clár seo le haghaidh %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1315,36 +1306,36 @@ msgstr ""
 "\n"
 "Tógadh an clár seo le haghaidh %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Seol tuairiscí fabhtanna chuig <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "caithfidh tú teaghrán nach folamh a thabhairt mar argóint le `-%c'"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "caithfidh tú slánuimhir dheimhneach a thabhairt mar argóint le `-%c'"
 
-#: main.c:3253
+#: main.c:3269
 #, fuzzy, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 "\n"
 "%sTógadh an clár seo le haghaidh %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, fuzzy, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 "\n"
 "%sTógadh an clár seo le haghaidh %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1353,7 +1344,7 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1362,7 +1353,7 @@ msgstr ""
 "\n"
 "# Bunachar sonraí Make, priontáilte ar %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1376,10 +1367,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Earráid anaithnid %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "cuimhne fhíorúil ídithe"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1401,65 +1388,61 @@ msgstr "Rochtain make"
 msgid "Child access"
 msgstr "Rochtain mic"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Ag dul isteach i gcomhadlann anaithnid\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Ag dul amach as comhadlann anaithnid\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Ag dul isteach sa chomhadlann `%s'\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Ag dul amach as an gcomhadlann `%s'\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Ag dul isteach i gcomhadlann anaithnid\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Ag dul amach as comhadlann anaithnid\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Ag dul isteach sa chomhadlann `%s'\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Ag dul amach as an gcomhadlann `%s'\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "earráid sa scríobh: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "earráid sa scríobh"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Stop.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1468,369 +1451,375 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Makefileanna á léamh...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Makefile `%s' á léamh"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (gan ceann sprice réamhshocraithe)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (conair chuardaigh)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (is cuma)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (ná fairsing ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "comhréir neamhbhailí i gcoinníollach"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 #, fuzzy
 msgid "recipe commences before first target"
 msgstr "tá orduithe ann roimh an chéad sprioc"
 
-#: read.c:1036
+#: read.c:1041
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "riail ar iarraidh roimh orduithe"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "deighilteoir%s ar iarraidh"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (Ar mhian leat TÁB in ionad ocht spás?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "deighilteoir%s ar iarraidh"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "patrún sprice ar iarraidh"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "patrúin iomadúla sprice"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "níl aon `%%' sa phatrún sprice"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "`endif' ar iarraidh"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "ainm folamh athróige"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "Téacs gan mhaith i ndiaidh treorach `endef'"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "`endef' ar iarraidh, `define' gan chríochnú"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "Téacs gan mhaith i ndiaidh treorach `endef'"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Téacs gan mhaith i ndiaidh treorach `%s'"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "`%s' breise"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "ní cheadaítear ach aon `else' amháin le gach coinníollach"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Is míchumtha é an sainmhíniú athróige (le haghaidh aon sprioc amháin)"
 
-#: read.c:1951
+#: read.c:1957
 #, fuzzy
 msgid "prerequisites cannot be defined in recipes"
 msgstr "ní féidir réamhriachtanais a shonrú i scripteanna ordaithe"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "rialacha intuigthe agus rialacha statacha measctha le chéile"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "rialacha intuigthe agus gnáthrialacha measctha le chéile"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "níl an sprioc `%s' comhoiriúnach leis an phatrún sprice"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "tá iontrálacha : agus :: araon ann don chomhad sprice `%s'"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "tá an sprioc `%s' i riail amháin níos mó ná uair amháin."
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "rabhadh: ag sárú na n-orduithe le haghaidh na sprice `%s'"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr ""
 "rabhadh: ag déanamh neamhshuim ar sheanorduithe le haghaidh sprice `%s'"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "rialacha intuigthe agus gnáthrialacha measctha le chéile"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr ""
 "rabhadh: chonacthas carachtar NUL; ag déanamh neamhshuim ar an chuid eile "
 "den líne"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Níl faic le déanamh i gcomhair `%s'."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "Níl gá le `%s' a nuashonrú."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Comhad `%s' á bhearradh.\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sNíl aon riail chun an sprioc `%s' a dhéanamh%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
 "%sNíl aon riail chun an sprioc `%s' a dhéanamh, riachtanach le haghaidh `"
 "%s'%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sNíl aon riail chun an sprioc `%s' a dhéanamh%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Comhad sprice `%s' idir lámha.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr ""
 "Rinneadh iarracht ar an chomhad `%s' a nuashonrú le déanaí, agus theip air.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Rinneadh scrúdú ar an chomhad `%s' cheana.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Comhad `%s' á nuashonrú fós.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Nuashonraíodh an comhad `%s'.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Níl a leithéid de chomhad `%s' ann.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
 "*** Warning: comhad .LOW_RESOLUTION_TIME `%s' le stampa ama ardtaifeach"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Aimsíodh riail intuigthe le haghaidh `%s'.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Níor aimsíodh aon riail intuigthe le haghaidh `%s'.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Ag baint úsáid as orduithe réamhshocraithe le haghaidh `%s'.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Tréigeadh an spleáchas ciorclach %s <- %s."
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Críochnaíodh na réamhriachtanais den chomhad sprice `%s'.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Réamhriachtanais de `%s' á ndéanamh anois.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Ag tréigean an chomhaid sprice `%s'.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Ní dhearna an sprioc `%s' arís ós rud é go bhfuil earráidí ann."
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr ""
 "Sonraíonn an réamhriachtanas `%s' ord rite amháin le haghaidh sprice `%s'.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Níl an réamhriachtanas `%s' den sprioc `%s' ann.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Tá an réamhriachtanas `%s' níos nuaí ná an sprioc `%s'.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Tá an réamhriachtanas `%s' níos sine ná an sprioc `%s'.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Tá dhá idirstad ag an sprioc `%s' agus níl aon réamhriachtanas aice.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, fuzzy, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 "Níl aon ordú le haghaidh `%s' agus níor athraigh aon réamhriachtanas.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "`%s' á dhéanamh de bharr bratach --always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Níl gá leis an sprioc `%s' a athdhéanamh"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; ag baint úsáid as ainm VPATH `%s'"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Caithfidh an sprioc `%s' a athdhéanamh.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Ag déanamh neamhshuim ar ainm VPATH `%s'.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Orduithe de `%s' á rith.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Theip ar athdhéanamh an sprioc-chomhaid `%s'.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "D'éirigh le hathdhéanamh an sprioc-chomhaid `%s'.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Tá gá leis an chomhad sprice `%s' a athdhéanamh leis an rogha -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Ag baint úsáid as orduithe réamhshocraithe le haghaidh `%s'.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Rabhadh: Tá an t-am mionathraithe den chomhad `%s' sa todhchaí"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr ""
 "Rabhadh: Tá an t-am mionathraithe den chomhad `%s' %.2g soicind sa todhchaí"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Níl eilimint .LIBPATTERNS `%s' ina patrún"
@@ -1840,7 +1829,7 @@ msgstr "N
 msgid "Customs won't export: %s\n"
 msgstr "Ní easpórtálfar Customs: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1848,7 +1837,7 @@ msgstr ""
 "\n"
 "# Rialacha Intuigthe"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1856,7 +1845,7 @@ msgstr ""
 "\n"
 "# Níl aon riail intuigthe."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1865,11 +1854,11 @@ msgstr ""
 "\n"
 "# %u riail intuigthe, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " teirminéal."
 
-#: rule.c:531
+#: rule.c:530
 #, fuzzy, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "FABHT: num_pattern_rules mícheart!  %u != %u"
@@ -2079,45 +2068,45 @@ msgstr ""
 "# comhaid hais-tábla stait:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "uathoibríoch"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "réamhshocraithe"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "timpeallacht"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "timpeallacht le -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "líne na n-orduithe"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "treoir `override'"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (ó `%s', líne %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# athróg tacar hais-tábla stait:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2125,7 +2114,7 @@ msgstr ""
 "\n"
 "# Athróga\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2133,7 +2122,7 @@ msgstr ""
 "\n"
 "# Luachanna Athróige sainiúil don phatrún"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2141,7 +2130,7 @@ msgstr ""
 "\n"
 "# Níl aon luach athróige atá sainiúil don phatrún."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2160,78 +2149,83 @@ msgstr "rabhadh: athr
 msgid "sys$search() failed with %d\n"
 msgstr "Theip ar sys$cuardach le %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Rabhadh: Atreorú folamh\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "earráid inmheánach: `%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-rabhadh, is féidir gur gá duit ionramháil CTRL-Y a athchumasú ó DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "INSUITE [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "CD INSUITE %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "RM INSUITE %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "CD INSUITE %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Ordú anaithnid insuite '%s'\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Earráid, ordú folamh\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Atreoraíodh ionchur ó %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Atreoraíodh earráidí go %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, fuzzy, c-format
 msgid "Append output to %s\n"
 msgstr "Atreoraíodh aschur go %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Atreoraíodh aschur go %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "%s á rith ina áit\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Earráid le linn sceitheadh, %d\n"
@@ -2287,6 +2281,9 @@ msgstr ""
 #~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
 #~ msgstr "theip ar process_easy(); níor tosaíodh próiseas (e=%ld)\n"
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "earráid inmheánach: roghanna --jobserver-fds iomadúla"
+
 #~ msgid ""
 #~ "%sThis is free software; see the source for copying conditions.\n"
 #~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
@@ -2297,6 +2294,12 @@ msgstr ""
 #~ "ann\n"
 #~ "%sd'INDÍOLTACHT nó FEILIÚNACHT D'FHEIDHM AR LEITH.\n"
 
+#~ msgid "virtual memory exhausted"
+#~ msgstr "cuimhne fhíorúil ídithe"
+
+#~ msgid "write error"
+#~ msgstr "earráid sa scríobh"
+
 #~ msgid "extraneous `endef'"
 #~ msgstr "`endef' breise"
 
@@ -2315,3 +2318,6 @@ msgstr ""
 
 #~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
 #~ msgstr "-rabhadh, fágfaidh CTRL-Y fo-phróisis gan ghlanadh.\n"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "RM INSUITE %s\n"
index 793358c829fa84c84303638677f9811bf87bd537..209a1a4a1016e5bfebcf342909e2cdf108db059c 100644 (file)
Binary files a/po/gl.gmo and b/po/gl.gmo differ
index 335dd64ee3735f6ca8374be2d8de8c7a7d04d52e..254e2a5a79162b6744e83175a80dc4e2e79a1fc4 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.82\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2012-11-12 16:40+0100\n"
 "Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -52,52 +52,52 @@ msgstr "touch: O membro «%s» non existe en «%s»"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: Código de retorno incorrecto de ar_member_touch en «%s»"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "a chamada a lbr$set_module() fallou ao extraer a información do módulo, "
 "estado = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "a chamada a lbr$ini_control() fallou con estado = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "non é posíbel abrir a biblioteca «%s» para buscar o membro «%s»"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Membro «%s»%s: %ld bytes en %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (o nome pode quedar truncado)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Data %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, modo = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Interrompido.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] O membro do arquivo «%s» pode non ser correcto; non eliminado"
@@ -107,25 +107,25 @@ msgstr "*** [%s] O membro do arquivo «%s» pode non ser correcto; non eliminado
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** O membro do arquivo «%s» pode non ser correcto; non eliminado"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Eliminando o ficheiro «%s»"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Eliminando o ficheiro «%s»"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr ""
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (incorporadas):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (desde «%s», liña %lu):\n"
@@ -207,153 +207,153 @@ msgstr "A variábel recursiva «%s» fai referencia a si mesma (ao final)"
 msgid "unterminated variable reference"
 msgstr "referencia a variábel non rematada"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr ""
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "pero agora considérase que «%s» é o mesmo ficheiro que «%s»."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "non é posíbel renomear «%s» con dous puntos a «%s» con catro puntos"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "non é posíbel renomear «%s» con catro puntos a «%s» con dous puntos"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Eliminando o ficheiro intermedio «%s»"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Retirando os ficheiros intermedios...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Hora actual"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Marca de tempo fóra de rango; substituíndo %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Hora actual"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Non é un obxectivo:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Ficheiro precioso (prerrequisito de .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Obxectivo falso (prerrequisito de .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Obxectivo da liña de ordes."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Un ficheiro de make por defecto, MAKEFILES, ou -include/sinclude."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Non hai regras implícitas."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Fíxose a busca de regras implícitas."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Non se fixo a busca de regras implícitas."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Raíz do patrón implícito/estático: «%s»\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  O ficheiro é un prerrequisito intermedio."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Tamén se fai:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Nunca se comprobou o tempo de modificación."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  O ficheiro non existe."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  O ficheiro é moi antigo."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Última modificación: %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  O ficheiro foi actualizado."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  O ficheiro non foi actualizado."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr ""
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr ""
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Actualizado con éxito."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Ten que ser actualizado (-q está definido)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Produciuse un erro ao actualizar."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Valor non válido no membro «command_state»!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -361,7 +361,7 @@ msgstr ""
 "\n"
 "# Ficheiros"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -371,108 +371,108 @@ msgstr ""
 "# estatísticas da táboa hash de ficheiros:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "primeiro argumento da función «word» non numérico"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "o primeiro argumento da función «word» debe ser maior que 0"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "primeiro argumento da función «wordlist» non numérico"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "segundo argumento da función «wordlist» non numérico"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe(): a chamada a DuplicateHandle(In) fallou (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr ""
 "windows32_open_pipe(): a chamada a DuplicateHandle(Err) fallou (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "A chamada a CreatePipe() fallou (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): a chamada a process_init_fd() fallou\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Limpando o ficheiro de lotes temporal %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "erro de escritura: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "número de argumentos insuficiente (%d) na chamada á función «%s»"
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "non implementada nesta plataforma: función «%s»"
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "chamada á función «%s» non rematada: falta «%c»"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "número de argumentos insuficiente (%d) na chamada á función «%s»"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "número de argumentos insuficiente (%d) na chamada á función «%s»"
 
 #: getopt.c:659
@@ -530,12 +530,12 @@ msgstr "%s: a opción «-W %s» é ambigua\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: a opción «-W %s» non permite ningún argumento\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -618,97 +618,97 @@ msgstr "Buscando unha regra co ficheiro intermedio «%s».\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Non foi posíbel crear un ficheiro temporal\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (memoria envorcada)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (ignorado)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (incorporadas):"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Erro 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Erro %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Erro 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Agardando por traballos non rematados...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Proceso fillo vivo %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (remoto)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Colleitando o proceso fillo perdedor %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Colleitando o proceso fillo gañador %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Limpando o ficheiro de lotes temporal %s\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Limpando o ficheiro de lotes temporal %s\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Retirando o proceso fillo %p PID %s%s da cadea.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Liberouse un elemento para o proceso fillo %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr ""
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "produciuse un erro ao iniciar process_easy() o proceso (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -717,111 +717,111 @@ msgstr ""
 "\n"
 "Contáronse %d argumentos no inicio que fallou\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Poñendo o proceso fillo %p (%s) PID %s%s na cadea.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Obtívose un elemento para o proceso fillo %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "lectura da canalización de traballos"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: O arquivo «%s» non existe"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%sNon hai unha regra para facer o obxectivo «%s», que precisa «%s»%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "non é posíbel impoñer límites de carga neste sistema operativo"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "non é posíbel impoñer un límite de carga: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr ""
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr ""
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr ""
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 "make colleitou un proceso fillo de pid %s, aínda se agarda polo pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Orde non atopada"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Programa para o intérprete de ordes non atopado"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr ""
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "O valor de $SHELL cambiou (antes era «%s», agora é «%s»)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Creando un ficheiro por lotes temporal %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -832,50 +832,50 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Non se admiten os traballos en paralelo (-j) nesta plataforma."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opcións:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ignorado por compatibilidade.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 "  -B, --always-make           Facer todos os obxectivos incondicionalmente.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -883,19 +883,19 @@ msgstr ""
 "  -C DIRECTORIO, --directory=DIRECTORIO\n"
 "                              Cambiar ao DIRECTORIO antes de facer nada.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 "  -d                          Mostrar moita información de depuración.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=MODIFICADORES]     Mostrar varios tipos de información de "
 "depuración.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -904,12 +904,12 @@ msgstr ""
 "                              As variábei de ambiente substitúen aos "
 "makefiles.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -917,15 +917,15 @@ msgstr ""
 "  -f FICHEIRO, --file=FICHEIRO, --makefile=FICHEIRO\n"
 "                              Ler o FICHEIRO como makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Mostrar esta mensaxe e saír.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -934,7 +934,7 @@ msgstr ""
 "                              Buscar os makefiles incluídos\n"
 "                                 no DIRECTORIO.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -942,14 +942,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Permitir N traballos á vez; infinitos sen\n"
 "                                 un argumento.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Continuar cando no se poidan facer\n"
 "                                 algúns obxectivos.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -959,13 +959,13 @@ msgstr ""
 "                              Non iniciar varios traballos con carga\n"
 "                                superior a N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
 
-#: main.c:348
+#: main.c:349
 #, fuzzy
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
@@ -975,7 +975,7 @@ msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Non executar ningún comando; só amosalos.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -985,39 +985,39 @@ msgstr ""
 "                              Tratar o FICHEIRO como moi antigo e non "
 "refacelo.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 "  -p, --print-data-base       Mostrar a base de datos interna de make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Desactivar as regras implícitas incorporadas.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Desactivar os valores das variábeis "
 "incorporadas.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr ""
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1025,28 +1025,28 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Desactiva -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Tocar os obxectivos no canto de os refacer.\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr ""
 "  -d                          Mostrar moita información de depuración.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 "  -v, --version               Mostrar o número de versión de make e saír.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Mostrar o directorio actual.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1054,7 +1054,7 @@ msgstr ""
 "  --no-print-directory        Desactivar -w, incluso se se activou\n"
 "                                 implicitamente.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1063,7 +1063,7 @@ msgstr ""
 "new=FICHEIRO\n"
 "                              Tratar o FICHEIRO como infinitamente novo.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1071,32 +1071,27 @@ msgstr ""
 "  --warn-undefined-variables  Avisar cando se faga referencia a\n"
 "                                 unha variábel non definida.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "a cadea baleira non é válida como nome de ficheiro"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "especificación de nivel de depuración descoñecido «%s»"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "erro interno: opcións --jobserver-fds múltiples"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
 "%s: Atrapouse unha Interrupción/Excepción (código = 0x%lx, enderezo = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1111,71 +1106,67 @@ msgstr ""
 "ExceptionFlags = %lx\n"
 "ExceptionAddress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Violación de acceso: operación de escritura no enderezo 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Violación de acceso: operación de lectura no enderezo 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() definindo default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "A busca de rutas de find_and_set_shell() define default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s está suspendido durante 30 segundos..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "rematouse sleep(30). Continuando.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "erro interno: opcións --jobserver-fds múltiples"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "erro interno: cadea --jobserver-fds non válida «%s»"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "aviso: -jN forzado no submake: desactivando o modo de servidor de traballos."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup jobserver"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
@@ -1183,113 +1174,113 @@ msgstr ""
 "aviso: o servidor de traballos non está dispoñíbel: usando -j1. Engada «+» á "
 "regra do make pai."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "O ficheiro de make da entrada estándar especificouse dúas veces."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (ficheiro temporal)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (ficheiro temporal)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Non se admiten os traballos en paralelo (-j) nesta plataforma."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Reiniciando para entrar no modo de traballo único (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "creando a canalización de traballos"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "inicializar a canalización do servidor de traballos"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr ""
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Actualizando os ficheiros de make....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "O ficheiro de make «%s» podería causar un bucle; non se refai.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Produciuse un erro ao refacer o ficheiro de make «%s»."
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Non se atopou o ficheiro de make incluído «%s»."
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Non se atopou o ficheiro de make «%s»"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Non foi posíbel volver ao directorio orixinal."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Re-executando[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (ficheiro temporal)"
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ""
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Non se especificaron obxectivos e non se atopou un ficheiro de make"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Non hai obxectivos"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Actualizando os obxectivos meta....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "aviso: Detectáronse inconsistencias de reloxo. A operación pode quedar "
 "incompleta."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Uso: %s [opcións] [obxectivo] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1298,7 +1289,7 @@ msgstr ""
 "\n"
 "Este programa compilou para %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1307,34 +1298,34 @@ msgstr ""
 "\n"
 "Este programa compilou para %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Envíe informes de fallo no programa a <bug-make@gnu.org>.\n"
 "Envíe informes de fallo na tradución a <proxecto@trasno.net>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "a opción «%s%s» require un argumento de cadea non baleira"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "a opción «-%c» require un argumento integral positivo"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sCompilado para %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sCompilado para %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1347,7 +1338,7 @@ msgstr ""
 "%sIsto é software libre: pode modificalo e redistribuílo.\n"
 "%sNon hai NINGUNHA GARANTÍA, ata onde o permita a lei.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1356,7 +1347,7 @@ msgstr ""
 "\n"
 "# Base de datos de Make, imprimida en %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1370,10 +1361,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Erro %d descoñecido"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "memoria virtual esgotada"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1395,65 +1382,61 @@ msgstr "Acceso de make"
 msgid "Child access"
 msgstr "Acceso de fillo"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Entrando nun directorio descoñecido\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Saíndo dun directorio descoñecido\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Entrando no directorio «%s»\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Saíndo do directorio «%s»\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Entrando nun directorio descoñecido\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Saíndo dun directorio descoñecido\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Entrando no directorio «%s»\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Saíndo do directorio «%s»\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "erro de escritura: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "erro de escritura"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ". Detido.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1462,221 +1445,227 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Lendo os ficheiros de make...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Lendo o ficheiro de make «%s»"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (non hai unha meta por defecto)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (ruta de busca)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (non importa)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (non hai expansión de ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "sintaxe non válida no condicional"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr ""
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr ""
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "falta un separador%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (quixo dicir TAB no canto de 8 espazos?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "falta un separador%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "falta un patrón obxectivo"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "patróns de obxectivo múltiples"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "o patrón obxectivo non contén «%%»"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "falta «endif»"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "nome de variábel baleiro"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "texto superfluo trala directiva «define»"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "falta «endef», «define» sen rematar"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "Texto superfluo trala directiva «endef»"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Texto superfluo trala directiva «%s»"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "«%s» superfluo"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "só un «else» por condicional"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Definición dunha variábel por obxectivo mal formada"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr ""
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "regras de patrón implícitas e estáticas mesturadas"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "regras implícitas e normais mesturadas"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "o obxectivo «%s» non coincide co patrón do obxectivo"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "o ficheiro obxectivo «%s» ten entradas : e ::"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "o obxectivo «%s» aparece máis dunha vez na mesma regra."
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr ""
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr ""
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "regras implícitas e normais mesturadas"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "aviso: viuse un carácter NUL; ignórase o resto da liña"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Non hai nada que facer para «%s»"
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "«%s» está actualizado."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Podando o ficheiro «%s».\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sNon hai unha regra para facer o obxectivo «%s»%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sNon hai unha regra para facer o obxectivo «%s», que precisa «%s»%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sNon hai unha regra para facer o obxectivo «%s»%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Considerando o ficheiro obxectivo «%s».\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr ""
 "Hai pouco probouse a actualizar o ficheiro «%s» e non foi posíbel facelo.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "O ficheiro «%s» xa fora considerado.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Aínda se está actualizando o ficheiro «%s».\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Rematouse de actualizar o ficheiro «%s».\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "O ficheiro «%s» non existe.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1684,137 +1673,137 @@ msgstr ""
 "*** Aviso: o ficheiro «%s» de .LOW_RESOLUTION_TIME ten unha marca de tempo "
 "de alta resolución"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Atopouse unha regra implícita de «%s».\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Non se atopou unha regra implícita para «%s».\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Usando as ordes por defecto para «%s».\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "A dependencia circular %s <- %s foi eliminada."
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Rematáronse os prerrequisitos do ficheiro obxectivo «%s».\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Están a se facer os prerrequisitos de «%s».\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Abandonando no ficheiro obxectivo «%s».\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Non se refai o obxectivo «%s» a causa dos erros."
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "O prerrequisito «%s» é só-orde para o obxectivo «%s».\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "O prerrequisito «%s» do obxectivo «%s» non existe.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "O prerrequisito «%s» é máis novo que o obxectivo «%s».\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "O prerrequisito «%s» é máis vello que o obxectivo «%s».\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "O obxectivo «%s» ten catro puntos e non ten prerrequisitos.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Facendo «%s» debido á marca de sempre-facer.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Non é preciso refacer o obxectivo «%s»"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; usando o nome de VPATH «%s»"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Debe refacerse o obxectivo «%s».\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Ignorando o nome VPATH «%s».\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr ""
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Produciuse un erro ao refacer o ficheiro obxectivo «%s».\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "O ficheiro obxectivo «%s» foi feito de novo con éxito.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "O ficheiro obxectivo «%s» precisa refacerse con -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Usando as ordes por defecto para «%s».\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Aviso: O ficheiro «%s» ten un tempo de modificación no futuro"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Aviso: O ficheiro «%s» ten un tempo de modificación %s seg no futuro"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "O elemento de .LIBPATTERNS «%s» non é un patrón"
@@ -1824,7 +1813,7 @@ msgstr "O elemento de .LIBPATTERNS «%s» non é un patrón"
 msgid "Customs won't export: %s\n"
 msgstr "A Aduana non exporta: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1832,7 +1821,7 @@ msgstr ""
 "\n"
 "# Regras implícitas"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1840,7 +1829,7 @@ msgstr ""
 "\n"
 "# Non hai regras implícitas."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1849,11 +1838,11 @@ msgstr ""
 "\n"
 "# %u regras implícitas, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "FALLO: num_pattern_rules é incorrecto! %u != %u"
@@ -2063,45 +2052,45 @@ msgstr ""
 "# estatísticas da táboa hash de ficheiros:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automático"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "por defecto"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "ambiente"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "ficheiro de make"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "ambiente baixo -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "liña de ordes"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "directiva «override»"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (desde «%s», liña %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# estatísticas da táboa hash de conxunto de variábeis:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2109,7 +2098,7 @@ msgstr ""
 "\n"
 "# Variábeis\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2117,7 +2106,7 @@ msgstr ""
 "\n"
 "# Valores de variábeis específicas do patrón"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2125,7 +2114,7 @@ msgstr ""
 "\n"
 "# Non hai valores específicos do patrón."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2144,77 +2133,82 @@ msgstr "aviso: variábel non definida «%.*s»"
 msgid "sys$search() failed with %d\n"
 msgstr "a chamada a sys$search() fallou con %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Aviso: Redirección baleira\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "erro interno: «%s» command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr "-aviso, pode que teña que reactivar o manexo de CTRL-Y desde o DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BUILTIN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "BUILTIN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Orde incorporada descoñecida «%s»\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Erro, orde baleira\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Entrada redirixida desde %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Erros redirixidos a %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr ""
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Saída redirixida a %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Executando %s no canto\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Erro ao lanzar, %d\n"
@@ -2270,6 +2264,15 @@ msgstr ""
 #~ msgid "[%s] Error %d (ignored)"
 #~ msgstr "[%s] Erro %d (ignorado)"
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "erro interno: opcións --jobserver-fds múltiples"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "memoria virtual esgotada"
+
+#~ msgid "write error"
+#~ msgstr "erro de escritura"
+
 #~ msgid ""
 #~ "\n"
 #~ "# strcache hash-table stats:\n"
@@ -2279,6 +2282,9 @@ msgstr ""
 #~ "# estatísticas da táboa hash strcache:\n"
 #~ "# "
 
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "BUILTIN RM %s\n"
+
 #~ msgid "create_child_process: DuplicateHandle(In) failed (e=%d)\n"
 #~ msgstr ""
 #~ "create_child_process: a chamada a DuplicateHandle(In) fallou (e=%d)\n"
index 64f36030fcd8f7c9cf339434d455361ec883b054..06035098ce5783e6aeb6f7d49cb99b1e394e1396 100644 (file)
Binary files a/po/he.gmo and b/po/he.gmo differ
index 57116c83e1989a76e48e2875ffee26751febe69a..0de9871bf4c60cf1e24223a83c0183cea0453eef 100644 (file)
--- a/po/he.po
+++ b/po/he.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.79.1\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2002-03-30 21:33+0300\n"
 "Last-Translator: Eli Zaretskii <eliz@gnu.org>\n"
 "Language-Team: Hebrew <eliz@gnu.org>\n"
@@ -44,51 +44,51 @@ msgstr "`%s' 
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "`%s' øåáò ïé÷ú-àì ãå÷ äøéæçä ar_member_touch :touch"
 
-#: arscan.c:67
+#: arscan.c:124
 #, fuzzy, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "%d ñåèèñ ,lib$rset_module é\"ò ìåãåî ìò òãéî úôéìùá ïåìùë"
 
-#: arscan.c:173
+#: arscan.c:230
 #, fuzzy, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "%d ñåèèñ íò ìùëð lbr$ini_control"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "(`%s' äéøôñ) `%s' øáà øåáò äéøôñ úçéúôá äì÷ú"
 
 #  These are not translated, since they belong to a test program.
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Member `%s'%s: %ld bytes at %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (name might be truncated)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Date %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Break. ***\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] ÷çîéé àì ;ïé÷ú-éúìá úåéäì ìåìò `%s' ïåéëøà øáà ***"
@@ -98,12 +98,12 @@ msgstr "*** [%s] 
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** ÷çîéé àì ;ïé÷ú-éúìá úåéäì ìåìò `%s' ïåéëøà øáà ***"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] `%s' õáå÷ ÷çåî ***"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** `%s' õáå÷ ÷çåî ***"
@@ -111,16 +111,16 @@ msgstr "*** `%s' 
 #  I decided to retain the English text of what Make prints under -p,
 #  since it is notoriously hard to get right in right-to-left languages,
 #  and because its primary use is for programmers who write Makefiles.
-#: commands.c:684
+#: commands.c:685
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  commands to execute"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (built-in):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (from `%s', line %lu):\n"
@@ -202,159 +202,159 @@ msgstr "(
 msgid "unterminated variable reference"
 msgstr "äëìäë úîééúñî äðéà äðúùîì äééðôä"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr ",`%s' õáå÷ øåáò úåãå÷ô åðúéð %s õáå÷á %lu äøåùá"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ",íéùøåôî-éúìá íéììëá ùåôéç é\"ò åàöîð `%s' õáå÷ øåáò úåãå÷ô"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr ".õáå÷ åúåàì äúò íéáùçð `%s' ïäå `%s' ïä íìåàå"
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ".`%s' øåáò åìà ìò úåôéãò `%s' øåáò úåãå÷ô"
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "`%s' íéããåá íééúåãå÷ðî `%s' íéìåôë íééúåãå÷ðì êåôäì ïúéð àì"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "`%s' íéìåôë íééúåãå÷ðî `%s' íéããåá íééúåãå÷ðì êåôäì ïúéð àì"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** `%s' íééðéá õáå÷ ÷çåî ***"
 
-#: file.c:400
+#: file.c:405
 #, fuzzy
 msgid "Removing intermediate files...\n"
 msgstr "*** `%s' íééðéá õáå÷ ÷çåî ***"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "úëøòî ïåòù"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "øúåîä íåçúì õåçî äðéäù ,%s ìù ïîæä úîéúç úà %s-á óéìçî"
 
-#: file.c:809
-msgid "Current time"
-msgstr "úëøòî ïåòù"
-
 #  See the comment above about translations of text printed under -p.
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Not a target:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Precious file (prerequisite of .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Phony target (prerequisite of .PHONY)."
 
-#: file.c:958
+#: file.c:964
 #, fuzzy
 msgid "#  Command line target."
 msgstr "#  Command-line target."
 
-#: file.c:960
+#: file.c:966
 #, fuzzy
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  A default or MAKEFILES makefile."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# No implicit rules."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Implicit rule search has been done."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Implicit rule search has not been done."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Implicit/static pattern stem: `%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  File is an intermediate prerequisite."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Also makes:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Modification time never checked."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  File does not exist."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  File is very old."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Last modified %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  File has been updated."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  File has not been updated."
 
-#: file.c:995
+#: file.c:1001
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Commands currently running (THIS IS A BUG)."
 
-#: file.c:998
+#: file.c:1004
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Dependencies commands running (THIS IS A BUG)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Successfully updated."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Needs to be updated (-q is set)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Failed to be updated."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Invalid value in `command_state' member!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -362,115 +362,115 @@ msgstr ""
 "\n"
 "# Files"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "øôñî åðéà `word' úééö÷ðåôì ïåùàø èðîåâøà"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "éáåéç úåéäì áééç `word' úééö÷ðåôì ïåùàø èðîåâøà"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "øôñî åðéà `wordlist' úééö÷ðåôì ïåùàø èðîåâøà"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "øôñî åðéà `wordlist' úééö÷ðåôì éðù èðîåâøà"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(In) failed (e=%d)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(Err) failed (e=%d)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, fuzzy, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() failed (e=%d)\n"
 
-#: function.c:1498
+#: function.c:1538
 #, fuzzy
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe (): process_init_fd() failed\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "`%s' éðîæ batch õáå÷ ÷ìñî\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr ""
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr ""
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "÷ôñî åðéàù (%d) íéèðîåâøà øôñî íò äàø÷ð `%s' äéö÷ðåô"
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "åæ úëøòîá úùîåîî äðéà `%s' äéö÷ðåô"
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "`%s' äéö÷ðåôì äàéø÷á `%c' øñç"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "÷ôñî åðéàù (%d) íéèðîåâøà øôñî íò äàø÷ð `%s' äéö÷ðåô"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "÷ôñî åðéàù (%d) íéèðîåâøà øôñî íò äàø÷ð `%s' äéö÷ðåô"
 
 #: getopt.c:659
@@ -528,12 +528,12 @@ msgstr "%s 
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `-W %s' ïééôàî\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -617,100 +617,100 @@ msgstr ".`%s' 
 msgid "Cannot create a temporary file\n"
 msgstr "fwrite (temporary file)"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (core õáå÷á íùøð ïåøëæä ïëåú)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] %d äì÷úî éúîìòúä"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (built-in):"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] 0x%x äì÷ú ***"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] %d äì÷ú"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] 0x%x äì÷ú ***"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr ""
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** ...åîééúñð íøèù úåãåáòì ïéúîî"
 
-#: job.c:639
+#: job.c:651
 #, fuzzy, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "äöø 0x%08lx (%s) PID=%ld %s úá-úéðëú\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr "(ú÷çåøî)"
 
-#: job.c:829
+#: job.c:841
 #, fuzzy, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "äìùëðù 0x%08lx PID=%ld %s úá-úéðëú óñåà\n"
 
-#: job.c:830
+#: job.c:842
 #, fuzzy, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "äçéìöäù 0x%08lx PID=%ld %s úá-úéðëú óñåà\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "`%s' éðîæ batch õáå÷ ÷ìñî\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "`%s' éðîæ batch õáå÷ ÷ìñî\n"
 
-#: job.c:949
+#: job.c:961
 #, fuzzy, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr ".úåãåáò úøùøùî 0x%08lx PID=%ld %s úá-úéðëú ÷éçøî\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, fuzzy, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr ".øøçåù 0x%08lx (%s) úá-úéðëú øåáò ïåîéñàä\n"
 
 #  Here and elsewhere leading strings passed to perror are not translated,
 #  since they will be followed by an error message in English.
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "write jobserver"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, fuzzy, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "(e=%d) úéðëú-úú øåâéùá ìùëð process_easy()\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -719,110 +719,110 @@ msgstr ""
 "\n"
 "ìùëðù øåâéùá åðîð íéèðîåâøà %d\n"
 
-#: job.c:1685
+#: job.c:1735
 #, fuzzy, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr ".úåãåáò úøùøùì 0x%08lx (%s) PID=%ld %s úá-úéðëú óøöî\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, fuzzy, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr ".0x%08lx (%s) úá-úéðëú øåáò ïåîéñà ìá÷úä\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "read jobs pipe"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "íéé÷ åðéà `%s' ïåéëøà õáå÷ :touch"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%säúééðáì íéììë ïéà êà ,`%s' úùøåã `%s'%s äøèî"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "åæ úëøòîá ñîåò úåìáâî úåôëì ïúéð àì"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "cannot enforce load limit: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr ""
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr ""
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr ""
 
-#: job.c:2365
+#: job.c:2420
 #, fuzzy, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "äôñàð pid %d úá-úéðëú ,pid %d-ì äëçî ïééãò\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "äàöîð àì åæ äãå÷ô :%s"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "äàöîð àì shell úãå÷ô :%s"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr ""
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "(`%s' äéä íãå÷ ,`%s' åéùëò) äðúùä $SHELL ìù åëøò"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "`%s' éðîæ batch õáå÷ øöåé\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -832,241 +832,236 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr ".åæ úëøòîá êîúð åðéà (-j) éìéá÷î òåöéá"
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "                                             :íéðééôàî\n"
 
-#: main.c:313
+#: main.c:314
 #, fuzzy
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "úåîéàú ïòîì èîùåî"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
 
-#: main.c:320
+#: main.c:321
 #, fuzzy
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "úåàéâù éåôéð úáåèì òãéî ìù òôù âöä"
 
-#: main.c:322
+#: main.c:323
 #, fuzzy
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr "úåàéâù éåôéð úáåèì òãéî ìù íéðåù íéâåñ âöä"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
 
-#: main.c:332
+#: main.c:333
 #, fuzzy
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "úéðëúäî àöå äæ äøæò êñî âöä"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
 
-#: main.c:339
+#: main.c:340
 #, fuzzy
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr "äìáâî ïéà èðîåâøà àìì ;úéðîæ-åá úåãåáò N-î øúåé àì"
 
-#: main.c:341
+#: main.c:342
 #, fuzzy
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr "äéðáì úåðúéð ïðéà úåøèîäî äîë íà åìéôà êùîä"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 #, fuzzy
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "Make ìù éîéðô íéðåúð ñéñá âöä"
 
-#: main.c:359
+#: main.c:360
 #, fuzzy
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr "úðëãåòî äøèî íàá øîåà äàéöé ãå÷ ;úåãå÷ô õéøú ìà"
 
-#: main.c:361
+#: main.c:362
 #, fuzzy
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr "íéùøåôî-éúìá íéðáåî íéììë ìøèð"
 
-#: main.c:363
+#: main.c:364
 #, fuzzy
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr "íéðúùî ìù úåðáåî úåøãâä ìøèð"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr ""
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
 
-#: main.c:370
+#: main.c:371
 #, fuzzy
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr "ïúåðáì íå÷îá úåøèî ìù ïîæ úîéúç ïëãò"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr ""
 
-#: main.c:374
+#: main.c:375
 #, fuzzy
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "úéðëúäî àöå Make ìù àñøéâ øôñî âöä"
 
-#: main.c:376
+#: main.c:377
 #, fuzzy
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "úéçëåð äé÷éú íù âöä"
 
-#: main.c:378
+#: main.c:379
 #, fuzzy
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr "ùøåôîá ïéåö àåä íà åìéôà -w ìèá"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
 
-#: main.c:383
+#: main.c:384
 #, fuzzy
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr "øãâåä àìù äðúùîì äééðôä äø÷îá äøäæà âöä"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "õáå÷ íùë úìá÷úî äðéà ä÷éø úæåøçî"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "úåàéâù éåôéðì òãéî ìù `%s' øëåî-éúìá ïééôàî"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "íéáåøî --jobserver-fds éðééôàî :úéîéðô äðëú úì÷ú"
-
-#: main.c:848
+#: main.c:828
 #, fuzzy, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s úéðëúá (code = 0x%x, addr = 0x%x) äâéøç åà ä÷éñô\n"
 
-#: main.c:855
+#: main.c:835
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -1081,224 +1076,220 @@ msgstr ""
 "ExceptionFlags = %x\n"
 "ExceptionAddress = %x\n"
 
-#: main.c:863
+#: main.c:843
 #, fuzzy, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "%x úáåúëì äáéúë :ïåøëæì äùéâ úì÷ú\n"
 
-#: main.c:864
+#: main.c:844
 #, fuzzy, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "%x úáåúëî äàéø÷ :ïåøëæì äùéâ úì÷ú\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, fuzzy, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell setting default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, fuzzy, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell path search set default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr ".úåéðù 30 ìù %s úééäùä"
 
 #  Pay attention: this is written to the _right_ of the previous string,
 #  but should look like a single sentence together with it.
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr " äîééúñð\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "íéáåøî --jobserver-fds éðééôàî :úéîéðô äðëú úì÷ú"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "--jobserver-fds ïééôàîá `%s' äéåâù úæåøçî :úéîéðô äðëú úì÷ú"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "jobserver ïôåà ìèáî ;-jN áééçî Make-úú :äøäæà"
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup jobserver"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 ".Make ìù áàä ììëì `+' óñåä .-j1-á ùåîéù äùòéé ;ïéîæ åðéà jobserver :äøäæà"
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr ".úçà íòôî øúåé ïúéð éð÷ú èì÷ õåøòî Makefile"
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (temporary file)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (temporary file)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr ".åæ úëøòîá êîúð åðéà (-j) éìéá÷î òåöéá"
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr ".(-j1) éúøãñ ïôåàá åòöåáé úåãå÷ô"
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "creating jobs pipe"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "init jobserver pipe"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr ""
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "...makefile éöá÷ ïëãòî\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ".ùãçî åøöééìî òðîð ;úéôåñðéà äàìåì øåöéì ìåìò `%s' Makefile\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr ".`%s' makefile ìù ùãçî-äøéöéá äì÷ú"
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr ".àöîð àì `%s' ììëåî makefile"
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "àöîð àì `%s' Makefile"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr ".úéøå÷îä äé÷éúì øåæçì ïúéð àì"
 
-#: main.c:2354
+#: main.c:2343
 #, fuzzy, c-format
 msgid "Re-executing[%u]:"
 msgstr "Re-executing:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (temporary file): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ""
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "makefile éöá÷ åàöîð àìå úåøèî ïåéö ïéà"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "úåøèî ïéà"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "...ãòé úåøèî ïëãòî\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ".äîìù àì úåéäì äìåìò äéðáä .ïåòù úùéìâ äúìâúð :úåøéäæ"
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "%s [íéðééôàî] [äøèî] ...  :ùåîéù ïôåà\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
 "This program built for %s\n"
 msgstr ""
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
 "This program built for %s (%s)\n"
 msgstr ""
 
-#: main.c:2729
+#: main.c:2721
 #, fuzzy, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "\n"
 ".<bug-make@gnu.org>-ì äì÷ú éçååéã çåìùì àð\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "éáåéçå íìù èðîåâøà áééçî `-%c' ïééôàî"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "éáåéçå íìù èðîåâøà áééçî `-%c' ïééôàî"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1307,7 +1298,7 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1316,7 +1307,7 @@ msgstr ""
 "\n"
 "# Make data base, printed on %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1330,10 +1321,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Unknown error %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "éìàåèøéåä ïåøëæä øîâð"
-
 #: misc.c:522
 #, fuzzy, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1356,68 +1343,60 @@ msgstr ""
 msgid "Child access"
 msgstr ""
 
-#: output.c:128
+#: output.c:104
 #, fuzzy, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "an unknown directory"
 
-#: output.c:130
+#: output.c:106
 #, fuzzy, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "an unknown directory"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "directory `%s'\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "directory `%s'\n"
 
-#: output.c:139
+#: output.c:115
 #, fuzzy, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "an unknown directory"
 
-#: output.c:141
+#: output.c:117
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "an unknown directory"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr ""
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "directory `%s'\n"
 
-#: output.c:515
-#, fuzzy, c-format
-msgid "write error: %s"
-msgstr "%s-ì úåàéâù úééðôä\n"
-
-#  Here and elsewhere leading strings passed to perror are not translated,
-#  since they will be followed by an error message in English.
-#: output.c:517
-#, fuzzy
-msgid "write error"
-msgstr "write jobserver"
+#: output.c:495 output.c:497
+msgid "write error: stdout"
+msgstr ""
 
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Stop.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr ""
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr ""
@@ -1426,359 +1405,365 @@ msgstr ""
 msgid "Reading makefiles...\n"
 msgstr "...makefile éöá÷ àøå÷\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Reading makefile `%s'"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (no default goal)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (search path)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (don't care)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (no ~ expansion)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "éàðú ìù éåâù øéáçú"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 #, fuzzy
 msgid "recipe commences before first target"
 msgstr "äðåùàø äøèî éðôì úåìéçúî úåãå÷ô"
 
-#: read.c:1036
+#: read.c:1041
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "ïäéðôì ììë àìì úåãå÷ô"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "%sãéøôî øñç"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr "(?íéçååø 8 íå÷îá TAB-ì úðååëúä íàä) "
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "%sãéøôî øñç"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "äøèî úéðáú ïéà"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "úåáåøî äøèî úåéðáú"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "`%%' àìì äøèî úéðáú"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "øñç `endif'"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "÷éø äðúùî íù"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "`endef' úàøåä éøçà øúåéî èñ÷è"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "íåéñ àìì `define' úàøåä ,øñç `endef'"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "`endef' úàøåä éøçà øúåéî èñ÷è"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "`%s' úàøåä éøçà øúåéî èñ÷è"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "øúåéî `%s'"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "éàðú ìëì ãéçé `else' ÷ø øúåî"
 
-#: read.c:1892
+#: read.c:1899
 #, fuzzy
 msgid "Malformed target-specific variable definition"
 msgstr "äøèîì éôéöôñ äðúùî ìù äéåâù äøãâä"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr ""
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "íéùøåôî-éúìáå íééèèñ úéðáú éììë ìù áåáøò"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "íéùøåôî-éúìáå íéìéâø íéììë ìù áåáøò"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "ãòéä úéðáú úà úîàåú äðéà `%s' äøèî"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr ":: ïäå : âåñî ïä íéììë ùé `%s' äøèî õáå÷ì"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr ".ììë åúåàá úçà íòôî øúåé äòéôåî `%s' äøèî"
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "`%s' äøèî øåáò úåãå÷ô ñøåã :úåøéäæ"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "`%s' äøèî øåáò úåîãå÷ úåãå÷ôî íìòúî :úåøéäæ"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "íéùøåôî-éúìáå íéìéâø íéììë ìù áåáøò"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "äçðæð äøåùä úøúé ;NUL åú éúùâô :äøäæà"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr ".`%s øåáò úåùòì äî ïéà"
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr ".éðëãò øáë `%s'"
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr ".`%s' øåáò úåéåìú óøâ õö÷î\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%s`%s'%s äøèî úééðáì íéììë ïéà"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%säúééðáì íéììë ïéà êà ,`%s' úùøåã `%s'%s äøèî"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%s`%s'%s äøèî úééðáì íéììë ïéà"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr ".`%s' äøèî õáå÷ ïçåá\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr ".`%s' õáå÷ ïåëãòá éúìùëðå éúéñéð ïîæî àì\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr ".ïë-éðôì ïçáð øáë `%s' õáå÷\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr ".`%s' õáå÷ ïëãòî ïééãò\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr ".`%s' õáå÷ ïëãòì éúîééñ\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr ".íéé÷ åðéà `%s' õáå÷\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr ".`%s' øåáò ùøåôî-éúìá ììë éúàöî\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr ".`%s' øåáò íéùøåôî-éúìá íéììë åàöîð àì\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr ".`%s' øåáò ìãçî úøéøá úåãå÷ôá ùîúùî\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr ".%s <- %s úéìâòî ìåìú èéîùî"
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr ".`%s' äøèî õáå÷ ìù íã÷-úåùéøã íò éúîééñ\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr ".äéðáá `%s' ìù íã÷ä úåùéøã\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr ".`%s' äøèî õáå÷ éáâì íééãé éúîøä\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr ".úåàéâù á÷ò ùãçî äúðáð àì `%s' äøèî"
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr ".`%s' íã÷ä úùéøãî äùãç `%s' äøèî\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr ".íéé÷ åðéàù `%s' éàðúë úùøåã `%s' äøèî\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr ".`%s' íã÷ä úùéøãî äðùé `%s' äøèî\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr ".`%s' íã÷ä úùéøãî äùãç `%s' äøèî\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ".íã÷ úåùéøã àììå íéìåôë íééúåãå÷ð íò äðéä `%s' äøèî\n"
 
-#: remake.c:769
+#: remake.c:790
 #, fuzzy, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ".äùòîì äúðúùä àì íã÷ úùéøã óàå `%s' øåáò úåãå÷ô ïéà\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr ""
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "`%s' äøèî ùãçî úåðáì êøåö ïéà"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr " (`%s' :VPATH õáå÷ íù)"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr ".`%s' äøèî ùãçî úåðáì áééç\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  .`%s' VPATH íùî íìòúî\n"
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr ".`%s' øåáò úåãå÷ô õéøî\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr ".ùãçî `%s' úåðáì ïåéñð ìùëð\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr ".`%s' ùãçî úééðáá äçìöä\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr ".-q íò úåðáéäì êéøö `%s' äøèî õáå÷\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr ".`%s' øåáò ìãçî úøéøá úåãå÷ôá ùîúùî\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "*** `%s' õáå÷ øåáò (%s > %s) ãéúòá åðéä ïåøçà éåðéù ïîæ :äøäæà ***"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "*** `%s' õáå÷ øåáò (%s > %s) ãéúòá åðéä ïåøçà éåðéù ïîæ :äøäæà ***"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "úéðáú åðéà .LIBPATTERNS ìù `%s' èðîìà"
@@ -1788,7 +1773,7 @@ msgstr "
 msgid "Customs won't export: %s\n"
 msgstr "%s àöééî åðéà Customs\n"
 
-#: rule.c:496
+#: rule.c:495
 #, fuzzy
 msgid ""
 "\n"
@@ -1797,7 +1782,7 @@ msgstr ""
 "\n"
 "# No implicit rules."
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1805,7 +1790,7 @@ msgstr ""
 "\n"
 "# No implicit rules."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1814,11 +1799,11 @@ msgstr ""
 "\n"
 "# %u implicit rules, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-#: rule.c:531
+#: rule.c:530
 #, fuzzy, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "BUG: num_pattern_rules wrong!  %u != %u"
@@ -2025,47 +2010,47 @@ msgid ""
 "# "
 msgstr ""
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatic"
 
 #  These are printed under -p, so they are left in English.
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "default"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "environment"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "environment under -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "command line"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "`override' directive"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (from `%s', line %lu):\n"
 
-#: variable.c:1699
+#: variable.c:1691
 #, fuzzy
 msgid "# variable set hash-table stats:\n"
 msgstr "# %u variables in %u hash buckets.\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2073,7 +2058,7 @@ msgstr ""
 "\n"
 "# Variables\n"
 
-#: variable.c:1714
+#: variable.c:1706
 #, fuzzy
 msgid ""
 "\n"
@@ -2082,7 +2067,7 @@ msgstr ""
 "\n"
 "# Pattern-specific variable values"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2090,7 +2075,7 @@ msgstr ""
 "\n"
 "# No pattern-specific variable values."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2109,77 +2094,82 @@ msgstr "`%.*s' 
 msgid "sys$search() failed with %d\n"
 msgstr "%d íò ìùëð sys$search\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "ä÷éø äééðôä :úåøéäæ\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "command_state `%s' :úéîéðô äðëú úì÷ú"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ".DCL-î CTRL-Y-á ìåôéè øåùôéàá êøåö úåéäì ìåìò :úåøéäæ\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BUILTIN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "BUILTIN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "úøëåî äðéà '%s'úéðáåî äãå÷ô\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "ä÷éø äãå÷ô :äì÷ú\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "%s-î èì÷ úééðôä\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "%s-ì úåàéâù úééðôä\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, fuzzy, c-format
 msgid "Append output to %s\n"
 msgstr "%s-ì èìô úééðôä\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "%s-ì èìô úééðôä\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "%s õéøî úàæ íå÷îá\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "%d :úá-úéðëú úìòôäá äì÷ú\n"
@@ -2258,6 +2248,9 @@ msgstr ""
 #~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
 #~ msgstr ".úåìéòô úá-úåéðëú øéàùäì ìåìò CTRL-Y :úåøéäæ\n"
 
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "BUILTIN RM %s\n"
+
 #~ msgid "DIRECTORY"
 #~ msgstr "DIRECTORY"
 
@@ -2309,6 +2302,9 @@ msgstr ""
 #~ msgid "Resetting make for single job mode."
 #~ msgstr ".éúøãñ ïôåàá åòöåáé úåãå÷ô"
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "íéáåøî --jobserver-fds éðééôàî :úéîéðô äðëú úì÷ú"
+
 #~ msgid ""
 #~ ", by Richard Stallman and Roland McGrath.\n"
 #~ "%sBuilt for %s\n"
@@ -2338,6 +2334,9 @@ msgstr ""
 #~ msgid "Leaving"
 #~ msgstr "Leaving"
 
+#~ msgid "virtual memory exhausted"
+#~ msgstr "éìàåèøéåä ïåøëæä øîâð"
+
 #~ msgid "extraneous `endef'"
 #~ msgstr "øúåéî `endef'"
 
index 33ffdae19c7bd35b6bcbc3b4934787b063227251..6340916738d41dfcd42d1a5ae66f441ac1407d42 100644 (file)
Binary files a/po/hr.gmo and b/po/hr.gmo differ
index 5ae7169fe2c391ec2e241af17c0dfde64c480a5c..36db5984ac234b078dde04f3b24b7d10190e81fa 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.82\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2012-10-31 17:32+0100\n"
 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -48,50 +48,50 @@ msgstr "touch: Element „%s” ne postoji u „%s”"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: Neispravan povratni kod iz ar_member_touch na „%s”"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module() nije izdvojio informacije o modulu, status = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() nije uspio sa stanjem = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "ne mogu otvoriti biblioteku „%s” za traženje elementa „%s”"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "član „%s”%s: %ld bajtova na %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (ime je možda odsječeno)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Datum %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mod = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Prekid.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Element arhive „%s” je možda lažan; nije izbrisan"
@@ -101,25 +101,25 @@ msgstr "*** [%s] Element arhive „%s” je možda lažan; nije izbrisan"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Element arhive „%s” je možda lažan; nije izbrisan"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Brišem datoteku „%s”"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Brišem datoteku „%s”"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  recept za izvršavanje"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (ugrađeno):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (iz „%s”, redak %lu):\n"
@@ -201,153 +201,153 @@ msgstr "Rekurzivna varijabla „%s” pokazuje (na kraju) na sebe"
 msgid "unterminated variable reference"
 msgstr "nedovršena referenca na varijablu"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Naveden je recept za datoteku „%s” na %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Recept za datoteku „%s” nađen je implicitnim pretraživanjem propisa,"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "ali se „%s” sada smatra istom datotekom kao i „%s”."
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Recept za „%s” će se zanemariti u korist onog za „%s”."
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "ne mogu preimenovati „%s” s jednim dvotočjem u „%s” s dva dvotočja"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "ne mogu preimenovati „%s” s dva dvotočja u „%s” s jednim dvotočjem"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Brišem posrednu datoteku „%s”"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Uklanjam posredne datoteke...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Trenutno vrijeme"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Vremenska oznaka izvan granica; zamjenjujem s %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Trenutno vrijeme"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Nije meta:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Vrijedna datoteka (preduvjet mete .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Lažna meta (preduvjet mete .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Meta naredbenog retka."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Zadana, MAKEFILES ili -include/sinclude datoteka izrade."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Nema implicitnih propisa."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#   Implicitna pretraga propisa je izvršena."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Implicitna pretraga propisa nije izvršena."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Korijen implicitnog/statičkog uzorka: „%s”\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Datoteka je posredni preduvjet."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Također napravi:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Vrijeme promjene nikada nije provjereno."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Datoteka ne postoji."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Datoteka je vrlo stara."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Zadnja promjena %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Datoteka je ažurirana."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Datoteka nije ažurirana."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Recept koji se trenutno izvršava (OVO JE BUG)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Recept ovisnosti koji se izvršava (OVO JE BUG)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Uspješno ažuriran."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Treba ga ažurirati (-q je postavljen)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Nije ažuriran."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Neispravna vrijednost u elementu „command_state”!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -355,7 +355,7 @@ msgstr ""
 "\n"
 "# Datoteke"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -365,107 +365,107 @@ msgstr ""
 "# statistike tablice raspršivanja datoteka:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "prvi argument funkcije „word” nije broj"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "prvi argument funkcije „word” mora biti veći od 0"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "drugi argument funkcije „wordlist” nije broj"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "drugi argument funkcije „wordlist” nije broj"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe(): DuplicateHandle(In) nije uspio (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_open_pipe(): DuplicateHandle(Err) nije uspio (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() nije uspio (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() nije uspio\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Čistim privremenu skupnu datoteku %s.\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "greška pisanja: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "nedovoljan broj argumenata (%d) funkciji „%s”"
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "neimplementirano na ovoj platformi: funkcija „%s”"
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "nedovršen poziv funkciji „%s”: nedostaje „%c”"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "nedovoljan broj argumenata (%d) funkciji „%s”"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "nedovoljan broj argumenata (%d) funkciji „%s”"
 
 #: getopt.c:659
@@ -523,12 +523,12 @@ msgstr "%s: opcija „-W %s” je višeznačna\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opcija „-W %s” ne dozvoljava argument\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -612,99 +612,99 @@ msgstr "Tražim propis s posrednom datotekom „%s”.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Ne mogu napraviti privremenu datoteku\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (jezgra izbačena)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] Greška %d (zanemarena)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (ugrađeno):"
 
-#: job.c:501
+#: job.c:503
 #, fuzzy, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "upozorenje: poništavam recept za metu „%s”"
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Greška 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Greška %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Greška 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Čekam nedovršene poslove...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Živo dijete %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (udaljen)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Skupljam neuspješno dijete %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Skupljam uspješno dijete %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Čistim privremenu skupnu datoteku %s\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Čistim privremenu skupnu datoteku %s\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Uklanjam dijete %p PID %s%s iz lanca.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Ispušten simbol za dijete %p (%s).\n"
 
 # Što bi ovdje trebalo ići?
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "poslužitelj poslova pisanja"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() nije uspio pokrenuti proces (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -713,104 +713,104 @@ msgstr ""
 "\n"
 "Izbrojeno %d argumenata u neuspjelom pokretanju\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Smještam dijete %p (%s) PID %s%s u lanac.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Preuzet simbol za dijete %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "cjevovod poslova čitanja"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: Arhiva „%s” ne postoji"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%sNema propisa za izradu mete „%s”, koji traži „%s”%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 "ne mogu silom primijeniti ograničenje opterećenja na ovom operacijskom "
 "sustavu"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "ne mogu silom primijeniti ograničenje opterećenja: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 "nema više upravljača datotekama: ne mogu udvostručiti standardni ulaz\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 "nema više upravljača datotekama: ne mogu udvostručiti standardni izlaz\n"
 
-#: job.c:2223
+#: job.c:2278
 #, fuzzy
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 "nema više upravljača datotekama: ne mogu udvostručiti standardni ulaz\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Ne mogu obnoviti standardni ulaz\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Ne mogu obnoviti standardni izlaz\n"
 
-#: job.c:2254
+#: job.c:2309
 #, fuzzy
 msgid "Could not restore stderr\n"
 msgstr "Ne mogu obnoviti standardni ulaz\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make je skupio dijete pid %s, još uvijek čeka pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Naredba nije pronađena"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Program ljuske nije pronađen"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: prostor okoline je možda iscrpljen"
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL se promijenio (prije „%s”, sada „%s”)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Stvaram privremenu skupnu datoteku %s\n"
 
-#: job.c:3148
+#: job.c:3206
 #, fuzzy
 msgid ""
 "Batch file contents:\n"
@@ -819,7 +819,7 @@ msgstr ""
 "Sadržaj skupne datoteke:%s\n"
 "\t%s\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -828,7 +828,7 @@ msgstr ""
 "Sadržaj skupne datoteke:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -838,49 +838,49 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Paralelni poslovi (-j) nisu podržani na ovoj platformi."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opcije:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Zanemareno zbog kompatibilnosti.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Bezuvjetno izradi sve mete.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -888,18 +888,18 @@ msgstr ""
 "  -C DIREKTORIJ, --directory=DIREKTORIJ\n"
 "                              Prijeđi u DIREKTORIJ prije početka rada.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Ispiši puno podataka za debugiranje.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=ZASTAVICE]         Ispiši razne vrste informacija za "
 "debugiranje.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -908,14 +908,14 @@ msgstr ""
 "                              Varijable okoline imaju veću važnost od\n"
 "                              datoteka izrade.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=NIZ                  Postupaj s NIZOM kao naredbom datoteke "
 "izrade.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -923,15 +923,15 @@ msgstr ""
 "  -f DATOTEKA, --file=DATOTEKA, --makefile=DATOTEKA\n"
 "                              Pročitaj DATOTEKU kao datoteku izrade.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Ispiši ovu poruku i izađi.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Zanemari greške iz recepata.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -940,7 +940,7 @@ msgstr ""
 "                              Traži u DIREKTORIJU uključene datoteke "
 "izrade.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -948,14 +948,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Dozvoli N istovremenih poslova; bez argumenta\n"
 "                              ih dozvoli beskonačno.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Nastavi s radom ako se neke mete ne mogu "
 "izraditi.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -965,7 +965,7 @@ msgstr ""
 "                              Ne pokreći višestruke poslove, osim ako je\n"
 "                              opterećenje ispod N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -973,7 +973,7 @@ msgstr ""
 "  -L, --check-symlink-times   Koristi posljednji mtime između simboličkih "
 "veza i mete.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -983,7 +983,7 @@ msgstr ""
 "                              Nemoj zapravo pokrenuti nijedan recept,\n"
 "                              samo ih ispiši.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -993,17 +993,17 @@ msgstr ""
 "                              Smatraj da je DATOTEKA vrlo stara i nemoj ju\n"
 "                              ponovo napraviti.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Ispiši „make” internu bazu podataka.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1011,20 +1011,20 @@ msgstr ""
 "  -q, --question              Ne pokreći recepte; izlazno stanje označava\n"
 "                              je li sve ažurirano.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr "  -r, --no-builtin-rules      Onemogući ugrađene implicitne propise.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Onemogući ugrađene vrijednosti varijabli.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Ne ispisuj recepte.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1032,27 +1032,27 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Isključuje -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Umjesto ponovne izrade dodirni izgrađene "
 "mete.\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  -d                          Ispiši puno podataka za debugiranje.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Ispiši „make” broj inačice i izađi.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Ispiši trenutni direktorij.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1060,7 +1060,7 @@ msgstr ""
 "  --no-print-directory        Isključi -w, čak i ako je implicitno "
 "uključen.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1069,7 +1069,7 @@ msgstr ""
 "  --assume-new=DATOTEKA\n"
 "                              Smatraj DATOTEKU beskonačno novom.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1077,31 +1077,26 @@ msgstr ""
 "  --warn-undefined-variables  Upozori pri referenciranju nedefinirane "
 "varijable.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "prazan niz nije ispravan naziv datoteke"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "nepoznata oznaka razine debugiranja „%s”"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "interna greška: višestruko pojavljivanje opcije --jobserver-fds"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Uhvaćen prekid/iznimka (kod = 0x%lx, adr = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1116,73 +1111,69 @@ msgstr ""
 "ExceptionFlags = %lx\n"
 "ExceptionAddress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Pristupni prekršaj: operacija pisanja na adresi 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Pristupni prekršaj: operacija čitanja na adresi 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() postavlja default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell() pretraga putanje postavlja default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s se zaustavlja na 30 sekundi..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "gotov sa sleep(30).  Nastavljam.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "interna greška: višestruko pojavljivanje opcije --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, fuzzy, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Klijent poslužitelja poslova (fds %d,%d)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "interna greška: neispravan --jobserver-fds niz „%s”"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Klijent poslužitelja poslova (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "upozorenje: pod-make prisilno postavlja -jN: onemogućujem poslužitelj "
 "poslova."
 
 # Treba li ovo prevesti?
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup poslužitelj poslova"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
@@ -1190,112 +1181,112 @@ msgstr ""
 "upozorenje: poslužitelj poslova nedostupan: koristim -j1.  Dodaj `+' na "
 "roditeljev propis izrade."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Datoteka izrade sa standardnog ulaza navedena dvaput."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (privremena datoteka)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (privremena datoteka)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Paralelni poslovi (-j) nisu podržani na ovoj platformi."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Vraćam način rada s jednim poslom (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, fuzzy, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Klijent poslužitelja poslova (fds %d,%d)\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "stvaram cjevovod poslova"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "inicijaliziraj cjevovod poslužitelja poslova"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Simboličke veze nisu podržane: onemogućujem -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Ažuriram datoteke izrade....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Datoteka izrade „%s” bi mogla ući u petlju; ne izgrađujem ponovo.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Nisam uspio ponovo izgraditi datoteku izrade „%s”."
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Uključeni datoteka izrade „%s” nije pronađena."
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Datoteka izrade „%s” nije pronađena"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Ne mogu se vratiti u izvorni direktorij."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Ponovo izvršavam[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (privremena datoteka): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL sadrži više od jedne mete"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Nijedna meta nije navedena, niti je pronađena ijedna datoteka izrade"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Nema meta"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Ažuriram ciljne mete....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "upozorenje: Uočena je nepravilnost sata.  Izgradnja bi mogla biti nedovršena."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Uporaba: %s [opcije] [meta] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1304,7 +1295,7 @@ msgstr ""
 "\n"
 "Program izgrađen za %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1313,32 +1304,32 @@ msgstr ""
 "\n"
 "Program izgrađen za %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Prijavite greške na <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "opcija „%s%s” zahtijeva neprazan znakovni niz kao argument"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "opcija „-%c” zahtijeva pozitivan cjelobrojni argument"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sIzgrađen za %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sIzgrađen za %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1351,7 +1342,7 @@ msgstr ""
 "%sOvo je slobodan softver: slobodno ga smijete mijenjati i dijeliti.\n"
 "%sNEMA JAMSTAVA, do krajnje mjere dozvoljene zakonom.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1360,7 +1351,7 @@ msgstr ""
 "\n"
 "# Make baza podataka, ispisana na %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1374,10 +1365,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Nepoznata greška %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "virtualna memorija iscrpljena"
-
 # Da prevedem ovo?
 #: misc.c:522
 #, c-format
@@ -1400,66 +1387,61 @@ msgstr "Make pristup"
 msgid "Child access"
 msgstr "Pristup djeteta"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Ulazim u nepoznat direktorij\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Izlazim iz nepoznatog direktorija\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Ulazim u direktorij „%s”\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Izlazim iz direktorija „%s”\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Ulazim u nepoznat direktorij\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Izlazim iz nepoznatog direktorija\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Ulazim u direktorij „%s”\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Izlazim iz direktorija „%s”\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "greška pisanja: %s"
 
-# Što bi ovdje trebalo ići?
-#: output.c:517
-msgid "write error"
-msgstr "greška pisanja"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Zaustavi.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1468,221 +1450,227 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Čitam datoteke izrade...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Čitam datoteku izrade „%s”"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (nema zadane mete)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (putanja pretraživanja)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (nije važno)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (bez proširenja ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "neispravna sintaksa uvjeta"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "recept počinje prije prve mete"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "nedostaje propis prije recepta"
 
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
+msgstr " (jeste li htjeli TAB umjesto 8 razmaka?)"
+
 # Grr, živjela engleska množina!  I što sad da radim s onim %s-om?
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
 msgstr "nedostaju znakovi razdvajanja (%s)"
 
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (jeste li htjeli TAB umjesto 8 razmaka?)"
-
-#: read.c:1263
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "nedostaje uzorak mete"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "višestruki uzorci meta"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "uzorak mete ne sadrži „%%”"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "nedostaje „endif”"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "prazno ime varijable"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "suvišan tekst nakon direktive „define”"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "nedostaje „endef”, nedovršen „define”"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "suvišan tekst nakon direktive „endef”"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "suvišan tekst nakon direktive „%s”"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "suvišan „%s”"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "samo jedan „else” po uvjetu"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Izobličena definicija o meti ovisne varijable"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "preduvjeti ne mogu biti definirani u receptima"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "pomiješani implicitni i statički propisi uzoraka"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "pomiješani implicitni i normalni propisi"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "meta „%s” ne odgovara uzorku mete"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "datoteka mete „%s” ima unose i kod : i kod ::"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "meta „%s” je navedena više nego jednom u istom propisu."
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "upozorenje: poništavam recept za metu „%s”"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "upozorenje: zanemarujem stari recept za metu „%s”"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "pomiješani implicitni i normalni propisi"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "upozorenje: uočen je NUL znak; ostatak retka se zanemaruje"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Ništa za napraviti za „%s”."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "„%s” je ažuriran."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Čistim datoteku „%s”.\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sNema propisa za izradu mete „%s”%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sNema propisa za izradu mete „%s”, koji traži „%s”%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sNema propisa za izradu mete „%s”%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Razmatram datoteku mete „%s”.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Nedavno bezuspješno pokušao ažurirati datoteku „%s”.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Datoteka „%s” je već razmatrana.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Još uvijek ažuriram datoteku „%s”.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Završio s ažuriranjem datoteke „%s”.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Datoteka „%s” ne postoji.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1690,139 +1678,139 @@ msgstr ""
 "*** Upozorenje: .LOW_RESOLUTION_TIME datoteka „%s” ima vremensku oznaku "
 "visoke rezolucije"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Pronađen implicitni propis za „%s”.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Nisam našao nijedan implicitni propis za „%s”.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Koristim zadani recept za „%s”.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Kružna ovisnost %s <- %s ispuštena."
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Završeni preduvjeti datoteke mete „%s”.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Preduvjeti „%s” se izrađuju.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Odustajem od datoteke mete „%s”.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Meta „%s” nije ponovo izrađena zbog grešaka."
 
 # Nisam siguran da sam ovo ispravno shvatio.
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Preduvjet „%s” služi samo za redoslijed za metu „%s”.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Preduvjet „%s” mete „%s” ne postoji.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Preduvjet „%s” noviji je od mete „%s”.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Preduvjet „%s” stariji je od mete „%s”.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Meta „%s” je dvotočje, a nema preduvjete.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, fuzzy, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Nema recepta za „%s”, a nijedan preduvjet nije promijenjen.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Izrađujem „%s” zbog zastavice always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Ponovna izrada mete „%s” nije potrebna"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; koristim VPATH ime „%s”"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Moram ponovo izraditi metu „%s”.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Zanemarujem VPATH ime „%s”.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Recept za „%s” se izvršava.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Nisam uspio ponovo izraditi datoteku mete „%s”.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Uspješno ponovo izrađena datoteka mete „%s”.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Datoteku mete „%s” treba ponovo izraditi zbog -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Koristim zadane naredbe za „%s”.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Upozorenje: Vrijeme uređivanja datoteke „%s” je u budućnosti"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr ""
 "Upozorenje: Vrijeme uređivanja datoteke „%s” je %s sekundi u budućnosti"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Element „%s” iz .LIBPATTERNS nije uzorak"
@@ -1832,7 +1820,7 @@ msgstr "Element „%s” iz .LIBPATTERNS nije uzorak"
 msgid "Customs won't export: %s\n"
 msgstr "Customs neće izvesti: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1840,7 +1828,7 @@ msgstr ""
 "\n"
 "# Implicitni propisi"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1848,7 +1836,7 @@ msgstr ""
 "\n"
 "# Nema implicitnih propisa."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1857,11 +1845,11 @@ msgstr ""
 "\n"
 "# %u implicitnih propisa, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " završni."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "BUG: neispravan num_pattern_rules!  %u != %u"
@@ -2082,45 +2070,45 @@ msgstr ""
 "# statistike tablice raspršivanja datoteka:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatsko"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "zadano"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "okolina"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "datoteka izrade"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "okolina pod -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "naredbeni redak"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "direktiva „override”"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (iz „%s”, redak %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# statistike tablice raspršivanja skupova varijabli:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2128,7 +2116,7 @@ msgstr ""
 "\n"
 "# Varijable\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2136,7 +2124,7 @@ msgstr ""
 "\n"
 "# Uzorcima svojstvene vrijednosti varijabli"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2144,7 +2132,7 @@ msgstr ""
 "\n"
 "# Nema uzorcima svojstvenih vrijednosti varijabli."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2163,79 +2151,84 @@ msgstr "upozorenje: nedefinirana varijabla „%.*s”"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() nije uspio s %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Upozorenje: Prazno preusmjeravanje\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "interna greška: „%s” command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-upozorenje, možda ćete morati ponovo omogućiti upravljanje s CTRL-Y iz DCL-"
 "a.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "UGRAĐEN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "UGRAĐEN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "UGRAĐEN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "UGRAĐEN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Nepoznata ugrađena naredba „%s”\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Greška, prazna naredba\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Preusmjeren ulaz iz %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Preusmjerene greške u %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Dodaj izlaz na %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Preusmjeren izlaz u %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Dodaj %.*s i počisti\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Umjesto toga, izvršavam %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Greška pri pokretanju, %d\n"
@@ -2294,6 +2287,16 @@ msgstr ""
 #~ msgid "Invoking builtin recipe to update target `%s'.\n"
 #~ msgstr "Pozivam ugrađeni recept za ažuriranje mete „%s”.\n"
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "interna greška: višestruko pojavljivanje opcije --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "virtualna memorija iscrpljena"
+
+# Što bi ovdje trebalo ići?
+#~ msgid "write error"
+#~ msgstr "greška pisanja"
+
 #~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
 #~ msgstr "%s # strcache međuspremnika: %d (* %d B/međuspremniku = %d B)\n"
 
@@ -2306,6 +2309,9 @@ msgstr ""
 #~ "# statistike strcache tablice raspršivanja:\n"
 #~ "# "
 
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "UGRAĐEN RM %s\n"
+
 #~ msgid "Syntax error, still inside '\"'\n"
 #~ msgstr "Greška u sintaksi, još uvijek unutar '\"'\n"
 
index d052d6cf9c3e040feeb7f989a776ce2dd6f04056..44d6423b46f02aa953e5dc73a6e8e3e0431a4d63 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index 7adf238fe9ca29f2fe6eff518bb84e7f328ed934..ef0dd9949fe53fc8ff159023ff294964956f7fac 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -1,14 +1,14 @@
 # Pesan Bahasa Indonesia untuk GNU make
 # Copyright (C) 2006 Free Software Foundation, Inc.
 # This file is distributed under the same license as the make package.
-# Arif E. Nugroho <arif_endro@yahoo.com>, 2006, 2009.
+# Arif E. Nugroho <arif_endro@yahoo.com>, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU make 3.81\n"
+"Project-Id-Version: GNU make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2009-01-31 18:30+0700\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2014-07-30 18:30+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
 "Language: id\n"
@@ -17,110 +17,109 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: ar.c:46
-#, fuzzy, c-format
+#, c-format
 msgid "attempt to use unsupported feature: '%s'"
-msgstr "usaha untuk menggunakan layanan yang tidak didukung: `%s'"
+msgstr "usaha untuk menggunakan layanan yang tidak didukung: '%s'"
 
 #: ar.c:123
 msgid "touch archive member is not available on VMS"
 msgstr "touch anggota archive tidak tersedia di VMS"
 
 #: ar.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Archive '%s' does not exist"
-msgstr "touch: Archive `%s' tidak ada"
+msgstr "touch: Archive '%s' tidak ada"
 
 #: ar.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "touch: '%s' is not a valid archive"
-msgstr "touch: `%s' bukan archive yang valid"
+msgstr "touch: '%s' bukan archive yang valid"
 
 #: ar.c:157
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Member '%s' does not exist in '%s'"
-msgstr "touch: Anggota `%s' tidak terdapat dalam `%s'"
+msgstr "touch: Anggota '%s' tidak terdapat dalam '%s'"
 
 #: ar.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Bad return code from ar_member_touch on '%s'"
-msgstr "touch: Kode kembali tidak baik dari ar_member_touch pada `%s'"
+msgstr "touch: Kode kembali tidak baik dari ar_member_touch pada '%s'"
 
-#: arscan.c:67
-#, fuzzy, c-format
+#: arscan.c:124
+#, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "lbr$set_module gagal untuk mengekstrak info module, status = %d"
+msgstr "lbr$set_module() gagal untuk mengekstrak info module, status = %d"
 
-#: arscan.c:173
-#, fuzzy, c-format
+#: arscan.c:230
+#, c-format
 msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control gagal dengan status = %d"
+msgstr "lbr$ini_control() gagal dengan status = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
-msgstr "tidak dapat membuka perpustakaan `%s' untuk melihat anggota `%s'"
+msgid "unable to open library '%s' to lookup member status %d"
+msgstr "tidak dapat membuka perpustakaan '%s' untuk melihat anggota '%s'"
 
-#: arscan.c:847
-#, fuzzy, c-format
+#: arscan.c:944
+#, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Anggota `%s'%s: %ld bytes pada %ld (%ld).\n"
+msgstr "Anggota '%s'%s: %ld bytes pada %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (nama mungkin akan di potong)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr " Tanggal %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr " uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
-msgstr ""
+msgstr "Recipe has too many lines (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Berhenti.\n"
 
-#: commands.c:630
-#, fuzzy, c-format
+#: commands.c:629
+#, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
-msgstr "*** [%s] Anggota archive `%s' mungkin palsu: tidak dihapus"
+msgstr "*** [%s] Anggota archive '%s' mungkin palsu: tidak dihapus"
 
 #: commands.c:633
-#, fuzzy, c-format
+#, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
-msgstr "*** Anggota archive `%s' mungkin palsu; tidak dihapus"
+msgstr "*** Anggota archive '%s' mungkin palsu; tidak dihapus"
 
-#: commands.c:646
-#, fuzzy, c-format
+#: commands.c:647
+#, c-format
 msgid "*** [%s] Deleting file '%s'"
-msgstr "*** [%s] Menghapus berkas `%s'"
+msgstr "*** [%s] Menghapus berkas '%s'"
 
-#: commands.c:648
-#, fuzzy, c-format
+#: commands.c:649
+#, c-format
 msgid "*** Deleting file '%s'"
-msgstr "*** Menghapus berkas `%s'"
+msgstr "*** Menghapus berkas '%s'"
 
-#: commands.c:684
-#, fuzzy
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  perintah untuk dijalankan"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (bawaan):"
 
-#: commands.c:689
-#, fuzzy, c-format
+#: commands.c:690
+#, c-format
 msgid " (from '%s', line %lu):\n"
-msgstr " (dari `%s', baris %lu):\n"
+msgstr " (dari '%s', baris %lu):\n"
 
 #: dir.c:989
 msgid ""
@@ -191,165 +190,158 @@ msgid " impossibilities in %lu directories.\n"
 msgstr " tidak mungkin dalam direktori %lu.\n"
 
 #: expand.c:125
-#, fuzzy, c-format
+#, c-format
 msgid "Recursive variable '%s' references itself (eventually)"
-msgstr "Variabel rekursif `%s' menunjuk pada dirinya sendiri"
+msgstr "Variabel rekursif '%s' menunjuk pada dirinya sendiri"
 
 #: expand.c:269
 msgid "unterminated variable reference"
 msgstr "referensi variabel tidak diselesaikan"
 
-#: file.c:269
-#, fuzzy, c-format
+#: file.c:271
+#, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
-msgstr "Perintah di spesifikasikan untuk berkas `%s' di %s:%lu,"
+msgstr "Perintah di spesifikasikan untuk berkas '%s' di %s:%lu,"
 
-#: file.c:274
-#, fuzzy, c-format
+#: file.c:276
+#, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
-msgstr "Perintah untuk berkas `%s' ditemukan dalam pencarian aturan implisit,"
+msgstr "Perintah untuk berkas '%s' ditemukan dalam pencarian aturan implisit,"
 
-#: file.c:277
-#, fuzzy, c-format
+#: file.c:280
+#, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr ""
-"tetapi `%s' sekarang dipertimbangkan sebagai berkas yang sama dengan `%s'."
+"tetapi '%s' sekarang dipertimbangkan sebagai berkas yang sama dengan '%s'."
 
-#: file.c:280
-#, fuzzy, c-format
+#: file.c:283
+#, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
-msgstr "Perintah untuk `%s' akan diabaikan untuk menghargai `%s'."
+msgstr "Perintah untuk '%s' akan diabaikan untuk menghargai '%s'."
 
-#: file.c:300
-#, fuzzy, c-format
+#: file.c:303
+#, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
-msgstr "tidak dapat mengubah nama dari kolon-tunggal `%s' ke kolon-ganda `%s'"
+msgstr "tidak dapat mengubah nama dari kolon-tunggal '%s' ke kolon-ganda '%s'"
 
-#: file.c:305
-#, fuzzy, c-format
+#: file.c:309
+#, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
-msgstr "tidak dapat mengubah nama kolon-ganda `%s' menjadi kolon-tunggal `%s'"
+msgstr "tidak dapat mengubah nama kolon-ganda '%s' menjadi kolon-tunggal '%s'"
 
-#: file.c:396
-#, fuzzy, c-format
+#: file.c:401
+#, c-format
 msgid "*** Deleting intermediate file '%s'"
-msgstr "*** Menghapus berkas sementara `%s'"
+msgstr "*** Menghapus berkas sementara '%s'"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Menghapus berkas sementara...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Waktu saat ini"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Timestamp diluar jangkauan; digantikan dengan %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Waktu saat ini"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Bukan sebuah target:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Berkas sebelumnya (dibutuhkan oleh .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Phony target (dibutuhkan oleh .PHONY)."
 
-#: file.c:958
-#, fuzzy
+#: file.c:964
 msgid "#  Command line target."
-msgstr "#  Baris-perintah target."
+msgstr "#  Baris perintah target."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Merupakan baku, MAKEFILES atau -include/sinclude makefile."
 
-#: file.c:962
-#, fuzzy
+#: file.c:968
 msgid "#  Builtin rule"
-msgstr ""
-"\n"
-"# Tidak ada aturan implisit."
+msgstr "# Tidak ada aturan implisit."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Pencarian aturan implisit sudah selesai."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Pencarian aturan implisit belum selesai."
 
-#: file.c:967
-#, fuzzy, c-format
+#: file.c:973
+#, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
-msgstr "#  Pola implisit atau statis stem: `%s'\n"
+msgstr "#  Pola/implisit atau statis stem: '%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Berkas merupakan dibutuhkan untuk sementara."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Juga membuat:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Waktu ubah sudah diperiksa."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Berkas tidak ada."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Berkas sudah sangat tua."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Terakhir dimodifikasi %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Berkas sudah diperbarui."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Berkas belum diperbarui."
 
-#: file.c:995
-#, fuzzy
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Perintah sedang berjalan (INI MERUPAKAN SEBUAH BUG)."
 
-#: file.c:998
-#, fuzzy
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Perintah ketergantungan sedang berjalan (INI MERUPAKAN SEBUAH BUG)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Sukses memperbarui."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Perlu untuk diupdate (-q diset)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Gagal untuk mengupdate."
 
-#: file.c:1019
-#, fuzzy
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
-msgstr "#  Nilai yang salah dalam anggota `command_state' !"
+msgstr "#  Nilai yang salah dalam anggota 'command_state' !"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -357,7 +349,7 @@ msgstr ""
 "\n"
 "# Berksa"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -367,139 +359,135 @@ msgstr ""
 "# berkas statistik hash-table:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
-msgstr ""
+msgstr "%s: Field '%s' not cached: %s"
 
-#: function.c:742
-#, fuzzy
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
-msgstr "argumen pertama untuk fungsi `word' bukan numerik"
+msgstr "argumen pertama untuk fungsi 'word' bukan numerik"
 
-#: function.c:747
-#, fuzzy
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
-msgstr "argumen pertama untuk fungsi `word' harus lebih besar dari 0"
+msgstr "argumen pertama untuk fungsi 'word' harus lebih besar dari 0"
 
-#: function.c:767
-#, fuzzy
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
-msgstr "argumen pertama untuk fungsi `wordlist' bukan numerik"
+msgstr "argumen pertama untuk fungsi 'wordlist' bukan numerik"
 
-#: function.c:769
-#, fuzzy
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
-msgstr "argumen kedua dari fungsi `wordlist' bukan numerik"
+msgstr "argumen kedua dari fungsi 'wordlist' bukan numerik"
 
-#: function.c:1460
-#, fuzzy, c-format
+#: function.c:1499
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) gagal (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) gagal (e=%ld)\n"
 
-#: function.c:1483
-#, fuzzy, c-format
+#: function.c:1523
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Err) gagal (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Err) gagal (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() gagal (e=%ld)\n"
 
-#: function.c:1498
-#, fuzzy
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() gagal\n"
+msgstr "windows32_openpipe(): process_init_fd() gagal\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Membersihkan berkas batch sementara %s\n"
 
-#: function.c:2151
-#, fuzzy, c-format
+#: function.c:2193
+#, c-format
 msgid "open: %s: %s"
-msgstr "%s: %s"
+msgstr "open: %s: %s"
 
-#: function.c:2158
-#, fuzzy, c-format
+#: function.c:2203
+#, c-format
 msgid "write: %s: %s"
-msgstr "error menulis: %s"
+msgstr "menulis: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
-msgstr ""
+msgstr "Invalid file operation: %s"
 
-#: function.c:2279
-#, fuzzy, c-format
+#: function.c:2324
+#, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
-msgstr "Jumlah dari argumen (%d) untuk fungsi `%s' tidak mencukupi"
+msgstr "Jumlah dari argumen (%d) untuk fungsi '%s' tidak mencukupi"
 
-#: function.c:2291
-#, fuzzy, c-format
+#: function.c:2336
+#, c-format
 msgid "unimplemented on this platform: function '%s'"
-msgstr "Tidak terimplementasi dalam platform ini: fungsi `%s'"
+msgstr "Tidak terimplementasi dalam platform ini: fungsi '%s'"
 
-#: function.c:2354
-#, fuzzy, c-format
+#: function.c:2399
+#, c-format
 msgid "unterminated call to function '%s': missing '%c'"
-msgstr "fungsi `%s' tidak diselesaikan: hilang `%c'"
+msgstr "fungsi '%s' tidak diselesaikan: hilang '%c'"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Empty function name\n"
 
-#: function.c:2548
-#, c-format
-msgid "Invalid function name: %s\n"
-msgstr ""
+#: function.c:2593
+#, fuzzy, c-format
+msgid "Invalid function name: %s"
+msgstr "Invalid function name: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
-msgstr ""
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
+msgstr "Function name too long: %s\n"
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
-msgstr "Jumlah dari argumen (%d) untuk fungsi `%s' tidak mencukupi"
+msgid "Invalid minimum argument count (%d) for function %s"
+msgstr "Jumlah dari argumen (%d) untuk fungsi %s tidak mencukupi\n"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
-msgstr "Jumlah dari argumen (%d) untuk fungsi `%s' tidak mencukupi"
+msgid "Invalid maximum argument count (%d) for function %s"
+msgstr "Jumlah dari argumen (%d) untuk fungsi %s tidak mencukupi\n"
 
 #: getopt.c:659
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: opsi `%s' merupakan ambigu\n"
+msgstr "%s: opsi '%s' merupakan ambigu\n"
 
 #: getopt.c:683
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: opsi `--%s' tidak memperbolehkan argumen\n"
+msgstr "%s: opsi '--%s' tidak memperbolehkan argumen\n"
 
 #: getopt.c:688
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: opsi `%c%s' tidak memperbolehkan argumen\n"
+msgstr "%s: opsi '%c%s' tidak memperbolehkan argumen\n"
 
 #: getopt.c:705 getopt.c:878
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' requires an argument\n"
-msgstr "%s: opsi `%s' membutuhkan sebuah argumen\n"
+msgstr "%s: opsi '%s' membutuhkan sebuah argumen\n"
 
 #: getopt.c:734
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: opsi tidak dikenali `--%s'\n"
+msgstr "%s: opsi tidak dikenali '--%s'\n"
 
 #: getopt.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: opsi tidak dikenali `%c%s'\n"
+msgstr "%s: opsi tidak dikenali '%c%s'\n"
 
 #: getopt.c:764
 #, c-format
@@ -517,30 +505,30 @@ msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: opsi membutuhkan sebuah argumen -- %c\n"
 
 #: getopt.c:844
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: opsi `-W %s' merupakan opsi ambigu\n"
+msgstr "%s: opsi '-W %s' merupakan opsi ambigu\n"
 
 #: getopt.c:862
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: opsi `-W %s' tidak memperbolehkan sebuah argumen\n"
+msgstr "%s: opsi '-W %s' tidak memperbolehkan sebuah argumen\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
-msgstr ""
+msgstr "guile: Expanding '%s'\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
-msgstr ""
+msgstr "guile: Evaluating '%s'\n"
 
 #: hash.c:49
-#, fuzzy, c-format
+#, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
 msgstr ""
-"tidak dapat mengalokasikan %ld bytes untuk tabel hash; kehabisan memory"
+"tidak dapat mengalokasikan %lu bytes untuk tabel hash; kehabisan memory"
 
 #: hash.c:280
 #, c-format
@@ -558,14 +546,14 @@ msgid "Collisions=%ld/%ld=%.0f%%"
 msgstr "Tabrakan=%ld/%ld=%.0f%%"
 
 #: implicit.c:38
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for an implicit rule for '%s'.\n"
-msgstr "Mencari aturan implisit untuk `%s'.\n"
+msgstr "Mencari aturan implisit untuk '%s'.\n"
 
 #: implicit.c:54
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for archive-member implicit rule for '%s'.\n"
-msgstr "Mencari aturan implisit untuk anggota-archive pada `%s'.\n"
+msgstr "Mencari aturan implisit untuk anggota-archive pada '%s'.\n"
 
 #: implicit.c:310
 msgid "Avoiding implicit rule recursion.\n"
@@ -574,139 +562,137 @@ msgstr "Menghindari aturan implisit rekursi.\n"
 #: implicit.c:486
 #, c-format
 msgid "Stem too long: '%.*s'.\n"
-msgstr ""
+msgstr "Stem too long: '%.*s'.\n"
 
 #: implicit.c:491
-#, fuzzy, c-format
+#, c-format
 msgid "Trying pattern rule with stem '%.*s'.\n"
-msgstr "Mencoba aturan pola dengan stem `%.*s'.\n"
+msgstr "Mencoba aturan pola dengan stem '%.*s'.\n"
 
 #: implicit.c:697
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible rule prerequisite '%s'.\n"
-msgstr "Menolak persyaratan aturan yang tidak mungkin `%s'.\n"
+msgstr "Menolak persyaratan aturan yang tidak mungkin '%s'.\n"
 
 #: implicit.c:698
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible implicit prerequisite '%s'.\n"
-msgstr "Menolak persyaratan implisit yang tidak mungkin `%s'.\n"
+msgstr "Menolak persyaratan implisit yang tidak mungkin '%s'.\n"
 
 #: implicit.c:711
-#, fuzzy, c-format
+#, c-format
 msgid "Trying rule prerequisite '%s'.\n"
-msgstr "Mencoba persyaratan dari aturan `%s'.\n"
+msgstr "Mencoba persyaratan dari aturan '%s'.\n"
 
 #: implicit.c:712
-#, fuzzy, c-format
+#, c-format
 msgid "Trying implicit prerequisite '%s'.\n"
-msgstr "Mencoba persyaratan implisit `%s'.\n"
+msgstr "Mencoba persyaratan implisit '%s'.\n"
 
 #: implicit.c:751
-#, fuzzy, c-format
+#, c-format
 msgid "Found prerequisite '%s' as VPATH '%s'\n"
-msgstr "Menemukan persyaratan `%s' sebagai VPATH `%s'\n"
+msgstr "Menemukan persyaratan '%s' sebagai VPATH '%s'\n"
 
 #: implicit.c:765
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for a rule with intermediate file '%s'.\n"
-msgstr "Mencari aturan dengan berkas sementara `%s'.\n"
+msgstr "Mencari aturan dengan berkas sementara '%s'.\n"
 
 #: job.c:361
 msgid "Cannot create a temporary file\n"
 msgstr "Tidak dapat membuat berkas sementara\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (core di-dump)"
 
-#: job.c:487
-#, fuzzy
+#: job.c:488
 msgid " (ignored)"
-msgstr "[%s] Error %d (diabaikan)"
+msgstr " (diabaikan)"
 
-#: job.c:491 job.c:1994
-#, fuzzy
+#: job.c:492 job.c:2046
 msgid "<builtin>"
-msgstr " (bawaan):"
+msgstr "<bawaan>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
-msgstr ""
-
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Error 0x%x"
+msgstr "%s: recipe for target '%s' failed"
 
-#: job.c:513
-#, fuzzy, c-format
+#: job.c:516 job.c:524
+#, c-format
 msgid "%s[%s] Error %d%s"
-msgstr "*** [%s] Error %d"
+msgstr "%s[%s] Error %d%s"
 
-#: job.c:517
-#, fuzzy, c-format
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Error 0x%x%s"
+
+#: job.c:529
+#, c-format
 msgid "%s[%s] %s%s%s"
-msgstr "%s%s: %s"
+msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Menunggu pekerjaan yang belum selesai...."
 
-#: job.c:639
-#, fuzzy, c-format
+#: job.c:651
+#, c-format
 msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Proses anak yang masih berjalan 0x%08lx (%s) PID %ld %s\n"
+msgstr "Proses anak yang masih berjalan %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (remote)"
 
-#: job.c:829
-#, fuzzy, c-format
+#: job.c:841
+#, c-format
 msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Reaping anak hilang 0x%08lx PID %ld %s\n"
+msgstr "Reaping anak hilang %p PID %s %s\n"
 
-#: job.c:830
-#, fuzzy, c-format
+#: job.c:842
+#, c-format
 msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Reaping winning child 0x%08lx PID %ld %s\n"
+msgstr "Reaping winning child %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Membersihkan berkas batch sementara %s\n"
 
-#: job.c:843
-#, fuzzy, c-format
+#: job.c:855
+#, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
-msgstr "Membersihkan berkas batch sementara %s\n"
+msgstr "Membersihkan berkas batch sementara %s failed (%d)\n"
 
-#: job.c:949
-#, fuzzy, c-format
+#: job.c:961
+#, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Menghilangkan proses anak 0x%08lx PID %ld%s dari rantai.\n"
+msgstr "Menghilangkan proses anak %p PID %s%s dari rantai.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "release jobserver semaphore: (Error %ld: %s)"
 
-#: job.c:1011 job.c:1025
-#, fuzzy, c-format
+#: job.c:1024 job.c:1038
+#, c-format
 msgid "Released token for child %p (%s).\n"
-msgstr "Melepaskan token dari proses anak 0x%08lx (%s).\n"
+msgstr "Melepaskan token dari proses anak %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "menulis jobserver"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() gagal untuk menjalankan proses (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -715,166 +701,167 @@ msgstr ""
 "\n"
 "Terhitung %d argumen gagal untuk dijalankan\n"
 
-#: job.c:1685
-#, fuzzy, c-format
+#: job.c:1735
+#, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Meletakkan proses anak 0x%08lx (%s) PID %ld%s pada rantai proses.\n"
+msgstr "Meletakkan proses anak %p (%s) PID %s%s pada rantai proses.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
-msgstr ""
+msgstr "semaphore or child process wait: (Error %ld: %s)"
 
-#: job.c:1967
-#, fuzzy, c-format
+#: job.c:2019
+#, c-format
 msgid "Obtained token for child %p (%s).\n"
-msgstr "Memperoleh token untuk proses anak 0x%08lx (%s).\n"
+msgstr "Memperoleh token untuk proses anak %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "membaca pipa pekerjaan"
 
-#: job.c:2003
-#, fuzzy, c-format
+#: job.c:2056
+#, c-format
 msgid "%s: target '%s' does not exist"
-msgstr "touch: Archive `%s' tidak ada"
+msgstr "%s: archive '%s' tidak ada"
 
-#: job.c:2005
-#, fuzzy, c-format
+#: job.c:2059
+#, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr ""
-"%sTidak terdapat aturan untuk membuat target `%s', dibutuhkan oleh `%s'%s"
+"%s: tidak terdapat aturan untuk membuat target '%s', dibutuhkan oleh %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "tidak dapat memaksa mencapai batas beban pada sistem operasi ini"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "tidak dapat memaksa mencapai batas beban: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "tidak ada lagi file handles: tidak dapat menggandakan stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "tidak ada lagi file handles: tidak dapat menggandakan stdout\n"
 
-#: job.c:2223
-#, fuzzy
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
-msgstr "tidak ada lagi file handles: tidak dapat menggandakan stdin\n"
+msgstr "tidak ada lagi file handles: tidak dapat menggandakan stderr\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Tidak dapat mengembalikan stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Tidak dapat mengembalikan stdout\n"
 
-#: job.c:2254
-#, fuzzy
+#: job.c:2309
 msgid "Could not restore stderr\n"
-msgstr "Tidak dapat mengembalikan stdin\n"
+msgstr "Tidak dapat mengembalikan stderr\n"
 
-#: job.c:2365
-#, fuzzy, c-format
+#: job.c:2420
+#, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "make reaped child pid %ld, tetap menunggu untuk pid %ld\n"
+msgstr "make reaped child pid %s, tetap menunggu untuk pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Perintah tidak ada"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Shell program tidak ditemukan"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: mungkin kehabisan ruang environment"
 
-#: job.c:2709
-#, fuzzy, c-format
+#: job.c:2765
+#, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
-msgstr "$SHELL berubah (sebelumnya `%s', sekarang `%s')\n"
+msgstr "$SHELL berubah (sebelumnya '%s', sekarang '%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Membuat berkas batch sementara %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
+"Batch file contents:\n"
+"\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
+"Batch file contents:%s\n"
+"\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (baris %d) shell context tidak baik (!unixy && !batch_mode_shell)\n"
 
 #: job.h:43
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
-msgstr ""
+msgstr "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
-msgstr ""
+msgstr "Failed to open global symbol table: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
-msgstr ""
+msgstr "Loaded object %s is not declared to be GPL compatible"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
-msgstr ""
+msgstr "Failed to load symbol %s from %s: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
-msgstr ""
+msgstr "Empty symbol name for load: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
-msgstr ""
+msgstr "Loading symbol %s from %s\n"
 
-#: load.c:229
-#, fuzzy
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
-msgstr "Parallel jobs (-j) tidak didukung dalam platform ini."
+msgstr "Parallel jobs '-j' tidak didukung dalam platform ini."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opsi:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Diabaikan untuk kompatibilitas.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 "  -B, --always-make           Membuat semua target secara tidak "
 "kondisional.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -882,17 +869,17 @@ msgstr ""
 "  -C DIRECTORI, --directory=DIREKTORI\n"
 "                              Pindah ke DIREKTORI sebelum melakukan apapun.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Menampilkan banyak informasi debug.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=FLAGS]             Menampilkan berbagai tipe informasi debug.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -900,12 +887,13 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              Variabel lingkungan memaksa makefiles.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
+"  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -913,18 +901,17 @@ msgstr ""
 "  -f BERKAS, --file=BERKAS, --makefile=BERKAS\n"
 "                              Baca BERKAS sebagai sebuah makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Tampilkan pesan ini dan keluar.\n"
 
-#: main.c:334
-#, fuzzy
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         Abaikan kesalahan dari perintah yang "
 "dijalankan.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -933,7 +920,7 @@ msgstr ""
 "                              Cari di DIREKTORI untuk makefile yang "
 "disertakan.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -941,13 +928,13 @@ msgstr ""
 "  -j [N], --jobs[=N]          Ijinkan N kerja secara bersamaan. Kerja tidak "
 "terhingga jika tidak diberikan argumen.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Tetap jalan ketika target tidak dapat dibuat.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -957,7 +944,7 @@ msgstr ""
 "                              Jangan menjalankan multiple pekerjaan kecuali "
 "beban dibawah N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -965,8 +952,7 @@ msgstr ""
 "  -L, --check-symlink-times   Gunakan waktu mtime terbaru diantara symlinks "
 "dan target.\n"
 
-#: main.c:348
-#, fuzzy
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -976,7 +962,7 @@ msgstr ""
 "                               Jangan menjalankan perintah apapun; tampilkan "
 "saja apa yang akan dikerjakan.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -986,18 +972,19 @@ msgstr ""
 "                              Pertimbangkan BERKAS sudah sangat tua dan "
 "jangan membuatnya lagi.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
+"  -O[TYPE], --output-sync[=TYPE]\n"
+"                              Synchronize output of parallel jobs by TYPE.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Tampilkan basis data internal make.\n"
 
-#: main.c:359
-#, fuzzy
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1005,22 +992,21 @@ msgstr ""
 "  -q, --question              Tidak menjalankan perintah. Mengeluarkan "
 "status saja dan mengatakan up to date.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Aturan implisit bawaan tidak digunakan.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Non-aktifkan konfigurasi variabel bawaan.\n"
 
-#: main.c:365
-#, fuzzy
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Jangan menampilkan perintah.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1028,26 +1014,26 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Matikan opsi -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Sentuh target dari pada membuat kembali.\n"
 
-#: main.c:372
-#, fuzzy
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
-msgstr "  -d                          Menampilkan banyak informasi debug.\n"
+msgstr ""
+"  --trace                          Menampilkan banyak informasi debug.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Tampilkan versi dari make dan keluar.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Tampilkan directory saat ini.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1055,7 +1041,7 @@ msgstr ""
 "  --no-print-directory        Matikan opsi -w, walaupun opsi ini diaktifkan "
 "secara implisit.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1064,7 +1050,7 @@ msgstr ""
 "                              Pertimbangkan BERKAS sebagai sebuah berkas "
 "baru.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1072,32 +1058,27 @@ msgstr ""
 "  --warn-undefined-variables  Peringatkan akan adanya variabel yang tidak "
 "terdefinisi yang direferensikan.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "`string' kosong tidak valid sebagai nama file"
 
-#: main.c:734
-#, fuzzy, c-format
+#: main.c:737
+#, c-format
 msgid "unknown debug level specification '%s'"
-msgstr "spesifikasi tingkat debug tidak diketahui `%s'"
+msgstr "spesifikasi tingkat debug tidak diketahui '%s'"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
-msgstr ""
-
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "internal error: opsi --jobserver-fds lebih dari satu"
+msgstr "unknown output-sync type '%s'"
 
-#: main.c:848
-#, fuzzy, c-format
+#: main.c:828
+#, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: Interupsi/Exception diterima (kode = 0x%lx, alamat = 0x%lx)\n"
+msgstr "%s: Interupsi/Exception diterima (kode = 0x%lx, alamat = 0x%p)\n"
 
-#: main.c:855
-#, fuzzy, c-format
+#: main.c:835
+#, c-format
 msgid ""
 "\n"
 "Unhandled exception filter called from program %s\n"
@@ -1109,186 +1090,182 @@ msgstr ""
 "Exception filter tidak dapat diatasi dari program %s\n"
 "ExceptionCode = %lx\n"
 "ExceptionFlags = %lx\n"
-"ExceptionAddress = %lx\n"
+"ExceptionAddress = 0x%p\n"
 
-#: main.c:863
-#, fuzzy, c-format
+#: main.c:843
+#, c-format
 msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Akses dilanggar: operasi tulis pada alamat %lx\n"
+msgstr "Akses dilanggar: operasi tulis pada alamat 0x%p\n"
 
-#: main.c:864
-#, fuzzy, c-format
+#: main.c:844
+#, c-format
 msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Akses dilanggar: operasi baca pada alamat %lx\n"
+msgstr "Akses dilanggar: operasi baca pada alamat 0x%p\n"
 
-#: main.c:940 main.c:955
-#, fuzzy, c-format
+#: main.c:920 main.c:935
+#, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell diset pada default_shell = %s\n"
+msgstr "find_and_set_shell() diset pada default_shell = %s\n"
 
-#: main.c:1008
-#, fuzzy, c-format
+#: main.c:988
+#, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell jalur pencarian di set pada default_shell = %s\n"
+msgstr "find_and_set_shell() jalur pencarian di set pada default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s dihentikan selama 30 detik..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "selesai tidur(30). Melanjutkan.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "internal error: opsi --jobserver-fds lebih dari satu"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
-msgstr ""
+msgstr "Jobserver client (semaphore %s)\n"
 
-#: main.c:1551
-#, fuzzy, c-format
+#: main.c:1534
+#, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
-msgstr "internal error: tidak valid --jobserver-fds string `%s'"
+msgstr "internal error: tidak valid --jobserver-fds string '%s'"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Jobserver client (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "Peringatan: -jN dipaksakan dalam submake: non-aktifkan mode server pekerja."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup server pekerja"
 
-#: main.c:1586
-#, fuzzy
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
-"Peringatan: server pekerja tidak ada: menggunakan -j1. Tambahkan `+' pada "
+"Peringatan: server pekerja tidak ada: menggunakan -j1. Tambahkan '+' pada "
 "aturan make paling atas."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile dari standard input dispesifikasikan dua kali."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (berkas sementara)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (berkas sementara)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Parallel jobs (-j) tidak didukung dalam platform ini."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Mereset kembali ke mode satu job (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
-msgstr ""
+msgstr "Jobserver slots limited to %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "creating jobserver semaphore: (Error %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "membuat pipa pekerjaan"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "inisiasi pipa server pekerja"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Symbolic links tidak didukung: menonaktifkan opsi -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Memperbarui makefiles....\n"
 
-#: main.c:2174
-#, fuzzy, c-format
+#: main.c:2158
+#, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
-msgstr "Makefile `%s' mungkin berupa loop; tidak membuat lagi.\n"
+msgstr "Makefile '%s' mungkin berupa loop; tidak membuat lagi.\n"
 
-#: main.c:2253
-#, fuzzy, c-format
+#: main.c:2237
+#, c-format
 msgid "Failed to remake makefile '%s'."
-msgstr "Gagal membuat lagi makefile `%s'."
+msgstr "Gagal membuat lagi makefile '%s'."
 
-#: main.c:2270
-#, fuzzy, c-format
+#: main.c:2257
+#, c-format
 msgid "Included makefile '%s' was not found."
-msgstr "Makefile yang dimasukan `%s' tidak ditemukan."
+msgstr "Makefile yang dimasukan '%s' tidak ditemukan."
 
-#: main.c:2275
-#, fuzzy, c-format
+#: main.c:2262
+#, c-format
 msgid "Makefile '%s' was not found"
-msgstr "Makefile `%s' tidak ditemukan"
+msgstr "Makefile '%s' tidak ditemukan"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Tidak dapat kembali ke direktori asal."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Menjalankan kembali[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (berkas sementara): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL berisi lebih dari satu target"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Target tidak dispesifikasikan dan tidak ditemukan makefile"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Tidak ada targets"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Memperbarui tujuan target....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "Peringatan: Clock skew terdeteksi. Pembuatan anda mungkin tidak sempurna"
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Penggunaan: %s [opsi] [target] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1297,7 +1274,7 @@ msgstr ""
 "\n"
 "Program ini dibuat untuk %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1306,36 +1283,32 @@ msgstr ""
 "\n"
 "Program ini dibuat untuk %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Laporkan bugs kepada <bug-make@gnu.org>\n"
 
-#: main.c:2810
-#, fuzzy, c-format
+#: main.c:2807
+#, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
-msgstr "opsi `-%c' membutuhkan sebuah argument string yang tidak kosong"
+msgstr "opsi '%s%s' membutuhkan sebuah argument string yang tidak kosong"
 
-#: main.c:2864
-#, fuzzy, c-format
+#: main.c:2871
+#, c-format
 msgid "the '-%c' option requires a positive integer argument"
-msgstr "opsi `-%c' membutuhkan sebuah argument `string' yang tidak kosong"
+msgstr "opsi '-%c' membutuhkan sebuah argument `string' yang tidak kosong"
 
-#: main.c:3253
-#, fuzzy, c-format
+#: main.c:3269
+#, c-format
 msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"%sAplikasi ini dibuat untuk %s\n"
+msgstr "%sAplikasi ini dibuat untuk %s\n"
 
-#: main.c:3255
-#, fuzzy, c-format
+#: main.c:3271
+#, c-format
 msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"%sAplikasi ini dibuat untuk %s (%s)\n"
+msgstr "%sAplikasi ini dibuat untuk %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1343,8 +1316,12 @@ msgid ""
 "%sThis is free software: you are free to change and redistribute it.\n"
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
+"%sLisensi GPLv3+: GNU GPL versi 3 atau sesudahnya <http://gnu.org/licenses/"
+"gpl.html>\n"
+"%sIni adalah aplikasi gratis: anda bebas untuk mengubah dan menyebarkannya.\n"
+"%sTidak ada JAMINAN, sepanjang diperbolehkan oleh hukum.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1353,7 +1330,7 @@ msgstr ""
 "\n"
 "# Membuat basis data, ditampilkan %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1367,10 +1344,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Kesalahan tidak diketahui %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "Kehabisan memori maya"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1392,65 +1365,61 @@ msgstr "Buat akses"
 msgid "Child access"
 msgstr "Akses anak"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Memasuki sebuah direktori yang tidak diketahui\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Meninggalkan sebuah direktori yang tidak diketahui\n"
 
-#: output.c:133
-#, fuzzy, c-format
+#: output.c:109
+#, c-format
 msgid "%s: Entering directory '%s'\n"
-msgstr "%s: Memasuki direktori `%s'\n"
+msgstr "%s: Memasuki direktori '%s'\n"
 
-#: output.c:135
-#, fuzzy, c-format
+#: output.c:111
+#, c-format
 msgid "%s: Leaving directory '%s'\n"
-msgstr "%s: Meninggalkan direktori `%s'\n"
+msgstr "%s: Meninggalkan direktori '%s'\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Memasuki sebuah direktori yang tidak diketahui\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Meninggalkan sebuah direktori yang tidak diketahui\n"
 
-#: output.c:144
-#, fuzzy, c-format
+#: output.c:120
+#, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
-msgstr "%s[%u]: Memasuki direktori `%s'\n"
+msgstr "%s[%u]: Memasuki direktori '%s'\n"
 
-#: output.c:146
-#, fuzzy, c-format
+#: output.c:122
+#, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
-msgstr "%s[%u]: Meninggalkan direktori `%s'\n"
+msgstr "%s[%u]: Meninggalkan direktori '%s'\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "error menulis: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "error menulis"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ". Berhenti.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1459,372 +1428,370 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Membaca makefiles...\n"
 
-#: read.c:333
-#, fuzzy, c-format
+#: read.c:335
+#, c-format
 msgid "Reading makefile '%s'"
-msgstr "Membaca makefile `%s'"
+msgstr "Membaca makefile '%s'"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (tidak terdapat tujuan baku)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (jalur pencarian)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (tidak peduli)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (tidak terdapat ekspansi tilde ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
-msgstr ""
+msgstr "Skipping UTF-8 BOM in makefile '%s'\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
-msgstr ""
+msgstr "Skipping UTF-8 BOM in makefile buffer\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "sintak salah dalam kondisional"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
-msgstr ""
+msgstr "%s: failed to load"
 
-#: read.c:987
-#, fuzzy
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "perintah dijalankan sebelum target pertama"
 
-#: read.c:1036
-#, fuzzy
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "hilang aturan sebelum menjalankan perintah"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "pemisah %s hilang"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (apakah yang anda maksud TAB dari pada 8 buah spasi?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "pemisah %s hilang"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "pola target hilang"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "pola target banyak"
 
-#: read.c:1269
-#, fuzzy, c-format
+#: read.c:1276
+#, c-format
 msgid "target pattern contains no '%%'"
-msgstr "pola target tidak memiliki `%%'"
+msgstr "pola target tidak memiliki '%%'"
 
-#: read.c:1391
-#, fuzzy
+#: read.c:1398
 msgid "missing 'endif'"
-msgstr "hilang `endif'"
+msgstr "hilang 'endif'"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "nama variabel kosong"
 
-#: read.c:1465
-#, fuzzy
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
-msgstr "Kelebihan text sesudah `endef' directive"
+msgstr "Kelebihan text sesudah 'endef' directive"
 
-#: read.c:1490
-#, fuzzy
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
-msgstr "hilang `endef', tidak diselesaikan `define'"
+msgstr "hilang 'endef', tidak diselesaikan 'define'"
 
-#: read.c:1518
-#, fuzzy
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
-msgstr "Kelebihan text sesudah `endef' directive"
+msgstr "kelebihan text sesudah 'endef' directive"
 
-#: read.c:1589
-#, fuzzy, c-format
+#: read.c:1595
+#, c-format
 msgid "extraneous text after '%s' directive"
-msgstr "Kelebihan text sesudah `%s' directive"
+msgstr "kelebihan text sesudah '%s' directive"
 
-#: read.c:1598 read.c:1612
-#, fuzzy, c-format
+#: read.c:1596
+#, c-format
 msgid "extraneous '%s'"
-msgstr "kelebihan `%s'"
+msgstr "kelebihan '%s'"
 
-#: read.c:1617
-#, fuzzy
+#: read.c:1624
 msgid "only one 'else' per conditional"
-msgstr "hanya satu `else' dalam setiap kondisi"
+msgstr "hanya satu 'else' dalam setiap kondisi"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Definisi variable target-specific memiliki format yang salah"
 
-#: read.c:1951
-#, fuzzy
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "persyaratan tidak dapat didefinisikan dalam script perintah"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "aturan pola implisit dan static tercampur"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "aturan implisit dan aturan normal tercampur"
 
-#: read.c:2084
-#, fuzzy, c-format
+#: read.c:2091
+#, c-format
 msgid "target '%s' doesn't match the target pattern"
-msgstr "target `%s' tidak cocok dengan pola target"
+msgstr "target '%s' tidak cocok dengan pola target"
 
-#: read.c:2099 read.c:2144
-#, fuzzy, c-format
+#: read.c:2106 read.c:2152
+#, c-format
 msgid "target file '%s' has both : and :: entries"
-msgstr "target berkas `%s' keduanya memiliki masukan : dan ::"
+msgstr "target berkas '%s' keduanya memiliki masukan : dan ::"
 
-#: read.c:2105
-#, fuzzy, c-format
+#: read.c:2112
+#, c-format
 msgid "target '%s' given more than once in the same rule"
-msgstr "target `%s' memberikan lebih dari sekali dalam aturan sama."
+msgstr "target '%s' memberikan lebih dari sekali dalam aturan sama."
 
-#: read.c:2114
-#, fuzzy, c-format
+#: read.c:2122
+#, c-format
 msgid "warning: overriding recipe for target '%s'"
-msgstr "Peringatan: memaksa perintah untuk target `%s'"
+msgstr "peringatan: memaksa perintah untuk target '%s'"
 
-#: read.c:2117
-#, fuzzy, c-format
+#: read.c:2125
+#, c-format
 msgid "warning: ignoring old recipe for target '%s'"
-msgstr "Peringatan: menghiraukan perintah lama untuk target `%s'"
+msgstr "peringatan: menghiraukan perintah lama untuk target '%s'"
+
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "aturan implisit dan aturan normal tercampur"
 
-#: read.c:2530
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
-msgstr "Peringatan: karakter NUL terlihat; baris selanjutnya dihiraukan"
+msgstr "peringatan: karakter NUL terlihat; baris selanjutnya dihiraukan"
 
-#: remake.c:232
-#, fuzzy, c-format
+#: remake.c:230
+#, c-format
 msgid "Nothing to be done for '%s'."
-msgstr "Tidak ada yang harus dilakukan untuk `%s'."
+msgstr "Tidak ada yang harus dilakukan untuk '%s'."
 
-#: remake.c:233
-#, fuzzy, c-format
+#: remake.c:231
+#, c-format
 msgid "'%s' is up to date."
-msgstr "`%s' sudah baru."
+msgstr "'%s' sudah baru."
 
-#: remake.c:305
-#, fuzzy, c-format
+#: remake.c:303
+#, c-format
 msgid "Pruning file '%s'.\n"
-msgstr "Pruning file `%s'.\n"
+msgstr "Pruning file '%s'.\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sTidak terdapat aturan untuk membuat target `%s'%s"
-
-#: remake.c:379
-#, fuzzy, c-format
+#: remake.c:390 remake.c:393
+#, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
-"%sTidak terdapat aturan untuk membuat target `%s', dibutuhkan oleh `%s'%s"
+"%sTidak terdapat aturan untuk membuat target '%s', dibutuhkan oleh '%s'%s"
 
-#: remake.c:413
-#, fuzzy, c-format
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sTidak terdapat aturan untuk membuat target '%s'%s"
+
+#: remake.c:426
+#, c-format
 msgid "Considering target file '%s'.\n"
-msgstr "Mempertimbangkan berkas target `%s'.\n"
+msgstr "Mempertimbangkan berkas target '%s'.\n"
 
-#: remake.c:420
-#, fuzzy, c-format
+#: remake.c:433
+#, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
-msgstr "Baru saja dicoba dan gagal untuk memperbarui berkas `%s'.\n"
+msgstr "Baru saja dicoba dan gagal untuk memperbarui berkas '%s'.\n"
 
-#: remake.c:432
-#, fuzzy, c-format
+#: remake.c:445
+#, c-format
 msgid "File '%s' was considered already.\n"
-msgstr "Berkas `%s' baru saja dipertimbangkan.\n"
+msgstr "Berkas '%s' baru saja dipertimbangkan.\n"
 
-#: remake.c:442
-#, fuzzy, c-format
+#: remake.c:455
+#, c-format
 msgid "Still updating file '%s'.\n"
-msgstr "Sedang memperbarui berkas `%s'.\n"
+msgstr "Sedang memperbarui berkas '%s'.\n"
 
-#: remake.c:445
-#, fuzzy, c-format
+#: remake.c:458
+#, c-format
 msgid "Finished updating file '%s'.\n"
-msgstr "Selesai memperbarui berkas `%s'.\n"
+msgstr "Selesai memperbarui berkas '%s'.\n"
 
-#: remake.c:474
-#, fuzzy, c-format
+#: remake.c:487
+#, c-format
 msgid "File '%s' does not exist.\n"
-msgstr "Berkas `%s' tidak ada.\n"
+msgstr "Berkas '%s' tidak ada.\n"
 
-#: remake.c:481
-#, fuzzy, c-format
+#: remake.c:495
+#, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
-"*** Peringatan: .LOW_RESOLUTION_TIME berkas `%s' memiliki sebuah penanda "
+"*** Peringatan: .LOW_RESOLUTION_TIME berkas '%s' memiliki sebuah penanda "
 "waktu dengan resolusi tinggi"
 
-#: remake.c:494 remake.c:1019
-#, fuzzy, c-format
+#: remake.c:508 remake.c:1040
+#, c-format
 msgid "Found an implicit rule for '%s'.\n"
-msgstr "Ditemukan sebuah aturan implisit untuk `%s'.\n"
+msgstr "Ditemukan sebuah aturan implisit untuk '%s'.\n"
 
-#: remake.c:496 remake.c:1021
-#, fuzzy, c-format
+#: remake.c:510 remake.c:1042
+#, c-format
 msgid "No implicit rule found for '%s'.\n"
-msgstr "Tidak terdapat aturan implisit untuk membuat `%s'.\n"
+msgstr "Tidak terdapat aturan implisit untuk membuat '%s'.\n"
 
-#: remake.c:502
-#, fuzzy, c-format
+#: remake.c:516
+#, c-format
 msgid "Using default recipe for '%s'.\n"
-msgstr "Menggunakan perintah baku untuk `%s'.\n"
+msgstr "Menggunakan perintah baku untuk '%s'.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Ketergantungan %s <- %s melingkar dijatuhkan."
 
-#: remake.c:655
-#, fuzzy, c-format
+#: remake.c:675
+#, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
-msgstr "Selesai melakukan semua persyaratan untuk berkas target `%s'.\n"
+msgstr "Selesai melakukan semua persyaratan untuk berkas target '%s'.\n"
 
-#: remake.c:661
-#, fuzzy, c-format
+#: remake.c:681
+#, c-format
 msgid "The prerequisites of '%s' are being made.\n"
-msgstr "Persyaratan untuk membuat `%s' sedang dibuat.\n"
+msgstr "Persyaratan untuk membuat '%s' sedang dibuat.\n"
 
-#: remake.c:674
-#, fuzzy, c-format
+#: remake.c:695
+#, c-format
 msgid "Giving up on target file '%s'.\n"
-msgstr "Menyerah untuk membuat target berkas `%s'.\n"
+msgstr "Menyerah untuk membuat target berkas '%s'.\n"
 
-#: remake.c:679
-#, fuzzy, c-format
+#: remake.c:700
+#, c-format
 msgid "Target '%s' not remade because of errors."
-msgstr "Target `%s' tidak dibuat lagi karena ada errors."
+msgstr "Target '%s' tidak dibuat lagi karena ada errors."
 
-#: remake.c:731
-#, fuzzy, c-format
+#: remake.c:752
+#, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
-msgstr "Persyaratan untuk `%s' adalah order-only untuk target `%s'.\n"
+msgstr "Persyaratan untuk '%s' adalah order-only untuk target '%s'.\n"
 
-#: remake.c:736
-#, fuzzy, c-format
+#: remake.c:757
+#, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
-msgstr "Persyaratan untuk `%s' untuk target `%s' tidak ada.\n"
+msgstr "Persyaratan untuk '%s' untuk target '%s' tidak ada.\n"
 
-#: remake.c:741
-#, fuzzy, c-format
+#: remake.c:762
+#, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
-msgstr "Persyaratan untuk `%s' lebih baru dari pada target `%s'.\n"
+msgstr "Persyaratan untuk '%s' lebih baru dari pada target '%s'.\n"
 
-#: remake.c:744
-#, fuzzy, c-format
+#: remake.c:765
+#, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
-msgstr "Persyaratan untuk `%s' lebih tua dari pada target `%s'.\n"
+msgstr "Persyaratan untuk '%s' lebih tua dari pada target '%s'.\n"
 
-#: remake.c:762
-#, fuzzy, c-format
+#: remake.c:783
+#, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
-msgstr "Target `%s' merupakan kolon-ganda dan tidak memiliki syarat.\n"
+msgstr "Target '%s' merupakan kolon-ganda dan tidak memiliki syarat.\n"
 
-#: remake.c:769
-#, fuzzy, c-format
+#: remake.c:790
+#, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
-msgstr "Tidak ada perintah untuk `%s' dan persyaratan tidak berubah.\n"
+msgstr "Tidak ada perintah untuk '%s' dan persyaratan tidak berubah.\n"
 
-#: remake.c:774
-#, fuzzy, c-format
+#: remake.c:795
+#, c-format
 msgid "Making '%s' due to always-make flag.\n"
-msgstr "Membuat `%s' karena adanya tanda always-make.\n"
+msgstr "Membuat '%s' karena adanya tanda always-make.\n"
 
-#: remake.c:782
-#, fuzzy, c-format
+#: remake.c:803
+#, c-format
 msgid "No need to remake target '%s'"
-msgstr "Tidak perlu membuat lagi target `%s'"
+msgstr "Tidak perlu membuat lagi target '%s'"
 
-#: remake.c:784
-#, fuzzy, c-format
+#: remake.c:805
+#, c-format
 msgid "; using VPATH name '%s'"
-msgstr "; menggunakan nama VPATH `%s'"
+msgstr "; menggunakan nama VPATH '%s'"
 
-#: remake.c:804
-#, fuzzy, c-format
+#: remake.c:825
+#, c-format
 msgid "Must remake target '%s'.\n"
-msgstr "Harus membuat lagi target `%s'.\n"
+msgstr "Harus membuat lagi target '%s'.\n"
 
-#: remake.c:810
-#, fuzzy, c-format
+#: remake.c:831
+#, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
-msgstr " Mengabaikan nama VPATH `%s'.\n"
+msgstr " Mengabaikan nama VPATH '%s'.\n"
 
-#: remake.c:819
-#, fuzzy, c-format
+#: remake.c:840
+#, c-format
 msgid "Recipe of '%s' is being run.\n"
-msgstr "Perintah dari `%s' sedang dijalankan.\n"
+msgstr "Perintah dari '%s' sedang dijalankan.\n"
 
-#: remake.c:826
-#, fuzzy, c-format
+#: remake.c:847
+#, c-format
 msgid "Failed to remake target file '%s'.\n"
-msgstr "Gagal membuat lagi target berkas `%s'.\n"
+msgstr "Gagal membuat lagi target berkas '%s'.\n"
 
-#: remake.c:829
-#, fuzzy, c-format
+#: remake.c:850
+#, c-format
 msgid "Successfully remade target file '%s'.\n"
-msgstr "Sukses membuat kembali target berkas `%s'.\n"
+msgstr "Sukses membuat kembali target berkas '%s'.\n"
 
-#: remake.c:832
-#, fuzzy, c-format
+#: remake.c:853
+#, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
-msgstr "Target berkas `%s' dibutuhkan untuk membuat kembali dengan opsi -q.\n"
+msgstr "Target berkas '%s' dibutuhkan untuk membuat kembali dengan opsi -q.\n"
 
-#: remake.c:1027
-#, fuzzy, c-format
+#: remake.c:1048
+#, c-format
 msgid "Using default commands for '%s'.\n"
-msgstr "Menggunakan perintah baku untuk `%s'.\n"
+msgstr "Menggunakan perintah baku untuk '%s'.\n"
 
-#: remake.c:1372
-#, fuzzy, c-format
+#: remake.c:1397
+#, c-format
 msgid "Warning: File '%s' has modification time in the future"
-msgstr "Peringatan: Berkas `%s' memiliki waktu modifikasi dimasa depan"
+msgstr "Peringatan: Berkas '%s' memiliki waktu modifikasi dimasa depan"
 
-#: remake.c:1385
-#, fuzzy, c-format
+#: remake.c:1411
+#, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
-msgstr "Peringatan: Berkas `%s' memiliki waktu modifikasi %.2g s kedepan"
+msgstr "Peringatan: Berkas '%s' memiliki waktu modifikasi %s s kedepan"
 
-#: remake.c:1583
-#, fuzzy, c-format
+#: remake.c:1610
+#, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
-msgstr ".LIBPATTERNS elemen `%s' bukan merupakan sebuah pattern"
+msgstr ".LIBPATTERNS elemen '%s' bukan merupakan sebuah pattern"
 
 #: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
 msgstr "Custom tidak akan men-export: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1832,7 +1799,7 @@ msgstr ""
 "\n"
 "# Aturan implisit."
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1840,7 +1807,7 @@ msgstr ""
 "\n"
 "# Tidak ada aturan implisit."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1849,12 +1816,12 @@ msgstr ""
 "\n"
 "# %u aturan implisit, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-#: rule.c:531
-#, fuzzy, c-format
+#: rule.c:530
+#, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "BUG: num_pattern_rules salah! %u != %u"
 
@@ -2015,36 +1982,43 @@ msgid "Floating point co-processor not available"
 msgstr "co-processor titik pecahan tidak tersedia"
 
 #: strcache.c:236
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s No strcache buffers\n"
-msgstr "%s # dari buffer strcache: %d\n"
+msgstr ""
+"\n"
+"%s # dari buffer strcache: \n"
 
 #: strcache.c:266
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
 "B\n"
-msgstr "%s strcache free: total = %d / mak = %d / min = %d / rata-rata = %d\n"
+msgstr ""
+"\n"
+"%s strcache free: %lu total = (%lu) / mak = %lu / min = %lu / rata-rata = "
+"%lu\n"
 
 #: strcache.c:270
 #, c-format
 msgid ""
 "%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 
 #: strcache.c:280
-#, fuzzy, c-format
+#, c-format
 msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
-msgstr "besar %s strcache: total = %d / mak = %d / min = %d / rata-rata = %d\n"
+msgstr "besar %s strcache: total = %lu / count = %lu / rata-rata = %lu\n"
 
 #: strcache.c:283
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
-msgstr "%s strcache free: total = %d / mak = %d / min = %d / rata-rata = %d\n"
+msgstr ""
+"%s strcache free: total = %lu / mak = %lu / min = %lu / rata-rata = %hu\n"
 
 #: strcache.c:287
 #, c-format
@@ -2052,56 +2026,55 @@ msgid ""
 "\n"
 "%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 msgstr ""
+"\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 
 #: strcache.c:289
-#, fuzzy
 msgid ""
 "# hash-table stats:\n"
 "# "
 msgstr ""
-"\n"
 "# berkas statistik hash-table:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "otomatis"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "baku"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "lingkungan"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "lingkungan dibawah opsi -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "baris perintah"
 
-#: variable.c:1625
-#, fuzzy
+#: variable.c:1617
 msgid "'override' directive"
-msgstr "`override' direktif"
+msgstr "'override' direktif"
 
-#: variable.c:1636
-#, fuzzy, c-format
+#: variable.c:1628
+#, c-format
 msgid " (from '%s', line %lu)"
-msgstr " (dari `%s', baris %lu)"
+msgstr " (dari '%s', baris %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# statistik variable set hash-table:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2109,7 +2082,7 @@ msgstr ""
 "\n"
 "# Variabel\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2117,7 +2090,7 @@ msgstr ""
 "\n"
 "# Nilai Variabel Pola-Spesifik"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2125,7 +2098,7 @@ msgstr ""
 "\n"
 "# Tidak terdapat nilai variabel pola-spesifik"
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2135,87 +2108,92 @@ msgstr ""
 "# %u nilai variabel pola-spesifik"
 
 #: variable.h:224
-#, fuzzy, c-format
+#, c-format
 msgid "warning: undefined variable '%.*s'"
-msgstr "peringatan: variabel `%.*s' tidak terdefinisi"
+msgstr "peringatan: variabel '%.*s' tidak terdefinisi"
 
 #: vmsfunctions.c:91
-#, fuzzy, c-format
+#, c-format
 msgid "sys$search() failed with %d\n"
-msgstr "sys$search gagal dengan kode %d\n"
+msgstr "sys$search() gagal dengan kode %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Peringatan: redirection kosong\n"
 
-#: vmsjobs.c:178
-#, fuzzy, c-format
+#: vmsjobs.c:183
+#, c-format
 msgid "internal error: '%s' command_state"
-msgstr "kesalahan internal: `%s' command_state"
+msgstr "kesalahan internal: '%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-warning, kamu mungkin telah mengaktifkan pengontrolan CTRL-Y dari DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BAWAAN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BAWAAN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "BAWAAN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "BAWAAN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Perintah bawaan '%s' tidak diketahui\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Error, perintah kosong\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Meneruskan masukan dari %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Meneruskan error ke %s\n"
 
-#: vmsjobs.c:518
-#, fuzzy, c-format
+#: vmsjobs.c:690
+#, c-format
 msgid "Append output to %s\n"
 msgstr "Meneruskan output ke %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Meneruskan output ke %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Append %.*s and cleanup\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Menjalankan perintah %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Gagal spawning, %d\n"
@@ -2229,39 +2207,51 @@ msgstr ""
 "# VPATH Jalur Pencarian\n"
 
 #: vpath.c:600
-#, fuzzy
 msgid "# No 'vpath' search paths."
-msgstr "# Tidak ada `vpath' dalam jalur pencarian."
+msgstr "# Tidak ada 'vpath' dalam jalur pencarian."
 
 #: vpath.c:602
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# %u 'vpath' search paths.\n"
 msgstr ""
 "\n"
-"# %u `vpath' jalur pencarian.\n"
+"# %u 'vpath' jalur pencarian.\n"
 
 #: vpath.c:605
-#, fuzzy
 msgid ""
 "\n"
 "# No general ('VPATH' variable) search path."
 msgstr ""
 "\n"
-"# Tidak ada (`VPATH' variabel) umum dalam jalur pencarian."
+"# Tidak ada ('VPATH' variabel) umum dalam jalur pencarian."
 
 #: vpath.c:611
-#, fuzzy
 msgid ""
 "\n"
 "# General ('VPATH' variable) search path:\n"
 "# "
 msgstr ""
 "\n"
-"# Jalur pencarian umum untuk variabel `VPATH':\n"
+"# Jalur pencarian umum untuk variabel 'VPATH':\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "internal error: opsi --sync-mutex lebih dari satu"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "internal error: opsi --jobserver-fds lebih dari satu"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "Kehabisan memori maya"
+
+#~ msgid "write error"
+#~ msgstr "error menulis"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "BAWAAN RM %s\n"
+
 #~ msgid "#  Invalid value in `update_status' member!"
 #~ msgstr "#  Nilai yang salah dalam anggota `update_status' !"
 
index 3430cc8af77a84a164e5d89df13420be5a209de1..dd76258c4b5191907f30cc83d80e58106a6e4f18 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 9e21bd4fa68f9d03df3e9e5c8e38da65285e815a..65022559edb7b5c01610175f0061caf0699b676f 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -5,10 +5,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.99.93\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-02 18:34+0200\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-11 14:58+0200\n"
 "Last-Translator: Francesco Groccia <frgroccia@gmail.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
@@ -45,52 +45,52 @@ msgstr "touch: il membro \"%s\" non esiste in \"%s\""
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: codice di uscita errato da ar_member_touch su \"%s\""
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "lbr$set_module() non è riuscita a estrarre informazioni sul modulo, stato = "
 "%d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() non riuscita con lo stato = %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "impossibile aprire la libreria \"%s\" per cercare il membro \"%s\""
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Membro \"%s\"%s: %ld byte a %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (il nome potrebbe essere troncato)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Data %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, modo = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "Il set di istruzioni ha troppe righe (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Interruzione.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr ""
@@ -103,25 +103,25 @@ msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr ""
 "*** Il membro di archivio \"%s\" potrebbe essere inesistente; non eliminato"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Eliminazione del file \"%s\""
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Eliminazione del file \"%s\""
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  set di istruzioni da eseguire"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (comando interno):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (da \"%s\", riga %lu):\n"
@@ -203,157 +203,157 @@ msgstr "La variabile ricorsiva \"%s\" si autoreferenzia (alla fine)"
 msgid "unterminated variable reference"
 msgstr "riferimento alla variabile non terminato"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "È stato specificato un set di istruzioni per il file \"%s\" a %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 "È stato trovato un set di istruzioni per il file \"%s\" mediante una regola "
 "di ricerca implicita,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "ma ora \"%s\" viene considerato lo stesso file di \"%s\"."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Il set di istruzioni per \"%s\" verrà ignorato in favore di quello per \"%s"
 "\"."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "impossibile rinominare la regola \"due punti\" \"%s\" con la regola \"doppio "
 "due punti\" \"%s\""
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 "impossibile rinominare la regola \"doppio due punti\" \"%s\" con la regola "
 "\"due punti\" \"%s\""
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Eliminazione del file intermedio \"%s\""
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Rimozione dei file intermedi...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Ora corrente"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: intervallo errato per la marcatura temporale; sostituzione di %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Ora corrente"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Non è un obiettivo:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  File \"precious\" (prerequisito di .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Obiettivo \"phony\" (prerequisito di .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Obiettivo a riga di comando."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "# Un makefile predefinito, da MAKEFILES, o da -include/sinclude."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "#  Regola incorporata"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Regola di ricerca implicita completata."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Regola di ricerca implicita non completata."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Stem implicito/statico del modello: \"%s\"\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Il file è un prerequisito intermedio."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Inoltre, genera:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Ora di modifica mai controllata."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Il file non esiste."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Il file è molto vecchio."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Ultima modifica %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Il file è stato aggiornato."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Il file non è stato aggiornato."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Set di istruzioni attualmente in esecuzione (QUESTO È UN BUG)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Dipendenze del set di istruzioni in esecuzione (QUESTO È UN BUG)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Aggiornato con successo."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Richiede di essere aggiornato (-q è impostato)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Aggiornamento non riuscito."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Valore illecito nel membro \"command_state\"!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -361,7 +361,7 @@ msgstr ""
 "\n"
 "# File"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -371,103 +371,104 @@ msgstr ""
 "# statistiche tabella hash dei file:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Campo \"%s\" non memorizzato: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "primo argomento non numerico per la funzione \"word\""
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "il primo argomento per la funzione \"word\" deve essere maggiore di 0"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "primo argomento non numerico per la funzione \"wordlist\""
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "secondo argomento non numerico per la funzione \"wordlist\""
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(In) non riuscita (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_open_pipe: DuplicateHandle(Err) non riuscita (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() non riuscita (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() non riuscita\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Pulitura del file batch temporaneo %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "apertura: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "scrittura: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Operazione sui file non valida: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "numero di argomenti non sufficienti (%d) per la funzione \"%s\""
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "non implementata su questa piattaforma: funzione \"%s\""
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "chiamata non terminata alla funzione \"%s\": \"%c\" mancante"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Nome della funzione vuoto\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Operazione sui file non valida: %s"
+msgid "Invalid function name: %s"
+msgstr "Nome della funzione non valido: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Nome della funzione troppo lungo: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "numero di argomenti non sufficienti (%d) per la funzione \"%s\"\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "numero di argomenti non sufficienti (%d) per la funzione \"%s\"\n"
 
 #: getopt.c:659
@@ -525,12 +526,12 @@ msgstr "%s: l'opzione \"-W %s\" è ambigua\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: l'opzione \"-W %s\" non ammette argomenti\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: Espansione di \"%s\"\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: Valutazione di \"%s\"\n"
@@ -614,97 +615,97 @@ msgstr "Ricerca di una regola con il file intermedio \"%s\".\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Impossibile creare un file temporaneo\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (creato dump del core)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (ignorato)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<incorporato>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: set di istruzioni per l'obiettivo \"%s\" non riuscito"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Errore 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Errore %d%s"
 
-#: job.c:517
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Errore 0x%x%s"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Attesa per i processi non terminati...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Processo figlio vivo %p (%s) con PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (remoto)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Interruzione del processo figlio perdente %p con PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Interruzione del processo figlio vincente %p con PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Pulitura del file batch temporaneo %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Pulitura del file batch temporaneo %s non riuscita (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr ""
 "Rimozione del processo figlio %p con PID %s%s dalla catena di esecuzione.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "rilascio del semaforo del jobserver: (Errore %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Token rilasciato per il processo figlio %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "scrittura del jobserver"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() non riuscita all'avvio del processo (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -713,105 +714,105 @@ msgstr ""
 "\n"
 "Contati %d argomenti nell'avvio fallito\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr ""
 "Inserimento del processo figlio %p (%s) con PID %s%s nella catena di "
 "esecuzione.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "attendere semaforo o processo figlio (Errore %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Token ottenuto per il processo figlio %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "lettura della pipe dei processi"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: l'obbiettivo \"%s\" non esiste"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: aggiorna l'obbiettivo \"%s\" a causa di: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 "impossibile far rispettare i limiti di carico su questo sistema operativo"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "impossibile far rispettare il limite di carico: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 "nessun'altra gestione del file: impossibile duplicare lo standard input\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 "nessun'altra gestione del file: impossibile duplicare lo standard output\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 "nessun'altra gestione del file: impossibile duplicare lo standard error\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Impossibile ripristinare lo standard input\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Impossibile ripristinare lo standard output\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Impossibile ripristinare lo standard error\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 "make ha interrotto il processo figlio con pid %s, è ancora in attesa del "
 "processo con pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: comando non trovato"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: shell non trovata"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: lo spazio dell'ambiente potrebbe essere esaurito"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL cambiata (era \"%s\", adesso è \"%s\")\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Creazione del file batch temporaneo %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -819,7 +820,7 @@ msgstr ""
 "Contenuti del file batch:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -828,7 +829,7 @@ msgstr ""
 "Contenuti del file batch:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -838,50 +839,50 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr "-O[TIPO] (--output-sync[=TIPO]) non è configurato per questa versione."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Apertura della tabella dei simboli globale non riuscita: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "L'oggetto caricato %s non è dichiarato compatibile con la licenza GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Caricamento del simbolo %s da %s non riuscito: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Nome del simbolo vuoto per il caricamento: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Caricamento del simbolo %s da %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "L'operazione \"load\" non è supportata su questa piattaforma."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opzioni:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ignorato per compatibilità.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 "  -B, --always-make           Genera tutti gli obiettivi "
 "incondizionatamente.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -890,17 +891,17 @@ msgstr ""
 "                              Cambia DIRECTORY prima di fare qualunque "
 "cosa.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Mostra molte informazioni di debug.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=FLAGS]             Mostra diversi tipi di informazioni di debug.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -909,13 +910,13 @@ msgstr ""
 "                              Le variabili ambiente sovrascrivono i "
 "makefile.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=TESTO               Analizza STRINGA come estratta dal makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -923,16 +924,16 @@ msgstr ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Legge FILE come un makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Mostra questo messaggio ed esce.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         Ignora gli errori dai set di istruzioni.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -940,7 +941,7 @@ msgstr ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Cerca nella DIRECTORY per i makefile inclusi.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -948,14 +949,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Permette N processi alla volta; infiniti se "
 "non viene specificato l'argomento.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Continua l'esecuzione quando non è possibile "
 "creare alcuni obiettivi.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -965,7 +966,7 @@ msgstr ""
 "                              Non avvia processi multipli a meno che il "
 "carico di lavoro non sia sotto N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -973,7 +974,7 @@ msgstr ""
 "  -L, --check-symlink-times   Usa il più recente mtime tra i collegamenti "
 "simbolici e l'obiettivo.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -983,7 +984,7 @@ msgstr ""
 "                              Non esegue alcun set di istruzioni; lo stampa "
 "solamente.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -993,7 +994,7 @@ msgstr ""
 "                              Considera il FILE come molto vecchio e non "
 "riesegue make.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -1002,11 +1003,11 @@ msgstr ""
 "                              Sincronizza l'output dei processi paralleli "
 "dal TIPO.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Stampa il database interno di make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1014,22 +1015,22 @@ msgstr ""
 "  -q, --question              Non avvia alcun set di istruzioni; lo stato di "
 "uscita indica se è aggiornato.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Disabilita le regole implicite interne.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Disabilita le impostazioni delle variabili "
 "interne.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Non visualizza i set di istruzioni.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1038,27 +1039,27 @@ msgstr ""
 "                            Disattiva l'opzione -k.\n"
 
 # ## touch = in questo contesto è simile alla funzione del comando 'touch'
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Esegue il touch degli obiettivi invece di "
 "ricrearli.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Stampa informazioni di tracciamento.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 "  -v, --version               Stampa il numero di versione di make ed esce.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Stampa la directory corrente.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1066,7 +1067,7 @@ msgstr ""
 "  --no-print-directory        Disattiva l'opzione -w, anche se era stata "
 "attivata implicitamente.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1074,7 +1075,7 @@ msgstr ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Considera il FILE come nuovo di zecca.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1082,31 +1083,27 @@ msgstr ""
 "  --warn-undefined-variables  Avvisa quando viene referenziata una variabile "
 "non definita.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "una stringa vuota non è valida come nome di file"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "livello di debug specificato sconosciuto \"%s\""
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "tipo di output-sync (sincronizzazione dell'output) sconosciuto \"%s\""
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "errore interno: opzioni multiple per --sync-mutex"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
 "%s: catturata una interruzione/eccezione (codice = 0x%lx, indirizzo = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1121,43 +1118,39 @@ msgstr ""
 "ExceptionFlags = %lx\n"
 "ExceptionAddress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Violazione accesso: operazione di scrittura all'indirizzo 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Violazione accesso: operazione di lettura all'indirizzo 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() impostazione default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 "find_and_set_shell() impostazione del percorso di ricerca default_shell = "
 "%s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s viene sospeso per 30 secondi..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) eseguito. Continuazione.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "errore interno: opzioni multiple per --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
@@ -1165,146 +1158,146 @@ msgstr ""
 "errore interno: impossibile aprire il semaforo del jobserver \"%s\": (Errore "
 "%ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Client del jobserver (semaforo %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "errore interno: stringa illecita per --jobserver-fds \"%s\""
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Client del jobserver (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "attenzione: -jN forzata nel submake: disattivazione della modalità jobserver."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "jobserver duplicato"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "attenzione: jobserver non disponibile, viene usato -j1. Aggiungere \"+\" "
 "alla regola make superiore."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Il Makefile dallo standard input è stato specificato due volte."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (file temporaneo)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (file temporaneo)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "I processi paralleli (-j) non sono supportati su questa piattaforma."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Reimpostazione alla modalità a singolo processo (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Slot del jobserver limitati a %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "Creazione del semaforo del jobserver: (Errore %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "creazione della pipe dei processi"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "inizializzazione nella pipe della modalità jobserver"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Collegamenti simbolici non supportati: opzione -L disabilitata."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Aggiornamento dei makefile....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ""
 "Il makefile \"%s\" potrebbe entrare in un ciclo all'infinito; make non "
 "rieseguito.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Riesecuzione del makefile \"%s\" non riuscita."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Il makefile \"%s\" incluso non è stato trovato."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Il makefile \"%s\" non è stato trovato"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Impossibile ritornare alla directory originale."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Riesecuzione[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (file temporaneo): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL contiene più di un obiettivo"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Nessun obiettivo specificato e nessun makefile trovato"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Nessun obiettivo"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Aggiornamento degli obiettivi....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "attenzione: rilevato un tempo alterato. La creazione potrebbe essere "
 "incompleta."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Uso: %s [opzioni] [obiettivo] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1313,7 +1306,7 @@ msgstr ""
 "\n"
 "Questo programma è stato compilato per %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1322,32 +1315,32 @@ msgstr ""
 "\n"
 "Questo programma è stato compilato per %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Segnalare i bug a <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "l'opzione \"%s%s\" richiede un argomento stringa non vuoto"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "l'opzione \"-%c\" richiede un argomento intero positivo"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sCompilato per %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sCompilato per %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1361,7 +1354,7 @@ msgstr ""
 "ridistribuirlo.\n"
 "%s Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1370,7 +1363,7 @@ msgstr ""
 "\n"
 "# Generazione del database delle informazioni, creato il %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1384,10 +1377,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Errore %d sconosciuto"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "memoria virtuale esaurita"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1409,65 +1398,61 @@ msgstr "Accesso make"
 msgid "Child access"
 msgstr "Accesso processo figlio"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: ingresso in una directory sconosciuta\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: uscita dalla directory sconosciuta\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: ingresso nella directory \"%s\"\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: uscita dalla directory \"%s\"\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: ingresso in una directory sconosciuta\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: uscita dalla directory sconosciuta\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: ingresso nella directory \"%s\"\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: uscita dalla directory \"%s\"\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "errore in scrittura: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "errore in scrittura"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Arresto.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1476,222 +1461,228 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Lettura dei makefile...\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Lettura del makefile \"%s\""
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (nessun obiettivo predefinito)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (percorso di ricerca)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (ignora)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (nessuna espansione per \"~\")"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "UTF-8 BOM nel makefile \"%s\" saltato\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "UTF-8 BOM nel makefile buffer saltato\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "sintassi illecita nel condizionale"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: caricamento non riuscito"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "il set di istruzioni inizia prima del primo obiettivo"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "regola mancante prima del set di istruzioni"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "separatore %s mancante"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (si intendeva TAB invece di 8 spazi?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "separatore %s mancante"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "modello mancante per l'obiettivo"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "modelli multipli per l'obiettivo"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "il modello dell'obiettivo non contiene alcun \"%%\""
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "\"endif\" mancante"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "nome vuoto della variabile"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "testo non pertinente dopo la direttiva \"define\""
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "\"endef\" mancante, \"define\" non terminato"
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "testo non pertinente dopo la direttiva \"endef\""
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "testo non pertinente dopo la direttiva \"%s\""
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "\"%s\" non pertinente"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "un solo \"else\" per condizionale"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Definizione malformata della variabile specifica per l'obiettivo"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "i prerequisiti non possono essere definiti nei set di istruzioni"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "regole del modello implicite e statiche miste"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "regole implicite e normali miste"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr ""
 "il \"%s\" dell'obiettivo non corrisponde al modello dell'obiettivo stesso"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "Il file dell'obiettivo \"%s\" contiene sia : che ::"
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr ""
 "l'obiettivo \"%s\" è stato fornito più di una volta nella stessa regola"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr ""
 "attenzione: sovrascrittura del set di istruzioni per l'obiettivo \"%s\""
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr ""
 "attenzione: ignorato il set di istruzioni obsoleto per l'obiettivo \"%s\""
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "regole implicite e normali miste"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr ""
 "attenzione: è stato rilevato il carattere NUL; il resto della riga viene "
 "ignorato"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Nessuna operazione da eseguire per \"%s\"."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "\"%s\" è aggiornato."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Pulizia del file \"%s\".\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%s Nessuna regola per generare l'obiettivo \"%s\"%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
 "%s Nessuna regola per generare l'obiettivo \"%s\", necessario per \"%s\"%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%s Nessuna regola per generare l'obiettivo \"%s\"%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Considerato il file obiettivo \"%s\".\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Tentativo recente di aggiornamento del file \"%s\" non riuscito.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Il file \"%s\" è già stato esaminato.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "L'aggiornamento del file \"%s\" è ancora in corso.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Aggiornamento del file \"%s\" terminato.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Il file \"%s\" non esiste.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1699,142 +1690,142 @@ msgstr ""
 "*** Attenzione: il file .LOW_RESOLUTION_TIME \"%s\" ha una marcatura "
 "temporale ad alta risoluzione"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Trovata una regola implicita per \"%s\".\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Nessuna regola implicita trovata per \"%s\".\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Uso del set di istruzioni predefinito per \"%s\".\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Dipendenza circolare %s <- %s scartata."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Prerequisiti del file obiettivo \"%s\" terminati.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Generazione dei prerequisiti di \"%s\" in corso.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Abbandono sul file obiettivo \"%s\".\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "L'obiettivo \"%s\" non è stato rigenerato a causa di errori."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Il prerequisito \"%s\" è solo per l'obiettivo \"%s\".\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Il prerequisito \"%s\" dell'obiettivo \"%s\" non esiste.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Il prerequisito \"%s\" è più nuovo di quello dell'obiettivo \"%s\".\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr ""
 "Il prerequisito \"%s\" è più vecchio di quello dell'obiettivo \"%s\".\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
 "L'obiettivo \"%s\" è \"doppio due punti\" e non ha alcun prerequisito.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 "Nessun set di istruzioni per \"%s\" e nessun prerequisito effettivamente "
 "cambiato.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Generazione di \"%s\" a causa del flag \"always-make\".\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Non è necessario rigenerare l'obiettivo \"%s\""
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; uso del nome VPATH \"%s\""
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "L'obiettivo \"%s\" deve essere rigenerato.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  nome VPATH \"%s\" ignorato.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Esecuzione del set di istruzioni per \"%s\" in corso.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Rigenerazione del file obiettivo \"%s\" non riuscita.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "File obiettivo \"%s\" rigenerato correttamente.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr ""
 "Il file obiettivo \"%s\" necessita di essere rigenerato con l'opzione -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Uso dei comandi predefiniti per \"%s\".\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Attenzione: il file \"%s\" ha un orario di modifica nel futuro"
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Attenzione: il file \"%s\" ha un orario di modifica %s nel futuro"
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "l'elemento .LIBPATTERNS \"%s\" non è un modello"
@@ -1844,7 +1835,7 @@ msgstr "l'elemento .LIBPATTERNS \"%s\" non è un modello"
 msgid "Customs won't export: %s\n"
 msgstr "Le personalizzazioni non verranno esportate: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1852,7 +1843,7 @@ msgstr ""
 "\n"
 "# Regole implicite"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1860,7 +1851,7 @@ msgstr ""
 "\n"
 "# Regole non implicite."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1869,11 +1860,11 @@ msgstr ""
 "\n"
 "# %u regole implicite, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminale."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "BUG: num_pattern_rules è errato!  %u != %u"
@@ -2091,44 +2082,44 @@ msgstr ""
 "# statistiche della tabella hash:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatico"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "predefinito"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "ambiente"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "ambiente con l'opzione -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "riga di comando"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "direttiva \"override\""
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (da \"%s\", riga %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# statistiche tabella di hash del set di variabili:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2136,7 +2127,7 @@ msgstr ""
 "\n"
 "# Variabili\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2144,7 +2135,7 @@ msgstr ""
 "\n"
 "# Valori di variabile non specifici per il modello."
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2152,7 +2143,7 @@ msgstr ""
 "\n"
 "# Nessun valore per la variabile \"pattern-specific\"."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2171,79 +2162,84 @@ msgstr "attenzione: variabile \"%.*s\" non definita"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() non riuscita con %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Attenzione: redirezione vuota\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "errore interno: command_state \"%s\""
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-attenzione, potrebbe essere necessario riabilitare la gestione di CTRL+Y da "
 "DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "[%s] INTERNO [%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "CD INTERNO %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "RM INTERNO %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "CD INTERNO %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Comando interno \"%s\" sconosciuto\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Errore, comando vuoto\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Input rediretto da %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Errore rediretto a %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Accoda output a %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Output rediretto a %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Accoda %.*s e pulisce\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Verrà invece eseguito %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Errore nella generazione, %d\n"
@@ -2287,6 +2283,21 @@ msgstr ""
 "# Percorso di ricerca generale (variabile \"VPATH\"):\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "errore interno: opzioni multiple per --sync-mutex"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "errore interno: opzioni multiple per --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "memoria virtuale esaurita"
+
+#~ msgid "write error"
+#~ msgstr "errore in scrittura"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "RM INTERNO %s\n"
+
 #~ msgid "#  Invalid value in 'update_status' member!"
 #~ msgstr "#  Valore illecito nel membro \"update_status\"!"
 
index 7d94d2012fe9297abc3d3b353c084a46d04761d8..f79bcbd70bc46ed9847014c6ba6298f6cfa55f50 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 5e98fa6d1eb69abb38da5dc7aacb744cf15694c4..355e30da437a3bdd5f50f863677b7b2df9325ccf 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
-# Japanese message catalog for make 3.82
-# Copyright (C) 2001, 2003, 2004, 2011 Free Software Foundation, Inc.
+# Japanese message catalog for make 4.0
+# Copyright (C) 2001 Free Software Foundation, Inc.
 # This file is distributed under the same license as the make package.
-# GOTO Masanori <gotom@debian.or.jp>, 2003-2004.
 # Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 2001.
 #             Thanks to NISHIJIMA Takanori
-# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011
+# GOTO Masanori <gotom@debian.or.jp>, 2003-2004.
+# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011, 2014
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.82\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2011-08-28 01:14+0900\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2014-05-03 23:00+0900\n"
 "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
 "Language: ja\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Basepath: /factory/ja-po/make/make-3.82\n"
+"X-Poedit-Basepath: /factory/ja-po/make/make-4.0\n"
+"X-Generator: Poedit 1.5.4\n"
 
 #: ar.c:46
-#, fuzzy, c-format
+#, c-format
 msgid "attempt to use unsupported feature: '%s'"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤µ¡Ç½¤ò»È¤ª¤¦¤È¤·¤Æ¤¤¤Þ¤¹: `%s'"
+msgstr "サポートされていない機能を使おうとしています: '%s'"
 
 #: ar.c:123
 msgid "touch archive member is not available on VMS"
-msgstr "VMS ¤Ç¤Ï½ñ¸Ë¤Î¥á¥ó¥Ð¤ò touch ¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤»¤ó"
+msgstr "VMS では書庫のメンバを touch する機能がありません"
 
 #: ar.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Archive '%s' does not exist"
-msgstr "touch: ½ñ¸Ë `%s' ¤¬¤¢¤ê¤Þ¤»¤ó"
+msgstr "touch: 書庫 '%s' がありません"
 
 #: ar.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "touch: '%s' is not a valid archive"
-msgstr "touch: `%s' ¤ÏÀµ¾ï¤Ê½ñ¸Ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+msgstr "'%s' は有効な書庫ではありません"
 
 #: ar.c:157
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Member '%s' does not exist in '%s'"
-msgstr "touch: ¥á¥ó¥Ð `%s' ¤Ï `%s' Æâ¤Ë¤¢¤ê¤Þ¤»¤ó"
+msgstr "touch: メンバ '%s' は '%s' 内に存在しません"
 
 #: ar.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Bad return code from ar_member_touch on '%s'"
-msgstr "touch: `%s' ¤Ø¤Î ar_member_touch ¤«¤é°Û¾ï¤ÊÃͤ¬ÊÖ¤ê¤Þ¤·¤¿"
+msgstr "touch: '%s' への ar_member_touch から異常な値が返りました"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "lbr$set_module() ¤¬¥â¥¸¥å¡¼¥ë¾ðÊó¤ÎÃê½Ð¤Ë¼ºÇÔ¤·¤Þ¤·¤¿. ¾õÂÖ = %d"
+msgstr "lbr$set_module() がモジュール情報の抽出に失敗しました. 状態 = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control() ¤¬¼ºÇÔ¤·¤Þ¤·¤¿. ¾õÂÖ = %d"
+msgstr "lbr$ini_control() が失敗しました. 状態 = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
-msgstr "¥é¥¤¥Ö¥é¥ê `%s' ¤ò³«¤±¤º, ¥á¥ó¥Ð `%s' ¤Î¸¡º÷¤¬¤Ç¤­¤Þ¤»¤ó"
+msgid "unable to open library '%s' to lookup member status %d"
+msgstr "ライブラリ '%s' を開けないため, メンバ '%s' の検索ができません"
 
-#: arscan.c:847
-#, fuzzy, c-format
+#: arscan.c:944
+#, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "¥á¥ó¥Ð `%s'%s: %ld ¥Ð¥¤¥È at %ld (%ld).\n"
+msgstr "メンバ '%s'%s: %ld バイト at %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
-msgstr " (̾Á°¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¤«¤â)"
+msgstr " (名前が切り詰められたかも)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
-msgstr "  ÆüÉÕ %s"
+msgstr "  日付 %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
-msgstr ""
+msgstr "レシピの行数が多すぎます (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
-msgstr "*** ÃæÃÇ.\n"
+msgstr "*** 中断.\n"
 
-#: commands.c:630
-#, fuzzy, c-format
+#: commands.c:629
+#, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
-msgstr "*** [%s] ½ñ¸Ë¥á¥ó¥Ð `%s' ¤Ï¿ʬµ¶Êª¤Ç¤¹ ¡½ ºï½ü¤·¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr "*** [%s] 書庫のメンバ '%s' は多分偽物です ― 削除しませんでした"
 
 #: commands.c:633
-#, fuzzy, c-format
+#, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
-msgstr "*** ½ñ¸Ë¥á¥ó¥Ð `%s' ¤Ï¿ʬµ¶Êª¤Ç¤¹ ¡½ ºï½ü¤·¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr "*** 書庫のメンバ '%s' は多分偽物です ― 削除しませんでした"
 
-#: commands.c:646
-#, fuzzy, c-format
+#: commands.c:647
+#, c-format
 msgid "*** [%s] Deleting file '%s'"
-msgstr "*** [%s] ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹"
+msgstr "*** [%s] ファイル '%s' を削除します"
 
-#: commands.c:648
-#, fuzzy, c-format
+#: commands.c:649
+#, c-format
 msgid "*** Deleting file '%s'"
-msgstr "*** ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹"
+msgstr "*** ファイル '%s' を削除します"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
-msgstr "#  ¼Â¹Ô¤¹¤ë¥ì¥·¥Ô"
+msgstr "#  実行するレシピ"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
-msgstr " (¥Ó¥ë¥È¥¤¥ó):"
+msgstr " (ビルトイン):"
 
-#: commands.c:689
-#, fuzzy, c-format
+#: commands.c:690
+#, c-format
 msgid " (from '%s', line %lu):\n"
-msgstr " (`%s', %lu ¹ÔÌܤ«¤é):\n"
+msgstr " (ファイル '%s', %lu 行目):\n"
 
 #: dir.c:989
 msgid ""
@@ -131,27 +132,27 @@ msgid ""
 "# Directories\n"
 msgstr ""
 "\n"
-"# ¥Ç¥£¥ì¥¯¥È¥ê\n"
+"# ディレクトリ\n"
 
 #: dir.c:1001
 #, c-format
 msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: ¾õÂÖ¤òÄ´¤Ù¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+msgstr "# %s: 状態を調べられませんでした.\n"
 
 #: dir.c:1005
 #, c-format
 msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (key %s, mtime %d): ³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+msgstr "# %s (key %s, mtime %d): 開けませんでした.\n"
 
 #: dir.c:1009
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (device %d, inode [%d,%d,%d]): ³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+msgstr "# %s (device %d, inode [%d,%d,%d]): 開けませんでした.\n"
 
 #: dir.c:1014
 #, c-format
 msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (device %ld, inode %ld): ³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+msgstr "# %s (device %ld, inode %ld): 開けませんでした.\n"
 
 #: dir.c:1041
 #, c-format
@@ -174,7 +175,7 @@ msgstr "0"
 
 #: dir.c:1059 dir.c:1080
 msgid " files, "
-msgstr " ¸Ä¤Î¥Õ¥¡¥¤¥ë, "
+msgstr " 個のファイル, "
 
 #: dir.c:1061 dir.c:1082
 msgid "no"
@@ -182,364 +183,357 @@ msgstr "0"
 
 #: dir.c:1064
 msgid " impossibilities"
-msgstr " ¸Ä¤ÎŬÍÑÉÔǽ¥Õ¥¡¥¤¥ë̾"
+msgstr " 個の適用不能ファイル名"
 
 #: dir.c:1068
 msgid " so far."
-msgstr " (¤³¤³¤Þ¤Ç¤Ë)."
+msgstr " (ここまでに)."
 
 #: dir.c:1085
 #, c-format
 msgid " impossibilities in %lu directories.\n"
-msgstr " ¸Ä¤ÎŬÍÑÉÔǽ¥Õ¥¡¥¤¥ë̾ (%lu ¸Ä¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ).\n"
+msgstr " 個の適用不能ファイル名 (%lu 個のディレクトリ内).\n"
 
 #: expand.c:125
-#, fuzzy, c-format
+#, c-format
 msgid "Recursive variable '%s' references itself (eventually)"
-msgstr "ºÆµ¢ÅªÊÑ¿ô `%s' ¤¬(ºÇ½ªÅª¤Ë)¤½¤ì¼«¿È¤ò»²¾È¤·¤Æ¤¤¤Þ¤¹"
+msgstr "再帰的変数 '%s' が(最終的に)それ自身を参照しています"
 
 #: expand.c:269
 msgid "unterminated variable reference"
-msgstr "½ªÃ¼¤Î¤Ê¤¤ÊÑ¿ô»²¾È"
+msgstr "終端のない変数参照"
 
-#: file.c:269
-#, fuzzy, c-format
+#: file.c:271
+#, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Î¤¿¤á¤Î¤Î¥ì¥·¥Ô¤¬ %s:%lu ¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿,"
+msgstr "ファイル '%s' のためののレシピが %s:%lu で指定されました,"
 
-#: file.c:274
-#, fuzzy, c-format
+#: file.c:276
+#, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤¬°ÅÌۥ롼¥ë¤Îõº÷¤Ç¸«¤Ä¤«¤ê¤Þ¤·¤¿,"
+msgstr "ファイル '%s' のためのレシピが暗黙ルールの探索で見つかりました,"
 
-#: file.c:277
-#, fuzzy, c-format
+#: file.c:280
+#, c-format
 msgid "but '%s' is now considered the same file as '%s'."
-msgstr "¤·¤«¤·º£¤Ï `%s' ¤È `%s' ¤ÏƱ¤¸¥Õ¥¡¥¤¥ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹."
+msgstr "しかし今は '%s' と '%s' は同じファイルと見なされます."
 
-#: file.c:280
-#, fuzzy, c-format
+#: file.c:283
+#, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
-msgstr "`%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤Ï, `%s' ¤Î¤¿¤á¤Î¤â¤Î¤òÍ¥À褹¤ë¤¿¤á̵»ë¤µ¤ì¤Þ¤¹."
+msgstr "'%s' のためのレシピは, '%s' のためのものを優先するため無視されます."
 
-#: file.c:300
-#, fuzzy, c-format
+#: file.c:303
+#, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
-msgstr "¥·¥ó¥°¥ë¥³¥í¥ó `%s' ¤«¤é¥À¥Ö¥ë¥³¥í¥ó `%s' ¤Ë̾Á°¤òÊѤ¨¤é¤ì¤Þ¤»¤ó"
+msgstr "シングルコロン '%s' からダブルコロン '%s' に名前を変えられません"
 
-#: file.c:305
-#, fuzzy, c-format
+#: file.c:309
+#, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
-msgstr "¥À¥Ö¥ë¥³¥í¥ó `%s' ¤«¤é¥·¥ó¥°¥ë¥³¥í¥ó `%s' ¤Ë̾Á°¤òÊѤ¨¤é¤ì¤Þ¤»¤ó"
+msgstr "ダブルコロン '%s' からシングルコロン '%s' に名前を変えられません"
 
-#: file.c:396
-#, fuzzy, c-format
+#: file.c:401
+#, c-format
 msgid "*** Deleting intermediate file '%s'"
-msgstr "*** Ãæ´Ö¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹"
+msgstr "*** 中間ファイル '%s' を削除します"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
-msgstr "Ãæ´Ö¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Æ¤¤¤Þ¤¹...\n"
+msgstr "中間ファイルを削除しています...\n"
+
+#: file.c:811
+msgid "Current time"
+msgstr "現在時刻"
 
-#: file.c:808
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: ¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬Èϰϳ°¤Ç¤¹ -- Âå¤ê¤Ë %s ¤È¤·¤Þ¤¹"
+msgstr "%s: タイムスタンプが範囲外です -- 代りに %s とします"
 
-#: file.c:809
-msgid "Current time"
-msgstr "¸½ºß»þ¹ï"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
-msgstr "# ¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó:"
+msgstr "# ターゲットではありません:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
-msgstr "#  ÆÃḚ̂·¤¤¤Î¥Õ¥¡¥¤¥ë (.PRECIOUS ¤ÎɬÍ×¾ò·ï)"
+msgstr "#  特別扱いのファイル (.PRECIOUS の必要条件)"
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
-msgstr "#  µ¿»÷¥¿¡¼¥²¥Ã¥È (.PHONY ¤ÎɬÍ×¾ò·ï)"
+msgstr "#  疑似ターゲット (.PHONY の必要条件)"
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
-msgstr "#  ¥³¥Þ¥ó¥É¥é¥¤¥ó¥¿¡¼¥²¥Ã¥È."
+msgstr "#  コマンドラインターゲット."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "#  ¥Ç¥Õ¥©¥ë¥È¤Þ¤¿¤Ï MAKEFILES, -include/sinclude Makefile."
+msgstr "#  デフォルトまたは MAKEFILES, -include/sinclude Makefile."
 
-#: file.c:962
-#, fuzzy
+#: file.c:968
 msgid "#  Builtin rule"
-msgstr ""
-"\n"
-"# °ÅÌۥ롼¥ë¤Ê¤·."
+msgstr "# ビルトインルール"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
-msgstr "#  °ÅÌۥ롼¥ë¤Îõº÷¤¬¹Ô¤ï¤ì¤Þ¤·¤¿."
+msgstr "#  暗黙ルールの探索が行われました."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
-msgstr "#  °ÅÌۥ롼¥ë¤Îõº÷¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿."
+msgstr "#  暗黙ルールの探索は行われませんでした."
 
-#: file.c:967
-#, fuzzy, c-format
+#: file.c:973
+#, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
-msgstr "#  °ÅÌÛ/ÀÅŪ¥Ñ¥¿¡¼¥ó¸ì´´: `%s'\n"
+msgstr "#  暗黙/静的パターン語幹: '%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
-msgstr "#  ¥Õ¥¡¥¤¥ë¤ÏÃæ´ÖɬÍ×¾ò·ï¤Ç¤¹."
+msgstr "#  ファイルは中間必要条件です."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
-msgstr "#  ¤µ¤é¤Ë make:"
+msgstr "#  さらに make:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
-msgstr "#  ½¤Àµ»þ¹ï¤¬¥Á¥§¥Ã¥¯¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó."
+msgstr "#  修正時刻がチェックされることはありません."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
-msgstr "#  ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó."
+msgstr "#  ファイルが存在しません."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
-msgstr "#  ¥Õ¥¡¥¤¥ë¤¬Èó¾ï¤Ë¸Å¤¤¤Ç¤¹."
+msgstr "#  ファイルが非常に古いです."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
-msgstr "#  ºÇ½ª½¤Àµ %s\n"
+msgstr "#  最終修正 %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
-msgstr "#  ¥Õ¥¡¥¤¥ë¤Ï¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹."
+msgstr "#  ファイルは更新されています."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
-msgstr "#  ¥Õ¥¡¥¤¥ë¤Ï¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤»¤ó."
+msgstr "#  ファイルは更新されていません."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
-msgstr "#  ¥ì¥·¥Ô¤ò¸½ºß¼Â¹ÔÃæ¤Ç¤¹ (*¤³¤ì¤Ï¥Ð¥°¤Ç¤¹*)."
+msgstr "#  レシピを現在実行中です (*これはバグです*)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
-msgstr "#  °Í¸´Ø·¸¥ì¥·¥Ô¤ò¼Â¹ÔÃæ¤Ç¤¹ (*¤³¤ì¤Ï¥Ð¥°¤Ç¤¹*)."
+msgstr "#  依存関係レシピを実行中です (*これはバグです*)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
-msgstr "#  ¹¹¿·¤ËÀ®¸ù¤·¤Þ¤·¤¿."
+msgstr "#  更新に成功しました."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
-msgstr "#  ¹¹¿·¤¬É¬ÍפǤ¹ (-q ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤¹)."
+msgstr "#  更新が必要です (-q がセットされています)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
-msgstr "#  ¹¹¿·¤Ë¼ºÇÔ¤·¤Þ¤·¤¿."
+msgstr "#  更新に失敗しました."
 
-#: file.c:1019
-#, fuzzy
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
-msgstr "#  `command_state' ¥á¥ó¥Ð¤Ë̵¸ú¤ÊÃÍ!"
+msgstr "#  'command_state' メンバに無効な値です!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
 msgstr ""
 "\n"
-"# ¥Õ¥¡¥¤¥ë"
+"# ファイル"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
 "\n"
-"# ¥Õ¥¡¥¤¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ:\n"
+"# ファイルハッシュテーブルの状態:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
-msgstr ""
+msgstr "%s: フィールド '%s' はキャッシュされていません: %s"
 
-#: function.c:742
-#, fuzzy
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
-msgstr "Èó¿ôÃͤÎÂè°ì°ú¿ô¤¬ `word' ´Ø¿ô¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
+msgstr "非数値の第1引数が 'word' 関数に与えられました"
 
-#: function.c:747
-#, fuzzy
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
-msgstr "`word' ´Ø¿ô¤Ø¤ÎÂè°ì°ú¿ô¤Ï 0 ¤è¤êÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+msgstr "'word' 関数への第1引数は 0 より大きくなければなりません"
 
-#: function.c:767
-#, fuzzy
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
-msgstr "Èó¿ôÃͤÎÂè°ì°ú¿ô¤¬ `wordlist' ´Ø¿ô¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
+msgstr "非数値の第1引数が 'wordlist' 関数に与えられました"
 
-#: function.c:769
-#, fuzzy
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
-msgstr "Èó¿ôÃͤÎÂèÆó°ú¿ô¤¬ `wordlist' ´Ø¿ô¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
+msgstr "非数値の第2引数が 'wordlist' 関数に与えられました"
 
-#: function.c:1460
-#, fuzzy, c-format
+#: function.c:1499
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "windows32_openpipe(): DuplicateHandle(In) ¤¬¼ºÇÔ (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) が失敗 (e=%ld)\n"
 
-#: function.c:1483
-#, fuzzy, c-format
+#: function.c:1523
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "windows32_openpipe(): DuplicateHandle(Err) ¤¬¼ºÇÔ (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Err) が失敗 (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() ¤¬¼ºÇÔ (e=%ld)\n"
+msgstr "CreatePipe() が失敗 (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() ¤¬¼ºÇÔ\n"
+msgstr "windows32_openpipe (): process_init_fd() が失敗\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
-msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤ò¾Ãµî¤·¤Þ¤¹\n"
+msgstr "一時的なバッチファイル %s を消去します\n"
 
-#: function.c:2151
-#, fuzzy, c-format
+#: function.c:2193
+#, c-format
 msgid "open: %s: %s"
-msgstr "%s: %s"
+msgstr "open: %s: %s"
 
-#: function.c:2158
-#, fuzzy, c-format
+#: function.c:2203
+#, c-format
 msgid "write: %s: %s"
-msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼: %s"
+msgstr "write: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
-msgstr ""
+msgstr "無効なファイル操作: %s"
 
-#: function.c:2279
-#, fuzzy, c-format
+#: function.c:2324
+#, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
-msgstr "°ú¿ô¤Î¿ô(%d)¤¬´Ø¿ô `%s' ¤Ë¤È¤Ã¤ÆÉÔ½½Ê¬¤Ç¤¹"
+msgstr "引数の数(%d)が関数 '%s' にとって不十分です"
 
-#: function.c:2291
-#, fuzzy, c-format
+#: function.c:2336
+#, c-format
 msgid "unimplemented on this platform: function '%s'"
-msgstr "¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: ´Ø¿ô `%s'"
+msgstr "このプラットフォームでは実装されていません: 関数 '%s'"
 
-#: function.c:2354
-#, fuzzy, c-format
+#: function.c:2399
+#, c-format
 msgid "unterminated call to function '%s': missing '%c'"
-msgstr "½ªÃ¼¤¬¤Ê¤¤´Ø¿ô¸Æ¤Ó½Ð¤· `%s': `%c' ¤¬¤¢¤ê¤Þ¤»¤ó"
+msgstr "終端がない関数呼び出し '%s': '%c' がありません"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "空の関数名\n"
 
-#: function.c:2548
-#, c-format
-msgid "Invalid function name: %s\n"
-msgstr ""
+#: function.c:2593
+#, fuzzy, c-format
+msgid "Invalid function name: %s"
+msgstr "無効な関数名: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
-msgstr ""
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
+msgstr "関数名が長すぎます: %s\n"
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
-msgstr "°ú¿ô¤Î¿ô(%d)¤¬´Ø¿ô `%s' ¤Ë¤È¤Ã¤ÆÉÔ½½Ê¬¤Ç¤¹"
+msgid "Invalid minimum argument count (%d) for function %s"
+msgstr "引数個数指定(最小値;%d)が無効です: 関数 '%s'\n"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
-msgstr "°ú¿ô¤Î¿ô(%d)¤¬´Ø¿ô `%s' ¤Ë¤È¤Ã¤ÆÉÔ½½Ê¬¤Ç¤¹"
+msgid "Invalid maximum argument count (%d) for function %s"
+msgstr "引数個数指定(最大値;%d)が無効です: 関数 '%s'\n"
 
 #: getopt.c:659
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤ÏÛ£Ëæ¤Ç¤¹\n"
+msgstr "%s: オプション '%s' は短すぎて正しく判別できません\n"
 
 #: getopt.c:683
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n"
+msgstr "%s: オプション '--%s' は引数を取ることができません\n"
 
 #: getopt.c:688
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: ¥ª¥×¥·¥ç¥ó `%c%s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n"
+msgstr "%s: オプション '%c%s' は引数を取ることができません\n"
 
 #: getopt.c:705 getopt.c:878
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' requires an argument\n"
-msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\n"
+msgstr "%s: オプション '%s' には引数が1つ必要です\n"
 
 #: getopt.c:734
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: Ç§¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `--%s'\n"
+msgstr "%s: オプション '--%s' を認識できません\n"
 
 #: getopt.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: Ç§¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `%c%s'\n"
+msgstr "%s: オプション '%c%s' を認識できません\n"
 
 #: getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
-msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó ¡½ %c\n"
+msgstr "%s: 不正なオプション ― %c\n"
 
 #: getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
-msgstr "%s: Ìµ¸ú¤Ê¥ª¥×¥·¥ç¥ó ¡½ %c\n"
+msgstr "%s: 無効なオプション ― %c\n"
 
 #: getopt.c:797 getopt.c:927
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ ¡½ %c\n"
+msgstr "%s: オプションには引数が必要です ― %c\n"
 
 #: getopt.c:844
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' ¤ÏÛ£Ëæ¤Ç¤¹\n"
+msgstr "%s: オプション '-W %s' は短すぎて正しく判別できません\n"
 
 #: getopt.c:862
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n"
+msgstr "%s: オプション '-W %s' は引数を取ることができません\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
-msgstr ""
+msgstr "guile: 展開中 '%s'\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
-msgstr ""
+msgstr "guile: 評価中 '%s'\n"
 
 #: hash.c:49
 #, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
 msgstr ""
-"¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ëÍÑ %lu ¥Ð¥¤¥È¤Î³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·"
-"¤¿"
+"ハッシュテーブル用 %lu バイトの割り当てに失敗しました: メモリを使い果たしまし"
+""
 
 #: hash.c:280
 #, c-format
@@ -557,539 +551,529 @@ msgid "Collisions=%ld/%ld=%.0f%%"
 msgstr "Collisions=%ld/%ld=%.0f%%"
 
 #: implicit.c:38
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for an implicit rule for '%s'.\n"
-msgstr "`%s' ¤Î¤¿¤á¤Î°ÅÌۥ롼¥ë¤òõ¤·¤Þ¤¹.\n"
+msgstr "'%s' のための暗黙ルールを探します.\n"
 
 #: implicit.c:54
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for archive-member implicit rule for '%s'.\n"
-msgstr "`%s' ¤Î¤¿¤á¤Î½ñ¸Ë¥á¥ó¥Ð°ÅÌۥ롼¥ë¤òõ¤·¤Þ¤¹.\n"
+msgstr "'%s' のための書庫メンバ暗黙ルールを探します.\n"
 
 #: implicit.c:310
 msgid "Avoiding implicit rule recursion.\n"
-msgstr "°ÅÌۥ롼¥ë¤ÎºÆµ¢¤ò²óÈò¤·¤Þ¤¹.\n"
+msgstr "暗黙ルールの再帰を回避します.\n"
 
 #: implicit.c:486
 #, c-format
 msgid "Stem too long: '%.*s'.\n"
-msgstr ""
+msgstr "語幹が長すぎます: '%.*s'.\n"
 
 #: implicit.c:491
-#, fuzzy, c-format
+#, c-format
 msgid "Trying pattern rule with stem '%.*s'.\n"
-msgstr "¸ì´´ `%.*s' ¤È¤Î¥Ñ¥¿¡¼¥ó¥ë¡¼¥ë¤ò»î¤·¤Þ¤¹.\n"
+msgstr "語幹 '%.*s' とのパターンルールを試します.\n"
 
 #: implicit.c:697
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible rule prerequisite '%s'.\n"
-msgstr "ŬÍÑÉÔǽ¤Ê¥ë¡¼¥ë¤ÎɬÍ×¾ò·ï `%s' ¤òµÑ²¼¤·¤Þ¤¹.\n"
+msgstr "適用不能なルールの必要条件 '%s' を却下します.\n"
 
 #: implicit.c:698
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible implicit prerequisite '%s'.\n"
-msgstr "ŬÍÑÉÔǽ¤Ê°ÅÌÛ¤ÎɬÍ×¾ò·ï `%s' ¤òµÑ²¼¤·¤Þ¤¹.\n"
+msgstr "適用不能な暗黙の必要条件 '%s' を却下します.\n"
 
 #: implicit.c:711
-#, fuzzy, c-format
+#, c-format
 msgid "Trying rule prerequisite '%s'.\n"
-msgstr "¥ë¡¼¥ë¤ÎɬÍ×¾ò·ï `%s' ¤ò»î¤·¤Þ¤¹.\n"
+msgstr "ルールの必要条件 '%s' を試します.\n"
 
 #: implicit.c:712
-#, fuzzy, c-format
+#, c-format
 msgid "Trying implicit prerequisite '%s'.\n"
-msgstr "°ÅÌÛ¤ÎɬÍ×¾ò·ï `%s' ¤ò»î¤·¤Þ¤¹.\n"
+msgstr "暗黙の必要条件 '%s' を試します.\n"
 
 #: implicit.c:751
-#, fuzzy, c-format
+#, c-format
 msgid "Found prerequisite '%s' as VPATH '%s'\n"
-msgstr "VPATH `%2$s' ¤È¤·¤ÆÉ¬Í×¾ò·ï `%1$s' ¤ò¸«¤Ä¤±¤Þ¤·¤¿\n"
+msgstr "VPATH '%2$s' として必要条件 '%1$s' を見つけました\n"
 
 #: implicit.c:765
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for a rule with intermediate file '%s'.\n"
-msgstr "Ãæ´Ö¥Õ¥¡¥¤¥ë `%s' ¤Î¥ë¡¼¥ë¤òõ¤·¤Þ¤¹.\n"
+msgstr "中間ファイル '%s' のルールを探します.\n"
 
 #: job.c:361
 msgid "Cannot create a temporary file\n"
-msgstr "°ì»þ¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Þ¤»¤ó\n"
+msgstr "一時ファイルを作成できません\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
-msgstr " (¥³¥¢¥À¥ó¥×¤·¤Þ¤·¤¿)"
+msgstr " (コアダンプしました)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
-msgstr " (̵»ë¤µ¤ì¤Þ¤·¤¿)"
+msgstr " (無視されました)"
 
-#: job.c:491 job.c:1994
-#, fuzzy
+#: job.c:492 job.c:2046
 msgid "<builtin>"
-msgstr " (¥Ó¥ë¥È¥¤¥ó):"
+msgstr "<ビルトイン>"
 
-#: job.c:501
-#, fuzzy, c-format
+#: job.c:503
+#, c-format
 msgid "%s: recipe for target '%s' failed"
-msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤òÃÖ¤­´¹¤¨¤Þ¤¹"
-
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] ¥¨¥é¡¼ 0x%x"
+msgstr "%s: ターゲット '%s' のレシピで失敗しました"
 
-#: job.c:513
-#, fuzzy, c-format
+#: job.c:516 job.c:524
+#, c-format
 msgid "%s[%s] Error %d%s"
-msgstr "*** [%s] ¥¨¥é¡¼ %d"
+msgstr "%s[%s] エラー %d%s"
 
-#: job.c:517
-#, fuzzy, c-format
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] エラー 0x%x%s"
+
+#: job.c:529
+#, c-format
 msgid "%s[%s] %s%s%s"
-msgstr "%s%s: %s"
+msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Ì¤´°Î»¤Î¥¸¥ç¥Ö¤òÂԤäƤ¤¤Þ¤¹...."
+msgstr "*** 未完了のジョブを待っています...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
-msgstr "À¸Â¸»Ò¥×¥í¥»¥¹ %p (%s) PID %s %s\n"
+msgstr "ç\94\9få­\98å­\90ã\83\97ã\83­ã\82»ã\82¹ %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
-msgstr " (¥ê¥â¡¼¥È)"
+msgstr " (リモート)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
-msgstr "¼ºÇÔ¤·¤¿»Ò¥×¥í¥»¥¹ %p PID %s %s ¤ò²ó¼ý¤·¤Þ¤¹\n"
+msgstr "失敗した子プロセス %p PID %s %s を回収します\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
-msgstr "À®¸ù¤·¤¿»Ò¥×¥í¥»¥¹ %p PID %s %s ¤ò²ó¼ý¤·¤Þ¤¹\n"
+msgstr "成功した子プロセス %p PID %s %s を回収します\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
-msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤ò¾Ãµî¤·¤Þ¤¹\n"
+msgstr "一時的なバッチファイル %s を消去します\n"
 
-#: job.c:843
-#, fuzzy, c-format
+#: job.c:855
+#, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
-msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤ò¾Ãµî¤·¤Þ¤¹\n"
+msgstr "一時的なバッチファイル %s の消去に失敗しました(%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "¥Á¥§¥¤¥ó¤«¤é»Ò¥×¥í¥»¥¹ %p PID %s%s ¤òºï½ü¤·¤Þ¤¹.\n"
+msgstr "チェインから子プロセス %p PID %s%s を削除します.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "ジョブサーバのセマフォを解放します: (エラー %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
-msgstr "»Ò¥×¥í¥»¥¹ %p (%s) ¤Î°õ¤ò²òÊü¤·¤Þ¤·¤¿.\n"
+msgstr "子プロセス %p (%s) の印を解放しました.\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
-msgstr "¥¸¥ç¥Ö¥µ¡¼¥Ð¤Ø¤Î write"
+msgstr "ジョブサーバへの write"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() ¤¬¼ºÇÔ¤·¥×¥í¥»¥¹¤¬µ¯Æ°¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (e=%ld)\n"
+msgstr "process_easy() が失敗しプロセスが起動できませんでした (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
 "Counted %d args in failed launch\n"
 msgstr ""
 "\n"
-"µ¯Æ°¤Î¼ºÇԤǠ%d ¸Ä¤Î°ú¿ô¤¬¥«¥¦¥ó¥È¤µ¤ì¤Þ¤·¤¿\n"
+"起動の失敗で %d 個の引数がカウントされました\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "¥Á¥§¥¤¥ó¤Ë»Ò¥×¥í¥»¥¹ %p (%s) PID %s%s ¤ò¼è¤ê¹þ¤ß¤Þ¤·¤¿.\n"
+msgstr "チェインに子プロセス %p (%s) PID %s%s を取り込みました.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
-msgstr ""
+msgstr "セマフォ または 子プロセスを待っています: (エラー %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
-msgstr "»Ò¥×¥í¥»¥¹ %p (%s) ¤Ë°õ¤ò¤Ä¤±¤Þ¤·¤¿.\n"
+msgstr "子プロセス %p (%s) に印をつけました.\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
-msgstr "¥¸¥ç¥Ö¤Î¥Ñ¥¤¥×¤Î read"
+msgstr "ジョブのパイプの read"
 
-#: job.c:2003
-#, fuzzy, c-format
+#: job.c:2056
+#, c-format
 msgid "%s: target '%s' does not exist"
-msgstr "touch: ½ñ¸Ë `%s' ¤¬¤¢¤ê¤Þ¤»¤ó"
+msgstr "%s: ターゲット '%s' が存在しません"
 
-#: job.c:2005
-#, fuzzy, c-format
+#: job.c:2059
+#, c-format
 msgid "%s: update target '%s' due to: %s"
-msgstr ""
-"%1$s`%3$s' ¤ËɬÍפʥ¿¡¼¥²¥Ã¥È `%2$s' ¤ò make ¤¹¤ë¥ë¡¼¥ë¤¬¤¢¤ê¤Þ¤»¤ó%4$s"
+msgstr "%s: ターゲット '%s' を %s のために更新します"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
-msgstr "¤³¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¤Ï¥·¥¹¥Æ¥àÉé²ÙÀ©¸Â¤ò²Ã¤¨¤é¤ì¤Þ¤»¤ó"
+msgstr "このオペレーティングシステムではシステム負荷制限を加えられません"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
-msgstr "¥·¥¹¥Æ¥àÉé²ÙÀ©¸Â¤ò²Ý¤¹¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿: "
+msgstr "システム負荷制限を課すことができませんでした: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
-msgstr "¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤¿Ô¤¯¤·¤Þ¤·¤¿: É¸½àÆþÎϤòÊ£À½¤Ç¤­¤Þ¤»¤ó\n"
+msgstr "ファイルハンドルを使い尽くしました: 標準入力を複製できません\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
-msgstr "¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤¿Ô¤¯¤·¤Þ¤·¤¿: É¸½à½ÐÎϤòÊ£À½¤Ç¤­¤Þ¤»¤ó\n"
+msgstr "ファイルハンドルを使い尽くしました: 標準出力を複製できません\n"
 
-#: job.c:2223
-#, fuzzy
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
-msgstr "¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤¿Ô¤¯¤·¤Þ¤·¤¿: É¸½àÆþÎϤòÊ£À½¤Ç¤­¤Þ¤»¤ó\n"
+msgstr "ファイルハンドルを使い尽くしました: 標準エラー出力を複製できません\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
-msgstr "ɸ½àÆþÎϤòÉü¸µ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+msgstr "標準入力を復元できませんでした\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
-msgstr "ɸ½à½ÐÎϤòÉü¸µ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+msgstr "標準出力を復元できませんでした\n"
 
-#: job.c:2254
-#, fuzzy
+#: job.c:2309
 msgid "Could not restore stderr\n"
-msgstr "ɸ½àÆþÎϤòÉü¸µ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+msgstr "標準エラー出力を復元できませんでした\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "make ¤Ï pid %s ¤Î»Ò¥×¥í¥»¥¹¤ò²ó¼ý¤·, pid %s ¤òÂÔ¤Á³¤±¤Þ¤¹\n"
+msgstr "make は pid %s の子プロセスを回収し, pid %s を待ち続けます\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
-msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr "%s: コマンドが見つかりませんでした"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
-msgstr "%s: ¥·¥§¥ë¥×¥í¥°¥é¥à¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr "%s: シェルプログラムが見つかりませんでした"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
-msgstr "spawnvpe:´Ä¶­ÀßÄê¤Î¤¿¤á¤Î¥á¥â¥ê¤ò»È¤¤¿Ô¤¯¤¹¤«¤â¤·¤ì¤Þ¤»¤ó"
+msgstr "spawnvpe:環境設定のためのメモリを使い尽くすかもしれません"
 
-#: job.c:2709
-#, fuzzy, c-format
+#: job.c:2765
+#, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
-msgstr "$SHELL ¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿ (Á°¤Ï `%s', º£¤Ï `%s')\n"
+msgstr "$SHELL が変更されました (前は '%s', 今は '%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
-msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤·¤Þ¤¹\n"
+msgstr "一時的なバッチファイル %s を作成します\n"
 
-#: job.c:3148
-#, fuzzy
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
-"¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ :%s\n"
-"\t%s\n"
+"バッチファイルの内容:\n"
+"\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
-"¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ :%s\n"
+"バッチファイルの内容 :%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
-msgstr "%s (%d ¹ÔÌÜ) ÉÔÀµ¤Ê¥·¥§¥ë¥³¥ó¥Æ¥­¥¹¥È (!unixy && !batch_mode_shell)\n"
+msgstr "%s (%d 行目) 不正なシェルコンテキスト (!unixy && !batch_mode_shell)\n"
 
 #: job.h:43
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
-msgstr ""
+msgstr "このビルドでは -O[TYPE] (--output-sync[=TYPE]) が設定されていません."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
-msgstr ""
+msgstr "グローバルシンボルテーブルを開くことができません: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
-msgstr ""
+msgstr "読み込んだオブジェクト %s は GPL互換の宣言がなされていません"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
-msgstr ""
+msgstr "シンボル %s を %s から読み込むのに失敗しました: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
-msgstr ""
+msgstr "空のシンボル名を読み込もうとしています: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
-msgstr ""
+msgstr "シンボル %s を %s から読み込んでいます\n"
 
-#: load.c:229
-#, fuzzy
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
-msgstr "ÊÂÎ󥸥ç¥Ö (-j) ¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó."
+msgstr "'load' 命令はこのプラットフォームでサポートされません."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
-msgstr "¥ª¥×¥·¥ç¥ó:\n"
+msgstr "オプション:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
-msgstr "  -b, -m                      ¸ß´¹À­¤Î¤¿¤á¤Î¤â¤Î¤Ç, Ìµ»ë¤µ¤ì¤ë.\n"
+msgstr "  -b, -m                      互換性のためのもので, 無視される.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
-msgstr "  -B, --always-make           Ìµ¾ò·ï¤ËÁ´¥¿¡¼¥²¥Ã¥È¤ò make ¤¹¤ë.\n"
+msgstr "  -B, --always-make           無条件に全ターゲットを make する.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
-"                              make ³«»ÏÁ°¤Ë¥Ç¥£¥ì¥¯¥È¥ê DIRECTORY ¤Ø°Üư¤¹"
-"¤ë.\n"
+"                              make 開始前にディレクトリ DIRECTORY へ移動す"
+".\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
-msgstr "  -d                          ¥Ç¥Ð¥Ã¥°¾ðÊó¤òÂçÎ̤Ëɽ¼¨¤¹¤ë.\n"
+msgstr "  -d                          デバッグ情報を大量に表示する.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
-msgstr "  --debug[=FLAGS]             ÍÍ¡¹¤Ê¥¿¥¤¥×¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òɽ¼¨¤¹¤ë.\n"
+msgstr "  --debug[=FLAGS]             様々なタイプのデバッグ情報を表示する.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 "  -e, --environment-overrides\n"
-"                              ´Ä¶­ÊÑ¿ô¤¬ makefile Ãæ¤Îµ­½Ò¤ËÍ¥À褹¤ë\n"
+"                              環境変数が makefile 中の記述に優先する\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
-msgstr "  --eval=STRING               STRING ¤ò makefile ¤Îʸ¤È¤·¤ÆÉ¾²Á¤¹¤ë.\n"
+msgstr "  --eval=STRING               STRING を makefile の文として評価する.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
-"                              FILE ¤ò makefile ¤È¤·¤ÆÆÉ¤ß¹þ¤à\n"
+"                              FILE を makefile として読み込む\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
-msgstr "  -h, --help                  ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+msgstr "  -h, --help                  このメッセージを表示して終了する.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
-msgstr "  -i, --ignore-errors         ¥ì¥·¥Ô¤«¤éÊ֤ä¿¥¨¥é¡¼¤ò̵»ë¤¹¤ë.\n"
+msgstr "  -i, --ignore-errors         レシピから返ったエラーを無視する.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
-"                              ¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë makefile ¤òõº÷¤¹¤ë "
+"                              インクルードする makefile を探索する "
 "DIRECTORY.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr ""
-"  -j [N], --jobs[=N]          °ìÅ٤ˠN ¸Ä¤Þ¤Ç¤Î¥¸¥ç¥Ö¤òµö²Ä; Ìµ°ú¿ô¤À¤È¥¸¥ç¥Ö"
-"¿ôÀ©¸Â¤Ê¤·.\n"
+"  -j [N], --jobs[=N]          一度に N 個までのジョブを許可; 無引数だとジョブ"
+"数制限なし.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
-"  -k, --keep-going            ¤¢¤ë¥¿¡¼¥²¥Ã¥È¤¬ make ¤Ç¤­¤Ê¤¯¤Æ¤â¼Â¹Ô¤ò³¤±"
-"¤ë.\n"
+"  -k, --keep-going            あるターゲットが make できなくても実行を続け"
+".\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
-"                              Éé²Ù ¤¬ N Ì¤Ëþ¤Ç¤Ê¤¤¸Â¤êÊ£¿ô¤Î¥¸¥ç¥Ö¤ò³«»Ï¤·¤Ê"
-"¤¤.\n"
+"                              負荷 が N 未満でない限り複数のジョブを開始しな"
+".\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
-"  -L, --check-symlink-times   ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤È¥¿¡¼¥²¥Ã¥È¤ÎÃæ¤Ç°ìÈÖ¿·¤·¤¤ "
-"mtime ¤ò»È¤¦.\n"
+"  -L, --check-symlink-times   シンボリックリンクとターゲットの中で一番新しい "
+"mtime を使う.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
-"                              ¥ì¥·¥Ô¤ò¼ÂºÝ¤Ë¼Â¹Ô¤·¤Ê¤¤; É½¼¨¤¹¤ë¤Î¤ß.\n"
+"                              レシピを実際に実行しない; 表示するのみ.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
-"                              FILE ¤ò¤È¤Æ¤â¸Å¤¤¤â¤Î¤È¸«¤Ê¤·¤Æ, ºÆ make ¤·¤Ê"
-"¤¤.\n"
+"                              FILE をとても古いものと見なして, 再 make しな"
+".\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
+"  -O[TYPE], --output-sync[=TYPE]\n"
+"                              並列ジョブの出力を TYPE で揃える.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
-msgstr "  -p, --print-data-base       make ¤ÎÆâÉô¥Ç¡¼¥¿¥Ù¡¼¥¹¤òɽ¼¨¤¹¤ë.\n"
+msgstr "  -p, --print-data-base       make の内部データベースを表示する.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
-"  -q, --question              ¥ì¥·¥Ô¤ò¼Â¹Ô¤·¤Ê¤¤; ¹¹¿·ºÑ¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò½ªÎ»"
-"¥¹¥Æ¡¼¥¿¥¹¤ÇÄÌÃÎ.\n"
+"  -q, --question              レシピを実行しない; 更新済であるかどうかを終了"
+"ステータスで通知.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
-msgstr "  -r, --no-builtin-rules      ¥Ó¥ë¥È¥¤¥ó¤Î°ÅÌۥ롼¥ë¤ò̵¸ú¤Ë¤¹¤ë.\n"
+msgstr "  -r, --no-builtin-rules      ビルトインの暗黙ルールを無効にする.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
-msgstr "  -R, --no-builtin-variables  ¥Ó¥ë¥È¥¤¥ó¤ÎÊÑ¿ôÀßÄê¤ò̵¸ú¤Ë¤¹¤ë.\n"
+msgstr "  -R, --no-builtin-variables  ビルトインの変数設定を無効にする.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
-msgstr "  -s, --silent, --quiet       ¥ì¥·¥Ô¤òɽ¼¨¤·¤Ê¤¤.\n"
+msgstr "  -s, --silent, --quiet       レシピを表示しない.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
 "  -S, --no-keep-going, --stop\n"
-"                              -k ¥ª¥×¥·¥ç¥ó¤ò¥ª¥Õ¤Ë¤¹¤ë.\n"
+"                              -k オプションをオフにする.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
-"  -t, --touch                 ¥¿¡¼¥²¥Ã¥È¤òºÆ make ¤¹¤ëÂå¤ï¤ê¤Ë¥¿¥Ã¥Á¤¹¤ë.\n"
+"  -t, --touch                 ターゲットを再 make する代わりにタッチする.\n"
 
-#: main.c:372
-#, fuzzy
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
-msgstr "  -d                          ¥Ç¥Ð¥Ã¥°¾ðÊó¤òÂçÎ̤Ëɽ¼¨¤¹¤ë.\n"
+msgstr "  --trace                     トレース情報を表示する.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
-"  -v, --version               make ¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"  -v, --version               make のバージョン番号を表示して終了する.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
-msgstr "  -w, --print-directory       ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨¤¹¤ë.\n"
+msgstr "  -w, --print-directory       カレントディレクトリを表示する.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr ""
-"  --no-print-directory        -w ¤ò¥ª¥Õ¤Ë¤¹¤ë. °ÅÌÛ¤ËÍ­¸ú¤Ê¾ì¹ç¤Ç¤â¥ª¥Õ¤Ë¤¹"
-"¤ë.\n"
+"  --no-print-directory        -w をオフにする. 暗黙に有効な場合でもオフにす"
+".\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
-"                              FILE ¤ò¤¤¤Ä¤Ç¤âºÇ¿·¤È¤·¤Æ¸«¤Ê¤¹.\n"
+"                              FILE をいつでも最新として見なす.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
-"  --warn-undefined-variables  Ì¤ÄêµÁ¤ÎÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿¤È¤­¤Ë·Ù¹ð¤òȯ¤¹¤ë.\n"
+"  --warn-undefined-variables  未定義の変数が参照されたときに警告を発する.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
-msgstr "¶õ¤Îʸ»úÎó¤Ï¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ¤Ï̵¸ú¤Ç¤¹"
+msgstr "空の文字列はファイル名としては無効です"
 
-#: main.c:734
-#, fuzzy, c-format
+#: main.c:737
+#, c-format
 msgid "unknown debug level specification '%s'"
-msgstr "ÉÔÌÀ¤Ê¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë»ØÄê `%s'"
+msgstr "不明なデバッグレベル指定 '%s'"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
-msgstr ""
-
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "ÆâÉô¥¨¥é¡¼: Ê£¿ô¤Î --jobserver-fds ¥ª¥×¥·¥ç¥ó"
+msgstr "未知の出力同期型 '%s'"
 
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: ³ä¤ê¹þ¤ß/Îã³°¤òÊ᪤·¤Þ¤·¤¿ (code = 0x%lx, addr = 0x%p)\n"
+msgstr "%s: 割り込み/例外を捕捉しました (code = 0x%lx, addr = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1099,231 +1083,226 @@ msgid ""
 "ExceptionAddress = 0x%p\n"
 msgstr ""
 "\n"
-"½èÍý¤µ¤ì¤Ê¤¤Îã³°¤Î¤¿¤á¤Î¥Õ¥£¥ë¥¿¤¬¥×¥í¥°¥é¥à %s ¤«¤é¸Æ¤Ð¤ì¤Þ¤·¤¿\n"
-"Îã³°¥³¡¼¥É = %lx\n"
-"Îã³°¥Õ¥é¥° = %lx\n"
-"Îã³°¥¢¥É¥ì¥¹ = 0x%p\n"
+"処理されない例外のためのフィルタがプログラム %s から呼ばれました\n"
+"例外コード = %lx\n"
+"ä¾\8bå¤\96ã\83\95ã\83©ã\82° = %lx\n"
+"ä¾\8bå¤\96ã\82¢ã\83\89ã\83¬ã\82¹ = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
-msgstr "¥¢¥¯¥»¥¹Êݸî°ãÈ¿: ¥¢¥É¥ì¥¹ 0x%p ¤Ç¤Î½ñ¤­¹þ¤ßÁàºî\n"
+msgstr "アクセス保護違反: アドレス 0x%p での書き込み操作\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
-msgstr "¥¢¥¯¥»¥¹Êݸî°ãÈ¿: ¥¢¥É¥ì¥¹ 0x%p ¤Ç¤ÎÆÉ¤ß¹þ¤ßÁàºî\n"
+msgstr "アクセス保護違反: アドレス 0x%p での読み込み操作\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell() ¤Ï default_shell = %s ¤ËÀßÄꤷ¤Þ¤¹\n"
+msgstr "find_and_set_shell() は default_shell = %s に設定します\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell() ¥Ñ¥¹Ãµº÷¤Ç default_shell = %s ¤Ë¥»¥Ã¥È¤·¤Þ¤·¤¿\n"
+msgstr "find_and_set_shell() パス探索で default_shell = %s にセットしました\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
-msgstr "%s ¤Ï 30 ÉôÖÄä»ß¤·¤Þ¤¹..."
+msgstr "%s は 30 秒間停止します..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
-msgstr "sleep(30) ¤¬½ª¤ï¤ê¤Þ¤·¤¿. Â³¤±¤Þ¤¹.\n"
-
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "ÆâÉô¥¨¥é¡¼: Ê£¿ô¤Î --jobserver-fds ¥ª¥×¥·¥ç¥ó"
+msgstr "sleep(30) が終わりました. 続けます.\n"
 
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
-msgstr ""
+msgstr "内部エラー: ジョブサーバ セマフォを開けません '%s': (エラー %ld: %s)"
 
-#: main.c:1547
-#, fuzzy, c-format
+#: main.c:1530
+#, c-format
 msgid "Jobserver client (semaphore %s)\n"
-msgstr "jobserver ¥¯¥é¥¤¥¢¥ó¥È (fds %d,%d)\n"
+msgstr "jobserver クライアント (セマフォ %s)\n"
 
-#: main.c:1551
-#, fuzzy, c-format
+#: main.c:1534
+#, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
-msgstr "ÆâÉô¥¨¥é¡¼: Ìµ¸ú¤Ê --jobserver-fds Ê¸»úÎó `%s'"
+msgstr "内部エラー: 無効な --jobserver-fds 文字列 '%s'"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
-msgstr "jobserver ¥¯¥é¥¤¥¢¥ó¥È (fds %d,%d)\n"
+msgstr "jobserver クライアント (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
-"·Ù¹ð: Éû¼¡ make ¤Ç -jN ¤ò¶¯À©»ØÄꤷ¤Þ¤·¤¿: jobserver ¥â¡¼¥É¤ò̵¸ú¤Ë¤·¤Þ¤¹."
+"警告: 副次 make で -jN を強制指定しました: jobserver モードを無効にします."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup jobserver"
 
-#: main.c:1586
-#, fuzzy
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
-"·Ù¹ð: jobserver ¤¬ÍøÍÑÉÔ²Ä: º£²ó¤Ï -j1 ¤ò»È¤¤¤Þ¤¹. ¿Æ make ¥ë¡¼¥ë¤Ë `+' ¤òÄÉ"
-"²Ã¤·¤Þ¤·¤ç¤¦."
+"警告: jobserver が利用不可: 今回は -j1 を使います. 親 make ルールに `+' を追"
+"加しましょう."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
-msgstr "ɸ½àÆþÎϤ«¤é¤Î makefile ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿."
+msgstr "標準入力からの makefile が二回指定されました."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
-msgstr "fopen (°ì»þ¥Õ¥¡¥¤¥ë)"
+msgstr "fopen (一時ファイル)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
-msgstr "fwrite (°ì»þ¥Õ¥¡¥¤¥ë)"
+msgstr "fwrite (一時ファイル)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "ÊÂÎ󥸥ç¥Ö (-j) ¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó."
+msgstr "並列ジョブ (-j) はこのプラットフォームでサポートされません."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
-msgstr "ñ°ì¥¸¥ç¥Ö (-j1) ¥â¡¼¥É¤Ë¥ê¥»¥Ã¥È¤·¤Þ¤¹."
+msgstr "単一ジョブ (-j1) モードにリセットします."
 
-#: main.c:2006
-#, fuzzy, c-format
+#: main.c:1994
+#, c-format
 msgid "Jobserver slots limited to %d\n"
-msgstr "jobserver ¥¯¥é¥¤¥¢¥ó¥È (fds %d,%d)\n"
+msgstr "jobserver のスロットは %d までです\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "ジョブサーバ セマフォを作成しています: (エラー %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
-msgstr "¥¸¥ç¥Ö¥Ñ¥¤¥×ºîÀ®Ãæ"
+msgstr "ジョブパイプ作成中"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
-msgstr "jobserver ¥Ñ¥¤¥×¤Î½é´ü²½"
+msgstr "jobserver パイプの初期化"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
-msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: -L ¤Ï̵¸ú¤Ç¤¹."
+msgstr "シンボリックリンクはサポートされていません: -L は無効です."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
-msgstr "makefile ¤Î¹¹¿·Ãæ....\n"
+msgstr "makefile の更新中....\n"
 
-#: main.c:2174
-#, fuzzy, c-format
+#: main.c:2158
+#, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
-msgstr "makefile `%s' ¼«¸ÊºÆµ¢¤Î¤ª¤½¤ì ¡½ ºÆ make ¤·¤Þ¤»¤ó.\n"
+msgstr "makefile '%s' 自己再帰のおそれあり ― 再make しません.\n"
 
-#: main.c:2253
-#, fuzzy, c-format
+#: main.c:2237
+#, c-format
 msgid "Failed to remake makefile '%s'."
-msgstr "makefile `%s' ¤ÎºÆ make ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿."
+msgstr "makefile '%s' の再makeに失敗しました."
 
-#: main.c:2270
-#, fuzzy, c-format
+#: main.c:2257
+#, c-format
 msgid "Included makefile '%s' was not found."
-msgstr "¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë makefile `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿."
+msgstr "インクルードされる makefile '%s' が見つかりませんでした."
 
-#: main.c:2275
-#, fuzzy, c-format
+#: main.c:2262
+#, c-format
 msgid "Makefile '%s' was not found"
-msgstr "makefile `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr "makefile '%s' が見つかりませんでした"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
-msgstr "¸µ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÌá¤ì¤Þ¤»¤ó¤Ç¤·¤¿."
+msgstr "元のディレクトリに戻れませんでした."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
-msgstr "ºÆ¼Â¹Ô¤·¤Þ¤¹[%u]:"
+msgstr "再実行します[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
-msgstr "unlink (°ì»þ¥Õ¥¡¥¤¥ë): "
+msgstr "unlink (一時ファイル): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ".DEFAULT_GOAL ¤¬Æó¤Ä°Ê¾å¤Î¥¿¡¼¥²¥Ã¥È¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+msgstr ".DEFAULT_GOAL が二つ以上のターゲットを含んでいます"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
-msgstr "¥¿¡¼¥²¥Ã¥È¤¬»ØÄꤵ¤ì¤Æ¤ª¤é¤º, makefile ¤â¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr "ターゲットが指定されておらず, makefile も見つかりません"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
-msgstr "¥¿¡¼¥²¥Ã¥È¤¬¤¢¤ê¤Þ¤»¤ó"
+msgstr "ターゲットがありません"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
-msgstr "ºÇ½ª¥¿¡¼¥²¥Ã¥È¤ò¹¹¿·Ãæ....\n"
+msgstr "最終ターゲットを更新中....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
-msgstr "·Ù¹ð:  »þ¹ï¤Î¤º¤ì¤ò¸¡½Ð. ÉÔ´°Á´¤Ê¥Ó¥ë¥É·ë²Ì¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó."
+msgstr "警告:  時刻のずれを検出. 不完全なビルド結果になるかもしれません."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
-msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] [¥¿¡¼¥²¥Ã¥È] ...\n"
+msgstr "使い方: %s [オプション] [ターゲット] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
 "This program built for %s\n"
 msgstr ""
 "\n"
-"¤³¤Î¥×¥í¥°¥é¥à¤Ï %s ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
+"このプログラムは %s 用にビルドされました\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
 "This program built for %s (%s)\n"
 msgstr ""
 "\n"
-"¤³¤Î¥×¥í¥°¥é¥à¤Ï %s (%s) ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
+"このプログラムは %s (%s) 用にビルドされました\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï <bug-make@gnu.org> ¤Þ¤Ç.\n"
+msgstr "バグレポートは <bug-make@gnu.org> まで.\n"
 
-#: main.c:2810
-#, fuzzy, c-format
+#: main.c:2807
+#, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
-msgstr "`%s%s' ¥ª¥×¥·¥ç¥ó¤Ï¶õ¤Ç¤Ê¤¤Ê¸»úÎó°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
+msgstr "'%s%s' オプションは空でない文字列引数を要求します"
 
-#: main.c:2864
-#, fuzzy, c-format
+#: main.c:2871
+#, c-format
 msgid "the '-%c' option requires a positive integer argument"
-msgstr "`-%c' ¥ª¥×¥·¥ç¥ó¤ÏÀµ¤ÎÀ°¿ô°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
+msgstr "'-%c' オプションは正の整数引数を要求します"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
-msgstr "%s¤³¤Î¥×¥í¥°¥é¥à¤Ï %s ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "%sこのプログラムは %s 用にビルドされました\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
-msgstr "%s¤³¤Î¥×¥í¥°¥é¥à¤Ï %s (%s) ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "%sこのプログラムは %s (%s) 用にビルドされました\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1331,653 +1310,646 @@ msgid ""
 "%sThis is free software: you are free to change and redistribute it.\n"
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"%s¥é¥¤¥»¥ó¥¹ GPLv3+: GNU GPL ¥Ð¡¼¥¸¥ç¥ó 3 °Ê¹ß <http://gnu.org/licenses/gpl."
+"%sライセンス GPLv3+: GNU GPL バージョン 3 以降 <http://gnu.org/licenses/gpl."
 "html>\n"
-"%s¤³¤ì¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹: ¼«Í³¤ËÊѹ¹¤ª¤è¤ÓÇÛÉۤǤ­¤Þ¤¹.\n"
-"%sˡΧ¤Îµö¤¹¸Â¤ê¡¢¡¡ÌµÊݾڡ¡¤Ç¤¹.\n"
+"%sこれはフリーソフトウェアです: 自由に変更および配布できます.\n"
+"%s法律の許す限り、 無保証 です.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
 "# Make data base, printed on %s"
 msgstr ""
 "\n"
-"# Make ¥Ç¡¼¥¿¥Ù¡¼¥¹½ÐÎÏ %s"
+"# Make データベース出力 %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
 "# Finished Make data base on %s\n"
 msgstr ""
 "\n"
-"# Make ¥Ç¡¼¥¿¥Ù¡¼¥¹½ªÎ» %s\n"
+"# Make データベース終了 %s\n"
 
 #: misc.c:201
 #, c-format
 msgid "Unknown error %d"
-msgstr "̤ÃΤΥ¨¥é¡¼ %d"
-
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "²¾ÁÛ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿"
+msgstr "未知のエラー %d"
 
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: ¥æ¡¼¥¶ %lu (¼Â¸ú %lu), ¥°¥ë¡¼¥× %lu (¼Â¸ú %lu)\n"
+msgstr "%s: ユーザ %lu (実効 %lu), グループ %lu (実効 %lu)\n"
 
 #: misc.c:543
 msgid "Initialized access"
-msgstr "¥¢¥¯¥»¥¹¸¢¸Â¤ò½é´ü²½"
+msgstr "アクセス権限を初期化"
 
 #: misc.c:622
 msgid "User access"
-msgstr "¥æ¡¼¥¶¥¢¥¯¥»¥¹"
+msgstr "ã\83¦ã\83¼ã\82¶ã\82¢ã\82¯ã\82»ã\82¹"
 
 #: misc.c:670
 msgid "Make access"
-msgstr "make ¥¢¥¯¥»¥¹"
+msgstr "make ã\82¢ã\82¯ã\82»ã\82¹"
 
 #: misc.c:704
 msgid "Child access"
-msgstr "»Ò¥×¥í¥»¥¹¥¢¥¯¥»¥¹"
+msgstr "å­\90ã\83\97ã\83­ã\82»ã\82¹ã\82¢ã\82¯ã\82»ã\82¹"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤ËÆþ¤ê¤Þ¤¹\n"
+msgstr "%s: ディレクトリ(ディレクトリ名不明)に入ります\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤«¤é½Ð¤Þ¤¹\n"
+msgstr "%s: ディレクトリ(ディレクトリ名不明)から出ます\n"
 
-#: output.c:133
-#, fuzzy, c-format
+#: output.c:109
+#, c-format
 msgid "%s: Entering directory '%s'\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤ËÆþ¤ê¤Þ¤¹\n"
+msgstr "%s: ディレクトリ '%s' に入ります\n"
 
-#: output.c:135
-#, fuzzy, c-format
+#: output.c:111
+#, c-format
 msgid "%s: Leaving directory '%s'\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤«¤é½Ð¤Þ¤¹\n"
+msgstr "%s: ディレクトリ '%s' から出ます\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤ËÆþ¤ê¤Þ¤¹\n"
+msgstr "%s[%u]: ディレクトリ(ディレクトリ名不明)に入ります\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤«¤é½Ð¤Þ¤¹\n"
+msgstr "%s[%u]: ディレクトリ(ディレクトリ名不明)から出ます\n"
 
-#: output.c:144
-#, fuzzy, c-format
+#: output.c:120
+#, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤ËÆþ¤ê¤Þ¤¹\n"
+msgstr "%s[%u]: ディレクトリ '%s' に入ります\n"
 
-#: output.c:146
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving directory '%s'\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤«¤é½Ð¤Þ¤¹\n"
-
-#: output.c:515
+#: output.c:122
 #, c-format
-msgid "write error: %s"
-msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼: %s"
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: ディレクトリ '%s' から出ます\n"
 
-#: output.c:517
-msgid "write error"
-msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
+msgstr "書き込みエラー: %s"
 
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
-msgstr ".  Ãæ»ß.\n"
+msgstr ".  中止.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
 #: read.c:180
 msgid "Reading makefiles...\n"
-msgstr "makefile ¤òÆÉ¤ß¹þ¤ß¤Þ¤¹...\n"
+msgstr "makefile を読み込みます...\n"
 
-#: read.c:333
-#, fuzzy, c-format
+#: read.c:335
+#, c-format
 msgid "Reading makefile '%s'"
-msgstr "makefile `%s' ¤ÎÆÉ¤ß¹þ¤ßÃæ"
+msgstr "makefile '%s' の読み込み中"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
-msgstr " (¥Ç¥Õ¥©¥ë¥È¤ÎºÇ½ª¥¿¡¼¥²¥Ã¥È¤¬¤¢¤ê¤Þ¤»¤ó)"
+msgstr " (デフォルトの最終ターゲットがありません)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
-msgstr " (õº÷¥Ñ¥¹)"
+msgstr " (æ\8e¢ç´¢ã\83\91ã\82¹)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
-msgstr " (µ¤¤Ë¤·¤Ê¤¯¤Æ¤è¤¤)"
+msgstr " (気にしなくてよい)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
-msgstr " (~ ¤ÎŸ³«¤Ê¤·)"
+msgstr " (~ の展開なし)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
-msgstr ""
+msgstr "makefile '%s' の中の UTF-8 BOM をスキップします\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
-msgstr ""
+msgstr "makefile バッファの中の UTF-8 BOM をスキップします\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
-msgstr "¾ò·ïÉô¤Îʸˡ¤¬Ìµ¸ú¤Ç¤¹"
+msgstr "条件部の文法が無効です"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
-msgstr ""
+msgstr "%s: 読み込みに失敗しました"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
-msgstr "ºÇ½é¤Î¥¿¡¼¥²¥Ã¥È¤è¤êÁ°¤Ë¥ì¥·¥Ô¤¬¤¢¤ê¤Þ¤¹"
+msgstr "最初のターゲットより前にレシピがあります"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
-msgstr "¥ì¥·¥Ô¤ÎÁ°¤Î¥ë¡¼¥ë¤¬ÉÔ­¤·¤Æ¤¤¤Þ¤¹"
+msgstr "レシピの前のルールが不足しています"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "ʬΥµ­¹æ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹%s"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
+msgstr " (8 個の空白でしたが, TAB のつもりでしたか?)"
 
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (8 ¸Ä¤Î¶õÇò¤Ç¤·¤¿¤¬, TAB ¤Î¤Ä¤â¤ê¤Ç¤·¤¿¤«?)"
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "分離記号を欠いています%s"
 
-#: read.c:1263
+#: read.c:1270
 msgid "missing target pattern"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+msgstr "ターゲットパターンを欠いています"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
-msgstr "Ê£¿ô¤Î¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤Ç¤¹"
+msgstr "複数のターゲットパターンです"
 
-#: read.c:1269
-#, fuzzy, c-format
+#: read.c:1276
+#, c-format
 msgid "target pattern contains no '%%'"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤¬ `%%' ¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó"
+msgstr "ターゲットパターンが '%%' を含んでいません"
 
-#: read.c:1391
-#, fuzzy
+#: read.c:1398
 msgid "missing 'endif'"
-msgstr "`endif' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+msgstr "'endif' が欠落しています"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
-msgstr "¶õ¤ÎÊÑ¿ô̾"
+msgstr "空の変数名"
 
-#: read.c:1465
-#, fuzzy
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
-msgstr "`define' µ¿»÷Ì¿Îá¤Î¸å¤í¤Ë̵´Ø·¸¤Êʸ»úÎ󤬤¢¤ê¤Þ¤¹"
+msgstr "'define' 疑似命令の後ろに無関係な文字列があります"
 
-#: read.c:1490
-#, fuzzy
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
-msgstr "`endef' ¤ò·ç¤¤¤Æ¤ª¤ê, `define' ¤¬½ªÎ»¤µ¤ì¤Þ¤»¤ó"
+msgstr "'endef' を欠いており, 'define' が終了していません"
 
-#: read.c:1518
-#, fuzzy
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
-msgstr "`endef' µ¿»÷Ì¿Îá¤Î¸å¤í¤Ë̵´Ø·¸¤Êʸ»úÎ󤬤¢¤ê¤Þ¤¹"
+msgstr "'endef' 疑似命令の後ろに無関係な文字列があります"
 
-#: read.c:1589
-#, fuzzy, c-format
+#: read.c:1595
+#, c-format
 msgid "extraneous text after '%s' directive"
-msgstr "`%s' µ¿»÷Ì¿Îá¤Î¸å¤í¤Ë̵´Ø·¸¤Êʸ»úÎ󤬤¢¤ê¤Þ¤¹"
+msgstr "'%s' 疑似命令の後ろに無関係な文字列があります"
 
-#: read.c:1598 read.c:1612
-#, fuzzy, c-format
+#: read.c:1596
+#, c-format
 msgid "extraneous '%s'"
-msgstr "̵´Ø·¸¤Ê `%s'"
+msgstr "無関係な '%s'"
 
-#: read.c:1617
-#, fuzzy
+#: read.c:1624
 msgid "only one 'else' per conditional"
-msgstr "°ì¤Ä¤Î¾ò·ïÉô¤Ë¤Ä¤­°ì¤Ä¤·¤« `else' ¤ò»È¤¨¤Þ¤»¤ó"
+msgstr "一つの条件部につき一つしか 'else' を使えません"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
-msgstr "¥¿¡¼¥²¥Ã¥ÈÆÃÍ­¤ÎÊÑ¿ôÄêµÁ¤¬°Û¾ï¤Ç¤¹"
+msgstr "ターゲット特有の変数定義が異常です"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
-msgstr "ɬÍ×¾ò·ï¤ò¥ì¥·¥ÔÆâ¤ÇÄêµÁ¤Ç¤­¤Þ¤»¤ó"
+msgstr "必要条件をレシピ内で定義できません"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
-msgstr "°ÅÌۥ롼¥ë¤ÈÀÅŪ¥Ñ¥¿¡¼¥ó¥ë¡¼¥ë¤¬º®¤¶¤ê¤Þ¤·¤¿"
+msgstr "暗黙ルールと静的パターンルールが混ざりました"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
-msgstr "°ÅÌۥ롼¥ë¤ÈÄ̾ï¥ë¡¼¥ë¤¬º®¤¶¤ê¤Þ¤·¤¿"
+msgstr "暗黙ルールと通常ルールが混ざりました"
 
-#: read.c:2084
-#, fuzzy, c-format
+#: read.c:2091
+#, c-format
 msgid "target '%s' doesn't match the target pattern"
-msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤Ï¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤È°ìÃפ·¤Þ¤»¤ó"
+msgstr "ターゲット '%s' はターゲットパターンと一致しません"
 
-#: read.c:2099 read.c:2144
-#, fuzzy, c-format
+#: read.c:2106 read.c:2152
+#, c-format
 msgid "target file '%s' has both : and :: entries"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤¬ : ¤È :: ¹àÌܤÎξÊý¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
+msgstr "ターゲットファイル '%s' が : と :: 項目の両方を持っています"
 
-#: read.c:2105
-#, fuzzy, c-format
+#: read.c:2112
+#, c-format
 msgid "target '%s' given more than once in the same rule"
-msgstr "Ʊ°ì¥ë¡¼¥ëÆâ¤Ç¥¿¡¼¥²¥Ã¥È `%s' ¤¬Ê£¿ô²óÍ¿¤¨¤é¤ì¤Þ¤·¤¿."
+msgstr "ターゲット '%s' が同一ルール内で複数回与えられました"
 
-#: read.c:2114
-#, fuzzy, c-format
+#: read.c:2122
+#, c-format
 msgid "warning: overriding recipe for target '%s'"
-msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤òÃÖ¤­´¹¤¨¤Þ¤¹"
+msgstr "警告: ターゲット '%s' のためのレシピを置き換えます"
 
-#: read.c:2117
-#, fuzzy, c-format
+#: read.c:2125
+#, c-format
 msgid "warning: ignoring old recipe for target '%s'"
-msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Î¤¿¤á¤Î¸Å¤¤¥ì¥·¥Ô¤Ï̵»ë¤µ¤ì¤Þ¤¹"
+msgstr "警告: ターゲット '%s' のための古いレシピは無視されます"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "暗黙ルールと通常ルールが混ざりました"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
-msgstr "·Ù¹ð: NUL Ê¸»ú¤¬¤¢¤ê¤Þ¤¹; ¹Ô¤Î»Ä¤ê¤Ï̵»ë¤µ¤ì¤Þ¤¹"
+msgstr "警告: NUL 文字があります; 行の残りは無視されます"
 
-#: remake.c:232
-#, fuzzy, c-format
+#: remake.c:230
+#, c-format
 msgid "Nothing to be done for '%s'."
-msgstr "`%s' ¤ËÂФ·¤Æ¹Ô¤¦¤Ù¤­»ö¤Ï¤¢¤ê¤Þ¤»¤ó."
+msgstr "'%s' に対して行うべき事はありません."
 
-#: remake.c:233
-#, fuzzy, c-format
+#: remake.c:231
+#, c-format
 msgid "'%s' is up to date."
-msgstr "`%s' ¤Ï¹¹¿·ºÑ¤ß¤Ç¤¹."
+msgstr "'%s' は更新済みです."
 
-#: remake.c:305
-#, fuzzy, c-format
+#: remake.c:303
+#, c-format
 msgid "Pruning file '%s'.\n"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤òÀ°Íý¤·¤Þ¤¹.\n"
-
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%s¥¿¡¼¥²¥Ã¥È `%s' ¤ò make ¤¹¤ë¥ë¡¼¥ë¤¬¤¢¤ê¤Þ¤»¤ó%s"
+msgstr "ファイル '%s' の依存関係を整理しています.\n"
 
-#: remake.c:379
-#, fuzzy, c-format
+#: remake.c:390 remake.c:393
+#, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
-"%1$s`%3$s' ¤ËɬÍפʥ¿¡¼¥²¥Ã¥È `%2$s' ¤ò make ¤¹¤ë¥ë¡¼¥ë¤¬¤¢¤ê¤Þ¤»¤ó%4$s"
+"%1$s'%3$s' に必要なターゲット '%2$s' を make するルールがありません%4$s"
 
-#: remake.c:413
-#, fuzzy, c-format
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sターゲット '%s' を make するルールがありません%s"
+
+#: remake.c:426
+#, c-format
 msgid "Considering target file '%s'.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤Î¸¡Æ¤¤ò¹Ô¤¤¤Þ¤¹.\n"
+msgstr "ファイル '%s' を検討しています.\n"
 
-#: remake.c:420
-#, fuzzy, c-format
+#: remake.c:433
+#, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
-msgstr "ºÇ¶á»î¤·¤Æ¹¹¿·¤Ë¼ºÇÔ¤·¤¿¥Õ¥¡¥¤¥ë `%s'.\n"
+msgstr "最近ファイル '%s' の更新を試して失敗しています.\n"
 
-#: remake.c:432
-#, fuzzy, c-format
+#: remake.c:445
+#, c-format
 msgid "File '%s' was considered already.\n"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Ï¸¡Æ¤ºÑ¤ß¤Ç¤¹.\n"
+msgstr "ファイル '%s' は検討済みです.\n"
 
-#: remake.c:442
-#, fuzzy, c-format
+#: remake.c:455
+#, c-format
 msgid "Still updating file '%s'.\n"
-msgstr "¤Þ¤À¥Õ¥¡¥¤¥ë `%s' ¤Î¹¹¿·Ãæ¤Ç¤¹.\n"
+msgstr "ファイル '%s' の更新をしています.\n"
 
-#: remake.c:445
-#, fuzzy, c-format
+#: remake.c:458
+#, c-format
 msgid "Finished updating file '%s'.\n"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Î¹¹¿·¤¬½ªÎ»¤·¤Þ¤·¤¿.\n"
+msgstr "ファイル '%s' の更新が終了しました.\n"
 
-#: remake.c:474
-#, fuzzy, c-format
+#: remake.c:487
+#, c-format
 msgid "File '%s' does not exist.\n"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤¬Â¸ºß¤·¤Þ¤»¤ó.\n"
+msgstr "ファイル '%s' が存在しません.\n"
 
-#: remake.c:481
-#, fuzzy, c-format
+#: remake.c:495
+#, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
-"*** ·Ù¹ð: .LOW_RESOLUTION_TIME ¥Õ¥¡¥¤¥ë `%s' ¤¬¹â²òÁüÅÙ¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò»ý¤Ã¤Æ"
-"¤¤¤Þ¤¹"
+"*** 警告: .LOW_RESOLUTION_TIME ファイル '%s' が高解像度タイムスタンプを持って"
+"います"
 
-#: remake.c:494 remake.c:1019
-#, fuzzy, c-format
+#: remake.c:508 remake.c:1040
+#, c-format
 msgid "Found an implicit rule for '%s'.\n"
-msgstr "`%s' ¤Î¤¿¤á¤Î°ÅÌۥ롼¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿.\n"
+msgstr "'%s' のための暗黙ルールを見つけました.\n"
 
-#: remake.c:496 remake.c:1021
-#, fuzzy, c-format
+#: remake.c:510 remake.c:1042
+#, c-format
 msgid "No implicit rule found for '%s'.\n"
-msgstr "`%s' ¤Î¤¿¤á¤Î°ÅÌۥ롼¥ë¤¬¤¢¤ê¤Þ¤»¤ó.\n"
+msgstr "'%s' のための暗黙ルールがありません.\n"
 
-#: remake.c:502
-#, fuzzy, c-format
+#: remake.c:516
+#, c-format
 msgid "Using default recipe for '%s'.\n"
-msgstr "`%s' ÍѤΥǥե©¥ë¥È¥ì¥·¥Ô¤ò»ÈÍѤ·¤Þ¤¹.\n"
+msgstr "'%s' 用のデフォルトレシピを使用します.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
-msgstr "½Û´Ä %s <- %s °Í¸´Ø·¸¤¬ÇË´þ¤µ¤ì¤Þ¤·¤¿."
+msgstr "循環 %s <- %s 依存関係が破棄されました."
 
-#: remake.c:655
-#, fuzzy, c-format
+#: remake.c:675
+#, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤ÎɬÍ×¾ò·ï¤òËþ¤¿¤·¤Þ¤·¤¿.\n"
+msgstr "ターゲットファイル '%s' の必要条件を満たしました.\n"
 
-#: remake.c:661
-#, fuzzy, c-format
+#: remake.c:681
+#, c-format
 msgid "The prerequisites of '%s' are being made.\n"
-msgstr "`%s' ¤ÎɬÍ×¾ò·ï¤ò make ¤·¤Þ¤¹.\n"
+msgstr "'%s' の必要条件を make します.\n"
 
-#: remake.c:674
-#, fuzzy, c-format
+#: remake.c:695
+#, c-format
 msgid "Giving up on target file '%s'.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤òÄü¤á¤Þ¤¹.\n"
+msgstr "ターゲットファイル '%s' を諦めます.\n"
 
-#: remake.c:679
-#, fuzzy, c-format
+#: remake.c:700
+#, c-format
 msgid "Target '%s' not remade because of errors."
-msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤Ï¥¨¥é¡¼¤Ë¤è¤êºÆ make ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿."
+msgstr "ターゲット '%s' はエラーにより 再make できませんでした."
 
-#: remake.c:731
-#, fuzzy, c-format
+#: remake.c:752
+#, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
-msgstr "ɬÍ×¾ò·ï `%s' ¤Ï¥¿¡¼¥²¥Ã¥È `%s' ¤Ë¤Ä¤¤¤Æ½çÈÖÄ̤ê¤Î¤ß¹Ô¤¤¤Þ¤¹.\n"
+msgstr "必要条件 '%s' はターゲット '%s' の order-only(順序決定条件)です.\n"
 
-#: remake.c:736
-#, fuzzy, c-format
+#: remake.c:757
+#, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È `%2$s' ¤ÎɬÍ×¾ò·ï `%1$s' ¤¬Â¸ºß¤·¤Þ¤»¤ó.\n"
+msgstr "ターゲット '%2$s' の必要条件 '%1$s' が存在しません.\n"
 
-#: remake.c:741
-#, fuzzy, c-format
+#: remake.c:762
+#, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
-msgstr "ɬÍ×¾ò·ï `%s' ¤Ï¥¿¡¼¥²¥Ã¥È `%s' ¤è¤ê¤â¿·¤·¤¤.\n"
+msgstr "必要条件 '%s' はターゲット '%s' よりも新しい.\n"
 
-#: remake.c:744
-#, fuzzy, c-format
+#: remake.c:765
+#, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
-msgstr "ɬÍ×¾ò·ï `%s' ¤Ï¥¿¡¼¥²¥Ã¥È `%s' ¤è¤ê¤â¸Å¤¤.\n"
+msgstr "必要条件 '%s' はターゲット '%s' よりも古い.\n"
 
-#: remake.c:762
-#, fuzzy, c-format
+#: remake.c:783
+#, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤Ï¥À¥Ö¥ë¥³¥í¥ó¤Ç, ¤«¤ÄɬÍ×¾ò·ï¤ò»ý¤¿¤Ê¤¤.\n"
+msgstr "ターゲット '%s' はダブルコロンで, かつ必要条件を持たない.\n"
 
-#: remake.c:769
-#, fuzzy, c-format
+#: remake.c:790
+#, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
-msgstr "`%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤¬Ìµ¤¯, É¬Í×¾ò·ï¤Ï¼ÂºÝ¤Ë¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+msgstr "'%s' のためのレシピが無く, 必要条件は実際には変更されませんでした.\n"
 
-#: remake.c:774
-#, fuzzy, c-format
+#: remake.c:795
+#, c-format
 msgid "Making '%s' due to always-make flag.\n"
-msgstr "always-make ¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤ë¤Î¤Ç `%s' ¤ò make ¤·¤Þ¤¹.\n"
+msgstr "always-make フラグが立っているので '%s' を make します.\n"
 
-#: remake.c:782
-#, fuzzy, c-format
+#: remake.c:803
+#, c-format
 msgid "No need to remake target '%s'"
-msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤òºÆ make ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó"
+msgstr "ターゲット '%s' を再make する必要はありません"
 
-#: remake.c:784
-#, fuzzy, c-format
+#: remake.c:805
+#, c-format
 msgid "; using VPATH name '%s'"
-msgstr "; VPATH Ì¾ `%s' ¤ò»ÈÍѤ·¤Þ¤¹"
+msgstr "; VPATH 名 '%s' を使用します"
 
-#: remake.c:804
-#, fuzzy, c-format
+#: remake.c:825
+#, c-format
 msgid "Must remake target '%s'.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤ÎºÆ make ¤¬É¬ÍפǤ¹.\n"
+msgstr "ターゲット '%s' を再make する必要があります.\n"
 
-#: remake.c:810
-#, fuzzy, c-format
+#: remake.c:831
+#, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
-msgstr "  VPATH Ì¾ `%s' ¤ò̵»ë¤·¤Þ¤¹.\n"
+msgstr "  VPATH 名 '%s' を無視します.\n"
 
-#: remake.c:819
-#, fuzzy, c-format
+#: remake.c:840
+#, c-format
 msgid "Recipe of '%s' is being run.\n"
-msgstr "`%s' ¤Î¥ì¥·¥Ô¤ò¼Â¹ÔÃæ¤Ç¤¹.\n"
+msgstr "'%s' のレシピを実行中です.\n"
 
-#: remake.c:826
-#, fuzzy, c-format
+#: remake.c:847
+#, c-format
 msgid "Failed to remake target file '%s'.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤ÎºÆ make ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿.\n"
+msgstr "ターゲットファイル '%s' の再make に失敗しました.\n"
 
-#: remake.c:829
-#, fuzzy, c-format
+#: remake.c:850
+#, c-format
 msgid "Successfully remade target file '%s'.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤ÎºÆ make ¤ËÀ®¸ù¤·¤Þ¤·¤¿.\n"
+msgstr "ターゲットファイル '%s' の再 make に成功しました.\n"
 
-#: remake.c:832
-#, fuzzy, c-format
+#: remake.c:853
+#, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤Ï -q ¥ª¥×¥·¥ç¥óÉդǤκƠmake ¤¬É¬ÍפǤ¹.\n"
+msgstr "ターゲットファイル '%s' は -q オプションを付けての再make が必要です.\n"
 
-#: remake.c:1027
-#, fuzzy, c-format
+#: remake.c:1048
+#, c-format
 msgid "Using default commands for '%s'.\n"
-msgstr "`%s' ÍѤΥǥե©¥ë¥È¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹.\n"
+msgstr "'%s' のためのデフォルトのコマンドを使います.\n"
 
-#: remake.c:1372
-#, fuzzy, c-format
+#: remake.c:1397
+#, c-format
 msgid "Warning: File '%s' has modification time in the future"
-msgstr "·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤Î½¤Àµ»þ¹ï¤¬Ì¤Íè¤Î»þ¹ï¤Ç¤¹"
+msgstr "警告: ファイル '%s' の修正時刻は未来のものです"
 
-#: remake.c:1385
-#, fuzzy, c-format
+#: remake.c:1411
+#, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
-msgstr "·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤Î½¤Àµ»þ¹ï %s ¤Ï̤Íè¤Î¤â¤Î¤Ç¤¹"
+msgstr "警告: ファイル '%s' の修正時刻 %s は未来の時刻です"
 
-#: remake.c:1583
-#, fuzzy, c-format
+#: remake.c:1610
+#, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
-msgstr ".LIBPATTERNS Í×ÁÇ `%s' ¤¬¥Ñ¥¿¡¼¥ó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+msgstr ".LIBPATTERNS 要素 '%s' がパターンではありません"
 
 #: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
-msgstr "Customs ¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Æ¤¯¤ì¤Þ¤»¤ó: %s\n"
+msgstr "Customs がエクスポートしてくれません: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
 msgstr ""
 "\n"
-"# °ÅÌۥ롼¥ë"
+"# 暗黙ルール"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
 msgstr ""
 "\n"
-"# °ÅÌۥ롼¥ë¤Ê¤·."
+"# 暗黙ルールなし."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
 "# %u implicit rules, %u"
 msgstr ""
 "\n"
-"# %u ¸Ä¤Î°ÅÌۥ롼¥ë, %u"
+"# %u 個の暗黙ルール, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
-msgstr " °Ê¾å."
+msgstr " 以上."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
-msgstr "¥Ð¥°: num_pattern_rules ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë!  %u != %u"
+msgstr "バグ: num_pattern_rules が間違っている!  %u != %u"
 
 #: signame.c:84
 msgid "unknown signal"
-msgstr "̤ÃΤΥ·¥°¥Ê¥ë"
+msgstr "未知のシグナル"
 
 #: signame.c:92
 msgid "Hangup"
-msgstr "¥Ï¥ó¥°¥¢¥Ã¥×"
+msgstr "ハングアップ"
 
 #: signame.c:95
 msgid "Interrupt"
-msgstr "³ä¤ê¹þ¤ß"
+msgstr "割り込み"
 
 #: signame.c:98
 msgid "Quit"
-msgstr "½ªÎ»"
+msgstr "終了"
 
 #: signame.c:101
 msgid "Illegal Instruction"
-msgstr "ÉÔÀµ¤Ê¥Ï¡¼¥É¥¦¥§¥¢Ì¿Îá"
+msgstr "不正なハードウェア命令"
 
 #: signame.c:104
 msgid "Trace/breakpoint trap"
-msgstr "¥È¥ì¡¼¥¹/¥Ö¥ì¥¤¥¯¥Ý¥¤¥ó¥È¥È¥é¥Ã¥×"
+msgstr "トレース/ブレイクポイントトラップ"
 
 #: signame.c:109
 msgid "Aborted"
-msgstr "Abort ¤·¤Þ¤·¤¿"
+msgstr "Abort しました"
 
 #: signame.c:112
 msgid "IOT trap"
-msgstr "IOT ¥È¥é¥Ã¥×"
+msgstr "IOT トラップ"
 
 #: signame.c:115
 msgid "EMT trap"
-msgstr "EMT ¥È¥é¥Ã¥×"
+msgstr "EMT トラップ"
 
 #: signame.c:118
 msgid "Floating point exception"
-msgstr "ÉâÆ°¾®¿ôÅÀÎã³°"
+msgstr "浮動小数点例外"
 
 #: signame.c:121
 msgid "Killed"
-msgstr "Kill ¤µ¤ì¤Þ¤·¤¿"
+msgstr "Kill されました"
 
 #: signame.c:124
 msgid "Bus error"
-msgstr "¥Ð¥¹¥¨¥é¡¼"
+msgstr "ã\83\90ã\82¹ã\82¨ã\83©ã\83¼"
 
 #: signame.c:127
 msgid "Segmentation fault"
-msgstr "¥á¥â¥ê°ãÈ¿"
+msgstr "メモリ違反"
 
 #: signame.c:130
 msgid "Bad system call"
-msgstr "ÉÔÀµ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë"
+msgstr "不正なシステムコール"
 
 #: signame.c:133
 msgid "Broken pipe"
-msgstr "ÆÉ¤ß¼ê¤Î¤Ê¤¤¥Ñ¥¤¥×¤Ø¤Î½ñ¤­¹þ¤ß"
+msgstr "読み手のないパイプへの書き込み"
 
 #: signame.c:136
 msgid "Alarm clock"
-msgstr "¥¢¥é¡¼¥à¥¯¥í¥Ã¥¯"
+msgstr "ã\82¢ã\83©ã\83¼ã\83 ã\82¯ã\83­ã\83\83ã\82¯"
 
 #: signame.c:139
 msgid "Terminated"
-msgstr "¶¯À©½ªÎ»"
+msgstr "強制終了"
 
 #: signame.c:142
 msgid "User defined signal 1"
-msgstr "¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 1"
+msgstr "ユーザ定義シグナル 1"
 
 #: signame.c:145
 msgid "User defined signal 2"
-msgstr "¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 2"
+msgstr "ユーザ定義シグナル 2"
 
 #: signame.c:150 signame.c:153
 msgid "Child exited"
-msgstr "»Ò¥×¥í¥»¥¹½ªÎ»"
+msgstr "子プロセス終了"
 
 #: signame.c:156
 msgid "Power failure"
-msgstr "ÅŸ»¾ã³²"
+msgstr "電源障害"
 
 #: signame.c:159
 msgid "Stopped"
-msgstr "°ì»þÄä»ß"
+msgstr "一時停止"
 
 #: signame.c:162
 msgid "Stopped (tty input)"
-msgstr "°ì»þÄä»ß (tty ÆþÎÏ)"
+msgstr "一時停止 (tty 入力)"
 
 #: signame.c:165
 msgid "Stopped (tty output)"
-msgstr "°ì»þÄä»ß (tty ½ÐÎÏ)"
+msgstr "一時停止 (tty 出力)"
 
 #: signame.c:168
 msgid "Stopped (signal)"
-msgstr "°ì»þÄä»ß (¥·¥°¥Ê¥ë)"
+msgstr "一時停止 (シグナル)"
 
 #: signame.c:171
 msgid "CPU time limit exceeded"
-msgstr "CPU »þ´Ö¤¬À©¸Â¤ò±Û¤¨¤Þ¤·¤¿"
+msgstr "CPU 時間が制限を越えました"
 
 #: signame.c:174
 msgid "File size limit exceeded"
-msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ò±Û¤¨¤Þ¤·¤¿"
+msgstr "ファイルサイズ制限を越えました"
 
 #: signame.c:177
 msgid "Virtual timer expired"
-msgstr "²¾ÁÛ¥¿¥¤¥ÞËþλ"
+msgstr "仮想タイマ満了"
 
 #: signame.c:180
 msgid "Profiling timer expired"
-msgstr "¥×¥í¥Õ¥¡¥¤¥ë¥¿¥¤¥ÞËþλ"
+msgstr "プロファイルタイマ満了"
 
 #: signame.c:186
 msgid "Window changed"
-msgstr "¥¦¥£¥ó¥É¥¦¥µ¥¤¥ºÊѹ¹"
+msgstr "ウィンドウサイズ変更"
 
 #: signame.c:189
 msgid "Continued"
-msgstr "ºÆ³«¤µ¤ì¤Þ¤·¤¿"
+msgstr "再開されました"
 
 #: signame.c:192
 msgid "Urgent I/O condition"
-msgstr "¶ÛµÞ I/O ¾ò·ï"
+msgstr "緊急 I/O 条件"
 
 #: signame.c:199 signame.c:208
 msgid "I/O possible"
-msgstr "Æþ½ÐÎϲÄǽ"
+msgstr "å\85¥å\87ºå\8a\9bå\8f¯è\83½"
 
 #: signame.c:202
 msgid "SIGWIND"
@@ -1989,19 +1961,19 @@ msgstr "SIGPHONE"
 
 #: signame.c:211
 msgid "Resource lost"
-msgstr "¥ê¥½¡¼¥¹¤¬¼º¤ï¤ì¤Þ¤·¤¿"
+msgstr "リソースが失われました"
 
 #: signame.c:214
 msgid "Danger signal"
-msgstr "´í¸±¥·¥°¥Ê¥ë"
+msgstr "危険シグナル"
 
 #: signame.c:217
 msgid "Information request"
-msgstr "¾ðÊóÍ×µá"
+msgstr "情報要求"
 
 #: signame.c:220
 msgid "Floating point co-processor not available"
-msgstr "ÉâÆ°¾®¿ôÅÀ¥³¥×¥í¥»¥Ã¥µ¤¬ÍøÍÑÉÔǽ"
+msgstr "æµ®å\8b\95å°\8fæ\95°ç\82¹ã\82³ã\83\97ã\83­ã\82»ã\83\83ã\82µã\81\8cå\88©ç\94¨ä¸\8dè\83½"
 
 #: strcache.c:236
 #, c-format
@@ -2009,210 +1981,217 @@ msgid ""
 "\n"
 "%s No strcache buffers\n"
 msgstr ""
+"\n"
+"%s strcache バッファはありません\n"
 
 #: strcache.c:266
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
 "B\n"
 msgstr ""
-"%s »ÈÍѤµ¤ì¤¿ strcache : ¹ç·× = %d (%d) / ºÇÂç = %d / ºÇ¾® = %d / Ê¿¶Ñ = %d\n"
+"\n"
+"%s strcache バッファ: %lu (%lu) / 文字列 = %lu / 格納 = %lu B / 平均 = %lu "
+"B\n"
 
 #: strcache.c:270
 #, c-format
 msgid ""
 "%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
+"%s 現在のバッファ: サイズ = %hu B / 使用中 = %hu B / 個数 = %hu / 平均 = %hu "
+"B\n"
 
 #: strcache.c:280
-#, fuzzy, c-format
+#, c-format
 msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
-msgstr ""
-"%s »ÈÍѤµ¤ì¤¿ strcache : ¹ç·× = %d (%d) / ºÇÂç = %d / ºÇ¾® = %d / Ê¿¶Ñ = %d\n"
+msgstr "%s その他 使用中: 合計 = %lu B / 個数 = %lu / 平均 = %lu B\n"
 
 #: strcache.c:283
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
 msgstr ""
-"%s Ì¤»ÈÍѤΡ¡ strcache: ¹ç·× = %d (%d) / ºÇÂç = %d / ºÇ¾® = %d / Ê¿¶Ñ = %d\n"
+"%s その他 未使用: 合計 = %lu B / 最大 = %lu B / 最小 = %lu B / 平均 = %hu B\n"
 
 #: strcache.c:287
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 msgstr ""
 "\n"
-"%s # strcache Æâ¤Î %d ¸Ä¤Îʸ»úÎó¤Î¤¦¤Á: Ãµº÷ = %lu / ¥Ò¥Ã¥È = %lu\n"
+"%s strcache の稼働: 探索 = %lu / ヒット率 = %lu%%\n"
 
 #: strcache.c:289
-#, fuzzy
 msgid ""
 "# hash-table stats:\n"
 "# "
 msgstr ""
-"\n"
-"# ¥Õ¥¡¥¤¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ:\n"
+"# ハッシュテーブルの状態:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
-msgstr "¼«Æ°ÊÑ¿ô"
+msgstr "自動変数"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
-msgstr "¥Ç¥Õ¥©¥ë¥È"
+msgstr "デフォルト"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
-msgstr "´Ä¶­ÊÑ¿ô"
+msgstr "環境変数"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
-msgstr "makefile ÊÑ¿ô"
+msgstr "makefile 変数"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
-msgstr "-e ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿´Ä¶­ÊÑ¿ô"
+msgstr "-e オプションで指定した環境変数"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
-msgstr "¥³¥Þ¥ó¥É¥é¥¤¥óÊÑ¿ô"
+msgstr "コマンドライン変数"
 
-#: variable.c:1625
-#, fuzzy
+#: variable.c:1617
 msgid "'override' directive"
-msgstr "`override' µ¿»÷Ì¿Îá"
+msgstr "'override' 疑似命令"
 
-#: variable.c:1636
-#, fuzzy, c-format
+#: variable.c:1628
+#, c-format
 msgid " (from '%s', line %lu)"
-msgstr " (`%s', %lu ¹ÔÌÜ)"
+msgstr " (ファイル '%s', %lu 行目)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
-msgstr "# ÊÑ¿ô¥»¥Ã¥È¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ:\n"
+msgstr "# 変数セットのハッシュテーブルの状態:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
 msgstr ""
 "\n"
-"# ÊÑ¿ô\n"
+"# 変数\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
 msgstr ""
 "\n"
-"# ¥Ñ¥¿¡¼¥ó»ØÄê ÊÑ¿ô ÃÍ"
+"# パターン指定 変数 値"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
 msgstr ""
 "\n"
-"# ¥Ñ¥¿¡¼¥ó»ØÄêÊÑ¿ô¤ÎÃͤʤ·."
+"# パターン指定変数の値なし."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
 "# %u pattern-specific variable values"
 msgstr ""
 "\n"
-"# %u ¸Ä¤Î¥Ñ¥¿¡¼¥ó»ØÄêÊÑ¿ô¤ÎÃÍ"
+"# %u 個のパターン指定変数の値"
 
 #: variable.h:224
-#, fuzzy, c-format
+#, c-format
 msgid "warning: undefined variable '%.*s'"
-msgstr "·Ù¹ð: Ì¤ÄêµÁ¤ÎÊÑ¿ô `%.*s'"
+msgstr "警告: 未定義の変数 '%.*s'"
 
 #: vmsfunctions.c:91
 #, c-format
 msgid "sys$search() failed with %d\n"
-msgstr "sys$search() ¤¬ %d ¤Ç¼ºÇÔ¤·¤Þ¤·¤¿\n"
+msgstr "sys$search() が %d で失敗しました\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
-msgstr "·Ù¹ð: ¶õ¤Î¥ê¥À¥¤¥ì¥¯¥È\n"
+msgstr "警告: 空のリダイレクト\n"
 
-#: vmsjobs.c:178
-#, fuzzy, c-format
+#: vmsjobs.c:183
+#, c-format
 msgid "internal error: '%s' command_state"
-msgstr "ÆâÉô¥¨¥é¡¼: `%s' command_state"
+msgstr "内部エラー: '%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
-"-·Ù¹ð, DCL ¤«¤é¤Î CTRL-Y Áàºî¤òºÆ¤ÓÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤«¤âÃΤì¤Þ¤»¤ó.\n"
+"-警告, DCL からの CTRL-Y 操作を再び有効にする必要があるかも知れません.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
-msgstr "¥Ó¥ë¥È¥¤¥ó [%s][%s]\n"
+msgstr "ビルトイン [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
-msgstr "¥Ó¥ë¥È¥¤¥ó CD %s\n"
+msgstr "ビルトイン CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "¥Ó¥ë¥È¥¤¥ó RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "ビルトイン CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
-msgstr "ÉÔÌÀ¤Ê¥Ó¥ë¥È¥¤¥ó¥³¥Þ¥ó¥É '%s'\n"
+msgstr "不明なビルトインコマンド '%s'\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
-msgstr "¥¨¥é¡¼, ¶õ¤Î¥³¥Þ¥ó¥É\n"
+msgstr "エラー, 空のコマンド\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
-msgstr "%s ¤«¤éÆþÎÏ¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "%s から入力リダイレクトされました\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
-msgstr "%s ¤Ø¥¨¥é¡¼¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "%s へエラーリダイレクトされました\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
-msgstr "½ÐÎϤò %s ¤ØÄɲÃ\n"
+msgstr "出力を %s へ追加\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
-msgstr "%s ¤Ø½ÐÎÏ¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "%s へ出力リダイレクトされました\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
-msgstr "Äɲà%.*s ¤È¸åÊÒÉÕ¤±\n"
+msgstr "追加 %.*s と後片付け\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
-msgstr "Âå¤ï¤ê¤Ë %s ¤ò¼Â¹Ô¤·¤Þ¤¹\n"
+msgstr "代わりに %s を実行します\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
-msgstr "spawn ¤Î¥¨¥é¡¼, %d\n"
+msgstr "spawn ã\81®ã\82¨ã\83©ã\83¼, %d\n"
 
 #: vpath.c:583
 msgid ""
@@ -2220,59 +2199,71 @@ msgid ""
 "# VPATH Search Paths\n"
 msgstr ""
 "\n"
-"# VPATH Ãµº÷¥Ñ¥¹\n"
+"# VPATH æ\8e¢ç´¢ã\83\91ã\82¹\n"
 
 #: vpath.c:600
-#, fuzzy
 msgid "# No 'vpath' search paths."
-msgstr "# `vpath' Ãµº÷¥Ñ¥¹¤Ï¤¢¤ê¤Þ¤»¤ó."
+msgstr "# 'vpath' 探索パスはありません."
 
 #: vpath.c:602
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# %u 'vpath' search paths.\n"
 msgstr ""
 "\n"
-"# %u ¸Ä¤Î `vpath' Ãµº÷¥Ñ¥¹¤¬¤¢¤ê¤Þ¤¹.\n"
+"# %u ã\81¤ã\81® 'vpath' æ\8e¢ç´¢ã\83\91ã\82¹.\n"
 
 #: vpath.c:605
-#, fuzzy
 msgid ""
 "\n"
 "# No general ('VPATH' variable) search path."
 msgstr ""
 "\n"
-"# °ìÈ̤Π(`VPATH' ÊÑ¿ô) Ãµº÷¥Ñ¥¹¤Ê¤·."
+"# 一般の ('VPATH' 変数) 探索パスなし."
 
 #: vpath.c:611
-#, fuzzy
 msgid ""
 "\n"
 "# General ('VPATH' variable) search path:\n"
 "# "
 msgstr ""
 "\n"
-"# °ìÈ̤Π(`VPATH' ÊÑ¿ô) Ãµº÷¥Ñ¥¹:\n"
+"# ä¸\80è\88¬ã\81® ('VPATH' å¤\89æ\95°) æ\8e¢ç´¢ã\83\91ã\82¹:\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "内部エラー: 複数の --sync-mutex オプション"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "内部エラー: 複数の --jobserver-fds オプション"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "仮想メモリを使い果たしました"
+
+#~ msgid "write error"
+#~ msgstr "書き込みエラー"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "ビルトイン RM %s\n"
+
 #~ msgid "#  Invalid value in `update_status' member!"
-#~ msgstr "#  `update_status' ¥á¥ó¥Ð¤Ë̵¸ú¤ÊÃÍ!"
+#~ msgstr "#  `update_status' メンバに無効な値!"
 
 #~ msgid "*** [%s] Error 0x%x (ignored)"
-#~ msgstr "*** [%s] ¥¨¥é¡¼ 0x%x (̵»ë¤µ¤ì¤Þ¤·¤¿)"
+#~ msgstr "*** [%s] エラー 0x%x (無視されました)"
 
 #~ msgid "[%s] Error %d (ignored)"
-#~ msgstr "[%s] ¥¨¥é¡¼ %d (̵»ë¤µ¤ì¤Þ¤·¤¿)"
+#~ msgstr "[%s] エラー %d (無視されました)"
 
 #~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-#~ msgstr "¥ì¥·¥Ô¤ò %s:%lu ¤«¤é¸Æ¤Ó½Ð¤·¤Æ¥¿¡¼¥²¥Ã¥È `%s' ¤ò¹¹¿·¤·¤Þ¤¹.\n"
+#~ msgstr "レシピを %s:%lu から呼び出してターゲット `%s' を更新します.\n"
 
 #~ msgid "Invoking builtin recipe to update target `%s'.\n"
-#~ msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤ò¹¹¿·¤¹¤ë¤¿¤áÆâ¢¥ì¥·¥Ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤Þ¤¹.\n"
+#~ msgstr "ターゲット `%s' を更新するため内蔵レシピを呼び出しています.\n"
 
 #~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-#~ msgstr "%s # strcache ¥Ð¥Ã¥Õ¥¡ %d ¤Î¤¦¤Á: (* %d B/¥Ð¥Ã¥Õ¥¡ = %d B)\n"
+#~ msgstr "%s # strcache ã\83\90ã\83\83ã\83\95ã\82¡ %d ã\81®ã\81\86ã\81¡: (* %d B/ã\83\90ã\83\83ã\83\95ã\82¡ = %d B)\n"
 
 #~ msgid ""
 #~ "\n"
@@ -2280,60 +2271,60 @@ msgstr ""
 #~ "# "
 #~ msgstr ""
 #~ "\n"
-#~ "# strcache ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÎÅý·×:\n"
+#~ "# strcache ハッシュテーブルの統計:\n"
 #~ "# "
 
 #~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "ʸˡ¥¨¥é¡¼, '\"' Æâ¤Î¤Þ¤Þ¤Ç¤¹\n"
+#~ msgstr "文法エラー, '\"' 内のままです\n"
 
 #~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr "SIGCHLD ¤¬È¯À¸; %u ¸Ä¤Î̤²ó¼ý»Ò¥×¥í¥»¥¹.\n"
+#~ msgstr "SIGCHLD ã\81\8cç\99ºç\94\9f; %u å\80\8bã\81®æ\9cªå\9b\9eå\8f\8eå­\90ã\83\97ã\83­ã\82»ã\82¹.\n"
 
 #~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-·Ù¹ð, CTRL-Y ¤Ï»Ò¥×¥í¥»¥¹¤ò»¶¤é¤«¤·¤¿¤Þ¤Þ¤Ë¤¹¤ë¤Ç¤·¤ç¤¦.\n"
+#~ msgstr "-警告, CTRL-Y は子プロセスを散らかしたままにするでしょう.\n"
 
 #~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "sh.exe ¤¬»È¤¨¤Ê¤¤¾õÂ֤Ǡ-j ¤ä --jobs ¤ò»ØÄꤷ¤Æ¤Ï¤¤¤±¤Þ¤»¤ó."
+#~ msgstr "sh.exe が使えない状態で -j や --jobs を指定してはいけません."
 
 #~ msgid "Resetting make for single job mode."
-#~ msgstr "ñ°ì¥¸¥ç¥Ö¥â¡¼¥É¤Î make ¤Ë¥ê¥»¥Ã¥È¤·¤Þ¤¹."
+#~ msgstr "単一ジョブモードの make にリセットします."
 
 #~ msgid ""
 #~ "%sThis is free software; see the source for copying conditions.\n"
 #~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
 #~ "%sPARTICULAR PURPOSE.\n"
 #~ msgstr ""
-#~ "%s¤³¤ì¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹. ÍøÍѵöÂú¤Ë¤Ä¤¤¤Æ¤Ï¥½¡¼¥¹¤ò\n"
-#~ "%s¤´Í÷¤¯¤À¤µ¤¤.\n"
-#~ "%s¾¦¶ÈÀ­¤äÆÃÄê¤ÎÌÜŪ¤Ø¤ÎŬ¹çÀ­¤ÎÇ¡²¿¤Ë´Ø¤ï¤é¤º, ÌµÊݾڤǤ¹.\n"
+#~ "%sこれはフリーソフトウェアです. 利用許諾についてはソースを\n"
+#~ "%sご覧ください.\n"
+#~ "%s商業性や特定の目的への適合性の如何に関わらず, 無保証です.\n"
 
 #~ msgid "extraneous `endef'"
-#~ msgstr "´Ø·¸¤Î¤Ê¤¤ `endef'"
+#~ msgstr "関係のない `endef'"
 
 #~ msgid "empty `override' directive"
-#~ msgstr "¶õ¤Î `override' µ¿»÷Ì¿Îá"
+#~ msgstr "空の `override' 疑似命令"
 
 #~ msgid "invalid `override' directive"
-#~ msgstr "̵¸ú¤Ê `override' µ¿»÷Ì¿Îá"
+#~ msgstr "無効な `override' 疑似命令"
 
 #~ msgid "no file name for `%sinclude'"
-#~ msgstr "`%sinclude' ¤Ë¥Õ¥¡¥¤¥ë̾¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgstr "`%sinclude' にファイル名がありません"
 
 #~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤ÎɬÍ×¾ò·ï¥Ñ¥¿¡¼¥ó¤¬¶õ¤Î¤Þ¤Þ¤Ç¤¹"
+#~ msgstr "ターゲット `%s' の必要条件パターンが空のままです"
 
 #~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
 #~ msgstr ""
-#~ "# ¥Ï¥Ã¥·¥åÍ×ÁǤ¢¤¿¤ê¡¢Ê¿¶Ñ %.3f ¸Ä¡¢ºÇÂç %u ¸Ä¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹¡£\n"
+#~ "# ハッシュ要素あたり、平均 %.3f 個、最大 %u 個のファイルがあります。\n"
 
 #~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "¥Ç¥Ð¥Ã¥¬¤Ë attach ¤¹¤ë¤¿¤á¥×¥í¥»¥¹¤Î°ì»þÄä»ß¤òµö²Ä¤¹¤ë"
+#~ msgstr "デバッガに attach するためプロセスの一時停止を許可する"
 
 #~ msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# ¥Ï¥Ã¥·¥åÍ×ÁǤ¢¤¿¤ê¡¢Ê¿¶Ñ %.1f ¸Ä¡¢ºÇÂç %u ¸Ä¤ÎÊÑ¿ô¤¬¤¢¤ê¤Þ¤¹¡£\n"
+#~ msgstr "# ハッシュ要素あたり、平均 %.1f 個、最大 %u 個の変数があります。\n"
 
 #~ msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# ¥Ï¥Ã¥·¥åÍ×ÁǤ¢¤¿¤êÊ¿¶Ñ %d.%d ¸Ä¡¢ºÇÂç %u ¸Ä¤ÎÊÑ¿ô¤¬¤¢¤ê¤Þ¤¹¡£\n"
+#~ msgstr "# ハッシュ要素あたり平均 %d.%d 個、最大 %u 個の変数があります。\n"
 
 #~ msgid "the `word' function takes a positive index argument"
-#~ msgstr "`word' ´Ø¿ô¤ÏÈóÉé¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹°ú¿ô¤ò¤È¤ê¤Þ¤¹"
+#~ msgstr "`word' 関数は非負のインデックス引数をとります"
index bf0cf9cc66ec9d0020b95b5031f102007596334e..420b24948b4bad384c7467e09904fc59c8be20ac 100644 (file)
Binary files a/po/ko.gmo and b/po/ko.gmo differ
index 256ffb13f40e7d59b8214e2283ae74c33aa50fb1..709bcb190d85a394f6f29205f5655c153f71b95b 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
 # Korean messages for GNU make.
-# Copyright (C) 1996, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2001, 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
+#
 # Bang Jun-Young <bangjy@nownuri.net>, 1996.
+# Changwoo Ryu <cwryu@debian.org>, 2001, 2006, 2013.
+#
+# 용어
+# - recipe - 명령 (make의 action으로 실행할 명령어를 말함)
+# - prerequisite - 선행 조건
+#
+# 참고
+# - order-only란 의존하는 타겟 중에서 명령어 순서만 지정하고 파일 수정
+# 시각은 무시하는 종류를 말한다. "Types of Prerequisites" 참고.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU make 3.79.1\n"
+"Project-Id-Version: GNU make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2001-06-08 01:30+0900\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-12-01 18:10+0900\n"
 "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
-"Language-Team: Korean <ko@li.org>\n"
+"Language-Team: Korean <translation-team-ko@lists.sourceforge.net>\n"
 "Language: ko\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=EUC-KR\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
 #: ar.c:46
-#, fuzzy, c-format
+#, c-format
 msgid "attempt to use unsupported feature: '%s'"
-msgstr "Áö¿øµÇÁö ¾Ê´Â ±â´ÉÀ» »ç¿ëÇÏ·Á°í ÇÔ: `%s'"
+msgstr "지원되지 않는 기능을 사용하려고 함: '%s'"
 
 #: ar.c:123
 msgid "touch archive member is not available on VMS"
-msgstr "¾ÆÄ«À̺꠸â¹ö touch´Â VMS¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù"
+msgstr "아카이브 멤버 touch는 VMS에서 사용할 수 없습니다"
 
 #: ar.c:147
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Archive '%s' does not exist"
-msgstr "touch: ¹®¼­ `%s'°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"
+msgstr "touch: '%s' 아카이브가 없습니다"
 
 #: ar.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "touch: '%s' is not a valid archive"
-msgstr "touch: `%s'´Â Àû¹ýÇÑ ¹®¼­°¡ ¾Æ´Õ´Ï´Ù"
+msgstr "touch: '%s'은(는) 올바른 아카이브가 아닙니다"
 
 #: ar.c:157
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Member '%s' does not exist in '%s'"
-msgstr "touch: ¸â¹ö `%s'°¡ `%s'¿¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"
+msgstr "touch: '%s' 멤버가 '%s' 안에 없습니다"
 
 #: ar.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "touch: Bad return code from ar_member_touch on '%s'"
-msgstr "touch: `%s'¿¡ ´ëÇÏ¿© ar_member_touch¿¡¼­ ½ÇÆÐ ¸®ÅÏ ÄÚµå"
+msgstr "touch: '%s'에 대하여 ar_member_touch에서 실패 리턴 코드"
 
-#: arscan.c:67
-#, fuzzy, c-format
+#: arscan.c:124
+#, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "lbr$set_moduleÀÌ ¸ðµâÁ¤º¸¸¦ ÃßÃâÇϴ µ¥ ½ÇÆÐ, »óÅ = %d"
+msgstr "lbr$set_module()이 모듈정보를 추출하는 데 실패, 상태 = %d"
 
-#: arscan.c:173
-#, fuzzy, c-format
+#: arscan.c:230
+#, c-format
 msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_controlÀÌ »óÅ = %d·Î(À¸·Î) ½ÇÆÐ "
+msgstr "lbr$ini_control()이 실패, 상태 = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
-msgstr "¸â¹ö `%2$s'¸¦ ÂüÁ¶Çϱâ À§ÇØ ¶óÀ̺귯¸® `%1$s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+msgid "unable to open library '%s' to lookup member status %d"
+msgstr "'%2$s' 멤버를 참조하려고 '%1$s' 라이브러리를 열 수 없습니다"
 
-#: arscan.c:847
-#, fuzzy, c-format
+#: arscan.c:944
+#, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "¸â¹ö `%s'%s: %ld¹ÙÀÌÆ®, %ld (%ld) ¿¡¼­.\n"
+msgstr "멤버 '%s'%s: %ld바이트, 위치 %ld (%ld).\n"
 
-# À̹̠Àß·ÁÁø À̸§À» Ç¥½ÃÇϸ鼭 À̸§ÀÌ Àß·ÁÁ³À» ¼öµµ ÀÖÀ¸´Ï À¯ÀÇÇ϶ó´Â ¶æ
-#: arscan.c:848
+# 이미 잘려진 이름을 표시하면서 이름이 잘려졌을 수도 있으니 유의하라는 뜻
+#: arscan.c:945
 msgid " (name might be truncated)"
-msgstr " (À̸§ÀÌ Àß·Á³ª°¬À» ¼öµµ ÀÖ½À´Ï´Ù)"
+msgstr " (이름이 잘려나갔을 수도 있습니다)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
-msgstr "  ³¯Â¥ %s"
+msgstr "  날짜 %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
-msgstr "  uid = %d, gid = %d, ¸ðµå = 0%o.\n"
+msgstr "  uid = %d, gid = %d, 모드 = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
-msgstr ""
+msgstr "명령어에 줄이 너무 많습니다(%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
-msgstr "*** ÁßÁö.\n"
+msgstr "*** 중지.\n"
 
-#: commands.c:630
-#, fuzzy, c-format
+#: commands.c:629
+#, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
-msgstr "*** [%s] ¾ÆÄ«À̺꠸â¹ö `%s'´Â °¡Â¥ÀÏ ¼ö ÀÖ½À´Ï´Ù; Áö¿ìÁö ¾Ê½À´Ï´Ù"
+msgstr "*** [%s] 아카이브 '%s' 멤버는 가짜일 수 있으므로 삭제하지 않습니다"
 
 #: commands.c:633
-#, fuzzy, c-format
+#, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
-msgstr "*** ¾ÆÄ«À̺꠸â¹ö `%s'´Â °¡Â¥ÀÏ ¼ö ÀÖ½À´Ï´Ù; Áö¿ìÁö ¾Ê½À´Ï´Ù"
+msgstr "*** 아카이브 '%s' 멤버는 가짜일 수 있으므로 삭제하지 않습니다"
 
-#: commands.c:646
-#, fuzzy, c-format
+#: commands.c:647
+#, c-format
 msgid "*** [%s] Deleting file '%s'"
-msgstr "*** [%s] ÆÄÀÏ `%s'À»(¸¦) ÁÖÀÔ´Ï´Ù"
+msgstr "*** [%s] '%s' 파일을 삭제합니다"
 
-#: commands.c:648
-#, fuzzy, c-format
+#: commands.c:649
+#, c-format
 msgid "*** Deleting file '%s'"
-msgstr "*** ÆÄÀÏ `%s'À»(¸¦) Áö¿ó´Ï´Ù"
+msgstr "*** '%s' 파일을 삭제합니다"
 
-#: commands.c:684
-#, fuzzy
+#: commands.c:685
 msgid "#  recipe to execute"
-msgstr "#  ½ÇÇàÇÒ ¸í·É¾î"
+msgstr "#  실행할 명령어"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
-msgstr " (³»Àå):"
+msgstr " (내장):"
 
-#: commands.c:689
-#, fuzzy, c-format
+#: commands.c:690
+#, c-format
 msgid " (from '%s', line %lu):\n"
-msgstr " (`%s'¿¡¼­, %lu¹øÂ° ÁÙ):\n"
+msgstr " ('%s'에서, %lu번째 줄):\n"
 
 #: dir.c:989
 msgid ""
@@ -128,946 +138,955 @@ msgid ""
 "# Directories\n"
 msgstr ""
 "\n"
-"# µð·ºÅ丮\n"
+"# 디렉터리\n"
 
 #: dir.c:1001
 #, c-format
 msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: statÀ» ÇÒ ¼ö ¾ø¾ú½À´Ï´Ù.\n"
+msgstr "# %s: stat을 할 수 없었습니다.\n"
 
 #: dir.c:1005
 #, c-format
 msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (Ű %s, º¯°æ½Ã°¢ %d): ¿­ ¼ö ¾ø½À´Ï´Ù.\n"
+msgstr "# %s (키 %s, 변경시각 %d): 열 수 없습니다.\n"
 
 #: dir.c:1009
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (ÀåÄ¡ %d, ¾ÆÀ̳ëµå [%d,%d,%d]): ¿­ ¼ö ¾ø½À´Ï´Ù.\n"
+msgstr "# %s (장치 %d, 아이노드 [%d,%d,%d]): 열 수 없습니다.\n"
 
 #: dir.c:1014
 #, c-format
 msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (ÀåÄ¡ %ld, ¾ÆÀ̳ëµå %ld): ¿­ ¼ö ¾ø½À´Ï´Ù.\n"
+msgstr "# %s (장치 %ld, 아이노드 %ld): 열 수 없습니다.\n"
 
 #: dir.c:1041
 #, c-format
 msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (Ű %s, º¯°æ½Ã°¢ %d): "
+msgstr "# %s (키 %s, 변경시각 %d): "
 
 #: dir.c:1045
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (ÀåÄ¡ %d, ¾ÆÀ̳ëµå [%d,%d,%d]): "
+msgstr "# %s (장치 %d, 아이노드 [%d,%d,%d]): "
 
 #: dir.c:1050
 #, c-format
 msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (ÀåÄ¡ %ld, ¾ÆÀ̳ëµå %ld): "
+msgstr "# %s (장치 %ld, 아이노드 %ld): "
 
-# ¿©±â¼­ No´Â "No files"¶ó°í ¾²ÀδÙ.  ±Ã±ØÀûÀ¸·Î msgid°¡ °íÃÄÁ®¾ß ÇÔ
+# 여기서 No는 "No files"라고 쓰인다.  궁극적으로 msgid가 고쳐져야 함
 #: dir.c:1056 dir.c:1077
 msgid "No"
-msgstr "0°³"
+msgstr "0"
 
 #: dir.c:1059 dir.c:1080
 msgid " files, "
-msgstr " ÆÄÀÏ, "
+msgstr " 파일, "
 
-# ¿©±â¼­ no´Â "no impossibilities"¶ó°í ¾²ÀδÙ.  ±Ã±ØÀûÀ¸·Î msgid°¡ °íÃÄÁ®¾ß ÇÔ
+# 여기서 no는 "no impossibilities"라고 쓰인다.  궁극적으로 msgid가 고쳐져야 함
 #: dir.c:1061 dir.c:1082
 msgid "no"
-msgstr "0°³"
+msgstr "0"
 
 #: dir.c:1064
 msgid " impossibilities"
-msgstr " ºÒ°¡´É"
+msgstr " 불가능"
 
 #: dir.c:1068
 msgid " so far."
-msgstr " Áö±Ý±îÁö."
+msgstr " 지금까지."
 
 #: dir.c:1085
-#, fuzzy, c-format
+#, c-format
 msgid " impossibilities in %lu directories.\n"
-msgstr " %u°³ÀÇ µð·ºÅ丮¿¡¼­ ºÒ°¡´É.\n"
+msgstr " 디렉토리 %lu개에서 불가능.\n"
 
 #: expand.c:125
-#, fuzzy, c-format
+#, c-format
 msgid "Recursive variable '%s' references itself (eventually)"
-msgstr "Àç±Í º¯¼ö `%s'´Â ÀÚ±â ÀÚ½ÅÀ» ÂüÁ¶Çϰí ÀÖ½À´Ï´Ù (°á±¹)"
+msgstr "재귀하는 '%s' 변수는 (결국) 자기 자신을 참조하고 있습니다"
 
 #: expand.c:269
 msgid "unterminated variable reference"
-msgstr "Á¾°áµÇÁö ¾ÊÀº º¯¼ö ÂüÁ¶"
+msgstr "변수 참조에 끝마침이 없습니다"
 
-#: file.c:269
-#, fuzzy, c-format
+#: file.c:271
+#, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
-msgstr "ÆÄÀÏ `%s'ÀÇ %s:%lu¿¡¼­ ¸í·É¾î°¡ ÁöÁ¤µÇ¾ú½À´Ï´Ù,"
+msgstr "파일 '%s'의 %s:%lu에서 명령을 지정했습니다."
 
-#: file.c:274
-#, fuzzy, c-format
+#: file.c:276
+#, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
-msgstr "ÆÄÀÏ `%s'¸¦ À§ÇÑ ¸í·ÉÀ» ¹¬½ÃÀû ±ÔÄ¢ Å½»öÀ¸·Î Ã£¾Ò½À´Ï´Ù."
+msgstr "파일 '%s'에 대한 명령을 묵시적 규칙 탐색으로 찾았습니다."
 
-#: file.c:277
-#, fuzzy, c-format
+#: file.c:280
+#, c-format
 msgid "but '%s' is now considered the same file as '%s'."
-msgstr "ÇÏÁö¸¸ `%s'´Â ÀÌÁ¦ `%s'¿Í °°Àº ÆÄÀϷΠ°£Áֵ˴ϴÙ."
+msgstr "하지만 '%s' 파일은 이제 '%s'과(와) 같은 파일로 간주합니다."
 
-#: file.c:280
-#, fuzzy, c-format
+#: file.c:283
+#, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
-msgstr "`%s'¿¡ ´ëÇÑ ¸í·É¾î´Â `%s'¿¡ ´ëÇÑ ¸í·É¾î°¡ ¿ì¼±ÇϹǷΠ¹«½ÃµË´Ï´Ù.."
+msgstr "'%s'에 대한 명령은 '%s'에 대한 명령이 우선하므로 무시합니다."
 
-#: file.c:300
-#, fuzzy, c-format
+#: file.c:303
+#, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
-msgstr "´ÜÀÏ ÄݷР`%s'¸¦ ÀÌÁß ÄݷР`%s'·Î À̸§¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
+msgstr "단일 콜론 '%s'을(를) 이중 콜론 '%s'(으)로 이름을 바꿀 수 없습니다"
 
-#: file.c:305
-#, fuzzy, c-format
+#: file.c:309
+#, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
-msgstr "ÀÌÁß ÄݷР`%s'¸¦ ´ÜÀÏ ÄݷР`%s'·Î À̸§¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
+msgstr "이중 콜론 '%s'을(를) 단일 콜론 '%s'(으)로 이름을 바꿀 수 없습니다"
 
-#: file.c:396
-#, fuzzy, c-format
+#: file.c:401
+#, c-format
 msgid "*** Deleting intermediate file '%s'"
-msgstr "*** Áß°£ ÆÄÀÏ `%s'À»(¸¦) ÁÖÀÔ´Ï´Ù"
+msgstr "*** 중간 파일 '%s'을(를) 삭제합니다"
 
-#: file.c:400
-#, fuzzy
+#: file.c:405
 msgid "Removing intermediate files...\n"
-msgstr "*** Áß°£ ÆÄÀÏ `%s'À»(¸¦) ÁÖÀÔ´Ï´Ù"
+msgstr "중간 파일을 제거합니다...\n"
+
+#: file.c:811
+msgid "Current time"
+msgstr "현재 시각"
 
-#: file.c:808
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Å¸ÀÓ½ºÅÆÇÁ°¡ ¹üÀ§¸¦ ¹þ¾î³³´Ï´Ù; %sÀ»(¸¦) ´ëüÇÕ´Ï´Ù"
-
-#: file.c:809
-msgid "Current time"
-msgstr "ÇöÀ砽ð¢"
+msgstr "%s: 타임스탬프가 범위를 벗어나므로, %s을(를) 대체합니다"
 
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
-msgstr "# Å¸°ÙÀÌ ¾Æ´Ô:"
+msgstr "# 타겟이 아님:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
-msgstr "#  ÇÁ·¹½Ã¾î½º ÆÄÀÏ (.PRECIOUSÀÇ ¼±ÇàÁ¶°Ç)."
+msgstr "#  프레시어스 파일 (.PRECIOUS의 선행조건)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
-msgstr "#  Æ÷´Ï Å¸°Ù (.PHONYÀÇ ¼±ÇàÁ¶°Ç)."
+msgstr "#  포니 타겟 (.PHONY의 선행조건)."
 
-#: file.c:958
-#, fuzzy
+#: file.c:964
 msgid "#  Command line target."
-msgstr "#  ¸í·ÉÇà Å¸°Ù."
+msgstr "#  명령행 타겟."
 
-#: file.c:960
-#, fuzzy
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "#  ±âº» ¸ÞÀÌÅ©ÆÄÀϠȤÀº MAKEFILES ¸ÞÀÌÅ©ÆÄÀÏ."
+msgstr ""
+"#  기본 메이크파일, MAKEFILES 메이크파일, 또는 -include/sinclude 메이크파일."
 
-#: file.c:962
-#, fuzzy
+#: file.c:968
 msgid "#  Builtin rule"
-msgstr ""
-"\n"
-"# ¹¬½ÃÀû ±ÔÄ¢ ¾øÀ½."
+msgstr "#  내장 규칙"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
-msgstr "#  ¹¬½ÃÀû ±ÔÄ¢ Å½»öÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù."
+msgstr "#  묵시적 규칙 탐색이 완료되었습니다."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
-msgstr "#  ¹¬½ÃÀû ±ÔÄ¢ Å½»öÀÌ ¿Ï·áµÇÁö ¾Ê¾Ò½À´Ï´Ù."
+msgstr "#  묵시적 규칙 탐색이 완료되지 않았습니다."
 
-#: file.c:967
-#, fuzzy, c-format
+#: file.c:973
+#, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
-msgstr "#  ¹¬½ÃÀû/°íÁ¤ ÆÐÅÏ ½ºÅÛ: `%s'\n"
+msgstr "#  묵시적/고정 패턴 스템: '%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
-msgstr "#  ÆÄÀÏÀÌ Áß°£´Ü°èÀÇ ¼±ÇàÁ¶°ÇÀÔ´Ï´Ù."
+msgstr "#  파일이 중간단계의 선행조건입니다."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
-msgstr "#  ´ÙÀ½µµ ¸¸µì´Ï´Ù:"
+msgstr "#  다음도 만듭니다:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
-msgstr "#  º¯°æ ½Ã°¢ÀÌ °áÄÚ °Ë»çµÇÁö ¾Ê¾ÒÀ½."
+msgstr "#  변경 시각이 결코 검사되지 않았음."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
-msgstr "#  ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù."
+msgstr "#  파일이 없습니다."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
-msgstr "#  ÆÄÀÏÀÌ ¸Å¿ì ¿À·¡µÇ¾ú½À´Ï´Ù."
+msgstr "#  파일이 매우 오래되었습니다."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
-msgstr "#  ¸¶Áö¸· º¯°æ %s\n"
+msgstr "#  마지막 변경 %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
-msgstr "#  ÆÄÀÏÀÌ °»½ÅµÇ¾ú½À´Ï´Ù."
+msgstr "#  파일을 업데이트했습니다."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
-msgstr "#  ÆÄÀÏÀÌ °»½ÅµÇÁö ¾Ê¾Ò½À´Ï´Ù."
+msgstr "#  파일을 업데이트하지 않았습니다."
 
-#: file.c:995
-#, fuzzy
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
-msgstr "#  ÇöÀç ½ÇÇàÁßÀΠ¸í·É (À̰ÍÀº ¹ö±×ÀÔ´Ï´Ù)."
+msgstr "#  현재 실행중인 명령(이것은 버그입니다)."
 
-#: file.c:998
-#, fuzzy
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
-msgstr "#  ÇöÀç ½ÇÇàÁßÀΠÀÇÁ¸¼º (À̰ÍÀº ¹ö±×ÀÔ´Ï´Ù)."
+msgstr "#  현재 실행중인 의존성(이것은 버그입니다)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
-msgstr "#  ¼º°øÀûÀ¸·Î °»½ÅµÊ."
+msgstr "#  성공적으로 업데이트."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
-msgstr "#  °»½ÅµÉ Çʿ䰡 ÀÖÀ½ (-q ¼³Á¤µÊ)."
+msgstr "#  업데이트 필요(-q 설정됨)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
-msgstr "#  °»½Å¿¡ ½ÇÆÐÇÔ."
+msgstr "#  업데이트 실패."
 
-#: file.c:1019
-#, fuzzy
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
-msgstr "#  `command_status' ¸â¹ö¿¡ °ªÀÌ À߸øµÇ¾ú½À´Ï´Ù!"
+msgstr "#  'command_status' 멤버에 값이 잘못되었습니다!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
 msgstr ""
 "\n"
-"# ÆÄÀÏ"
+"# 파일"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
+"\n"
+"# 파일 해시 테이블 통계:\n"
+"# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
-msgstr ""
+msgstr "%s: '%s' 필드가 캐시에 없음: %s"
 
-#: function.c:742
-#, fuzzy
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
-msgstr "`word' ÇÔ¼öÀǠù¹øÂ° ÀÎÀÚ°¡ ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù"
+msgstr "'word' 함수의 첫번째 인자가 숫자가 아닙니다"
 
-#: function.c:747
-#, fuzzy
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
-msgstr "`word' ÇÔ¼öÀǠù¹øÂ° ÀÎÀڴ 0º¸´Ù Ä¿¾ß ÇÕ´Ï´Ù"
+msgstr "'word' 함수의 첫번째 인자는 0보다 커야 합니다"
 
-#: function.c:767
-#, fuzzy
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
-msgstr "`wordlist' ÇÔ¼öÀǠù¹øÂ° ÀÎÀÚ°¡ ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù"
+msgstr "'wordlist' 함수의 첫번째 인자가 숫자가 아닙니다"
 
-#: function.c:769
-#, fuzzy
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
-msgstr "`wordlist' ÇÔ¼öÀÇ µÎ¹øÂ° ÀÎÀÚ°¡ ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù"
+msgstr "'wordlist' 함수의 두번째 인자가 숫자가 아닙니다"
 
-#: function.c:1460
-#, fuzzy, c-format
+#: function.c:1499
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) ½ÇÆÐ (e=%d)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) 실패(e=%ld)\n"
 
-#: function.c:1483
-#, fuzzy, c-format
+#: function.c:1523
+#, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Err) ½ÇÆÐ (e=%d)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Err) 실패(e=%ld)\n"
 
-#: function.c:1490
-#, fuzzy, c-format
+#: function.c:1530
+#, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() ½ÇÆÐ (e=%d)\n"
+msgstr "CreatePipe() 실패(e=%ld)\n"
 
-#: function.c:1498
-#, fuzzy
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() ½ÇÆÐ\n"
+msgstr "windows32_openpipe(): process_init_fd() 실패\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
-msgstr "Àӽà¹èÄ¡ ÆÄÀÏ %sÀ»(¸¦) Áö¿ó´Ï´Ù\n"
+msgstr "임시 배치 파일 %s을(를) 지웁니다\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
-msgstr ""
+msgstr "open: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
-msgstr ""
+msgstr "write: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
-msgstr ""
+msgstr "올바르지 않은 파일 동작: %s"
 
-#: function.c:2279
-#, fuzzy, c-format
+#: function.c:2324
+#, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
-msgstr "ÇÔ¼ö `%2$s'¿¡ ÀÎÀÚ °¹¼ö(%1$d)°¡ ºÎÁ·ÇÕ´Ï´Ù "
+msgstr "함수 '%2$s'에 인자 갯수(%1$d)가 부족합니다 "
 
-#: function.c:2291
-#, fuzzy, c-format
+#: function.c:2336
+#, c-format
 msgid "unimplemented on this platform: function '%s'"
-msgstr "ÀÌ Ç÷§Æû¿¡¼­´Â ±¸ÇöµÇÁö ¾Ê¾Ò½À´Ï´Ù: `%s' ÇÔ¼ö"
+msgstr "이 플랫폼에서는 구현되지 않았습니다: '%s' 함수"
 
-#: function.c:2354
-#, fuzzy, c-format
+#: function.c:2399
+#, c-format
 msgid "unterminated call to function '%s': missing '%c'"
-msgstr "ÇÔ¼ö `%s'¿¡ ´ëÇØ Á¾·áµÇÁö ¾ÊÀº È£Ãâ: `%c'°¡ ºüÁ³À½"
+msgstr "함수 '%s'에 대해 종료되지 않은 호출: '%c' 문자가 빠졌음"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "빈 함수 이름: %s\n"
 
-#: function.c:2548
-#, c-format
-msgid "Invalid function name: %s\n"
-msgstr ""
+#: function.c:2593
+#, fuzzy, c-format
+msgid "Invalid function name: %s"
+msgstr "잘못된 함수 이름: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
-msgstr ""
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
+msgstr "함수 이름이 너무 깁니다: %s\n"
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
-msgstr "ÇÔ¼ö `%2$s'¿¡ ÀÎÀÚ °¹¼ö(%1$d)°¡ ºÎÁ·ÇÕ´Ï´Ù "
+msgid "Invalid minimum argument count (%d) for function %s"
+msgstr "함수 `%2$s'에 최소 인자 갯수(%1$d)가 잘못되었습니다\n"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
-msgstr "ÇÔ¼ö `%2$s'¿¡ ÀÎÀÚ °¹¼ö(%1$d)°¡ ºÎÁ·ÇÕ´Ï´Ù "
+msgid "Invalid maximum argument count (%d) for function %s"
+msgstr "함수 `%2$s'에 최대 인자 갯수(%1$d)가 잘못되었습니다\n"
 
 #: getopt.c:659
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: `%s'´Â ¾Ö¸ÅÇÑ ¿É¼ÇÀÔ´Ï´Ù\n"
+msgstr "%s: '%s' 옵션은 애매한 옵션입니다\n"
 
 #: getopt.c:683
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: `--%s' ¿É¼ÇÀº Àμö¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù\n"
+msgstr "%s: '--%s' 옵션은 인수를 허용하지 않습니다\n"
 
 #: getopt.c:688
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: `%c%s' ¿É¼ÇÀº Àμö¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù\n"
+msgstr "%s: '%c%s' 옵션은 인수를 허용하지 않습니다\n"
 
 #: getopt.c:705 getopt.c:878
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '%s' requires an argument\n"
-msgstr "%s: `%s' ¿É¼ÇÀº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù\n"
+msgstr "%s: '%s' 옵션은 인수가 필요합니다\n"
 
 #: getopt.c:734
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `--%s'\n"
+msgstr "%s: 인식할 수 없는 옵션 '--%s'\n"
 
 #: getopt.c:738
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `%c%s'\n"
+msgstr "%s: 인식할 수 없는 옵션 '%c%s'\n"
 
 #: getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
-msgstr "%s: À߸øµÈ ¿É¼Ç -- %c\n"
+msgstr "%s: 잘못된 옵션 -- %c\n"
 
 #: getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
-msgstr "%s: ºÎÀûÀýÇÑ ¿É¼Ç -- %c\n"
+msgstr "%s: 부적절한 옵션 -- %c\n"
 
 #: getopt.c:797 getopt.c:927
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: ÀÌ ¿É¼ÇÀº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù -- %c\n"
+msgstr "%s: 이 옵션은 인수가 필요합니다 -- %c\n"
 
 #: getopt.c:844
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: `-W %s' ¿É¼ÇÀº ¾Ö¸ÅÇÑ ¿É¼ÇÀÔ´Ï´Ù\n"
+msgstr "%s: '-W %s' 옵션은 애매한 옵션입니다\n"
 
 #: getopt.c:862
-#, fuzzy, c-format
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: `-W %s' ¿É¼ÇÀº Àμö¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù\n"
+msgstr "%s: '-W %s' 옵션은 인수를 허용하지 않습니다\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
-msgstr ""
+msgstr "guile: '%s' 확장\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
-msgstr ""
+msgstr "guile: '%s' 해석\n"
 
 #: hash.c:49
 #, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr ""
+msgstr "해시 테이블에 %lu 바이트를 할당할 수 없습니다: 메모리 바닥남"
 
 #: hash.c:280
 #, c-format
 msgid "Load=%ld/%ld=%.0f%%, "
-msgstr ""
+msgstr "로드=%ld/%ld=%.0f%%, "
 
 #: hash.c:282
 #, c-format
 msgid "Rehash=%d, "
-msgstr ""
+msgstr "다시 해시=%d, "
 
 #: hash.c:283
 #, c-format
 msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr ""
+msgstr "충돌=%ld/%ld=%.0f%%"
 
 #: implicit.c:38
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for an implicit rule for '%s'.\n"
-msgstr "`%s'¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢À» Ã£°í ÀÖ½À´Ï´Ù.\n"
+msgstr "'%s'에 대한 묵시적 규칙을 찾고 있습니다.\n"
 
 #: implicit.c:54
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for archive-member implicit rule for '%s'.\n"
-msgstr "`%s'¿¡ ´ëÇÑ ¾ÆÄ«À̺ê¸â¹ö ¹¬½ÃÀû ±ÔÄ¢À» Ã£°í ÀÖ½À´Ï´Ù.\n"
+msgstr "'%s'에 대한 아카이브멤버 묵시적 규칙을 찾고 있습니다.\n"
 
 #: implicit.c:310
 msgid "Avoiding implicit rule recursion.\n"
-msgstr "¹¬½ÃÀû ±ÔÄ¢ÀÇ Àç±Í¸¦ ÇÇÇÔ.\n"
+msgstr "묵시적 규칙의 재귀를 피함.\n"
 
+# 스템(stem)이란 패턴 룰에서 prefix/suffix를 제외한 나머지를 말한다.
+# 예를 들어 `%.c'라는 패턴에 `hello.c'가 들어 맞았을 경우 stem은 `hello'이다.
 #: implicit.c:486
 #, c-format
 msgid "Stem too long: '%.*s'.\n"
-msgstr ""
+msgstr "스템이 너무 깁니다: '%.*s'.\n"
 
-# ½ºÅÛstemÀ̶õ ÆÐÅÏ ·ê¿¡¼­ prefix/suffix¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö¸¦ ¸»ÇÑ´Ù.
-# ¿¹¸¦ µé¾î `%.c'¶ó´Â ÆÐÅÏ¿¡ `hello.c'°¡ µé¾î ¸Â¾ÒÀ» °æ¿ì stemÀº `hello'ÀÌ´Ù.
+# 스템(stem)이란 패턴 룰에서 prefix/suffix를 제외한 나머지를 말한다.
+# 예를 들어 `%.c'라는 패턴에 `hello.c'가 들어 맞았을 경우 stem은 `hello'이다.
 #: implicit.c:491
-#, fuzzy, c-format
+#, c-format
 msgid "Trying pattern rule with stem '%.*s'.\n"
-msgstr "½ºÅÛ `%.*s'¿¡¼­ºÎÅÍ ÆÐÅÏ ±ÔÄ¢ ½Ãµµ.\n"
+msgstr "'%.*s' 스템에서 패턴 규칙 시도.\n"
 
 #: implicit.c:697
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible rule prerequisite '%s'.\n"
-msgstr "ºÒ°¡´ÉÇÑ ±ÔÄ¢ ¼±ÇàÁ¶°Ç `%s'Àº(´Â) °ÅºÎµË´Ï´Ù.\n"
+msgstr "불가능한 규칙 선행조건 '%s'은(는) 거부됩니다.\n"
 
 #: implicit.c:698
-#, fuzzy, c-format
+#, c-format
 msgid "Rejecting impossible implicit prerequisite '%s'.\n"
-msgstr "ºÒ°¡´ÉÇÑ ¹¬½ÃÀû ¼±ÇàÁ¶°Ç `%s'Àº(´Â) °ÅºÎµË´Ï´Ù.\n"
+msgstr "불가능한 묵시적 선행조건 '%s'은(는) 거부됩니다.\n"
 
 #: implicit.c:711
-#, fuzzy, c-format
+#, c-format
 msgid "Trying rule prerequisite '%s'.\n"
-msgstr "±ÔÄ¢ ¼±ÇàÁ¶°Ç `%s'À»(¸¦) ½ÃµµÇÕ´Ï´Ù.\n"
+msgstr "규칙 선행조건 '%s'을(를) 시도합니다.\n"
 
 #: implicit.c:712
-#, fuzzy, c-format
+#, c-format
 msgid "Trying implicit prerequisite '%s'.\n"
-msgstr "¹¬½ÃÀû ¼±ÇàÁ¶°Ç `%s'À»(¸¦) ½ÃµµÇÕ´Ï´Ù\n"
+msgstr "묵시적 선행조건 '%s'을(를) 시도합니다.\n"
 
 #: implicit.c:751
-#, fuzzy, c-format
+#, c-format
 msgid "Found prerequisite '%s' as VPATH '%s'\n"
-msgstr "VPATH `%2$s'¿¡¼­ ¼±ÇàÁ¶°Ç `%1$s'À»(¸¦) Ã£¾Ò½À´Ï´Ù\n"
+msgstr "VPATH '%2$s'에서 선행조건 '%1$s'을(를) 찾았습니다\n"
 
 #: implicit.c:765
-#, fuzzy, c-format
+#, c-format
 msgid "Looking for a rule with intermediate file '%s'.\n"
-msgstr "Áß°£ ÆÄÀÏ `%s'¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢À» Ã£°í ÀÖ½À´Ï´Ù.\n"
+msgstr "중간 파일 '%s'에 대한 묵시적 규칙을 찾고 있습니다.\n"
 
 #: job.c:361
-#, fuzzy
 msgid "Cannot create a temporary file\n"
-msgstr "fwrite (ÀӽàÆÄÀÏ)"
+msgstr "임시 파일을 만들 수 없습니다\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
-msgstr " (¸Þ¸ð¸® ´ýÇÁµÊ)"
+msgstr " (메모리 덤프됨)"
 
-#: job.c:487
-#, fuzzy
+#: job.c:488
 msgid " (ignored)"
-msgstr "[%s] ¿À·ù %d (¹«½ÃµÊ)"
+msgstr " (무시됨)"
 
-#: job.c:491 job.c:1994
-#, fuzzy
+#: job.c:492 job.c:2046
 msgid "<builtin>"
-msgstr " (³»Àå):"
+msgstr "<내장>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
-msgstr ""
-
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] ¿À·ù 0x%x"
+msgstr "%s: '%s' 타겟에 대한 명령이 실패했습니다"
 
-#: job.c:513
-#, fuzzy, c-format
+#: job.c:516 job.c:524
+#, c-format
 msgid "%s[%s] Error %d%s"
-msgstr "*** [%s] ¿À·ù %d"
+msgstr "%s[%s] 오류 %d%s"
+
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] 오류 0x%x%s"
 
-#: job.c:517
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
-msgstr ""
+msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
-msgstr "*** ³¡³ªÁö ¾ÊÀº ÀÛ¾÷À» ±â´Ù¸®°í ÀÖ½À´Ï´Ù...."
+msgstr "*** 끝나지 않은 작업을 기다리고 있습니다...."
 
-#: job.c:639
-#, fuzzy, c-format
+#: job.c:651
+#, c-format
 msgid "Live child %p (%s) PID %s %s\n"
-msgstr "»ì¾ÆÀִ ÀڽĠÇÁ·Î¼¼½º 0x%08lx (%s) PID %ld %s\n"
+msgstr "살아있는 하위 프로세스 %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
-msgstr " (¿ø°Ý)"
+msgstr " (원격)"
 
-#: job.c:829
-#, fuzzy, c-format
+#: job.c:841
+#, c-format
 msgid "Reaping losing child %p PID %s %s\n"
-msgstr "½ÇÆÐÇÑ ÀڽĠÇÁ·Î¼¼½º 0x%08lx PID %ld %sÀ»(¸¦) °ÅµÖµéÀÔ´Ï´Ù\n"
+msgstr "실패한 하위 프로세스 %p PID %s %s을(를) 거둬들입니다\n"
 
-#: job.c:830
-#, fuzzy, c-format
+#: job.c:842
+#, c-format
 msgid "Reaping winning child %p PID %s %s\n"
-msgstr "¼º°øÇÑ ÀڽĠÇÁ·Î¼¼½º 0x%08lx PID %ld %sÀ»(¸¦) °ÅµÖµéÀÔ´Ï´Ù\n"
+msgstr "성공한 하위 프로세스 %p PID %s %s을(를) 거둬들입니다\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
-msgstr "Àӽà¹èÄ¡ ÆÄÀÏ %sÀ»(¸¦) Áö¿ó´Ï´Ù\n"
+msgstr "임시 배치 파일 %s을(를) 지웁니다\n"
 
-#: job.c:843
-#, fuzzy, c-format
+#: job.c:855
+#, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
-msgstr "Àӽà¹èÄ¡ ÆÄÀÏ %sÀ»(¸¦) Áö¿ó´Ï´Ù\n"
+msgstr "임시 배치 파일 %s 지우기가 실패했습니다(%d)\n"
 
-#: job.c:949
-#, fuzzy, c-format
+#: job.c:961
+#, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "üÀο¡¼­ ÀÚ½ÄÇÁ·Î¼¼½º 0x%08lx PID %ld %sÀ»(¸¦) Áö¿ó´Ï´Ù.\n"
+msgstr "하위 프로세스 %p PID %s%s을(를) 체인에서 지웁니다.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "작업 서버 세마포어 해제: (오류 %ld: %s)"
 
-#: job.c:1011 job.c:1025
-#, fuzzy, c-format
+#: job.c:1024 job.c:1038
+#, c-format
 msgid "Released token for child %p (%s).\n"
-msgstr "ÀÚ½ÄÇÁ·Î¼¼½º child 0x%08lx (%s) ¿¡ ÅäÅ«À» ³»¾î ÁÝ´Ï´Ù.\n"
+msgstr "하위 프로세스 %p(%s)에 토큰을 내어 줍니다.\n"
 
-# ??? µð¹ö±ë ¸Þ¼¼Áö
-#: job.c:1023
+# ??? 디버깅 메세지
+#: job.c:1036
 msgid "write jobserver"
-msgstr "ÀÛ¾÷¼­¹ö ¾²±â"
+msgstr "작업서버 쓰기"
 
-#: job.c:1612 job.c:2332
-#, fuzzy, c-format
+#: job.c:1662 job.c:2387
+#, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy()°¡ ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇϴ µ¥ ½ÇÆÐÇß½À´Ï´Ù (e=%d)\n"
+msgstr "process_easy()가 프로세스를 시작하는 데 실패했습니다(e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
 "Counted %d args in failed launch\n"
 msgstr ""
 "\n"
-"½ÇÇà ½ÇÆÐ¿¡¼­ %d°³ÀÇ Àμö\n"
+"실행 실패에서 인수 %d개\n"
 
-#: job.c:1685
-#, fuzzy, c-format
+#: job.c:1735
+#, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "ÀÚ½ÄÇÁ·Î¼¼½º 0x%08lx (%s) PID %ld%sÀ»(¸¦) Ã¼Àο¡ ³Ö½À´Ï´Ù.\n"
+msgstr "하위 프로세스 %p(%s) PID %s%s을(를) 체인에 넣습니다.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
-msgstr ""
+msgstr "세마포어 또는 하위 프로세스 대기: (오류 %ld: %s)"
 
-#: job.c:1967
-#, fuzzy, c-format
+#: job.c:2019
+#, c-format
 msgid "Obtained token for child %p (%s).\n"
-msgstr "ÀڽĠÇÁ·Î¼¼½º 0x%08lx (%s)¿¡¼­ ÅäÅ«À» ¹Þ¾Ò½À´Ï´Ù.\n"
+msgstr "하위 프로세스 %p(%s)에서 토큰을 받았습니다.\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
-msgstr "ÀÛ¾÷ ÆÄÀÌÇÁ Àбâ"
+msgstr "작업 파이프 읽기"
 
-#: job.c:2003
-#, fuzzy, c-format
+#: job.c:2056
+#, c-format
 msgid "%s: target '%s' does not exist"
-msgstr "touch: ¹®¼­ `%s'°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"
+msgstr "%s: '%s' 타겟이 없습니다"
 
-#: job.c:2005
-#, fuzzy, c-format
+#: job.c:2059
+#, c-format
 msgid "%s: update target '%s' due to: %s"
-msgstr "%1$s`%3$s'¿¡¼­ ÇÊ¿ä·Î Çϴ  Å¸°Ù `%2$s'¸¦ ¸¸µé ±ÔÄ¢ÀÌ ¾ø½À´Ï´Ù%4$s"
+msgstr "%s: '%s' 타겟 업데이트, 이유: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
-msgstr "ÀÌ ¿î¿µ Ã¼Á¦¿¡¼­´Â ºÎÇÏ Á¦ÇÑÀ» °­Á¦ÇÒ ¼ö ¾ø½À´Ï´Ù"
+msgstr "이 운영 체제에서는 부하 제한을 강제할 수 없습니다"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
-msgstr "ºÎÇÏ Á¦ÇÑÀ» °­Á¦ÇÒ ¼ö ¾ø½À´Ï´Ù: "
+msgstr "부하 제한을 강제할 수 없습니다: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
-msgstr ""
+msgstr "파일 핸들이 없음: 표준 입력을 복사할 수 없습니다\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
-msgstr ""
+msgstr "파일 핸들이 없음: 표준 출력을 복사할 수 없습니다\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
-msgstr ""
+msgstr "파일 핸들이 없음: 표준 오류를 복사할 수 없습니다\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
-msgstr ""
+msgstr "표준 입력을 복구할 수 없습니다\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
-msgstr ""
+msgstr "표준 출력을 복구할 수 없습니다\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
-msgstr ""
+msgstr "표준 오류를 복구할 수 없습니다\n"
 
-#: job.c:2365
-#, fuzzy, c-format
+#: job.c:2420
+#, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
-"ÀÚ½ÄÇÁ·Î¼¼½º pid %d¸¦ °ÅµÖµéÀ̰í, ¾ÆÁ÷ pid %dÀ»(¸¦) ±â´Ù¸®°í ÀÖ½À´Ï´Ù\n"
+"하위 프로세스 PID %s을(를) 거둬들이고, 아직 PID %s을(를) 기다리고 있습니다\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
-msgstr "%s: ¸í·ÉÀ» Ã£Áö ¸øÇßÀ½"
+msgstr "%s: 명령을 찾지 못했음"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
-msgstr "%s: ¼Ð ÇÁ·Î±×·¥À» Ã£Áö ¸øÇßÀ½"
+msgstr "%s: 셸 프로그램을 찾지 못했음"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
-msgstr ""
+msgstr "spawnvpe: 환경 변수 공간이 바닥났을 수 있습니다"
 
-#: job.c:2709
-#, fuzzy, c-format
+#: job.c:2765
+#, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
-msgstr "$SHELLÀÌ ¹Ù²î¾ú½À´Ï´Ù (°ú°Å `%s', ÇöÀç `%s')"
+msgstr "$SHELL이 바뀌었습니다(과거 '%s', 현재 '%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
-msgstr "Àӽà¹èÄ¡ ÆÄÀÏ %sÀ»(¸¦) ¸¸µì´Ï´Ù\n"
+msgstr "임시 배치 파일 %s을(를) 만듭니다\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
+"배치 파일 내용:\n"
+"\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
+"배치 파일 내용:%s\n"
+"\t%s\n"
 
-# ???  µð¹ö±ë ¸Þ¼¼Áö
-#: job.c:3444
+# ???  디버깅 메세지
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
-msgstr "%s (%d¹øÂ° ÁÙ) À߸øµÈ ½© ÄÁÅØ½ºÆ® (!unixy && !batch_mode_shell)\n"
+msgstr "%s (%d번째 줄) 잘못된 쉘 컨텍스트 (!unixy && !batch_mode_shell)\n"
 
 #: job.h:43
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
-msgstr ""
+msgstr "-O[방식] (--output-sync[=방식]) 옵션은 이 빌드에서 사용하지 않습니다."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
-msgstr ""
+msgstr "전역 심볼 테이블을 여는데 실패했습니다: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
-msgstr ""
+msgstr "읽어들인 %s 오브젝트는 GPL 호환이라고 선언하지 않았습니다"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
-msgstr ""
+msgstr "%s 심볼을 %s에서 읽어들이는데 실패: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
-msgstr ""
+msgstr "읽어들일 심볼 이름이 비었음: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
-msgstr ""
+msgstr "%s 심볼을 %s에서 읽어들임\n"
 
-#: load.c:229
-#, fuzzy
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
-msgstr "ÀÌ Ç÷§Æû¿¡¼­´Â º´·Ä ÀÛ¾÷(-j)ÀÌ Áö¿øµÇÁö ¾Ê½À´Ï´Ù."
+msgstr "'load' 작업은 이 플랫폼에서 지원되지 않습니다."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
-msgstr "¿É¼Ç:\n"
+msgstr "옵션:\n"
 
-#: main.c:313
-#, fuzzy
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
-msgstr "ȣȯ¼ºÀ» À§ÇØ ¹«½ÃµÊ"
+msgstr "  -b, -m                      무시됩니다, 호환을 위해 유지.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
-msgstr ""
+msgstr "  -B, --always-make           조건에 관계 없이 모든 타겟을 만듭니다.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
+"  -C <디렉터리>, --directory=<디렉터리>\n"
+"                              뭔가 하기 전에 <디렉터리>로 이동합니다.\n"
 
-#: main.c:320
-#, fuzzy
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
-msgstr "¿©·¯ °¡Áö µð¹ö±ë Á¤º¸¸¦ Ãâ·ÂÇÕ´Ï´Ù"
+msgstr "  -d                          여러 가지 디버깅 정보를 출력합니다.\n"
 
-#: main.c:322
-#, fuzzy
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
-msgstr "¿©·¯ °¡Áö Á¾·ùÀÇ µð¹ö±ë Á¤º¸¸¦ Ãâ·ÂÇÕ´Ï´Ù"
+msgstr ""
+"  --debug[=플래그]            여러 가지 종류의 디버깅 정보를 출력합니다.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
+"  -e, --environment-overrides\n"
+"                              환경변수가 메이크파일 내용에 우선합니다.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
+"  --eval=<문자열>             <문자열>을 메이크파일 내용으로 해석합니다.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
+"  -f <파일>, --file=<파일>, --makefile=<파일>\n"
+"                              <파일>을 메이크파일로 읽습니다.\n"
 
-#: main.c:332
-#, fuzzy
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
-msgstr "ÀÌ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ³¡³À´Ï´Ù"
+msgstr "  -h, --help                  이 메시지를 출력하고 끝냅니다.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
-msgstr ""
+msgstr "  -i, --ignore-errors         명령에서 발생하는 오류를 무시합니다.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
+"  -I <디렉터리>, --include-dir=<디렉터리>\n"
+"                              포함할 메이크파일을 <디렉터리>에서 찾습니다.\n"
 
-#: main.c:339
-#, fuzzy
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
-msgstr "µ¿½Ã¿¡ N°³ÀÇ ÀÛ¾÷À» Çã¿ëÇÕ´Ï´Ù; ÀÎÀÚ°¡ ¾øÀ¸¸é ¹«ÇÑ´ë·Î Çã¿ëÇÕ´Ï´Ù"
+msgstr ""
+"  -j [N], --jobs[=N]          동시에 N개의 작업 허용, 인자 없으면 무한대로 허"
+"용.\n"
 
-#: main.c:341
-#, fuzzy
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
-msgstr "¸î¸î Å¸°ÙÀ» ¸¸µé ¼ö ¾ø´õ¶óµµ °è¼Ó ÁøÇàÇÕ´Ï´Ù"
+msgstr ""
+"  -k, --keep-going            일부 타겟을 만들 수 없더라도 계속 진행합니다.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
+"  -l [N], --load-average[=N], --max-load[=N]\n"
+"                              로드가 N 아래로 내려가야 동시 작업 시작합니"
+"다.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
+"  -L, --check-symlink-times   심볼릭 링크와 실제 중 더 최근 수정 시각을\n"
+"                               사용합니다.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
+"  -n, --just-print, --dry-run, --recon\n"
+"                              실제로는 아무 명령도 실행하지 않고 표시만 합니"
+"다.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
+"  -o <파일>, --old-file=<파일>, --assume-old=<파일>\n"
+"                              <파일>이 아주 오래 되었다고 생각하고 다시 만들"
+"지\n"
+"                              않습니다.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
+"  -O[방식], --output-sync[=방식]\n"
+"                              병렬 작업의 출력을 <방식>에 따라 맞춥니다.\n"
 
-#: main.c:357
-#, fuzzy
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
-msgstr "makeÀÇ ³»ºÎ µ¥ÀÌŸº£À̽º¸¦ Ãâ·ÂÇÕ´Ï´Ù"
+msgstr "  -p, --print-data-base       make의 내부 데이터베이스를 출력합니다.\n"
 
-#: main.c:359
-#, fuzzy
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
-msgstr "¸í·ÉÀ» ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù; Á¾·á »óȲÀÌ °»½Å ¿©ºÎ¸¦ ¸»ÇØ ÁÝ´Ï´Ù"
+msgstr ""
+"  -q, --question              명령을 실행하지 않음. 종료 상태로 업데이트\n"
+"                              여부를 알 수 있습니다.\n"
 
-#: main.c:361
-#, fuzzy
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
-msgstr "³»Àå ¹¬½ÃÀû ±ÔÄ¢À» »ç¿ë ºÒ°¡´ÉÇϰԠÇÕ´Ï´Ù"
+msgstr "  -r, --no-builtin-rules      내장 묵시적 규칙을 사용하지 않습니다.\n"
 
-#: main.c:363
-#, fuzzy
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
-msgstr "³»Àå º¯¼ö¸¦ ÁöÁ¤ÇÏÁö ¸øÇϰԠÇÕ´Ï´Ù"
+msgstr "  -R, --no-builtin-variables  내장 변수를 지정하지 못하게 합니다.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
-msgstr ""
+msgstr "  -s, --silent, --quiet       명령어를 출력하지 않습니다.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
+"  -S, --no-keep-going, --stop\n"
+"                              -k 옵션을 끕니다.\n"
 
-#: main.c:370
-#, fuzzy
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
-msgstr "Ÿ°ÙÀ» ´Ù½Ã ¸¸µéÁö ¾Ê°í touch¸¸ ÇÕ´Ï´Ù"
+msgstr ""
+"  -t, --touch                 타겟을 다시 만들지 않고 touch만 합니다.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
-msgstr ""
+msgstr "  --trace                     추적 정보를 표시합니다.\n"
 
-#: main.c:374
-#, fuzzy
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
-msgstr "makeÀÇ ¹öÀü ¹øÈ£¸¦ Ãâ·ÂÇÏ°í ³¡³À´Ï´Ù"
+msgstr "  -v, --version               make의 버전 번호를 출력하고 끝냅니다.\n"
 
-#: main.c:376
-#, fuzzy
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
-msgstr "ÇöÀç µð·ºÅ丮¸¦ Ãâ·ÂÇÕ´Ï´Ù"
+msgstr "  -w, --print-directory       현재 디렉터리를 출력합니다.\n"
 
-#: main.c:378
-#, fuzzy
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
-msgstr "¹¬½ÃÀûÀ¸·Î ÄÑÁ® ÀÖ´õ¶óµµ -w¸¦ ²ü´Ï´Ù"
+msgstr "  --no-print-directory        묵시적으로 켜져 있더라도 -w를 끕니다.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
+"  -W <파일>, --what-if=<파일>, --new-file=<파일>, --assume-new=<파일>\n"
+"                              <파일>을 무한히 계속 새로운 것으로 취급합니"
+"다.\n"
 
-#: main.c:383
-#, fuzzy
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
-msgstr "Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö¸¦ ÂüÁ¶ÇÒ ¶§ °æ°í¸¦ ³À´Ï´Ù"
+msgstr ""
+"  --warn-undefined-variables  정의되지 않은 변수를 참조할 때 경고를 냅니다.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
-msgstr "ºó ¹®ÀÚ¿­Àº ÆÄÀÏ À̸§À¸·Î ºÎÀûÀýÇÕ´Ï´Ù"
+msgstr "빈 문자열은 파일 이름으로 부적절합니다"
 
-#: main.c:734
-#, fuzzy, c-format
+#: main.c:737
+#, c-format
 msgid "unknown debug level specification '%s'"
-msgstr "µð¹ö±ë ´Ü°è ÁöÁ¤ `%s'ÀÌ(°¡) À߸øµÇ¾ú½À´Ï´Ù"
+msgstr "디버깅 단계 지정 '%s'이(가) 잘못되었습니다"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
-msgstr ""
-
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "³»ºÎ ¿À·ù: ¿©·¯ °³ÀÇ -jobserver-fds ¿É¼Ç"
+msgstr "알 수 없는 output-sync 방식 '%s'"
 
-#: main.c:848
-#, fuzzy, c-format
+#: main.c:828
+#, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: ÀÎÅÍ·´Æ®/¿¹¿Ü°¡ ¹ß°ßµÇ¾ú½À´Ï´Ù (ÄÚ¤§ = 0x%x, ÁÖ¼Ò = 0x%x)\n"
+msgstr "%s: 인터럽트/예외가 발견되었습니다(코드 = 0x%lx, 주소 = 0x%p)\n"
 
-#: main.c:855
-#, fuzzy, c-format
+#: main.c:835
+#, c-format
 msgid ""
 "\n"
 "Unhandled exception filter called from program %s\n"
@@ -1076,231 +1095,227 @@ msgid ""
 "ExceptionAddress = 0x%p\n"
 msgstr ""
 "\n"
-"ÇÁ·Î±×·¥ %s¿¡¼­ Ã³¸®µÇÁö ¾ÊÀº ¿¹¿Ü°¡ ¹ß»ýÇß½À´Ï´Ù\n"
-"¿¹¿ÜÄÚµå = %x\n"
-"¿¹¿ÜÇ÷¡±× = %x\n"
-"¿¹¿ÜÁÖ¼Ò = %x\n"
+"프로그램 %s에서 처리되지 않은 예외가 발생했습니다\n"
+"예외코드 = %lx\n"
+"예외플래그 = %lx\n"
+"예외주소 = 0x%p\n"
 
-#: main.c:863
-#, fuzzy, c-format
+#: main.c:843
+#, c-format
 msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Á¢±Ù±ÇÇÑ À§¹Ý: ÁÖ¼Ò %x¿¡ ¾²±â\n"
+msgstr "접근 권한 위반: 주소 0x%p에 쓰기\n"
 
-#: main.c:864
-#, fuzzy, c-format
+#: main.c:844
+#, c-format
 msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Á¢±Ù±ÇÇÑ À§¹Ý: ÁÖ¼Ò %x¿¡¼­ Àбâ\n"
+msgstr "접근 권한 위반: 주소 0x%p에서 읽기\n"
 
-#: main.c:940 main.c:955
-#, fuzzy, c-format
+#: main.c:920 main.c:935
+#, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shellÀÌ default_shell = %s À¸·Î(·Î) ¼¼ÆÃÇÕ´Ï´Ù.\n"
+msgstr "find_and_set_shell() 설정 default_shell = %s\n"
 
-#: main.c:1008
-#, fuzzy, c-format
+#: main.c:988
+#, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr ""
-"find_and_set_shell °æ·Î Å½»öÀÌ default_shell = %s À¸·Î(·Î) ¼¼ÆÃÇÕ´Ï´Ù.\n"
+msgstr "find_and_set_shell() 경로 탐색 설정 default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
-msgstr "%sÀÌ(°¡) 30Ãʵ¿¾È ÀϽàÁßÁöµË´Ï´Ù..."
+msgstr "%s이(가) 30초동안 일시 중지됩니다..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
-msgstr "¿Ï·á sleep(30). °è¼Ó.\n"
-
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "³»ºÎ ¿À·ù: ¿©·¯ °³ÀÇ -jobserver-fds ¿É¼Ç"
+msgstr "완료 sleep(30). 계속.\n"
 
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
-msgstr ""
+msgstr "내부 오류: 작업 서버 세마포어('%s')를 열 수 없습니다: (오류 %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
-msgstr ""
+msgstr "작업 서버 클라이언트(세마포어 %s)\n"
 
-#: main.c:1551
-#, fuzzy, c-format
+#: main.c:1534
+#, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
-msgstr "³»ºÎ ¿À·ù: À߸øµÈ -jobserver-fds ¹®ÀÚ¿­ `%s'"
+msgstr "내부 오류: 잘못된 --jobserver-fds 문자열 '%s'"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "작업 서버 클라이언트(파일 디스크립터 %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr "°æ°í: ÆÄ»ýµÈ ¸ÞÀÌÅ©¿¡¼­ -jNÀÌ °­Á¦µÇ¾ú½À´Ï´Ù: ÀÛ¾÷¼­¹ö ¸ðµå¸¦ ²ü´Ï´Ù."
+msgstr "경고: 파생된 메이크에서 -jN이 강제되었습니다: 작업서버 모드를 끕니다."
 
-# ???  µð¹ö±ë ¸Þ¼¼Áö
-#: main.c:1583
+# ???  디버깅 메세지
+#: main.c:1567
 msgid "dup jobserver"
-msgstr "dup ÀÛ¾÷¼­¹ö"
+msgstr "dup 작업서버"
 
-#: main.c:1586
-#, fuzzy
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
-"°æ°í: ÀÛ¾÷¼­¹ö¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù: -j1À» »ç¿ëÇÕ´Ï´Ù.  ºÎ¸ð ¸ÞÀÌÅ© ±ÔÄ¢¿¡ `"
-"+'¸¦ Ãß°¡ÇÕ´Ï´Ù."
+"경고: 작업서버를 사용할 수 없습니다: -j1을 사용합니다.  상위 메이크 규칙에 "
+"'+'를 추가합니다."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
-msgstr "Ç¥ÁØÀԷ¿¡¼­ ¹Þ¾ÆµéÀ̴ ¸ÞÀÌÅ©ÆÄÀÏÀÌ µÎ ¹ø ÀÌ»ó ÁöÁ¤µÇ¾ú½À´Ï´Ù."
+msgstr "표준입력에서 받아들이는 메이크파일이 두 번 이상 지정되었습니다."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
-msgstr "fopen (ÀӽàÆÄÀÏ)"
+msgstr "fopen(임시 파일)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
-msgstr "fwrite (ÀӽàÆÄÀÏ)"
+msgstr "fwrite(임시 파일)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "ÀÌ Ç÷§Æû¿¡¼­´Â º´·Ä ÀÛ¾÷(-j)ÀÌ Áö¿øµÇÁö ¾Ê½À´Ï´Ù."
+msgstr "병렬 작업(-j)은 이 플랫폼에서 지원하지 않습니다."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
-msgstr "´ÜÀÏ ÀÛ¾÷ (-j1) ¸ðµå·Î µ¹¾Æ°©´Ï´Ù."
+msgstr "단일 작업 (-j1) 모드로 돌아갑니다."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
-msgstr ""
+msgstr "작업서버 슬롯은 %d개로 제한됩니다\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
-msgstr ""
+msgstr "작업서버 세마포어 만들기: (오류 %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
-msgstr "ÀÛ¾÷ ÆÄÀÌÇÁ »ý¼º"
+msgstr "작업 파이프 생성"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
-msgstr "ÀÛ¾÷¼­¹ö ÆÄÀÌÇÁ ÃʱâÈ­"
+msgstr "작업서버 파이프 초기화"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
-msgstr ""
+msgstr "심볼릭 링크를 지원하지 않습니다: -L 옵션을 끕니다."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
-msgstr "¸ÞÀÌÅ©ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù....\n"
+msgstr "메이크파일을 업데이트하고 있습니다....\n"
 
-#: main.c:2174
-#, fuzzy, c-format
+#: main.c:2158
+#, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
-msgstr "¸ÞÀÌÅ©ÆÄÀÏ `%s'Àº(´Â) ¹Ýº¹ÇÒ ¼ö ÀÖ½À´Ï´Ù; ´Ù½Ã ¸¸µéÁö ¾Ê½À´Ï´Ù.\n"
+msgstr "메이크파일 '%s'은(는) 반복할 수 있으므로, 다시 만들지 않습니다.\n"
 
-#: main.c:2253
-#, fuzzy, c-format
+#: main.c:2237
+#, c-format
 msgid "Failed to remake makefile '%s'."
-msgstr "¸ÞÀÌÅ©ÆÄÀÏ `%s'À» ´Ù½Ã ¸¸µå´Âµ¥ ½ÇÆÐÇÔ."
+msgstr "'%s' 메이크파일을 다시 만드는데 실패."
 
-#: main.c:2270
-#, fuzzy, c-format
+#: main.c:2257
+#, c-format
 msgid "Included makefile '%s' was not found."
-msgstr "Æ÷ÇԵȠ¸ÞÀÌÅ©ÆÄÀÏ `%s'¸¦ Ã£Áö ¸øÇß½À´Ï´Ù."
+msgstr "포함된 메이크파일 '%s'을(를) 찾지 못했습니다."
 
-#: main.c:2275
-#, fuzzy, c-format
+#: main.c:2262
+#, c-format
 msgid "Makefile '%s' was not found"
-msgstr "¸ÞÀÌÅ©ÆÄÀÏ `%s'À» Ã£Áö ¸øÇß½À´Ï´Ù"
+msgstr "메이크파일 '%s'을(를) 찾지 못했습니다"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
-msgstr "¿ø·¡ µð·ºÅ丮·Î µ¹¾Æ°¥ ¼ö ¾ø½À´Ï´Ù."
+msgstr "원래 디렉터리로 돌아갈 수 없습니다."
 
-#: main.c:2354
-#, fuzzy, c-format
+#: main.c:2343
+#, c-format
 msgid "Re-executing[%u]:"
-msgstr "Àç½ÇÇà:"
+msgstr "재실행[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
-msgstr "unlink (ÀӽàÆÄÀÏ): "
+msgstr "unlink (임시 파일): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ""
+msgstr ".DEFAULT_GOAL 안에 타겟이 여러 개 들어 있습니다"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
-msgstr "Ÿ°ÙÀÌ ÁöÁ¤µÇÁö ¾Ê¾Ò°í ¸ÞÀÌÅ©ÆÄÀÏÀÌ ¾ø½À´Ï´Ù"
+msgstr "타겟이 지정되지 않았고 메이크파일이 없습니다"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
-msgstr "Ÿ°Ù ¾øÀ½"
+msgstr "타겟 없음"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
-msgstr "ÃÖÁ¾ Å¸°ÙÀ» °»½ÅÇÕ´Ï´Ù....\n"
+msgstr "최종 타겟을 갱신합니다....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
-"°æ°í:  ½Ã°è°¡ À߸øµÇ¾úÀ½ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù.  ºôµå°¡ ºÒ¿ÏÀüÇÒ ¼ö ÀÖ½À´Ï´Ù."
+"경고:  시계가 잘못되었음이 발견되었습니다.  빌드가 불완전할 수 있습니다."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
-msgstr "»ç¿ë¹ý: %s [¿É¼Ç] [Ÿ°Ù] ...\n"
+msgstr "사용법: %s [옵션] [타겟] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
 "This program built for %s\n"
 msgstr ""
+"\n"
+"이 프로그램은 %s에서 사용하도록 빌드되었습니다\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
 "This program built for %s (%s)\n"
 msgstr ""
+"\n"
+"이 프로그램은 %s(%s)에서 사용하도록 빌드되었습니다\n"
 
-#: main.c:2729
-#, fuzzy, c-format
+#: main.c:2721
+#, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr ""
-"\n"
-"¹®Á¦Á¡À» <bug-make@gnu.org>·Î ¾Ë·Á ÁֽʽÿÀ.\n"
+msgstr "문제점을 <bug-make@gnu.org>로 알려 주십시오.\n"
 
-#: main.c:2810
-#, fuzzy, c-format
+#: main.c:2807
+#, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
-msgstr "`-%c' ¿É¼ÇÀº ¾çÀÇ ÀûºÐ Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù"
+msgstr "'%s%s' 옵션은 비어 있지 않은 문자열 인수가 필요합니다"
 
-#: main.c:2864
-#, fuzzy, c-format
+#: main.c:2871
+#, c-format
 msgid "the '-%c' option requires a positive integer argument"
-msgstr "`-%c' ¿É¼ÇÀº ¾çÀÇ ÀûºÐ Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù"
+msgstr "'-%c' 옵션은 0보다 큰 정수 인수가 필요합니다"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
-msgstr ""
+msgstr "%s%s 빌드\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
-msgstr ""
+msgstr "%s%s(%s) 빌드\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1308,655 +1323,647 @@ msgid ""
 "%sThis is free software: you are free to change and redistribute it.\n"
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
+"%s라이선스 GPLv3+: GNU GPL 버전 3 또는 이후 <http://gnu.org/licenses/gpl."
+"html>\n"
+"%sThis is free software: you are free to change and redistribute it.\n"
+"%sThere is NO WARRANTY, to the extent permitted by law.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
 "# Make data base, printed on %s"
 msgstr ""
 "\n"
-"# ¸ÞÀÌÅ© µ¥ÀÌŸº£À̽º, %s¿¡ Ç¥½Ã"
+"# 메이크 데이터베이스, %s에 표시"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
 "# Finished Make data base on %s\n"
 msgstr ""
 "\n"
-"# ¸ÞÀÌÅ© µ¥ÀÌŸ º£À̽º ¸¶Ä§, %s¿¡¼­\n"
+"# 메이크 데이터베이스 마침, %s에서\n"
 
 #: misc.c:201
 #, c-format
 msgid "Unknown error %d"
-msgstr "¾Ë ¼ö ¾ø´Â ¿À·ù %d"
-
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "°¡»ó ¸Þ¸ð¸®°¡ °í°¥µÊ"
+msgstr "알 수 없는 오류 %d"
 
 #: misc.c:522
-#, fuzzy, c-format
+#, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s Á¢±Ù: »ç¿ëÀÚ %lu (½ÇÁ¦ %lu), ±×·ì %lu (½ÇÁ¦ %lu)\n"
+msgstr "%s: 사용자 %lu (실제 %lu), 그룹 %lu (실제 %lu)\n"
 
 #: misc.c:543
-#, fuzzy
 msgid "Initialized access"
-msgstr "ÃʱâÈ­µÊ"
+msgstr "접근 권한 초기화"
 
 #: misc.c:622
 msgid "User access"
-msgstr ""
+msgstr "사용자 접근"
 
 #: misc.c:670
 msgid "Make access"
-msgstr ""
+msgstr "메이크 접근"
 
 #: misc.c:704
 msgid "Child access"
-msgstr ""
+msgstr "하위 접근"
 
-#: output.c:128
-#, fuzzy, c-format
+#: output.c:104
+#, c-format
 msgid "%s: Entering an unknown directory\n"
-msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
+msgstr "%s: 알 수 없는 디렉터리 들어감\n"
 
-#: output.c:130
-#, fuzzy, c-format
+#: output.c:106
+#, c-format
 msgid "%s: Leaving an unknown directory\n"
-msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
+msgstr "%s: 알 수 없는 디렉터리 나감\n"
 
-#: output.c:133
-#, fuzzy, c-format
+#: output.c:109
+#, c-format
 msgid "%s: Entering directory '%s'\n"
-msgstr "`%s' µð·ºÅ丮\n"
+msgstr "%s: 디렉터리 '%s' 들어감\n"
 
-#: output.c:135
-#, fuzzy, c-format
+#: output.c:111
+#, c-format
 msgid "%s: Leaving directory '%s'\n"
-msgstr "`%s' µð·ºÅ丮\n"
+msgstr "%s: 디렉터리 '%s' 나감\n"
 
-#: output.c:139
-#, fuzzy, c-format
+#: output.c:115
+#, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
+msgstr "%s[%u]: 알 수 없는 디렉터리 들어감\n"
 
-#: output.c:141
-#, fuzzy, c-format
+#: output.c:117
+#, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
+msgstr "%s[%u]: 알 수 없는 디렉터리 나감\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
-msgstr ""
+msgstr "%s[%u]: 디렉터리 '%s' 들어감\n"
 
-#: output.c:146
-#, fuzzy, c-format
+#: output.c:122
+#, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
-msgstr "`%s' µð·ºÅ丮\n"
+msgstr "%s[%u]: 디렉터리 '%s' 나감\n"
 
-#: output.c:515
-#, fuzzy, c-format
-msgid "write error: %s"
-msgstr "¿À·ù¸¦ %sÀ¸·Î(·Î) ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
-
-# ??? µð¹ö±ë ¸Þ¼¼Áö
-#: output.c:517
+#: output.c:495 output.c:497
 #, fuzzy
-msgid "write error"
-msgstr "ÀÛ¾÷¼­¹ö ¾²±â"
+msgid "write error: stdout"
+msgstr "쓰기 오류: %s"
 
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
-msgstr ".  ¸ØÃã.\n"
+msgstr ".  멈춤.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
-msgstr ""
+msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
-msgstr ""
+msgstr "%s: %s"
 
 #: read.c:180
 msgid "Reading makefiles...\n"
-msgstr "¸ÞÀÌÅ©ÆÄÀÏÀ» Àаí ÀÖ½À´Ï´Ù\n"
+msgstr "메이크파일을 읽고 있습니다...\n"
 
-#: read.c:333
-#, fuzzy, c-format
+#: read.c:335
+#, c-format
 msgid "Reading makefile '%s'"
-msgstr "¸ÞÀÌÅ©ÆÄÀÏ `%s'¸¦ Àаí ÀÖ½À´Ï´Ù"
+msgstr "'%s' 메이크파일을 읽고 있습니다"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
-msgstr " (ÃÖÁ¾ Å¸°ÙÀÌ ¾øÀ½)"
+msgstr " (최종 타겟이 없음)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
-msgstr " (Ž»ö °æ·Î)"
+msgstr " (탐색 경로)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
-msgstr " (»ó°ü ¾ÈÇÔ)"
+msgstr " (상관 안함)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
-msgstr " (~ È®Àå ¾øÀ½)"
+msgstr " (~ 확장 없음)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
-msgstr ""
+msgstr "메이크파일 '%s'에서 UTF-8 BOM 무시\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
-msgstr ""
+msgstr "메이크파일 버퍼에서 UTF-8 BOM 무시\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
-msgstr "Á¶°Ç¹®¿¡ ºÎÀûÀýÇÑ ¹®¹ýÀÌ ¾²ÀÓ"
+msgstr "조건문에 부적절한 문법이 쓰임"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
-msgstr ""
+msgstr "%s: 읽어들이는데 실패"
 
-#: read.c:987
-#, fuzzy
+#: read.c:992
 msgid "recipe commences before first target"
-msgstr "ù¹øÂ° Å¸°Ùº¸´Ù ¾Õ¿¡¼­ ¸í·É¾î°¡ ½ÃÀ۵Ǿú½À´Ï´Ù"
+msgstr "첫번째 타겟보다 앞에서 명령어가 시작되었습니다"
 
-#: read.c:1036
-#, fuzzy
+#: read.c:1041
 msgid "missing rule before recipe"
-msgstr "¸í·É ¾Õ¿¡ ±ÔÄ¢ÀÌ ºüÁ³À½"
+msgstr "명령 앞에 규칙이 빠졌음"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "ºÐ¸®±âÈ£ %sÀÌ(°¡) ºüÁ³À½"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
+msgstr " (8개의 공백 말고 탭을 쓰려고 한 것 아니었습니까?)"
 
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (8°³ÀÇ °ø¹é ¸»°í ÅÇÀ» ¾²·Á°í ÇÑ °Í ¾Æ´Ï¾ú½À´Ï±î?)"
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "분리기호 %s이(가) 빠졌음"
 
-#: read.c:1263
+#: read.c:1270
 msgid "missing target pattern"
-msgstr "Ÿ°Ù ÆÐÅÏÀÌ ºüÁ³À½"
+msgstr "타겟 패턴이 빠졌음"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
-msgstr "´ÙÁߠŸ°Ù ÆÐÅÏ"
+msgstr "다중 타겟 패턴"
 
-#: read.c:1269
-#, fuzzy, c-format
+#: read.c:1276
+#, c-format
 msgid "target pattern contains no '%%'"
-msgstr "Ÿ°Ù ÆÐÅÏ¿¡ `%%'°¡ ¾ø½À´Ï´Ù."
+msgstr "타겟 패턴에 '%%'가 없습니다."
 
-#: read.c:1391
-#, fuzzy
+#: read.c:1398
 msgid "missing 'endif'"
-msgstr "`endif'°¡ ºüÁ³À½"
+msgstr "'endif'가 빠졌음"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
-msgstr "ºó º¯¼ö À̸§"
+msgstr "빈 변수 이름"
 
-#: read.c:1465
-#, fuzzy
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
-msgstr "`endef' Áö½ÃÀÚ µÚ¿¡ ¿©ºÐÀÇ ±ÛÀÌ ÀÖÀ½"
+msgstr "'define' 지시자 뒤에 필요 없는 텍스트 있음"
 
-#: read.c:1490
-#, fuzzy
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
-msgstr "`endef'°¡ ºüÁ³À½. Á¾·áµÇÁö ¾ÊÀº `define'"
+msgstr "'endef'가 빠졌음. 'define'을 마치지 않았습니다"
 
-#: read.c:1518
-#, fuzzy
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
-msgstr "`endef' Áö½ÃÀÚ µÚ¿¡ ¿©ºÐÀÇ ±ÛÀÌ ÀÖÀ½"
+msgstr "'endef' 지시자 뒤에 필요 없는 텍스트가 있음"
 
-#: read.c:1589
-#, fuzzy, c-format
+#: read.c:1595
+#, c-format
 msgid "extraneous text after '%s' directive"
-msgstr "`%s' Áö½ÃÀÚ µÚ¿¡ ¿©ºÐÀÇ ¹®ÀåÀÌ ÀÖÀ½"
+msgstr "'%s' 지시자 뒤에 필요 없는 텍스트가 있음"
 
-#: read.c:1598 read.c:1612
-#, fuzzy, c-format
+#: read.c:1596
+#, c-format
 msgid "extraneous '%s'"
-msgstr "¿©ºÐÀÇ `%s'"
+msgstr "필요 없는 '%s'"
 
-#: read.c:1617
-#, fuzzy
+#: read.c:1624
 msgid "only one 'else' per conditional"
-msgstr "ÇÑ °³ÀÇ Á¶°Ç¿¡´Â ÇÑ °³ÀÇ `else'¸¸ ÀÖ¾î¾ß ÇÕ´Ï´Ù"
+msgstr "한 개의 조건에는 한 개의 'else'만 있어야 합니다"
 
-#: read.c:1892
-#, fuzzy
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
-msgstr "Ÿ°Ùº° º¯¼ö Á¤ÀÇ Çü½ÄÀ̠Ʋ·È½À´Ï´Ù"
+msgstr "타겟별 변수 정의 형식이 틀렸습니다"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
-msgstr ""
+msgstr "명령어에서 선행조건을 정의할 수 없습니다"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
-msgstr "¹¬½ÃÀû ÆÐÅÏ ·ê°ú °íÁ¤µÈ ÆÐÅÏ·êÀÌ ¼¯¿´½À´Ï´Ù"
+msgstr "묵시적 패턴 룰과 고정된 패턴룰이 섞였습니다"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
-msgstr "È¥ÇյȠ¹¬½ÃÀû ±ÔÄ¢°ú ÀϹÝÀû ±ÔÄ¢"
+msgstr "혼합된 묵시적 규칙과 일반적 규칙"
 
-#: read.c:2084
-#, fuzzy, c-format
+#: read.c:2091
+#, c-format
 msgid "target '%s' doesn't match the target pattern"
-msgstr "Ÿ°Ù `%s'Àº(´Â) Å¸°Ù ÆÐÅÏ¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù"
+msgstr "타겟 '%s'은(는) 타겟 패턴에 맞지 않습니다"
 
-#: read.c:2099 read.c:2144
-#, fuzzy, c-format
+#: read.c:2106 read.c:2152
+#, c-format
 msgid "target file '%s' has both : and :: entries"
-msgstr "Ÿ°Ù ÆÄÀÏ `%s'Àº(´Â) :¿Í :: Ç׸ñÀ» µ¿½Ã¿¡ °®°í ÀÖ½À´Ï´Ù"
+msgstr "타겟 파일 '%s'은(는) :와 :: 항목을 동시에 갖고 있습니다"
 
-#: read.c:2105
-#, fuzzy, c-format
+#: read.c:2112
+#, c-format
 msgid "target '%s' given more than once in the same rule"
-msgstr "Ÿ°Ù `%s'ÀÌ(°¡) °°Àº ±ÔÄ¢¿¡¼­ ¿©·¯ ¹ø ÁÖ¾îÁ³½À´Ï´Ù"
+msgstr "타겟 '%s'이(가) 같은 규칙에서 여러 번 주어졌습니다"
 
-#: read.c:2114
-#, fuzzy, c-format
+#: read.c:2122
+#, c-format
 msgid "warning: overriding recipe for target '%s'"
-msgstr "°æ°í: Å¸°Ù `%s'¿¡ ´ëÇÑ ¸í·É¾îº¸´Ù ´Ù¸¥ °ÍÀÌ ¿ì¼±ÇÕ´Ï´Ù"
+msgstr "경고: 타겟 '%s'에 대한 명령보다 우선합니다"
 
-#: read.c:2117
-#, fuzzy, c-format
+#: read.c:2125
+#, c-format
 msgid "warning: ignoring old recipe for target '%s'"
-msgstr "°æ°í: Å¸°Ù `%s'¿¡ ´ëÇÑ °ú°Å ¸í·É¾îµéÀ» ¹«½ÃÇÕ´Ï´Ù"
+msgstr "경고: 타겟 '%s'에 대한 과거 명령을 무시합니다"
+
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "혼합된 묵시적 규칙과 일반적 규칙"
 
-#: read.c:2530
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
-msgstr "°æ°í: NUL ¹®ÀÚ°¡ ¹ß°ßµÇ¾ú½À´Ï´Ù; ÁÙÀÇ ³ª¸ÓÁö´Â ¹«½ÃµË´Ï´Ù"
+msgstr "경고: NUL 문자가 발견되었습니다; 줄의 나머지는 무시됩니다"
 
-#: remake.c:232
-#, fuzzy, c-format
+#: remake.c:230
+#, c-format
 msgid "Nothing to be done for '%s'."
-msgstr "`%s'¸¦ À§ÇØ ÇÒ ÀÏÀÌ ¾ø½À´Ï´Ù"
+msgstr "'%s'을(를) 위해 할 일이 없습니다."
 
-#: remake.c:233
-#, fuzzy, c-format
+#: remake.c:231
+#, c-format
 msgid "'%s' is up to date."
-msgstr "`%s'´Â À̹̠°»½ÅµÇ¾ú½À´Ï´Ù."
+msgstr "'%s'은(는) 이미 업데이트되었습니다."
 
-# pruneÀÌ truncateÀÇ ÀǹÌÀΰ¡ Áö¿î´Ù´Â ÀǹÌÀΰ¡??
-#: remake.c:305
-#, fuzzy, c-format
+# prune이 truncate의 의미인가 지운다는 의미인가??
+#: remake.c:303
+#, c-format
 msgid "Pruning file '%s'.\n"
-msgstr "`%s' ÆÄÀÏÀ» Àß¶ó³»°í ÀÖ½À´Ï´Ù.\n"
-
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sŸ°Ù `%s'¸¦ ¸¸µé ±ÔÄ¢ÀÌ ¾øÀ½%s"
+msgstr "'%s' 파일을 잘라냅니다.\n"
 
-#: remake.c:379
-#, fuzzy, c-format
+#: remake.c:390 remake.c:393
+#, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
-msgstr "%1$s`%3$s'¿¡¼­ ÇÊ¿ä·Î Çϴ  Å¸°Ù `%2$s'¸¦ ¸¸µé ±ÔÄ¢ÀÌ ¾ø½À´Ï´Ù%4$s"
+msgstr "%1$s'%3$s'에서 필요한 '%2$s' 타겟을 만들 규칙이 없습니다%4$s"
 
-#: remake.c:413
-#, fuzzy, c-format
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%s타겟 '%s'을(를) 만들 규칙이 없습니다%s"
+
+#: remake.c:426
+#, c-format
 msgid "Considering target file '%s'.\n"
-msgstr "Ÿ°Ù ÆÄÀÏ `%s'À»(¸¦) °í·ÁÇÕ´Ï´Ù.\n"
+msgstr "'%s' 타겟 파일을 고려합니다.\n"
 
-#: remake.c:420
-#, fuzzy, c-format
+#: remake.c:433
+#, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
-msgstr "ÃÖ±Ù¿¡ `%s' ÆÄÀÏÀ» °»½ÅÇÏ·Á°í ½ÃµµÇÏ¿´°í ½ÇÆÐÇÏ¿´½À´Ï´Ù.\n"
+msgstr "최근에 '%s' 파일 업데이트를 시도해 실패했습니다.\n"
 
-#: remake.c:432
-#, fuzzy, c-format
+#: remake.c:445
+#, c-format
 msgid "File '%s' was considered already.\n"
-msgstr "ÆÄÀÏ `%s'´Â À̹̠°ËÅäµÇ¾ú½À´Ï´Ù.\n"
+msgstr "'%s' 파일은 이미 검토했습니다.\n"
 
-#: remake.c:442
-#, fuzzy, c-format
+#: remake.c:455
+#, c-format
 msgid "Still updating file '%s'.\n"
-msgstr "¾ÆÁ÷ `%s' ÆÄÀÏÀ» °»½ÅÇϰí ÀÖ½À´Ï´Ù.\n"
+msgstr "아직 '%s' 파일을 업데이트하고 있습니다.\n"
 
-#: remake.c:445
-#, fuzzy, c-format
+#: remake.c:458
+#, c-format
 msgid "Finished updating file '%s'.\n"
-msgstr "`%s' ÆÄÀÏÀÇ °»½ÅÀ» ¸¶ÃƽÀ´Ï´Ù.\n"
+msgstr "'%s' 파일의 업데이트를 마쳤습니다.\n"
 
-#: remake.c:474
-#, fuzzy, c-format
+#: remake.c:487
+#, c-format
 msgid "File '%s' does not exist.\n"
-msgstr "`%s' ÆÄÀÏÀº Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.\n"
+msgstr "'%s' 파일이 없습니다.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
+"*** Warning: .LOW_RESOLUTION_TIME 파일 '%s'에 고해상도 타임 스탬프가 들어 있"
+"습니다"
 
-#: remake.c:494 remake.c:1019
-#, fuzzy, c-format
+#: remake.c:508 remake.c:1040
+#, c-format
 msgid "Found an implicit rule for '%s'.\n"
-msgstr "`%s'¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢À» Ã£¾Ò½À´Ï´Ù.\n"
+msgstr "'%s'에 대한 묵시적 규칙을 찾았습니다.\n"
 
-#: remake.c:496 remake.c:1021
-#, fuzzy, c-format
+#: remake.c:510 remake.c:1042
+#, c-format
 msgid "No implicit rule found for '%s'.\n"
-msgstr "`%s'¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢À» Ã£Áö ¸øÇß½À´Ï´Ù.\n"
+msgstr "'%s'에 대한 묵시적 규칙이 없습니다.\n"
 
-#: remake.c:502
-#, fuzzy, c-format
+#: remake.c:516
+#, c-format
 msgid "Using default recipe for '%s'.\n"
-msgstr "`%s'¿¡ ´ëÇØ ³»Á¤µÈ ¸í·ÉÀ» »ç¿ëÇÔ.\n"
+msgstr "'%s'에 대해 기본 명령 사용.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
-msgstr "%s <- %s »óÈ£ ÀÇÁ¸¼ºÀº ¹«½ÃµË´Ï´Ù."
+msgstr "%s <- %s 상호 의존성은 무시됩니다."
 
-#: remake.c:655
-#, fuzzy, c-format
+#: remake.c:675
+#, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
-msgstr "Ÿ°Ù ÆÄÀÏ `%s'ÀÇ ¼±ÇàÁ¶°ÇÀ» ¸¶ÃƽÀ´Ï´Ù.\n"
+msgstr "타겟 파일 '%s'의 선행조건을 마쳤습니다.\n"
 
-#: remake.c:661
-#, fuzzy, c-format
+#: remake.c:681
+#, c-format
 msgid "The prerequisites of '%s' are being made.\n"
-msgstr "`%s'ÀÇ ¼±ÇàÁ¶°ÇÀÌ ¸¸µé¾îÁö°í ÀÖ½À´Ï´Ù.\n"
+msgstr "'%s'의 선행조건이 만들어지고 있습니다.\n"
 
-#: remake.c:674
-#, fuzzy, c-format
+#: remake.c:695
+#, c-format
 msgid "Giving up on target file '%s'.\n"
-msgstr "Ÿ°Ù ÆÄÀÏ `%s'À»(¸¦) Æ÷±âÇÕ´Ï´Ù.\n"
+msgstr "타겟 파일 '%s'을(를) 포기합니다.\n"
 
-#: remake.c:679
-#, fuzzy, c-format
+#: remake.c:700
+#, c-format
 msgid "Target '%s' not remade because of errors."
-msgstr "¿À·ù·Î ÀÎÇØ Å¸°Ù `%s'¸¦ ´Ù½Ã ¸¸µéÁö ¸øÇß½À´Ï´Ù."
+msgstr "오류로 '%s' 타겟을 다시 만들지 못했습니다."
 
-#: remake.c:731
-#, fuzzy, c-format
+#: remake.c:752
+#, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
-msgstr "¼±ÇàÁ¶°Ç `%s'ÀÌ(°¡) Å¸°Ù `%s'º¸´Ù ¸ÕÀú ¸¸µé¾îÁ³½À´Ï´Ù.\n"
+msgstr "'%s' 선행 조건은 '%s' 타겟에 대해 순서만 선행 조건입니다.\n"
 
-#: remake.c:736
-#, fuzzy, c-format
+#: remake.c:757
+#, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
-msgstr "Ÿ°Ù `%2$s'ÀÇ ¼±ÇàÁ¶°Ç %1$sÀº(´Â) Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.\n"
+msgstr "타겟 '%2$s'의 선행조건 %1$s이(가) 없습니다.\n"
 
-#: remake.c:741
-#, fuzzy, c-format
+#: remake.c:762
+#, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
-msgstr "¼±ÇàÁ¶°Ç `%s'ÀÌ(°¡) Å¸°Ù `%s'º¸´Ù ÃÖ±Ù¿¡ ¸¸µé¾îÁ³½À´Ï´Ù.\n"
+msgstr "'%s' 선행 조건이 '%s' 타겟보다 나중에 만들어졌습니다.\n"
 
-#: remake.c:744
-#, fuzzy, c-format
+#: remake.c:765
+#, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
-msgstr "¼±ÇàÁ¶°Ç `%s'ÀÌ(°¡) Å¸°Ù `%s'º¸´Ù ¸ÕÀú ¸¸µé¾îÁ³½À´Ï´Ù.\n"
+msgstr "'%s' 선행 조건이 '%s' 타겟보다 먼저 만들어졌습니다.\n"
 
-#: remake.c:762
-#, fuzzy, c-format
+#: remake.c:783
+#, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
-msgstr "Ÿ°Ù `%s'ÀÌ(°¡) µÎ °³ÀÇ ÄÝ·ÐÀÌ ºÙ¿©Á³Áö¸¸ ¼±ÇàÁ¶°ÇÀÌ ¾ø½À´Ï´Ù.\n"
+msgstr "'%s' 타겟은 콜론 두 개가 붙었고 선행조건이 없습니다.\n"
 
-#: remake.c:769
-#, fuzzy, c-format
+#: remake.c:790
+#, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
-msgstr "`%s'¿¡ ´ëÇÑ ¸í·É¾î°¡ ¾ø°í ¾î¶² ¼±ÇàÁ¶°Çµµ º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù.\n"
+msgstr "'%s'에 대한 명령어가 없고 어떤 선행조건도 실제로 바뀌지 않았습니다.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
-msgstr ""
+msgstr "always-make 옵션 때문에 '%s' 타겟을 만듭니다.\n"
 
-#: remake.c:782
-#, fuzzy, c-format
+#: remake.c:803
+#, c-format
 msgid "No need to remake target '%s'"
-msgstr "Ÿ°Ù `%s'À»(¸¦) ´Ù½Ã ¸¸µé Çʿ䰡 ¾ø½À´Ï´Ù."
+msgstr "'%s' 타겟을 다시 만들 필요가 없습니다"
 
-#: remake.c:784
-#, fuzzy, c-format
+#: remake.c:805
+#, c-format
 msgid "; using VPATH name '%s'"
-msgstr "; VPATH À̸§ `%s'À»(¸¦) »ç¿ëÇÕ´Ï´Ù"
+msgstr "; VPATH 이름 '%s'을(를) 사용합니다"
 
-#: remake.c:804
-#, fuzzy, c-format
+#: remake.c:825
+#, c-format
 msgid "Must remake target '%s'.\n"
-msgstr "Ÿ°Ù `%s'¸¦ ´Ù½Ã ¸¸µé¾î¾ß ÇÕ´Ï´Ù.\n"
+msgstr "'%s' 타겟을 다시 만들어야 합니다.\n"
 
-#: remake.c:810
-#, fuzzy, c-format
+#: remake.c:831
+#, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
-msgstr "  VPATH À̸§ `%s'À»(¸¦) ¹«½ÃÇÕ´Ï´Ù.\n"
+msgstr "  VPATH 이름 '%s'을(를) 무시합니다.\n"
 
-#: remake.c:819
-#, fuzzy, c-format
+#: remake.c:840
+#, c-format
 msgid "Recipe of '%s' is being run.\n"
-msgstr "`%s'¶ó´Â ¸í·ÉÀÌ ½ÇÇà ÁßÀÔ´Ï´Ù.\n"
+msgstr "'%s'의 명령이 실행 중입니다.\n"
 
-#: remake.c:826
-#, fuzzy, c-format
+#: remake.c:847
+#, c-format
 msgid "Failed to remake target file '%s'.\n"
-msgstr "Ÿ°Ù ÆÄÀÏ `%s'¸¦ ´Ù½Ã ¸¸µå´Â µ¥ ½ÇÆÐÇß½À´Ï´Ù.\n"
+msgstr "'%s' 타겟 파일을 다시 만드는데 실패했습니다.\n"
 
-#: remake.c:829
-#, fuzzy, c-format
+#: remake.c:850
+#, c-format
 msgid "Successfully remade target file '%s'.\n"
-msgstr "Ÿ°Ù ÆÄÀÏ `%s'¸¦ ¼º°øÀûÀ¸·Î ´Ù½Ã ¸¸µé¾ú½À´Ï´Ù.\n"
+msgstr "'%s' 타겟 파일을 성공적으로 다시 만들었습니다.\n"
 
-#: remake.c:832
-#, fuzzy, c-format
+#: remake.c:853
+#, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
-msgstr "Ÿ°Ù ÆÄÀÏ `%s'ÀÌ(°¡) -q ÇÏ¿¡ ´Ù½Ã ¸¸µé¾îÁ®¾ß ÇÕ´Ï´Ù.\n"
+msgstr "'%s' 타겟 파일을 -q 옵션으로 다시 만들어야 합니다.\n"
 
-#: remake.c:1027
-#, fuzzy, c-format
+#: remake.c:1048
+#, c-format
 msgid "Using default commands for '%s'.\n"
-msgstr "`%s'¿¡ ´ëÇØ ³»Á¤µÈ ¸í·ÉÀ» »ç¿ëÇÔ.\n"
+msgstr "'%s'에 대해 기본 명령을 사용.\n"
 
-#: remake.c:1372
-#, fuzzy, c-format
+#: remake.c:1397
+#, c-format
 msgid "Warning: File '%s' has modification time in the future"
-msgstr "*** ÆÄÀÏ `%s'°¡ ¹Ì·¡ÀÇ º¯°æ ½Ã°¢À» °¡Áö°í ÀÖ½À´Ï´Ù (%s > %s)"
+msgstr "경고: '%s' 파일의 변경 시각이 미래입니다"
 
-#: remake.c:1385
-#, fuzzy, c-format
+#: remake.c:1411
+#, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
-msgstr "*** ÆÄÀÏ `%s'°¡ ¹Ì·¡ÀÇ º¯°æ ½Ã°¢À» °¡Áö°í ÀÖ½À´Ï´Ù (%s > %s)"
+msgstr "경고: '%s' 파일의 변경 시각(%s)이 미래입니다"
 
-#: remake.c:1583
-#, fuzzy, c-format
+#: remake.c:1610
+#, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
-msgstr ".LIBPATTERNSÀÇ ¿ø¼Ò `%s'ÀÌ(°¡) ÆÐÅÏÀÌ ¾Æ´Õ´Ï´Ù"
+msgstr ".LIBPATTERNS의 원소 '%s'이(가) 패턴이 아닙니다"
 
-# ???  µð¹ö±ë ¸Þ¼¼Áö -- ¹ºÁö ¾Ë±â ¾î·Á¿ò
+# ???  디버깅 메세지 -- 뭔지 알기 어려움
 #: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
-msgstr "CustomsÀº exportµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù: %s\n"
+msgstr "Customs은 export되지 않습니다: %s\n"
 
-#: rule.c:496
-#, fuzzy
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
 msgstr ""
 "\n"
-"# ¹¬½ÃÀû ±ÔÄ¢ ¾øÀ½."
+"# 묵시적 규칙"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
 msgstr ""
 "\n"
-"# ¹¬½ÃÀû ±ÔÄ¢ ¾øÀ½."
+"# 묵시적 규칙 없음."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
 "# %u implicit rules, %u"
 msgstr ""
 "\n"
-"# %u°³ÀÇ ¹¬½ÃÀû ±ÔÄ¢, %u"
+"# 묵시적 규칙 %u개, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
-msgstr " Å͹̳Î."
+msgstr " 터미널."
 
-#: rule.c:531
-#, fuzzy, c-format
+#: rule.c:530
+#, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
-msgstr "¹ö±×: num_pattern_rules ¿À·ù!  %u != %u"
+msgstr "버그: num_pattern_rules 틀렸습니다!  %u != %u"
 
 #: signame.c:84
 msgid "unknown signal"
-msgstr "¾Ë ¼ö ¾ø´Â ½ÅÈ£"
+msgstr "알 수 없는 신호"
 
 #: signame.c:92
 msgid "Hangup"
-msgstr "²÷¾îÁü"
+msgstr "끊어짐"
 
 #: signame.c:95
 msgid "Interrupt"
-msgstr "ÀÎÅÍ·´Æ®"
+msgstr "인터럽트"
 
 #: signame.c:98
 msgid "Quit"
-msgstr "Á¾·á"
+msgstr "끝내기"
 
 #: signame.c:101
 msgid "Illegal Instruction"
-msgstr "À߸øµÈ ¸í·É"
+msgstr "잘못된 명령"
 
 #: signame.c:104
 msgid "Trace/breakpoint trap"
-msgstr "ÃßÀû/Áß´ÜÁ¡ Æ®·¦"
+msgstr "추적/중단점 트랩"
 
 #: signame.c:109
 msgid "Aborted"
-msgstr "ÁߴܵÊ"
+msgstr "중단됨"
 
 #: signame.c:112
 msgid "IOT trap"
-msgstr "IOT Æ®·¦"
+msgstr "IOT 트랩"
 
 #: signame.c:115
 msgid "EMT trap"
-msgstr "EMT Æ®·¦"
+msgstr "EMT 트랩"
 
 #: signame.c:118
 msgid "Floating point exception"
-msgstr "ºÎµ¿ ¼Ò¼öÁ¡ ¿¹¿Ü"
+msgstr "부동 소수점 예외"
 
 #: signame.c:121
 msgid "Killed"
-msgstr "Á×¾úÀ½"
+msgstr "죽었음"
 
 #: signame.c:124
 msgid "Bus error"
-msgstr "¹ö½º ¿À·ù"
+msgstr "버스 오류"
 
 #: signame.c:127
 msgid "Segmentation fault"
-msgstr "¼¼±×¸àÅ×À̼Ǡ¿À·ù"
+msgstr "세그멘테이션 오류"
 
 #: signame.c:130
 msgid "Bad system call"
-msgstr "À߸øµÈ ½Ã½ºÅ۠ȣÃâ"
+msgstr "잘못된 시스템 호출"
 
 #: signame.c:133
 msgid "Broken pipe"
-msgstr "±ú¾îÁø ÆÄÀÌÇÁ"
+msgstr "깨어진 파이프"
 
 #: signame.c:136
 msgid "Alarm clock"
-msgstr "ÀÚ¸íÁ¾ ½Ã°è"
+msgstr "자명종 시계"
 
 #: signame.c:139
 msgid "Terminated"
-msgstr "Á¾·áµÊ"
+msgstr "종료됨"
 
 #: signame.c:142
 msgid "User defined signal 1"
-msgstr "»ç¿ëÀÚ Á¤ÀÇ ½ÅÈ£ 1"
+msgstr "사용자 정의 신호 1"
 
 #: signame.c:145
 msgid "User defined signal 2"
-msgstr "»ç¿ëÀÚ Á¤ÀÇ ½ÅÈ£ 2"
+msgstr "사용자 정의 신호 2"
 
 #: signame.c:150 signame.c:153
 msgid "Child exited"
-msgstr "ÀÚ½ÄÀÌ Á¾·áµÇ¾úÀ½"
+msgstr "하위 프로세스 끝남"
 
 #: signame.c:156
 msgid "Power failure"
-msgstr "Àü·Â Áß´Ü"
+msgstr "전력 중단"
 
 #: signame.c:159
 msgid "Stopped"
-msgstr "ÁßÁöµÊ"
+msgstr "중지됨"
 
 #: signame.c:162
 msgid "Stopped (tty input)"
-msgstr "ÁßÁöµÊ (tty ÀÔ·Â)"
+msgstr "중지됨(tty 입력)"
 
 #: signame.c:165
 msgid "Stopped (tty output)"
-msgstr "ÁßÁöµÊ (tty Ãâ·Â)"
+msgstr "중지됨(tty 출력)"
 
 #: signame.c:168
 msgid "Stopped (signal)"
-msgstr "ÁßÁöµÊ (½Ã±×³Î)"
+msgstr "중지됨(시그널)"
 
 #: signame.c:171
 msgid "CPU time limit exceeded"
-msgstr "CPU ½Ã°£ Á¦ÇÑ ÃʰúµÊ"
+msgstr "CPU 시간 제한 초과됨"
 
 #: signame.c:174
 msgid "File size limit exceeded"
-msgstr "ÆÄÀÏ Å©±â Á¦ÇÑ ÃʰúµÊ"
+msgstr "파일 크기 제한 초과됨"
 
 #: signame.c:177
 msgid "Virtual timer expired"
-msgstr "°¡»ó Å¸À̸Ӡ½Ã°£ ÃʰúµÊ"
+msgstr "가상 타이머 시간 초과됨"
 
 #: signame.c:180
 msgid "Profiling timer expired"
-msgstr "ÇÁ·ÎÆÄÀϸµ Å¸À̸Ӡ½Ã°£ ÃʰúµÊ"
+msgstr "프로파일링 타이머 시간 초과됨"
 
 #: signame.c:186
 msgid "Window changed"
-msgstr "âÀÌ ¹Ù²î¾úÀ½"
+msgstr "창이 바뀌었음"
 
 #: signame.c:189
 msgid "Continued"
-msgstr "°è¼ÓµÊ"
+msgstr "계속됨"
 
 #: signame.c:192
 msgid "Urgent I/O condition"
-msgstr "±ä±ÞÇÑ ÀÔÃâ·Â »óȲ"
+msgstr "긴급한 입출력 상황"
 
 #: signame.c:199 signame.c:208
 msgid "I/O possible"
-msgstr "ÀÔÃâ·Â °¡´É"
+msgstr "입출력 가능"
 
 #: signame.c:202
 msgid "SIGWIND"
@@ -1968,19 +1975,19 @@ msgstr "SIGPHONE"
 
 #: signame.c:211
 msgid "Resource lost"
-msgstr "ÀÚ¿ø ¼Õ½Ç"
+msgstr "자원 손실"
 
 #: signame.c:214
 msgid "Danger signal"
-msgstr "À§Çè ½ÅÈ£"
+msgstr "위험 신호"
 
 #: signame.c:217
 msgid "Information request"
-msgstr "Á¤º¸ ¿äû"
+msgstr "정보 요청"
 
 #: signame.c:220
 msgid "Floating point co-processor not available"
-msgstr "ºÎµ¿¼Ò¼öÁ¡ ¿¬»ê º¸Á¶ÇÁ·Î¼¼¼­°¡ ¾ø½À´Ï´Ù"
+msgstr "부동소수점 연산 보조프로세서가 없습니다"
 
 #: strcache.c:236
 #, c-format
@@ -1988,6 +1995,8 @@ msgid ""
 "\n"
 "%s No strcache buffers\n"
 msgstr ""
+"\n"
+"%s strcache 버퍼 없음\n"
 
 #: strcache.c:266
 #, c-format
@@ -1996,23 +2005,28 @@ msgid ""
 "%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
 "B\n"
 msgstr ""
+"\n"
+"%s strcache 버퍼: %lu (%lu) / 문자열 = %lu / 저장 공간 = %lu B / 평균 = %lu "
+"B\n"
 
 #: strcache.c:270
 #, c-format
 msgid ""
 "%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
+"%s 현재 버퍼: 크기 = %hu B / 사용 = %hu B / 개수 = %hu / 평균 = %hu B\n"
 
 #: strcache.c:280
 #, c-format
 msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
-msgstr ""
+msgstr "%s 기타 사용: 전체 = %lu B / 개수 = %lu / 평균 = %lu B\n"
 
 #: strcache.c:283
 #, c-format
 msgid ""
 "%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
 msgstr ""
+"%s 기타 빈 공간: 전체 = %lu B / 최대 = %lu B / 최소 = %lu B / 평균 = %hu B\n"
 
 #: strcache.c:287
 #, c-format
@@ -2020,171 +2034,177 @@ msgid ""
 "\n"
 "%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 msgstr ""
+"\n"
+"%s strcache 효율: 검색 = %lu / 히트 비율 = %lu%%\n"
 
 #: strcache.c:289
 msgid ""
 "# hash-table stats:\n"
 "# "
 msgstr ""
+"# 해시 테이블 통계:\n"
+"# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
-msgstr "ÀÚµ¿"
+msgstr "자동"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
-msgstr "±âº»°ª"
+msgstr "기본값"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
-msgstr "ȯ°æ"
+msgstr "환경"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
-msgstr "¸ÞÀÌÅ©ÆÄÀÏ"
+msgstr "메이크파일"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
-msgstr "-e ÇÏÀǠȯ°æ"
+msgstr "-e 하의 환경"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
-msgstr "¸í·ÉÇà"
+msgstr "명령행"
 
-#: variable.c:1625
-#, fuzzy
+#: variable.c:1617
 msgid "'override' directive"
-msgstr "`override' Áö½ÃÀÚ"
+msgstr "'override' 지시자"
 
-#: variable.c:1636
-#, fuzzy, c-format
+#: variable.c:1628
+#, c-format
 msgid " (from '%s', line %lu)"
-msgstr " (`%s'¿¡¼­, %lu¹øÂ° ÁÙ):\n"
+msgstr " ('%s'에서, %lu번째 줄)"
 
-#: variable.c:1699
-#, fuzzy
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
-msgstr "# %2$u°³ÀÇ ÇØ½¬ ¹öŶ¿¡ %1$u°³ÀÇ º¯¼ö.\n"
+msgstr "# 변수 모음 해시 테이블 통계:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
 msgstr ""
 "\n"
-"# º¯¼ö\n"
+"# 변수\n"
 
-#: variable.c:1714
-#, fuzzy
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
 msgstr ""
 "\n"
-"# ÆÐÅÏÀ» À§ÇÑ º¯¼ö °ªµé"
+"# 패턴을 위한 변수 값"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
 msgstr ""
 "\n"
-"# ÆÐÅÏÀ» À§ÇÑ º¯¼ö °ªµéÀÌ ¾ø½À´Ï´Ù."
+"# 패턴을 위한 변수 값이 없습니다."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
 "# %u pattern-specific variable values"
 msgstr ""
 "\n"
-"# %u°³ÀÇ ÆÐÅÏÀ» À§ÇÑ º¯¼ö °ªµé"
+"# 특정 패턴을 위한 변수 값 %u개"
 
 #: variable.h:224
-#, fuzzy, c-format
+#, c-format
 msgid "warning: undefined variable '%.*s'"
-msgstr "°æ°í: Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö `%.*s'"
+msgstr "경고: 정의되지 않은 변수 '%.*s'"
 
 #: vmsfunctions.c:91
-#, fuzzy, c-format
+#, c-format
 msgid "sys$search() failed with %d\n"
-msgstr "sys$search°¡ %d¸¦ ¸®ÅÏÇÏ¸ç ½ÇÆÐÇß½À´Ï´Ù\n"
+msgstr "sys$search()가 %d번을 리턴하며 실패했습니다\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
-msgstr "°æ°í: ºñ¾î Àִ ¸®´ÙÀÌ·º¼Ç\n"
+msgstr "경고: 비어 있는 리다이렉션\n"
 
-#: vmsjobs.c:178
-#, fuzzy, c-format
+#: vmsjobs.c:183
+#, c-format
 msgid "internal error: '%s' command_state"
-msgstr "³»ºÎ ¿À·ù: `%s' command_state"
+msgstr "내부 오류: '%s' command_state"
 
-# DCL - Digital Command Language, VMS¿¡¼­¸¸ Á¸ÀçÇϴ shell languageÀÇ ÀÏÁ¾
-#: vmsjobs.c:286
+# DCL - Digital Command Language, VMS에서만 존재하는 shell language의 일종
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
-msgstr "-°æ°í, DCL¿¡¼­ CTRL-Y¸¦ ´Ù½Ã »ç¿ë°¡´ÉÇϵµ·Ï ÇؾߠÇÒ °ÍÀÔ´Ï´Ù.\n"
+msgstr "-경고, DCL에서 CTRL-Y를 다시 사용가능하도록 해야 할 것입니다.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
-msgstr "³»Àå [%s][%s]\n"
+msgstr "내장 [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
-msgstr "³»Àå CD %s\n"
+msgstr "내장 CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "³»Àå RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "내장 CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
-msgstr "¾Ë ¼ö ¾ø´Â ³»Àå ¸í·É¾î `%s'\n"
+msgstr "알 수 없는 내장 명령어 '%s'\n"
+
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
 
-#: vmsjobs.c:489
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
-msgstr "¿À·ù, ºó ¸í·É¾î\n"
+msgstr "오류, 빈 명령어\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
-msgstr "ÀÔ·ÂÀ» %s¿¡¼­ ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
+msgstr "입력을 %s에서 리다이렉트합니다\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
-msgstr "¿À·ù¸¦ %sÀ¸·Î(·Î) ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
+msgstr "오류를 %s(으)로 리다이렉트합니다\n"
 
-#: vmsjobs.c:518
-#, fuzzy, c-format
+#: vmsjobs.c:690
+#, c-format
 msgid "Append output to %s\n"
-msgstr "Ãâ·ÂÀ» %s¿¡¼­ ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
+msgstr "출력을 %s에 붙입니다\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
-msgstr "Ãâ·ÂÀ» %s¿¡¼­ ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
+msgstr "출력을 %s(으)로 돌립니다\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "%.*s을(를) 붙이고 지웁니다\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
-msgstr "´ë½Å %s¸¦ ½ÇÇàÇÔ\n"
+msgstr "대신 %s을(를) 실행\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
-msgstr "½ÇÇà ¿À·ù, %d\n"
+msgstr "실행 오류, %d\n"
 
 #: vpath.c:583
 msgid ""
@@ -2192,175 +2212,50 @@ msgid ""
 "# VPATH Search Paths\n"
 msgstr ""
 "\n"
-"# VPATH Å½»ö °æ·Î\n"
+"# VPATH 탐색 경로\n"
 
 #: vpath.c:600
-#, fuzzy
 msgid "# No 'vpath' search paths."
-msgstr "# `vpath' Å½»ö °æ·Î°¡ ¾øÀ½."
+msgstr "# 'vpath' 탐색 경로가 없음."
 
 #: vpath.c:602
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# %u 'vpath' search paths.\n"
 msgstr ""
 "\n"
-"# %u°³ÀÇ `vpath' Å½»ö °æ·Î.\n"
+"# 'vpath' 탐색 경로 %u개.\n"
 
 #: vpath.c:605
-#, fuzzy
 msgid ""
 "\n"
 "# No general ('VPATH' variable) search path."
 msgstr ""
 "\n"
-"# ÀϹÝÀûÀΠ(`VPATH' º¯¼ö) Å½»ö °æ·Î°¡ ¾øÀ½."
+"# 일반적인 ('VPATH' 변수) 탐색 경로가 없음."
 
 #: vpath.c:611
-#, fuzzy
 msgid ""
 "\n"
 "# General ('VPATH' variable) search path:\n"
 "# "
 msgstr ""
 "\n"
-"# ÀϹÝÀûÀΠ(`VPATH' º¯¼ö) Å½»ö °æ·Î:\n"
+"# 일반적인 ('VPATH' 변수) 탐색 경로:\n"
 "# "
 
-#~ msgid "#  Invalid value in `update_status' member!"
-#~ msgstr "#  `update_status' ¸â¹ö¿¡ °ªÀÌ À߸øµÇ¾ú½À´Ï´Ù!"
-
-#~ msgid ""
-#~ "\n"
-#~ "# No files."
-#~ msgstr ""
-#~ "\n"
-#~ "# ÆÄÀÏ ¾øÀ½."
-
-#~ msgid ""
-#~ "\n"
-#~ "# %u files in %u hash buckets.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "# %2$u°³ÀÇ ÇØ½¬ ¹öŶ¿¡ %1$u°³ÀÇ ÆÄÀÏ.\n"
-
-#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
-#~ msgstr "# ¹öŶ´ç %.3f°³ÀÇ ÆÄÀÏ, ÇÑ °³ÀÇ ¹öŶ¿¡ ÃÖ´ë %u°³ÀÇ ÆÄÀÏ.\n"
-
-#~ msgid "*** [%s] Error 0x%x (ignored)"
-#~ msgstr "*** [%s] ¿À·ù 0x%x (¹«½ÃµÊ)"
-
-#~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "¹®¹ý ¿À·ù, ¾ÆÁ÷ '\"' ¾È¿¡ ÀÖ½À´Ï´Ù\n"
-
-#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr ""
-#~ "SIGCHLD ½Ã±×³ÎÀ» ¹Þ¾Ò½À´Ï´Ù; %u°³ÀÇ ÀÚ½ÄÇÁ·Î¼¼½º°¡ ³¡³ªÁö ¾Ê¾Ò½À´Ï´Ù.\n"
-
-#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-°æ°í, CTRL-Y´Â ÆÄ»ýµÈ ÇÁ·Î¼¼½ºµéÀ» ±×´ë·Î ³²°ÜµÑ °ÍÀÔ´Ï´Ù.\n"
-
-#~ msgid "DIRECTORY"
-#~ msgstr "<µð·ºÅ丮>"
-
-#~ msgid "Change to DIRECTORY before doing anything"
-#~ msgstr "ÀÏÀ» Ã³¸®Çϱâ Àü¿¡ ¸ÕÀú <µð·ºÅ丮>·Î À̵¿ÇÕ´Ï´Ù"
-
-#~ msgid "FLAGS"
-#~ msgstr "<Ç÷¡±×>"
-
-#~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "µð¹ö°Å¸¦ ºÙÀÏ ¼ö ÀÖµµ·Ï ÇÁ·Î¼¼½º¸¦ ÀϽàÁߴܽÃŵ´Ï´Ù"
-
-#~ msgid "Environment variables override makefiles"
-#~ msgstr "ȯ°æº¯¼ö°¡ ¸ÞÀÌÅ©ÆÄÀϺ¸´Ù ¿ì¼±ÇÕ´Ï´Ù"
-
-#~ msgid "FILE"
-#~ msgstr "<ÆÄÀÏ>"
-
-#~ msgid "Read FILE as a makefile"
-#~ msgstr "<ÆÄÀÏ>À» ¸ÞÀÌÅ©ÆÄÀϷΠÀнÀ´Ï´Ù"
-
-#~ msgid "Ignore errors from commands"
-#~ msgstr "¸í·É¿¡ Àִ ¿À·ù¸¦ ¹«½ÃÇÕ´Ï´Ù"
-
-#~ msgid "Search DIRECTORY for included makefiles"
-#~ msgstr "Æ÷ÇÔ½Ãų ¸ÞÀÌÅ©ÆÄÀÏÀ» <µð·ºÅ丮>¿¡¼­ Ã£½À´Ï´Ù"
-
-#~ msgid "Don't start multiple jobs unless load is below N"
-#~ msgstr "ºÎÇϰ¡ N º¸´Ù ÀÛÁö ¾ÊÀ¸¸é ´ÙÁß ÀÛ¾÷À» ½ÃÀÛÇÏÁö ¾Ê½À´Ï´Ù"
-
-#~ msgid "Don't actually run any commands; just print them"
-#~ msgstr "½ÇÁ¦·Î ¾î¶² ¸í·Éµµ ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù; ±×³É Àμ⸸ ÇÕ´Ï´Ù"
-
-#~ msgid "Consider FILE to be very old and don't remake it"
-#~ msgstr "FILEÀ» ¸Å¿ì ¿À·¡µÈ °ÍÀ¸·Î °£ÁÖÇÏ°í ´Ù½Ã ¸¸µéÁö ¾Ê½À´Ï´Ù"
-
-#~ msgid "Don't echo commands"
-#~ msgstr "¸í·ÉÀ» ¹ÝÇâÇÏÁö ¾Ê½À´Ï´Ù"
-
-#~ msgid "Turns off -k"
-#~ msgstr "-k¸¦ ²ü´Ï´Ù"
-
-#~ msgid "Consider FILE to be infinitely new"
-#~ msgstr "ÆÄÀÏÀ» ¿µ¿øÈ÷ »õ·Î¿î °ÍÀ¸·Î °£ÁÖÇÕ´Ï´Ù"
-
-#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "sh.exe¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¸é -j È¤Àº -jobs¸¦ ÁöÁ¤ÇÏÁö ¾Ê½À´Ï´Ù"
-
-#~ msgid "Resetting make for single job mode."
-#~ msgstr "make°¡ ´ÜÀÏ ÀÛ¾÷ ¸ðµå·Î º¹±ÍÇÕ´Ï´Ù"
-
-#~ msgid ""
-#~ ", by Richard Stallman and Roland McGrath.\n"
-#~ "%sBuilt for %s\n"
-#~ "%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000\n"
-#~ "%s\tFree Software Foundation, Inc.\n"
-#~ "%sThis is free software; see the source for copying conditions.\n"
-#~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
-#~ "%sPARTICULAR PURPOSE.\n"
-#~ "\n"
-#~ "%sReport bugs to <bug-make@gnu.org>.\n"
-#~ "\n"
-#~ msgstr ""
-#~ ", Richard Stallman°ú Roland McGrath.\n"
-#~ "%s%s¿¡ ´ëÇÑ ºôµå\n"
-#~ "%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000\n"
-#~ "%s\tFree Software Foundation, Inc.\n"
-#~ "%sÀÌ ÇÁ·Î±×·¥Àº ÀÚÀ¯¼ÒÇÁÆ®¿þ¾îÀÔ´Ï´Ù; º¹»çÁ¶°ÇÀº ¼Ò½º¸¦ Âü°íÇϽʽÿÀ.\n"
-#~ "%s»óǰ¼ºÀ̳ª Æ¯Á¤ ¸ñÀû¿¡ ´ëÇÑ ÀûÇÕ¼ºÀ» ºñ·ÔÇÏ¿©, ¾î¶°ÇÑ º¸Áõµµ ÇÏÁö \n"
-#~ "%s¾Ê½À´Ï´Ù.\n"
-#~ "\n"
-#~ "%s¹®Á¦Á¡Àº <bug-make@gnu.org>·Î ¾Ë·ÁÁֽʽÿÀ.\n"
-#~ "\n"
-
-#~ msgid "Entering"
-#~ msgstr "µé¾î°¨"
-
-#~ msgid "Leaving"
-#~ msgstr "³ª°¨"
-
-#~ msgid "extraneous `endef'"
-#~ msgstr "¿©ºÐÀÇ `endef'"
-
-#~ msgid "empty `override' directive"
-#~ msgstr "ºó `override' Áö½ÃÀÚ"
-
-#~ msgid "invalid `override' directive"
-#~ msgstr "À߸øµÈ `override' Áö½ÃÀÚ"
-
-#~ msgid "no file name for `%sinclude'"
-#~ msgstr "`%sinclude'¿¡ ÆÄÀÏÀ̸§ÀÌ ¾ø½À´Ï´Ù"
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "내부 오류: 여러 개의 --sync-mutex 옵션"
 
-#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "Ÿ°Ù `%s'Àº(´Â) ¼±ÇàÁ¶°Ç ÆÐÅÏÀ» ºó °ªÀ¸·Î ³»¹ö·Á µÎ°Ô µË´Ï´Ù"
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "내부 오류: 여러 개의 -jobserver-fds 옵션"
 
-#~ msgid "# No variables."
-#~ msgstr "# º¯¼ö ¾øÀ½."
+#~ msgid "virtual memory exhausted"
+#~ msgstr "가상 메모리가 고갈됨"
 
-#~ msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# ¹öŶ´ç Æò±Õ %.1f°³ÀÇ º¯¼ö, ÇÑ °³ÀÇ ¹öŶ¿¡ ÃÖ´ë %u°³.\n"
+#~ msgid "write error"
+#~ msgstr "쓰기 오류"
 
-#~ msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# ¹öŶ´ç Æò±Õ %d.%d°³ÀÇ º¯¼ö, ÇÑ °³ÀÇ ¹öŶ¿¡ ÃÖ´ë %u°³.\n"
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "내장 RM %s\n"
index aa293e51c86a0cb448bf4cb458ee9babae37c8e7..5277a0ef85d191280d23f30d2a726191d3cc3780 100644 (file)
Binary files a/po/lt.gmo and b/po/lt.gmo differ
index 02e43f34b9dd4d4b001cf0870dbb3118129b5fb1..e9fa7d216f76ad5ce3d08581155e66527fa085ea 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make-3.81\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2008-05-17 21:42+0300\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -48,50 +48,50 @@ msgstr "touch: Archyvas „%s“ neegzistuoja"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr ""
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr ""
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "nepavyko atverti bibliotekos „%s“ bandant surasti narį „%s“"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Narys „%s“%s: %ld baitų pozicijoje %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (pavadinimas gali būti sutrumpintas)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Data %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr ""
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr ""
@@ -101,26 +101,26 @@ msgstr ""
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr ""
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Trinamas failas „%s“"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Trinamas failas „%s“"
 
-#: commands.c:684
+#: commands.c:685
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  vykdytinos komandos"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr "  (integruota)"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (nuo „%s“, %lu eilutė):\n"
@@ -202,159 +202,159 @@ msgstr "Rekursyvus kintamasis „%s“ nukreipia į save (anksčiau ar vėliau)"
 msgid "unterminated variable reference"
 msgstr "neterminuota nuoroda į kintamąjį"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Komandos nurodytos failui „%s“ %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Komandos failui „%s“ rastos pagal neišreikštinę taisyklių paiešką"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "bet „%s“ dabar laikomas tuo pačiu failu kaip „%s“."
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Komandos „%s“ bus ignoruojamos „%s“ komandų naudai."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Trinamas tarpinis failas „%s“"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Šalinami tarpiniai failai...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Dabartinis laikas"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Laiko žymė už rėžių; keičiama į %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Dabartinis laikas"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Ne tikslas:"
 
-#: file.c:954
+#: file.c:960
 #, fuzzy
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Brangus failas (reikalingas .PRECIOUS)"
 
-#: file.c:956
+#: file.c:962
 #, fuzzy
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Keistas tikslas (reikalingas .PHONY)."
 
-#: file.c:958
+#: file.c:964
 #, fuzzy
 msgid "#  Command line target."
 msgstr "#  Komandinės eilutės tikslas"
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Numatytoji reikšmė, MAKEFILES, arba -include/sinclude „make“ failas"
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Nėra neišreikštinių taisyklių."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Neišreikštinių taisyklių paieška atlikta."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Neišreikštinių taisyklių paieška neatlikta."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Išreikštinis/statinis šablono kamienas: „%s“\n"
 
-#: file.c:969
+#: file.c:975
 #, fuzzy
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Failas yra tarpinė sąlyga"
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Taip pat sukuria:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Modifikacijos laikas niekada netikrintas."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Failas neegzistuoja."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Failas labai senas."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Paskutinį kartą pakeista %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Failas atnaujintas."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Failas nebuvo atnaujintas."
 
-#: file.c:995
+#: file.c:1001
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Dabar vykdomos komandos (TAI KLAIDA)."
 
-#: file.c:998
+#: file.c:1004
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Vykdomos priklausomybių komandos (TAI KLAIDA)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Sėkmingai atnaujinta."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Turi būti atnaujinta (-q nustatyta)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Nepavyko atnaujinti."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Netaisyklinga reikšmė „command_state“ naryje!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -362,7 +362,7 @@ msgstr ""
 "\n"
 "# Failai"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -372,103 +372,103 @@ msgstr ""
 "# failų maišos lentelės statistika:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr ""
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr ""
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr ""
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr ""
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr ""
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr ""
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr ""
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr ""
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr ""
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "rašymo klaida: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr ""
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr ""
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr ""
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr ""
 
-#: function.c:2555
+#: function.c:2601
 #, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr ""
 
 #: getopt.c:659
@@ -526,12 +526,12 @@ msgstr "%s: parametras „-W %s“ dviprasmis\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: parametras „-W %s“ neleidžia argumento\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -614,209 +614,209 @@ msgstr "Šalinami tarpiniai failai...\n"
 msgid "Cannot create a temporary file\n"
 msgstr ""
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr ""
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr ""
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr "  (integruota)"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
+#: job.c:516 job.c:524
 #, c-format
-msgid "%s[%s] Error 0x%x%s"
+msgid "%s[%s] Error %d%s"
 msgstr ""
 
-#: job.c:513
+#: job.c:519
 #, c-format
-msgid "%s[%s] Error %d%s"
+msgid "%s[%s] Error 0x%x%s"
 msgstr ""
 
-#: job.c:517
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr ""
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr ""
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr ""
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:837
+#: job.c:849
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "%s: nepavyko atverti laikinojo failo: %s"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "%s: nepavyko atverti laikinojo failo: %s"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr ""
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1023
+#: job.c:1036
 #, fuzzy
 msgid "write jobserver"
 msgstr "rašymo klaida: %s"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr ""
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
 "Counted %d args in failed launch\n"
 msgstr ""
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr ""
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr ""
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: Archyvas „%s“ neegzistuoja"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%sNėra taisyklės pasiekti tikslui „%s“, kurio reikia „%s“%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 
-#: job.c:2120
+#: job.c:2173
 #, fuzzy
 msgid "cannot enforce load limit: "
 msgstr "%s: nepayko pakeisti limito: %s"
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr ""
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr ""
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr ""
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Komanda nerasta"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Kevalo programa nerasta"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr ""
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL pakeistas (buvo „%s“, dabar „%s“)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr ""
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -825,224 +825,220 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr ""
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr ""
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr ""
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr ""
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr ""
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr ""
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr ""
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr ""
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr ""
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "negalimas tuščias failo pavadinimas"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "nežinomas debug lygio specifikacija „%s“"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr ""
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1052,179 +1048,175 @@ msgid ""
 "ExceptionAddress = 0x%p\n"
 msgstr ""
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr ""
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr ""
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr ""
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr ""
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr ""
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr ""
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr ""
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr ""
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr ""
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr ""
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr ""
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr ""
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr ""
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr ""
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr ""
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr ""
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Atnaujinami „make“ failai....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ""
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Nereikia atnaujinti taikinio „%s“"
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "„Make“ failas „%s“ nerastas"
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "„Make“ failas „%s“ nerastas"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Nepavyko grįžti į pirminį aplanką."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr ""
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr ""
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ""
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Nenurodyta tikslų ir nerasta „make“ failų"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Nėra tikslų"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Atnaujinami tikslai...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Naudojimas: %s [argumentai] [tikslas] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1233,7 +1225,7 @@ msgstr ""
 "\n"
 "Ši programa sukompiliuota %s sistemai\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1242,36 +1234,36 @@ msgstr ""
 "\n"
 "Ši programa sukompiliuota %s (%s) sistemai\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Praneškite apie klaidas adresu <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "parametrui „-%c“ reikia netuščio argumento"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "parametrui „-%c“ reikia teigiamo sveiko argumento"
 
-#: main.c:3253
+#: main.c:3269
 #, fuzzy, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 "\n"
 "%sŠi programa sukompiliuota %s sistemai\n"
 
-#: main.c:3255
+#: main.c:3271
 #, fuzzy, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 "\n"
 "%sŠi programa sukompiliuota %s (%s) sistemai\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1280,14 +1272,14 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
 "# Make data base, printed on %s"
 msgstr ""
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1299,10 +1291,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Nežinoma klaida %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "baigėsi virtuali atmintis"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1324,65 +1312,61 @@ msgstr ""
 msgid "Child access"
 msgstr ""
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Įeinama į nežinomą aplanką\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Išeinama iš nežinomo aplanko\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Įeinama į aplanką „%s“\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Išeinama iš aplanko „%s“\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Įeinama į nežinomą aplanką\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Išeinama iš nežinomo aplanko\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Įeinama į aplanką „%s“\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Išeinama iš aplanko „%s“\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "rašymo klaida: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "rašymo klaida"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Pabaiga.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1391,357 +1375,362 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Skaitomi „make“ failai...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Skaitomas „make“ failas „%s“"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (nėra numatytojo tikslo)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (paieškos kelias)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (nesvarbu)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (nėra ~ išplėtimo)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "netaisyklinga sąlygos sintaksė"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 #, fuzzy
 msgid "recipe commences before first target"
 msgstr "komandos prasideda prieš pirmąjį tikslą"
 
-#: read.c:1036
+#: read.c:1041
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "trūksta taisyklės prieš komandas"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "trūksta skirtuko%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (ar norėjote padėti TAB simbolį vietoje 8 tarpų?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "trūksta skirtuko%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "trūksta tikslo šablono"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "keli tikslo šablonai"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "tikslo šablone nėra „%%“"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "trūksta „endif“"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "tuščias kintamojo pavadinimas"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "Perteklinis tekstas po „endef“ direktyvos"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "trūksta „endef“, nebaigtas „define“"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "Perteklinis tekstas po „endef“ direktyvos"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Perteklinis tekstas po „%s“ direktyvos"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "perteklinis „%s“"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr ""
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr ""
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr ""
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr ""
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr ""
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr ""
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr ""
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr ""
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr ""
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr ""
 
-#: read.c:2530
+#: read.c:2229
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr ""
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr ""
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Nėra ką daryti su „%s“."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "„%s“ atnaujinti nereikia."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Vis dar atnaujinamas failas „%s“.\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sNėra taisyklės pasiekti tikslui „%s“%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sNėra taisyklės pasiekti tikslui „%s“, kurio reikia „%s“%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sNėra taisyklės pasiekti tikslui „%s“%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Svarstomas tikslo failas „%s“.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Neseniai bandyta ir nepavyko atnaujinti failo „%s“.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Failas „%s“ jau apsvarstytas.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Vis dar atnaujinamas failas „%s“.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Baigtas atnaujinti failas „%s“.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Failas „%s“ neegzistuoja.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Rasta neišreikštinė taisyklė tikslui „%s“.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Nerasta neišreikštinių taisyklių tikslui „%s“.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr ""
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr ""
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Svarstomas tikslo failas „%s“.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr ""
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Svarstomas tikslo failas „%s“.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Tikslas „%s“ neatnaujintas dėl klaidų."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr ""
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Failas „%s“ neegzistuoja.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr ""
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr ""
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr ""
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Nereikia atnaujinti taikinio „%s“"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr ""
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Būtina atnaujinti taikinį „%s“.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr ""
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Vykdomos „%s“ komandos.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Nereikia atnaujinti taikinio „%s“"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Būtina atnaujinti taikinį „%s“.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr ""
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "paskutinė komanda: %s\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr ""
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr ""
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ""
@@ -1751,7 +1740,7 @@ msgstr ""
 msgid "Customs won't export: %s\n"
 msgstr ""
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1759,7 +1748,7 @@ msgstr ""
 "\n"
 "# Neišreikštinės taisyklės"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1767,7 +1756,7 @@ msgstr ""
 "\n"
 "# Nėra neišreikštinių taisyklių."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1776,11 +1765,11 @@ msgstr ""
 "\n"
 "# %u neišreikštinių taisyklių, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr ""
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr ""
@@ -1995,64 +1984,64 @@ msgstr ""
 "# failų maišos lentelės statistika:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr ""
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr ""
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr ""
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr ""
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr ""
 
-#: variable.c:1622
+#: variable.c:1614
 #, fuzzy
 msgid "command line"
 msgstr "%s: komanda nerasta"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "tuščia „override“ direktyva"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (nuo „%s“, %lu eilutė):\n"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr ""
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
 msgstr ""
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
 msgstr ""
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
 msgstr ""
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2069,77 +2058,82 @@ msgstr "%s: neatpažintas argumentas „%c%s“\n"
 msgid "sys$search() failed with %d\n"
 msgstr ""
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr ""
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr ""
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr ""
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr ""
 
-#: vmsjobs.c:446
+#: vmsjobs.c:501
 #, c-format
-msgid "BUILTIN RM %s\n"
+msgid "BUILTIN ECHO %s->%s\n"
 msgstr ""
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, fuzzy, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "paskutinė komanda: %s\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr ""
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr ""
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, fuzzy, c-format
 msgid "Redirected error to %s\n"
 msgstr "skaitymo klaida: %d: %s"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr ""
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr ""
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr ""
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr ""
@@ -2178,6 +2172,12 @@ msgstr ""
 #~ msgid "#  Invalid value in `update_status' member!"
 #~ msgstr "#  Netaisyklinga reikšmė „update_status“ naryje!"
 
+#~ msgid "virtual memory exhausted"
+#~ msgstr "baigėsi virtuali atmintis"
+
+#~ msgid "write error"
+#~ msgstr "rašymo klaida"
+
 #~ msgid "extraneous `endef'"
 #~ msgstr "perteklinis „endef“"
 
index d2ff2164d112f739348bc547e4e53516ab00802d..0faab64a022d2a28bb8604ad3b4884a7a202df03 100644 (file)
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU make 4.0\n"
+"Project-Id-Version: GNU make 4.1\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -46,50 +46,50 @@ msgstr ""
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr ""
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr ""
 
-#: arscan.c:185
+#: arscan.c:255
 #, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr ""
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr ""
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr ""
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr ""
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr ""
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr ""
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr ""
@@ -99,25 +99,25 @@ msgstr ""
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr ""
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr ""
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr ""
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr ""
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr ""
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr ""
@@ -197,258 +197,258 @@ msgstr ""
 msgid "unterminated variable reference"
 msgstr ""
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr ""
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr ""
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr ""
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr ""
 
-#: file.c:808
-#, c-format
-msgid "%s: Timestamp out of range; substituting %s"
+#: file.c:811
+msgid "Current time"
 msgstr ""
 
-#: file.c:809
-msgid "Current time"
+#: file.c:815
+#, c-format
+msgid "%s: Timestamp out of range; substituting %s"
 msgstr ""
 
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr ""
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr ""
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr ""
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr ""
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr ""
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr ""
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr ""
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr ""
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr ""
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr ""
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr ""
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr ""
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr ""
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr ""
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr ""
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr ""
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr ""
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr ""
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr ""
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr ""
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr ""
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr ""
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr ""
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
 msgstr ""
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr ""
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr ""
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr ""
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr ""
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr ""
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr ""
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr ""
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr ""
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr ""
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr ""
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr ""
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr ""
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr ""
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr ""
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr ""
 
-#: function.c:2555
+#: function.c:2601
 #, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr ""
 
 #: getopt.c:659
@@ -506,12 +506,12 @@ msgstr ""
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr ""
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -594,206 +594,206 @@ msgstr ""
 msgid "Cannot create a temporary file\n"
 msgstr ""
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr ""
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr ""
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr ""
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
+#: job.c:516 job.c:524
 #, c-format
-msgid "%s[%s] Error 0x%x%s"
+msgid "%s[%s] Error %d%s"
 msgstr ""
 
-#: job.c:513
+#: job.c:519
 #, c-format
-msgid "%s[%s] Error %d%s"
+msgid "%s[%s] Error 0x%x%s"
 msgstr ""
 
-#: job.c:517
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr ""
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr ""
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr ""
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr ""
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr ""
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr ""
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr ""
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr ""
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr ""
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
 "Counted %d args in failed launch\n"
 msgstr ""
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr ""
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr ""
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr ""
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr ""
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr ""
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr ""
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr ""
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr ""
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr ""
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr ""
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr ""
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr ""
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr ""
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -802,224 +802,220 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr ""
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr ""
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr ""
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr ""
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr ""
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr ""
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr ""
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr ""
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr ""
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr ""
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr ""
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr ""
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr ""
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1029,218 +1025,214 @@ msgid ""
 "ExceptionAddress = 0x%p\n"
 msgstr ""
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr ""
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr ""
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr ""
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr ""
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr ""
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr ""
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr ""
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr ""
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr ""
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr ""
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr ""
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr ""
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr ""
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr ""
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr ""
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr ""
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr ""
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ""
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr ""
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr ""
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr ""
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr ""
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr ""
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr ""
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ""
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr ""
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr ""
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr ""
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr ""
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
 "This program built for %s\n"
 msgstr ""
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
 "This program built for %s (%s)\n"
 msgstr ""
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr ""
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr ""
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1249,14 +1241,14 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
 "# Make data base, printed on %s"
 msgstr ""
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1268,10 +1260,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr ""
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr ""
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1293,65 +1281,60 @@ msgstr ""
 msgid "Child access"
 msgstr ""
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr ""
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr ""
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr ""
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr ""
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr ""
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr ""
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr ""
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr ""
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
-msgstr ""
-
-#: output.c:517
-msgid "write error"
+#: output.c:495 output.c:497
+msgid "write error: stdout"
 msgstr ""
 
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ""
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr ""
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr ""
@@ -1360,351 +1343,354 @@ msgstr ""
 msgid "Reading makefiles...\n"
 msgstr ""
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr ""
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr ""
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr ""
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr ""
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr ""
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr ""
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr ""
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr ""
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
+#: read.c:1131
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr ""
 
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1133
+msgid "missing separator"
 msgstr ""
 
-#: read.c:1263
+#: read.c:1270
 msgid "missing target pattern"
 msgstr ""
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr ""
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr ""
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr ""
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr ""
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr ""
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr ""
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr ""
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr ""
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr ""
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr ""
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr ""
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr ""
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr ""
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr ""
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr ""
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr ""
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr ""
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr ""
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr ""
 
-#: read.c:2530
+#: read.c:2229
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr ""
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr ""
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr ""
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr ""
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr ""
 
-#: remake.c:377
+#: remake.c:390 remake.c:393
 #, c-format
-msgid "%sNo rule to make target '%s'%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
 
-#: remake.c:379
+#: remake.c:402 remake.c:405
 #, c-format
-msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgid "%sNo rule to make target '%s'%s"
 msgstr ""
 
-#: remake.c:413
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr ""
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr ""
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr ""
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr ""
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr ""
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr ""
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr ""
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr ""
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr ""
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr ""
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr ""
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr ""
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr ""
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr ""
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr ""
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr ""
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr ""
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr ""
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr ""
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr ""
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr ""
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr ""
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr ""
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr ""
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr ""
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr ""
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr ""
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr ""
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr ""
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr ""
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ""
@@ -1714,30 +1700,30 @@ msgstr ""
 msgid "Customs won't export: %s\n"
 msgstr ""
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
 msgstr ""
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
 msgstr ""
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
 "# %u implicit rules, %u"
 msgstr ""
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr ""
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr ""
@@ -1943,62 +1929,62 @@ msgid ""
 "# "
 msgstr ""
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr ""
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr ""
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr ""
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr ""
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr ""
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr ""
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr ""
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr ""
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr ""
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
 msgstr ""
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
 msgstr ""
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
 msgstr ""
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2015,77 +2001,82 @@ msgstr ""
 msgid "sys$search() failed with %d\n"
 msgstr ""
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr ""
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr ""
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr ""
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr ""
 
-#: vmsjobs.c:446
+#: vmsjobs.c:501
 #, c-format
-msgid "BUILTIN RM %s\n"
+msgid "BUILTIN ECHO %s->%s\n"
 msgstr ""
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr ""
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr ""
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr ""
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr ""
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr ""
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr ""
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr ""
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr ""
index 3961e7973236f99f80e38331352c0f1f34dc3e63..74e638162420962d364630b52e9063ced6e49fe8 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index 44e81e0428a883f9fc95e7936d314692f668e9c2..56bcb1c5854f8020ca93624b1320272cc8a99b74 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -2,16 +2,16 @@
 # Copyright (C) 2013 Free Software Foundation, Inc.
 # This file is distributed under the same license as the make package.
 #
-# "Eĉ en Arkadio mi estas."
+# « A quoi bon cette forfanterie? »
 #
 # Taco Witte <tcwitte@cs.uu.nl>, 2004.
 # Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2010, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: make-3.99.93\n"
+"Project-Id-Version: make-4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-02 22:07+0200\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-09 21:18+0200\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "Language: nl\n"
@@ -50,51 +50,51 @@ msgstr "touch: onderdeel '%s' bestaat niet in '%s'"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: ar_member_touch() van '%s' is mislukt"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "uitpakken van module-info door lbr$set_module() is mislukt, afsluitwaarde= %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() is mislukt, afsluitwaarde = %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "kan bibliotheek '%s' niet openen om onderdeel '%s' op te zoeken"
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Onderdeel '%s'%s: %ld bytes bij %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (naam kan afgekapt zijn)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Datum %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, modus = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "Recept bevat te veel regels (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Afgebroken.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Archiefonderdeel '%s' kan onecht zijn; niet verwijderd"
@@ -104,25 +104,25 @@ msgstr "*** [%s] Archiefonderdeel '%s' kan onecht zijn; niet verwijderd"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Archiefonderdeel '%s' kan onecht zijn; niet verwijderd"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Verwijderen van bestand '%s'"
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Verwijderen van bestand '%s'"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  uit te voeren recept"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (ingebouwd):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (uit '%s', regel %lu):\n"
@@ -204,150 +204,150 @@ msgstr "Recursieve variabele '%s' verwijst naar zichzelf (uiteindelijk)"
 msgid "unterminated variable reference"
 msgstr "onafgemaakte verwijzing naar variabele"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Recept voor bestand '%s' is opgegeven in %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Recept voor bestand '%s' werd gevonden via impliciet zoeken,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "maar '%s' wordt nu als hetzelfde bestand beschouwd als '%s'."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Recept voor '%s' zal worden genegeerd ten gunste van die voor '%s'."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "kan enkeldubbelpunts '%s' niet hernoemen tot dubbeldubbelpunts '%s'"
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "kan dubbeldubbelpunts '%s' niet hernoemen tot enkeldubbelpunts '%s'"
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Verwijderen van tussentijds bestand '%s'"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Verwijderen van tussentijdse bestanden...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Huidige tijd"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Tijdsstempel ligt buiten bereik; wordt vervangen door %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Huidige tijd"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Is geen doel:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Waardevol bestand (vereiste van .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Nepdoel (vereiste van .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Doel afkomstig van opdrachtregel."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr ""
 "#  Een standaard Makefile, of eentje via MAKEFILES of '-include/sinclude'."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "#  Ingebouwde regel"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Impliciete regel-zoekopdracht is uitgevoerd."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Impliciete regel-zoekopdracht is niet uitgevoerd."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Impliciete/statische patroonstam: '%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Bestand is een tussentijds vereiste."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Maakt ook:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Wijzigingstijd is nooit gecontroleerd."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Bestand bestaat niet."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Bestand is erg oud."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Laatst gewijzigd %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Bestand is bijgewerkt."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Bestand is niet bijgewerkt."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Nog lopend recept (DIT IS EEN PROGRAMMAFOUT)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Nog lopende receptafhankelijkheden (DIT IS EEN PROGRAMMAFOUT)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Met succes bijgewerkt."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Moet worden bijgewerkt ('-q' is ingesteld)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Bijwerken is mislukt."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Ongeldige waarde in 'command_state'-onderdeel!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -355,7 +355,7 @@ msgstr ""
 "\n"
 "# Bestanden"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -365,103 +365,104 @@ msgstr ""
 "# hashtabel-statistieken van bestanden:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Veld '%s' is niet gecached: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "niet-numeriek eerste argument van 'word'-functie"
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "eerste argument van 'word'-functie moet groter zijn dan 0"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "niet-numeriek eerste argument van 'wordlist'-functie"
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "niet-numeriek tweede argument van 'wordlist'-functie"
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe(): DuplicateHandle(In) is mislukt (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_openpipe(): DuplicateHandle(Err) is mislukt (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() is mislukt (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() is mislukt\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Opschonen van tijdelijk batch-bestand %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "open(): %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "write(): %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Ongeldige bestandsbewerking: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "onvoldoende aantal argumenten (%d) voor functie '%s'"
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "niet-geïmplementeerd op dit platform: functie '%s'"
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "onafgemaakte aanroep van functie '%s': '%c' ontbreekt"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Lege functienaam\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Ongeldige bestandsbewerking: %s"
+msgid "Invalid function name: %s"
+msgstr "Ongeldige functienaam: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Functienaam is te lang: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "Ongeldig minimumaantal argumenten (%d) voor functie '%s'\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "Ongeldig maximumaantal argumenten (%d) voor functie '%s'\n"
 
 #: getopt.c:659
@@ -519,12 +520,12 @@ msgstr "%s: optie '-W %s' is niet eenduidig\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: optie '-W %s' staat geen argument toe\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: Expanderen van '%s'\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: Evalueren van '%s'\n"
@@ -609,96 +610,96 @@ msgstr "Zoeken naar een regel met tussentijds bestand '%s'.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Kan geen tijdelijk bestand aanmaken\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (geheugendump gemaakt)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (genegeerd)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<ingebouwd>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: recept voor doel '%s' is mislukt"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Fout 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Fout %d%s"
 
-#: job.c:517
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Fout 0x%x%s"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Wachten op onvoltooide taken..."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Levend dochterproces %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (ginds)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Beëindigen van verliezend dochterproces %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Beëindigen van winnend dochterproces %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Opschonen van tijdelijk batch-bestand %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Opschonen van tijdelijk batch-bestand %s is mislukt (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Verwijderen van dochterproces %p PID %s%s uit de ketting.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "vrijgeven van taakserver-semafoor: (Fout %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Token vrijgegeven voor dochterproces %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "schrijven naar taakserver"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() kan geen proces starten (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -707,104 +708,104 @@ msgstr ""
 "\n"
 "%d argumenten geteld bij mislukte start\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Opname van dochterproces %p (%s) PID %s%s in de ketting.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "wachten op semafoor of dochterproces: (Fout %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Token verkregen voor dochterproces %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "lezen van taken-pijp"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: doel '%s' bestaat niet"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: bijwerken van doel '%s' vanwege: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "kan belastingsgrenzen niet afdwingen op dit besturingssysteem"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "kan belastingsgrens niet afdwingen: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 "geen bestandshandvatten meer beschikbaar: kan standaardinvoer niet "
 "dupliceren\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 "geen bestandshandvatten meer beschikbaar: kan standaarduitvoer niet "
 "dupliceren\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 "geen bestandshandvatten meer beschikbaar: kan standaardfoutuitvoer niet "
 "dupliceren\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Kan standaardinvoer niet herstellen\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Kan standaarduitvoer niet herstellen\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Kan standaardfoutuitvoer niet herstellen\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 "'make' heeft dochterproces met PID %s verwerkt, maar wacht nog op PID %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Opdracht niet gevonden"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Shell-programma niet gevonden"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: mogelijk geen omgevingsruimte meer beschikbaar"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL is gewijzigd (was '%s', is nu '%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Maken van tijdelijk batch-bestand %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -812,7 +813,7 @@ msgstr ""
 "Inhoud van batch-bestand:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -821,7 +822,7 @@ msgstr ""
 "Inhoud van batch-bestand:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (regel %d) Onjuiste shell-context (!unixy && !batch_mode_shell)\n"
@@ -832,82 +833,82 @@ msgstr ""
 "Optie '-O[TYPE]' (--output-sync[=TYPE]) is niet meegecompileerd in dit "
 "programma."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Openen van globale symbolentabel is mislukt: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Geladen object %s is niet gedeclareerd als GPL-compatibel"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Laden van symbool %s uit %s is mislukt: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Lege symboolnaam om te laden: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Laden van symbool %s uit %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "De 'load'-operatie wordt op dit platform niet ondersteund."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opties:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr ""
 "  -b, -m                       (genegeerd, maar herkend wegens "
 "compatibiliteit)\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make            onvoorwaardelijk alle doelen maken\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
 "  -C MAP, --directory=MAP      naar deze map gaan alvorens iets te doen\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 "  -d                           veel informatie weergeven voor het debuggen\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=VLAGGEN]            verschillende soorten debuginformatie "
 "weergeven\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 "  -e, --environment-overrides  omgevingsvariabelen gaan boven Makefiles\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=TEKST                 deze TEKST als Makefile-statement evalueren\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -916,15 +917,15 @@ msgstr ""
 "                               het gegeven bestand als Makefile gebruiken\n"
 "\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                   deze hulptekst tonen en stoppen\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors          alle fouten in recepten negeren\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -932,7 +933,7 @@ msgstr ""
 "  -I MAP, --include-dir=MAP    deze map doorzoeken naar ingesloten "
 "Makefiles\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -940,14 +941,14 @@ msgstr ""
 "  -j [N], --jobs[=N]           het uitvoeren van N taken tegelijk toestaan;\n"
 "                               zonder N is het aantal onbeperkt\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going             doorgaan als een doel niet gemaakt kan "
 "worden\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -957,7 +958,7 @@ msgstr ""
 "                               alleen extra taken starten als de\n"
 "                               systeembelasting lager is dan N\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -966,7 +967,7 @@ msgstr ""
 "                               de laatste wijzigingstijd gebruiken\n"
 "\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -975,7 +976,7 @@ msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                               recepten niet uitvoeren, alleen weergeven\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -985,7 +986,7 @@ msgstr ""
 "                               BESTAND als oud beschouwen, niet opnieuw "
 "maken\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -994,12 +995,12 @@ msgstr ""
 "                               uitvoer van parallelle taken synchroniseren "
 "op TYPE\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 "  -p, --print-data-base        interne gegevensbank van 'make' weergeven\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1007,47 +1008,47 @@ msgstr ""
 "  -q, --question               geen recepten uitvoeren; de afsluitwaarde\n"
 "                               geeft aan of alles bijgewerkt is\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules       ingebouwde impliciete regels uitzetten\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables   ingebouwde instellingen van variabelen "
 "uitzetten\n"
 "\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet        recepten niet weergeven\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr "  -S, --no-keep-going, --stop  optie '-k' uitzetten\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                  doelen aanraken in plaats van opnieuw maken\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                      tracing-informatie weergeven\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version                programmaversie tonen en stoppen\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory        de huidige map weergeven\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1055,7 +1056,7 @@ msgstr ""
 "  --no-print-directory         optie '-w' uitzetten, ook als deze impliciet\n"
 "                               was aangezet\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1063,7 +1064,7 @@ msgstr ""
 "  -W BESTAND, --what-if=BESTAND, --new-file=BESTAND, --assume-new=BESTAND\n"
 "                               BESTAND als oneindig nieuw beschouwen\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1071,30 +1072,26 @@ msgstr ""
 "  --warn-undefined-variables   waarschuwen als naar een ongedefinieerde\n"
 "                               variabele wordt verwezen\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "lege tekenreeks is ongeldig als bestandsnaam"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "onbekende aanduiding '%s' voor debug-niveau"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "onbekend uitvoersynchronisatie-type: '%s'"
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "*interne fout*: meerdere opties '--sync-mutex'"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Onderbreking/uitzondering gekregen (code = 0x%lx, adres = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1109,188 +1106,184 @@ msgstr ""
 "ExceptionFlags = %lx\n"
 "ExceptionAddress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Toegangsrechtenovertreding: schrijfopdracht op adres 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Toegangsrechtenovertreding: leesopdracht op adres 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() stelt default_shell = %s in\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 "find_and_set_shell() stelt na doorzoeken van pad default_shell = %s in\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s slaapt gedurende 30 seconden..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "klaar met 30 seconden slapen.  Make gaat verder.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "*interne fout*: meerdere opties '--jobserver-fds'"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 "*interne fout*: kan taakserver-semafoor '%s' niet openen: (Fout %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Taakservercliënt (semafoor %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "*interne fout*: ongeldige tekenreeks '%s' voor '--jobserver-fds'"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Taakservercliënt (bestandsdescriptor %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "Waarschuwing: '-jN' is afgedwongen in een deelproces: taakserver-modus "
 "uitgezet."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dubbele taakserver"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "Waarschuwing: taakserver is onbeschikbaar: '-j1' wordt gebruikt.  Voeg '+' "
 "toe aan de ouderregel."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile op standaardinvoer is dubbel opgegeven."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (tijdelijk bestand)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (tijdelijk bestand)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Parallelle taken (-j) worden op dit platform niet ondersteund."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Opnieuw instellen op enkele-taakmodus (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Taakserver-plaatsen zijn beperkt tot %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "aanmaken van taakserver-semafoor: (Fout %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "aanmaken van taken-pijp"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "initialiseren van taakserver-pijp"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr ""
 "Symbolische koppelingen worden niet ondersteund: '-L' wordt uitgeschakeld."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Bijwerken van Makefiles...\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Makefile '%s' bevat mogelijk een lus; wordt niet opnieuw gemaakt.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Opnieuw maken van Makefile '%s' is mislukt."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Ingesloten Makefile '%s' is niet gevonden."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Makefile '%s' is niet gevonden."
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Kan niet terugkeren naar oorspronkelijke map."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Opnieuw uitvoeren[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "verwijderen (van tijdelijk bestand): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL bevat meer dan één doel"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Geen doelen opgegeven en geen Makefile gevonden"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Geen doelen"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Bijwerken van doelen...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "Waarschuwing:  Klokafwijking geconstateerd.  Het maken is mogelijk "
 "onvolledig gebeurd."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Gebruik:  %s [OPTIES] [DOEL]...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1299,7 +1292,7 @@ msgstr ""
 "\n"
 "Dit programma is gecompileerd voor %s.\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1308,34 +1301,34 @@ msgstr ""
 "\n"
 "Dit programma is gecompileerd voor %s (%s).\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Rapporteer programmafouten aan <bug-make@gnu.org>,\n"
 "meld gebreken in de vertaling aan <vertaling@vrijschrift.org>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "de optie '%s%sc' vereist een niet-lege tekenreeks als argument"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "de optie '-%c' vereist een positief geheel getal als argument"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sDit programma is gecompileerd voor %s.\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sDit programma is gecompileerd voor %s (%s).\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1349,7 +1342,7 @@ msgstr ""
 "verspreiden.\n"
 "%sEr is GEEN GARANTIE, voor zover de wet dit toestaat.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1358,7 +1351,7 @@ msgstr ""
 "\n"
 "# Make-gegevensbank, weergegeven op %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1372,10 +1365,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Onbekende fout %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "onvoldoende geheugen beschikbaar"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1397,65 +1386,61 @@ msgstr "Make-toegang"
 msgid "Child access"
 msgstr "Dochterprocestoegang"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Een onbekende map wordt binnengegaan\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Een onbekende map wordt verlaten\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Map '%s' wordt binnengegaan\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Map '%s' wordt verlaten\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Een onbekende map wordt binnengegaan\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Een onbekende map wordt verlaten\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Map '%s' wordt binnengegaan\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Map '%s' wordt verlaten\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "schrijffout: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "schrijffout"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Gestopt.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1464,215 +1449,221 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Lezen van Makefiles...\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Lezen van Makefile '%s'"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (geen standaarddoel)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (zoekpad)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (maakt niet uit)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (geen expansie van ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "UTF-8 BOM in Makefile '%s' wordt overgeslagen\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "UTF-8 BOM in Makefile-buffer wordt overgeslagen\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "ongeldige syntaxis in voorwaardelijk deel"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: laden is mislukt"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "recept begint voor eerste doel"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "ontbrekende regel vóór recept"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "ontbrekend scheidingsteken%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (bedoelde u TAB in plaats van 8 spaties?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "ontbrekend scheidingsteken%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "ontbrekend doelpatroon"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "meerdere doelpatronen"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "doelpatroon bevat geen '%%'"
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "ontbrekende 'endif'"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "lege naam van variabele"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "extra tekst na 'define'-opdracht"
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "ontbrekende 'endef', onafgemaakte 'define'"
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "extra tekst na 'endef'-opdracht"
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "extra tekst na '%s'-opdracht"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "extra '%s'"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "slechts één 'else' per voorwaardelijk deel"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Onjuiste doelspecifieke variabele-definitie"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "vereisten kunnen niet in recepten gedefinieerd worden"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "gemengde impliciete en statische patroonregels"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "gemengde impliciete en normale regels"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "doel '%s' komt niet overeen met doelpatroon"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "doelbestand '%s' heeft zowel ':'- als '::'-items"
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "doel '%s' is meerdere keren gegeven in dezelfde regel"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "Waarschuwing: er wordt voorbijgegaan aan recept voor doel '%s'"
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "Waarschuwing: oud recept voor doel '%s' wordt genegeerd"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "gemengde impliciete en normale regels"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "Waarschuwing: NUL-teken gezien; de rest van de regel wordt genegeerd"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Er hoeft niets gedaan te worden voor '%s'."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "'%s' is up-to-date."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Snoeien van bestand '%s'.\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sEr is geen regel om doel '%s' te maken%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sEr is geen regel om doel '%s' te maken, nodig voor '%s'%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sEr is geen regel om doel '%s' te maken%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Doelbestand '%s' wordt overwogen.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Bijwerken van bestand '%s' is recent geprobeerd en mislukt.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Bestand '%s' was al overwogen.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Bestand '%s' wordt nog bijgewerkt.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Bijwerken van bestand '%s' is voltooid.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Bestand '%s' bestaat niet.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1680,139 +1671,139 @@ msgstr ""
 "*** Waarschuwing: .LOW_RESOLUTION_TIME-bestand '%s' heeft een hoge-resolutie "
 "tijdsstempel"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Impliciete regel voor '%s' gevonden.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Geen impliciete regel voor '%s' gevonden.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Standaardrecept wordt gebruikt voor '%s'.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Circulaire afhankelijkheid %s <- %s is verworpen."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Vereisten van doelbestand '%s' zijn voltooid.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "De vereisten van '%s' worden nu gemaakt.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Pogingen voor doelbestand '%s' worden gestaakt.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Doel '%s' is niet opnieuw gemaakt vanwege fouten."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Vereiste '%s' is alleen-ordenen voor doel '%s'.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Vereiste '%s' van doel '%s' bestaat niet.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Vereiste '%s' is nieuwer dan doel '%s'.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Vereiste '%s' is ouder dan doel '%s'.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Doel '%s' is dubbeldubbelpunts en heeft geen vereisten.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Er is geen recept voor '%s', en geen van de vereisten is veranderd.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Maken van '%s' vanwege 'always-make'-vlag.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Doel '%s' hoeft niet opnieuw gemaakt te worden"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; VPATH-naam '%s' wordt gebruikt"
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Doel '%s' moet opnieuw gemaakt worden.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  VPATH-naam '%s' wordt genegeerd.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Recept van '%s' wordt nu uitgevoerd.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Opnieuw maken van doelbestand '%s' is mislukt.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Doelbestand '%s' is met succes opnieuw gemaakt.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Doelbestand '%s' moet opnieuw worden gemaakt onder '-q'.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Standaardopdrachten worden gebruikt voor '%s'.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Waarschuwing: bestand '%s' heeft een wijzigingstijd in de toekomst"
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr ""
 "Waarschuwing: bestand '%s' heeft een wijzigingstijd %s seconden in de "
 "toekomst"
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ".LIBPATTERNS-element '%s' is geen patroon"
@@ -1822,7 +1813,7 @@ msgstr ".LIBPATTERNS-element '%s' is geen patroon"
 msgid "Customs won't export: %s\n"
 msgstr "Customs kan niet exporteren: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1830,7 +1821,7 @@ msgstr ""
 "\n"
 "# Impliciete regels"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1838,7 +1829,7 @@ msgstr ""
 "\n"
 "# Geen impliciete regels."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1847,11 +1838,11 @@ msgstr ""
 "\n"
 "# %u impliciete regels, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "PROGRAMMAFOUT: num_pattern_rules() is verkeerd!  %u != %u"
@@ -2074,44 +2065,44 @@ msgstr ""
 "# hashtabel-statistieken van bestanden:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatisch"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "standaard"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "omgeving"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "Makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "omgeving onder -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "opdrachtregel"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "'override'-opdracht"
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (uit '%s', regel %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# Statistieken van hashtabel van variabelenverzameling:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2119,7 +2110,7 @@ msgstr ""
 "\n"
 "# Variabelen\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2127,7 +2118,7 @@ msgstr ""
 "\n"
 "# Patroonspecifieke variabelewaarden"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2135,7 +2126,7 @@ msgstr ""
 "\n"
 "# Geen patroonspecifieke variabelewaarden"
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2154,79 +2145,84 @@ msgstr "Waarschuwing: ongedefinieerde variabele '%.*s'"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() is mislukt met afsluitwaarde %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Waarschuwing: lege omleiding\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "*interne fout*: '%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-waarschuwing: mogelijk dient u CTRL-Y-afhandeling opnieuw aan te zetten "
 "vanuit DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "INGEBOUWD [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "INGEBOUWDE CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "INGEBOUWDE RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "INGEBOUWDE CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Onbekende ingebouwde opdracht '%s'\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Fout: lege opdracht\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Invoer wordt omgeleid van %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Foutuitvoer wordt omgeleid naar %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Uitvoer wordt toegevoegd aan %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Uitvoer wordt omgeleid naar %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Toevoegen van %.*s en opschoning\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "In plaats daarvan wordt %s uitgevoerd\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Fout bij proces-start, %d\n"
@@ -2270,6 +2266,21 @@ msgstr ""
 "# Algemeen zoekpad ('VPATH'-variabele):\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "*interne fout*: meerdere opties '--sync-mutex'"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "*interne fout*: meerdere opties '--jobserver-fds'"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "onvoldoende geheugen beschikbaar"
+
+#~ msgid "write error"
+#~ msgstr "schrijffout"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "INGEBOUWDE RM %s\n"
+
 #~ msgid "#  Invalid value in 'update_status' member!"
 #~ msgstr "#  Ongeldige waarde in 'update_status'-onderdeel!"
 
index b0a83e86286817ff8c04e749ad51470b719d11a9..f7eb848f6dcee5480c54752c14302a986b99517e 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index 785b182c3239e22a429555cf92d45b8a10cc4592..5476e8503fa3cc20ffc8b1a38af63fa32033994b 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,10 +6,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.99.93\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-02 20:47+0200\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-13 10:48+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "Language: pl\n"
@@ -46,52 +46,52 @@ msgstr "touch: Brak elementu '%s' w '%s'"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: Błędny kod powrotu z ar_member_touch w '%s'"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "Uzyskanie informacji o module przez lnr$set_module() nie udało się, status = "
 "%d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() nie powiodło się, status = %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "błąd otwarcia biblioteki '%s' podczas szukania elementu '%s'"
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Element '%s'%s: %ld bajtów pod %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (nazwa może zostać okrojona)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Data %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "Polecenia mają za dużo linii (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Przerwano.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Element archiwum '%s' może być fałszywy; nie usunięty"
@@ -101,25 +101,25 @@ msgstr "*** [%s] Element archiwum '%s' może być fałszywy; nie usunięty"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Element archiwum '%s' może być fałszywy; nie usunięty"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Kasuję plik '%s'"
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Kasuję plik '%s'"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  polecenia do wykonania"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (wbudowane):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (z '%s', linia %lu):\n"
@@ -201,152 +201,152 @@ msgstr "Rekurencyjna zmienna '%s' wskazuje na samą siebie"
 msgid "unterminated variable reference"
 msgstr "niezakończone odwołanie do zmiennej"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Polecenia dla pliku '%s' podano w %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 "Polecenia dla pliku '%s' zostały wyznaczone na podstawie reguł standardowych,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "ale '%s' jest teraz uznawany za ten sam plik co '%s'."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Polecenia dla '%s' zostaną zignorowane na rzecz poleceń dla '%s'."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "nie można przemianować '%s' z pojedynczym dwukropkiem na '%s' z podwójnym"
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 "nie można przemianować '%s' z podwójnym dwukropkiem na '%s' z pojedynczym"
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Kasowanie pliku pośredniego '%s'"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Kasowanie plików pośrednich...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Aktualny czas"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Oznaczenie czasu spoza zakresu; zastąpiono %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Aktualny czas"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# To nie jest obiekt:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Cenny plik (zależność .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Obiekt niejawny (zależność .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Obiekt podany w linii poleceń."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Makefile domyślny, wymieniony w MAKEFILES lub -include/sinclude."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "#  Reguła wbudowana"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Szukanie reguł domyślnych zostało wykonane."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Szukanie reguł domyślnych nie zostało wykonane."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Gałąź wzorców domyślnych/statycznych: '%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Plik jest zależnością przejściową."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Robi również:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Czas modyfikacji nie był sprawdzany."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Plik nie istnieje."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Plik jest bardzo stary."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Ostatnio modyfikowany %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Plik został uaktualniony."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Plik nie został uaktualniony."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Aktualnie uruchamiane polecenia (TO JEST BŁĄD)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Aktualnie uruchamiane polecenia zależności (TO JEST BŁĄD)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Uaktualnienie powiodło się."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Powinien być uaktualniony (-q jest włączone)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Uaktualnianie nie powiodło się."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Błędna wartość w elemencie 'command_state'!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -354,7 +354,7 @@ msgstr ""
 "\n"
 "# Pliki"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -364,103 +364,104 @@ msgstr ""
 "# statystyki tablic haszujących plików:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Pole '%s' nie zapamiętane w pamięci podręcznej: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "pierwszy argument funkcji 'word' nie jest liczbowy"
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "pierwszy argument funkcji 'word' musi być większy od 0"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "pierwszy argument funkcji 'wordlist' nie jest liczbowy"
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "drugi argument funkcji 'wordlist' nie jest liczbowy"
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(In) nie powiodło się (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(Err) nie powiodło się (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() nie powiodło się (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() nie powiodło się\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Czyszczę tymczasowy plik wsadowy %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "otwarcie: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "zapis: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Błędna operacja na pliku: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "niewystarczająca liczba argumentów (%d) dla funkcji '%s'"
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "funkcja '%s' nie jest zaimplementowana na tej platformie"
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "nie dokończone wywołanie funkcji '%s': brak '%c'"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Pusta nazwa funkcji\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Błędna operacja na pliku: %s"
+msgid "Invalid function name: %s"
+msgstr "Błędna nazwa funkcji: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Zbyt długa nazwa funkcji: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "Błędna minimalna liczba argumentów (%d) dla funkcji %s\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "Błędna maksymalna liczba argumentów (%d) dla funkcji %s\n"
 
 #: getopt.c:659
@@ -518,12 +519,12 @@ msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opcja '-W %s' nie może mieć argumentów\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: Rozwijanie '%s'\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: Wyliczanie '%s'\n"
@@ -607,96 +608,96 @@ msgstr "Szukanie reguły zawierającej plik przejściowy '%s'.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Nie można utworzyć pliku tymczasowego\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (zrzut pamięci)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (zignorowano)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<wbudowane>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: polecenia dla obiektu '%s' nie powiodły się"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Błąd 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Błąd %d%s"
 
-#: job.c:517
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Błąd 0x%x%s"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s]: %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Oczekiwanie na niezakończone zadania...."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Żyjący potomek %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (zdalne)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Zbieranie przegrywającego potomka %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Zbieranie wygrywającego potomka %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Czyszczenie tymczasowego pliku wsadowego %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Czyszczenie tymczasowego pliku wsadowego %s nie powiodło się (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Usuwanie potomka %p PID %s%s z kolejki.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "zwalnianie semafora serwera zadań: (Błąd %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Zwolniony token dla potomka %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "piszący serwer zadań"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() nie mógł uruchomić procesu (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -705,97 +706,97 @@ msgstr ""
 "\n"
 "Naliczono %d parametrów nieudanego uruchomienia\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Wstawianie potomka %p (%s) PID %s%s do kolejki.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "oczekiwanie na semafor lub proces potomny: (Błąd %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Otrzymano token dla potomka %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "strumień czytający zadania"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: obiekt '%s' nie istnieje"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: uaktualnianie obiektu '%s' z powodu: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "niemożliwe wymuszenie limitów obciążenia w tym systemie"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "niemożliwe wymuszenie limitu obciążenia: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "nie ma więcej uchwytów plików: nie można powielić stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "nie ma więcej uchwytów plików: nie można powielić stdout\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "nie ma więcej uchwytów plików: nie można powielić stderr\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Nie można odtworzyć stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Nie można odtworzyć stdout\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Nie można odtworzyć stderr\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make usunął potomka pid %s, nadal czeka na pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Polecenie nie znalezione"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Nie znaleziono programu powłoki"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: mogło zabraknąć miejsca na środowisko"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL się zmienił (był '%s', jest '%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Tworzenie tymczasowego pliku wsadowego %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -803,7 +804,7 @@ msgstr ""
 "Zawartość pliku wsadowego:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -812,7 +813,7 @@ msgstr ""
 "Zawartość pliku wsadowego:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (linia %d) Zły kontekst powłoki (!unixy && !batch_mode_shell)\n"
@@ -822,49 +823,49 @@ msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 "-O[TYP] (--output-sync[=TYP]) nie zostało skonfigurowane przy tym budowaniu."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Nie udało się otworzyć tablicy symboli globalnych: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Wczytany obiekt %s nie jest zadeklarowany jako kompatybilny z GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Nie udało się wczytać symbolu %s z %s: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Pusta nazwa symbolu do wczytania: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Wczytywanie symbolu %s z %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Operacja 'load' nie jest obsługiwana na tej platformie"
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opcje:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ignorowane dla kompatybilności.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 "  -B, --always-make           Bezwarunkowe utworzenie wszystkich obiektów.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -873,19 +874,19 @@ msgstr ""
 "                              Przejście do KATALOGu przed robieniem\n"
 "                              czegokolwiek.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 "  -d                          Wyświetla dużo informacji diagnostycznych.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=FLAGI]             Wyświetla różne rodzaje informacji\n"
 "                              diagnostycznych.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -893,14 +894,14 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              Zmienne środowiska przykrywają makefile.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=ŁAŃCUCH              Wyznacza ŁAŃCUCH jako instrukcję pliku "
 "makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -908,16 +909,16 @@ msgstr ""
 "  -f PLIK, --file=PLIK, --makefile=PLIK\n"
 "                              Czyta PLIK jako makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr ""
 "  -h, --help                  Wyświetla ten komunikat i kończy działanie.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Ignoruje błędy poleceń.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -925,7 +926,7 @@ msgstr ""
 "  -I KATALOG, --include-dir=KATALOG\n"
 "                              Szuka dołączanych makefile w KATALOGu.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -933,14 +934,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Dopuszcza N zadań naraz; brak N oznacza brak\n"
 "                              ograniczeń.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Kontynuuj jeśli nie da się zrobić jakichś\n"
 "                              obiektów.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -951,7 +952,7 @@ msgstr ""
 "jest\n"
 "                              poniżej N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -959,7 +960,7 @@ msgstr ""
 "  -L, --check-symlink-times   Używanie ostatniego mtime między dowiązaniem a "
 "celem.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -968,7 +969,7 @@ msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Nie wykonuje poleceń; jedynie je wyświetla.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -979,7 +980,7 @@ msgstr ""
 "go\n"
 "                              ponownie.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -988,11 +989,11 @@ msgstr ""
 "                              Sposób synchronizacji wyjścia zadań "
 "równoległych.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Wyświetla wewnętrzną bazę danych make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1000,20 +1001,20 @@ msgstr ""
 "  -q, --question              Nie uruchamia żadnych poleceń; status powrotu\n"
 "                              wskazuje aktualność.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr "  -r, --no-builtin-rules      Wyłącza wbudowane reguły standardowe.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Wyłącza ustawianie wbudowanych zmiennych.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Nie wypisuje poleceń.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1021,25 +1022,25 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Wyłącza -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr "  -t, --touch                 Uaktualnia obiekty zamiast je robić.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Wypisywanie informacji ze śledzenia.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 "  -v, --version               Wyświetla wersję make i kończy działanie.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Wyświetla aktualny katalog.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1047,7 +1048,7 @@ msgstr ""
 "  --no-print-directory        Wyłącza -w, nawet jeśli było ono włączone\n"
 "                              domyślnie.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1055,7 +1056,7 @@ msgstr ""
 "  -W PLIK, --what-if=PLIK, --new-file=PLIK, --assume-new=PLIK\n"
 "                              Uznaje PLIK za nieskończenie nowy.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1064,30 +1065,26 @@ msgstr ""
 "niezdefiniowanych\n"
 "                              zmiennych.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "pusty łańcuch nie może być nazwą pliku"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "nieznany poziom diagnostyki '%s'"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "nieznany sposób synchronizacji wyjścia '%s'"
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "błąd wewnętrzny: wiele opcji --sync-mutex"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: złapano przerwanie/wyjątek (kod = 0x%lx, adres = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1102,41 +1099,37 @@ msgstr ""
 "ExceptionFlags = %lx\n"
 "ExceptionAddress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Naruszenie praw dostępu: zapis pod adresem 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Naruszenie praw dostępu: odczyt spod adresu 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() ustawia default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell() ustawia ścieżkę wyszukiwania default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s jest zawieszony na 30 sekund..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "zakończono sleep(30). Kontynuacja.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "błąd wewnętrzny: wiele opcji --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
@@ -1144,141 +1137,141 @@ msgstr ""
 "błąd wewnętrzny: nie udało się otworzyć semafora serwera zadań '%s': (Błąd "
 "%ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Klient serwera zadań (semafor %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "błąd wewnętrzny: błędny łańcuch --jobserver-fds '%s'"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Klient serwera zadań (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "uwaga: -jN wymuszone w podzadaniu: wyłączanie trybu serwera zadań."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "duplikacja serwera zadań"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "uwaga: serwer zadań niedostępny: użycie -j1. Należy dodać `+' do nadrzędnej "
 "reguły make."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile ze standardowego wejścia podano dwukrotnie."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (plik tymczasowy)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (plik tymczasowy)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Równoległe zadania (-j) nie są obsługiwane na tej platformie"
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Przełączanie w tryb jednozadaniowy (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Pojemność serwera zadań ograniczona do %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "tworzenie semafora serwera zadań: (Błąd %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "tworzenie potoku zadań"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "inicjowanie potoku serwera zadań"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Dowiązania symboliczne nie są obsługiwane: wyłączono -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Uaktualnianie plików makefile....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Plik makefile '%s' może się zapętlić; bez ponownego przetwarzania.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Nie udało się ponownie przetworzyć pliku makefile '%s'."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Nie znaleziono włączanego pliku makefile '%s'."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Nie znaleziono pliku makefile '%s'"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Niemożliwy powrót do katalogu startowego."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Ponowne uruchamianie[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (plik tymczasowy): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL zawiera więcej niż jeden cel"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Nie podano obiektów i nie znaleziono makefile"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Brak obiektów"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Uaktualnianie obiektów docelowych....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "uwaga:  Wykryto przestawienie zegara. Budowanie może być niekompletne."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Składnia: %s [opcje] [obiekt] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1287,7 +1280,7 @@ msgstr ""
 "\n"
 "Ten program został zbudowany dla %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1296,32 +1289,32 @@ msgstr ""
 "\n"
 "Ten program został zbudowany dla %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Błędy proszę zgłaszać na adres <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "opcja '%s%s' wymaga niepustego łańcucha jako argumentu"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "opcja '-%c' wymaga argumentu będącego liczbą całkowitą dodatnią"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sTen program został zbudowany dla systemu %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sTen program został zbudowany dla systemu %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1335,7 +1328,7 @@ msgstr ""
 "rozpowszechniać.\n"
 "%sNie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1344,7 +1337,7 @@ msgstr ""
 "\n"
 "# Baza danych Make, wyświetlana na %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1358,10 +1351,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Nieznany błąd %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "brak pamięci wirtualnej"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1383,65 +1372,61 @@ msgstr "Dostęp make"
 msgid "Child access"
 msgstr "Dostęp potomka"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Wejście do nieznanego katalogu\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Opuszczenie nieznanego katalogu\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Wejście do katalogu '%s'\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Opuszczenie katalogu '%s'\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Wejście do nieznanego katalogu\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Opuszczenie nieznanego katalogu\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Wejście do katalogu '%s'\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Opuszczenie katalogu '%s'\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "błąd zapisu: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "błąd zapisu"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ". Stop.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1450,215 +1435,221 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Czytanie makefile...\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Czytanie pliku makefile '%s'"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (brak celu domyślnego)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (przeszukiwana ścieżka)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (nieważne)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (brak rozszerzenia ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "Pominięto BOM UTF-8 w pliku makefile '%s'\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "Pominięto BOM UTF-8 w buforze pliku makefile\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "błędna składnia wyrażenia warunkowego"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: nie udało się załadować"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "polecenia zaczynają się przed pierwszym obiektem"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "brakuje reguły przed poleceniami"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "brakujący separator%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (czyżby miał być TAB zamiast 8 spacji?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "brakujący separator%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "brakujący wzorzec obiektu"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "wielokrotne wzorce obiektu"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "wzorzec obiektu nie zawiera '%%'"
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "brakujący 'endif'"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "pusta nazwa zmiennej"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "nadmiarowy tekst po dyrektywie 'define'"
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "brakujący 'endef', niezakończone 'define'"
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "nadmiarowy tekst po dyrektywie 'endef'"
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "niezwiązany tekst po dyrektywie '%s'"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "nadmiarowy '%s'"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "tylko jedno 'else' w wyrażeniu warunkowym"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Źle sformułowana definicja zmiennej dla celu"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "wymagania nie mogą być definiowane w opisach poleceń"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "pomieszane standardowe i statyczne reguły wzorców"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "pomieszane standardowe i normalne reguły"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "obiekt '%s' nie pasuje do wzorca obiektu"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "plik obiektu '%s' ma pozycje i : i ::"
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "obiekt '%s' podany wielokrotnie w tej samej regule"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "uwaga: polecenia zakrywające dla obiektu '%s'"
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "uwaga: ignoruję stare polecenia dla obiektu '%s'"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "pomieszane standardowe i normalne reguły"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "uwaga: napotkałem na znak NUL; reszta linii zignorowana"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Nie ma nic do zrobienia w '%s'."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "'%s' jest aktualne."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Czyszczenie pliku '%s'.\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sBrak reguł do wykonania obiektu '%s'%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sBrak reguł do zrobienia obiektu '%s', wymaganego przez '%s'%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sBrak reguł do wykonania obiektu '%s'%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Przetwarzanie pliku obiektowego '%s'.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Już bez powodzenia próbowałem uaktualnić plik '%s'.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Plik '%s' był już przetwarzany.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Wciąż uaktualniam plik '%s'.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Skończyłem uaktualniać plik '%s'.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Plik '%s' nie istnieje.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1666,138 +1657,138 @@ msgstr ""
 "*** Uwaga: plik .LOW_RESOLUTION_TIME '%s' ma dużą rozdzielczość znacznika "
 "czasu"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Znaleziono standardową regułę dla '%s'.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Brak standardowych reguł dla '%s'.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Stosowanie standardowych poleceń dla '%s'.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Okrężna dyrektywa %s <- %s porzucona."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Zakończono zależności pliku obiektu '%s'.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Zależności '%s' są wykonywane.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Zaniechany plik obiektowy '%s'.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Obiekt '%s' nie został ponownie wykonany z powodu błędów."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Zależność '%s' dotyczy tylko kolejności dla obiektu '%s'.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Zależność '%s' obiektu '%s' nie istnieje.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Zależność '%s' jest nowsza od obiektu '%s'.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Zależność '%s' jest starsza od obiektu '%s'.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
 "Obiekt '%s' jest z podwójnym dwukropkiem i nie ma żadnych zależności.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Brak poleceń dla '%s' i brak zmienionych zależności.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Tworzenie '%s' z powodu flagi always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Nie ma potrzeby ponownego robienia obiektu '%s'"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; użyto nazwy VPATH '%s'"
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Konieczne ponowne wykonanie obiektu '%s'.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Zignorowano nazwę VPATH '%s'.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Uruchomiono polecenia dla '%s'.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Ponowne tworzenie pliku obiektu '%s' nie powiodło się.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Ponowne tworzenie pliku obiektu '%s' powiodło się.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Plik obiektu '%s' powinien być ponownie tworzony z opcją -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Stosowanie standardowych poleceń dla '%s'.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Uwaga: Plik '%s' ma czas modyfikacji z przyszłości"
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Uwaga: Plik '%s' ma czas modyfikacji %s s w przyszłości"
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Element .LIBPATTERNS '%s' nie jest wzorcem"
@@ -1807,7 +1798,7 @@ msgstr "Element .LIBPATTERNS '%s' nie jest wzorcem"
 msgid "Customs won't export: %s\n"
 msgstr "Zasady nie eksportowane: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1815,7 +1806,7 @@ msgstr ""
 "\n"
 "# Reguły stadardowe"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1823,7 +1814,7 @@ msgstr ""
 "\n"
 "# Brak standardowych reguł."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1832,11 +1823,11 @@ msgstr ""
 "\n"
 "# %u standardowych reguł, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "BŁĄD: złe num_pattern_rules! %u != %u"
@@ -2053,44 +2044,44 @@ msgstr ""
 "# statystyki tablic haszujących:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatyczna"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "domyślna"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "środowiskowa"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "środowisko pod -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "z linii poleceń"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "dyrektywa 'override'"
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (z '%s', linia %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# statystyki tablic haszujących ustawionych zmiennych:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2098,7 +2089,7 @@ msgstr ""
 "\n"
 "# Zmienne\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2106,7 +2097,7 @@ msgstr ""
 "\n"
 "# Wartości zmiennych dla wzorca"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2114,7 +2105,7 @@ msgstr ""
 "\n"
 "# Brak wartości zmiennych dla wzorca."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2133,77 +2124,82 @@ msgstr "uwaga: niezdefiniowana zmienna '%.*s'"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() nie powiodło się - %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Uwaga: Puste przekierowanie\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "błąd wewnętrzny: command_state '%s'"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr "-uwaga, będzie trzeba ponownie umożliwić obsługę CTRL-Y z DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "WBUDOWANE [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "WBUDOWANE CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "WBUDOWANE RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "WBUDOWANE CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Nieznane polecenie wbudowane '%s'\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Błąd, puste polecenie\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Przekierowane wejście z %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Przekierowane wyjście diagnostyczne do %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Dołączanie wyjścia do %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Przekierowane wyjście do %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Dołączanie %.*s i czyszczenie\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Zamiast tego wykonywanie %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Błąd podczas uruchamiania, %d\n"
@@ -2246,3 +2242,18 @@ msgstr ""
 "\n"
 "# Ogólna (zmienna 'VPATH') ścieżka przeszukiwania:\n"
 "# "
+
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "błąd wewnętrzny: wiele opcji --sync-mutex"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "błąd wewnętrzny: wiele opcji --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "brak pamięci wirtualnej"
+
+#~ msgid "write error"
+#~ msgstr "błąd zapisu"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "WBUDOWANE RM %s\n"
index c19c8c548200895bd9568671ed36af4c1095a313..8dc66efb791033d4b9672b1f5f9a53a6868ce387 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index 95f25c951a7ccadacdaaba8b6187cf51785795a7..9013dec153c05d4a36f142a0a4aaa664876239ea 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU make 3.82\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2013-01-09 23:04-0300\n"
 "Last-Translator: Fábio Henrique F. Silva <fabiohfs@netscape.net>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -53,50 +53,50 @@ msgstr "touch: O membro `%s' n
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: O ar_member_touch retornou um código de erro inválido em `%s'"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "o lbr$set_module() falhou ao obter informações do módulo, estado = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() falhou com estado = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "erro na abertura da biblioteca `%s' para localizar o membro `%s'"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Membro `%s'%s: %ld bytes de %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (o nome pode estar truncado)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Data %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, modo = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Quebra.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "** [%s] O arquivo membro `%s' pode ser falso. Não foi apagado."
@@ -106,25 +106,25 @@ msgstr "** [%s] O arquivo membro `%s' pode ser falso. N
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "** O arquivo membro `%s' pode ser falso. Não foi apagado."
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "** [%s] Apagando arquivo `%s'"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "** Apagando arquivo `%s'"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "# comandos a executar"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (embutido):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (de `%s', linha %lu):\n"
@@ -206,154 +206,154 @@ msgstr "Vari
 msgid "unterminated variable reference"
 msgstr "referência a variável não finalizada"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Os comandos especificados para o arquivo `%s' em %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 "Os comandos para o arquivo `%s' foram encontrados por uma regra implícita,"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "mas `%s' é considerado o mesmo arquivo que `%s'."
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Os comandos para `%s' serão ignorados em favor daqueles para `%s'."
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "não pôde renomear de dois-pontos `%s' para dois-pontos duplos `%s'"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "não pôde renomer de dois-pontos duplos `%s' para dois-pontos `%s'"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "** Apagando arquivo intermediário `%s'"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Apagando arquivo intermediário...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Hora atual"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Data/Hora fora de faixa; substituindo %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Hora atual"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Não é um alvo:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "# Arquivo importante (prerequisito de .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "# Alvo Falso (prerequisito de .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "# Linha de Comando do Alvo."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "# Um Padrão, arquivo MAKEFILES ou -include/sinclude makefile."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Faltam as regras implícitas."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "# Pesquisa por regra implícita concluida."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "# Pesquisa por regra implícita não concluida."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "# Derivação padrão implícita/estática: `%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "# O arquivo é um pré-requisito intermediário."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "# Também faz:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "# O Período da modificação nunca foi verificado."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "# O Arquivo não existe."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "# O Arquivo está desatualizado."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "# Última modificação %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "# O Arquivo foi atualizado."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "# O Arquivo não foi atualizado."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "# Comandos em execução (ISTO É UMA FALHA)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "# Comandos de dependências em execução (ISTO É UMA FALHA)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "# Atualizado com sucesso."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "# Precisa ser atualizado (-q está definido)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "# Problemas com a atualização."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "# Valor inválido no membro `command_state' !"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -361,7 +361,7 @@ msgstr ""
 "\n"
 "# Arquivos"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -371,107 +371,107 @@ msgstr ""
 "# tabela hash de arquivos:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "primeiro argumento não numérico para a função `word'"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "o primeiro argumento para a função `word' deve ser maior que 0"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "primeiro argumento não numérico para a função `wordlist'"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "segundo argumento não numérico para a função `wordlist'"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe(): DuplicateHandle(In) falhou (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_open_pipe(): DuplicateHandle(Err) falhou (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() falhou (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() falhou\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Apagando o arquivo de lote temporário %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "Erro de gravação: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "O número de argumentos é insuficiente (%d) para a função `%s' "
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "A função `%s' não foi implementada nesta plataforma "
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "Chamada não terminada para a função `%s': faltando `%c'"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "O número de argumentos é insuficiente (%d) para a função `%s' "
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "O número de argumentos é insuficiente (%d) para a função `%s' "
 
 #: getopt.c:659
@@ -529,12 +529,12 @@ msgstr "%s: a op
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: a opção `-W %s' não permite um argumento\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -617,98 +617,98 @@ msgstr "Procurando uma regra com o arquivo intermedi
 msgid "Cannot create a temporary file\n"
 msgstr "Não foi possível criar um arquivos temporário\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (arquivo core criado)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] Erro %d (ignorado)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (embutido):"
 
-#: job.c:501
+#: job.c:503
 #, fuzzy, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "aviso: sobreescrevendo os comandos para o alvo `%s'"
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Erro 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "** [%s] Erro %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Erro 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "** Esperando que outros processos terminem."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Filho ativo %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (remoto)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Descarregando processo filho %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Descarregando processo filho %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Apagando o arquivo de lote temporário: %s\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Apagando o arquivo de lote temporário: %s\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Removendo o processo filho %p PID %s%s da cadeia.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Liberado sinalizador para o processo filho %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "gravar jobserver"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() falhou ao executar o processo (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -717,99 +717,99 @@ msgstr ""
 "\n"
 "Contados %d args na falha de execução\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Colocando o processo filho %p (%s) PID %s%s na cadeia.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Obtido o sinalizador para o processo filho %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "tarefas canalizadas lidas"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch: Arquivo `%s' não existe"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%sSem regra para processar o alvo `%s', necessário por `%s'%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "não pôde forçar os limites de carga neste sistema operacional"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "não pôde forçar a carga limite:"
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "sem manipuladores de arquivos: não é possível duplicar stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "sem manipuladores de arquivos: não é possível duplicar stdout\n"
 
-#: job.c:2223
+#: job.c:2278
 #, fuzzy
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "sem manipuladores de arquivos: não é possível duplicar stdin\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Não é possível restaurar stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Não é possível restaurar stdout\n"
 
-#: job.c:2254
+#: job.c:2309
 #, fuzzy
 msgid "Could not restore stderr\n"
 msgstr "Não é possível restaurar stdin\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "processo filho descarregado: pid %s, aguardando pelo pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Comando não encontrado"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Interpretador de comandos não encontrado"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: o espaço de ambiente pode estar cheio"
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL alterado (era `%s' e agora é `%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Criando arquivo de lote temporário %s\n"
 
-#: job.c:3148
+#: job.c:3206
 #, fuzzy
 msgid ""
 "Batch file contents:\n"
@@ -818,7 +818,7 @@ msgstr ""
 "Conteúdo do arquivo de lote:%s\n"
 "\t%s\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -827,7 +827,7 @@ msgstr ""
 "Conteúdo do arquivo de lote:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (linha %d) contexto inválido (!unixy && !batch_mode_shell)\n"
@@ -836,50 +836,50 @@ msgstr "%s (linha %d) contexto inv
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Tarefas paralelas (-j) não são suportadas nesta plataforma."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Opções:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr " -b, -m                      Ignorado para compatibilidade.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 " -B, --always-make           Processa todos os alvos incondicionalmente.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -887,18 +887,18 @@ msgstr ""
 " -C DIRETÓRIO, --directory=DIRETÓRIO\n"
 "                              Muda para o DIRETÓRIO antes de fazer algo.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr " -d                          Imprime muita informação de depuração.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 " --debug[=OPÇÕES]            Imprime vários tipos de informações de "
 "depuração.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -906,14 +906,14 @@ msgstr ""
 " -e, --environment-overrides\n"
 "                              Assume os valores das variáveis de ambiente.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=STRING               Avalia a STRING como uma declaração para um "
 "makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -921,15 +921,15 @@ msgstr ""
 " -f ARQUIVO, --file=ARQUIVO, --makefile=ARQUIVO\n"
 "                              Lê o ARQUIVO como se fosse um arquivo make.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr " -h, --help                   Imprime esta mensagem e sai.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr " -i, --ignore-errors         Ignora os erros dos comandos.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -938,7 +938,7 @@ msgstr ""
 "                              Pesquisa o DIRETÒRIO por arquivos make a "
 "incluir.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -946,14 +946,14 @@ msgstr ""
 " -j [N], --jobs[=N]          Permite N tarefas de uma vez; tarefas infinitas "
 "sem argumentos.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 " -k, --keep-going            Continua mesmo que alguns alvos não possam ser "
 "processados.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -963,7 +963,7 @@ msgstr ""
 "                              Não inicia múltiplas tarefas a menos que a "
 "carga seja menor que N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -971,7 +971,7 @@ msgstr ""
 "-L, --check-symlink-times  Usa o tempo mais antigo entre o vínculo simbólico "
 "e o alvo.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -981,7 +981,7 @@ msgstr ""
 "                              Não executa quaisquer comandos; apenas imprime-"
 "os.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -991,18 +991,18 @@ msgstr ""
 "                              Considera o ARQUIVO como muito antigo e não "
 "reprocessá-o.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 " -p, --print-data-base       Imprime o banco de dados interno do make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1010,21 +1010,21 @@ msgstr ""
 " -q, --question              Não executa os comandos; O código de saida "
 "indica se está atualizado.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr " -r, --no-builtin-rules      Desabilita as regras implícitas.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 " -R, --no-builtin-variables  Desabilita a configuração das variáveis "
 "embutidas.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr " -s, --silent, --quiet       Não ecoa os comandos.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1032,28 +1032,28 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Desativa a opção -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 " -t, --touch                 Executa um `touch' nos alvos ao invés de "
 "reprocessá-los.\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr " -d                          Imprime muita informação de depuração.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 " -v, --version               Imprime o número de versão do make e sai.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr " -w, --print-directory       Imprime o diretório atual.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1061,7 +1061,7 @@ msgstr ""
 " --no-print-directory        Desativa a opção -w, mesmo que ela esteja "
 "implicitamente ativada.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1069,7 +1069,7 @@ msgstr ""
 " -W ARQUIVO, --what-if=ARQUIVO, --new-file=ARQUIVO, --assume-new=ARQUIVO\n"
 "                              Considera o ARQUIVO infinitamente novo.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1077,31 +1077,26 @@ msgstr ""
 " --warn-undefined-variables  Avisa quando um variável não definida for "
 "referenciada.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "Cadeia de caracteres vazia não é válida como nome de arquivo"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "nível de depuração desconhecido: `%s'"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "erro interno: múltiplas opções --jobserver-fds"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Interrupção/Exceção capturada (código = 0x%lx, endereço = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1116,180 +1111,176 @@ msgstr ""
 "SinalExceção = %lx\n"
 "EndereçoExceção = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Violação de acesso: operação de escrita no endereço 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Violação de acesso: operação de leitura no endereço 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() definiu o default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell(), caminho de pesquisa do default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s está suspenso por 30 segundos..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) concluido. Continuando.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "erro interno: múltiplas opções --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, fuzzy, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Cliente Jobserver (fds %d,%d)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "erro interno: valor `%s' inválido para --jobserver-fds"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Cliente Jobserver (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "aviso: -jN forçado no submake: desabilitando o modo jobserver."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup jobserver"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr "aviso: jobserver indisponível: usando -j1. Inclua `+' na regra pai."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile na entrada padrão especificado duas vezes."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (arquivo temporário)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (arquivo temporário)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Tarefas paralelas (-j) não são suportadas nesta plataforma."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Reiniciando no modo de tarefa única (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, fuzzy, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Cliente Jobserver (fds %d,%d)\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "criando canalização de tarefas"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "inicializando a canalização do jobserver"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Vínculos simbólicos não são suportados: desabilite -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Atualizando os arquivos makefiles ...\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "O arquivo `%s' pode estar em loop; não reprocessá-lo.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Problemas ao reprocessar o arquivo `%s'."
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Arquivo `%s' incluido não foi encontrado."
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "O arquivo `%s' não foi encontrado."
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Não foi possível voltar ao diretório original."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Re-executando[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "desvinculado (arquivos temporário): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ". DEFAULT_GOAL contém mais do que um alvo"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Nenhum alvo indicado e nenhum arquivo make encontrado"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Sem alvo"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Atualizando os objetivos finais...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "aviso: O relógio está errado. Sua compilação pode ficar incompleta."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Uso: %s [opções] [alvo] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1298,7 +1289,7 @@ msgstr ""
 "\n"
 "Este programa foi compilado para %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1307,32 +1298,32 @@ msgstr ""
 "\n"
 "Este programa foi compilado para %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Informe os problemas para <bug-make@gnu.org>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "a opção `%s%s' requer um argumento não vazio"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "a opção `-%c' requer um argumento inteiro positivo"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sCompilado para %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sCompilado para %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1346,7 +1337,7 @@ msgstr ""
 "livremente.\n"
 "%sNÃO HÁ GARANTIAS, exceto o que for permitido por lei.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1355,7 +1346,7 @@ msgstr ""
 "\n"
 "# Banco de dados do Make, impresso em %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1369,10 +1360,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Erro desconhecido %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "A memória virtual encheu"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1394,65 +1381,61 @@ msgstr "Acesso do make"
 msgid "Child access"
 msgstr "Acesso filho"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Entrando em um diretório desconhecido\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Saindo de um diretório desconhecido\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Entrando no diretório `%s'\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Saindo do diretório `%s'\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Entrando em um diretório desconhecido\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Saindo de um diretório desconhecido\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Entrando no diretório `%s'\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Saindo do diretório `%s'\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "Erro de gravação: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "erro de gravação"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Pare.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1461,220 +1444,226 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Lendo arquivos makefile ...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "Lendo arquivos makefile `%s'"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (não há objetivo padrão)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (caminho de pesquisa)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (sem importância)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (sem expansão ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "síntaxe inválida na condicional"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "comandos começam antes do primeiro alvo"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "falta uma regra antes dos comandos"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "faltando o separador%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (você pensou em TAB ao invés de 8 espaços?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "faltando o separador%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "faltando o padrão dos alvos"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "múltiplos padrões para o alvo"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "padrão para o alvo não contém `%%'"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "faltando `endif'"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "nome de variável vazio"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "Texto estranho depois da diretiva `define'"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "faltando `endef', `define' não terminado"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "Texto estranho depois da diretiva `endef"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Texto estranho depois da diretiva `%s'"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "`%s' estranho"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "use apenas um `else' por condicional"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Definição de variável para o alvo mau formada"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "os pré-requisitos não podem ser definidos no comando"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "As regras implícitas e de padrão estático misturadas"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "As regras implícitas e normais misturadas"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "O alvo `%s' não coincide com o padrão"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "O arquivo alvo `%s' tem entradas : e ::"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "O alvo `%s' foi informado mais do que um vez na mesma regra."
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "aviso: sobreescrevendo os comandos para o alvo `%s'"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "aviso: ignorando comandos antigos para o alvo `%s'"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "As regras implícitas e normais misturadas"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "aviso: caracter NUL detetado; o resto da linha foi ignorado"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Nada a ser feito para `%s'."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "`%s' está atualizado."
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Atualizando o arquivo `%s'.\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sSem regra para processar o alvo `%s'%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sSem regra para processar o alvo `%s', necessário por `%s'%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sSem regra para processar o alvo `%s'%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Considerando o arquivo alvo `%s'.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Tentativa de atualizar o arquivo `%s' falhou.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "O arquivo `%s' já foi considerado.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Ainda está atualizando o arquivo `%s'.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Atualização do arquivo `%s' concluida.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "O arquivo `%s' não existe.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1682,137 +1671,137 @@ msgstr ""
 "*** Aviso: arquivo .LOW_RESOLUTION_TIME `%s' tem uma etiqueta de tempo de "
 "alta resolução"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Regra implícita encontrada para `%s'.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Nenhuma regra implícita encontrada para `%s'.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Usando os comandos padrões para `%s'.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Dependência circular %s <- %s abandonada."
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Pré-requisitos do alvo `%s' concluido.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Pré-requisitos do `%s' estão sendo criados.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Desistindo do arquivo `%s'.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "O alvo `%s' não foi reprocessado por causa de erros."
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Pré-requisito `%s' está ordenado para o alvo `%s'.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Pré-requisitos `%s' do alvo `%s' não existem.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Pré-requisito `%s' é mais novo do que o alvo `%s'.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Pré-requisito `%s' é mais antigo do que o alvo `%s'.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "O alvo `%s' é dois-pontos duplos e não tem pré-requisitos.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, fuzzy, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Nenhum comando para `%s' e nenhum pré-requisito foi alterado.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Processando `%s' devido a opção always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Não é necessário reprocessar o alvo `%s'"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; usando o nome VPATH `%s'"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "O alvo `%s' deve ser reprocessado.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Ignorando o nome VPATH `%s'.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Os comandos de `%s' estão rodando.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Falha ao reprocessar o alvo `%s'.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Alvo `%s' reprocessado com sucesso.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "O alvo `%s' precisa ser reprocessado sob -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Usando os comandos padrões para `%s'.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "** Aviso: O arquivo `%s' está com a hora adiantada"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "** Aviso: O arquivo `%s' está com a hora %s s adiantada"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "O elemento .LIBPATTERNS `%s' não é um padrão"
@@ -1822,7 +1811,7 @@ msgstr "O elemento .LIBPATTERNS `%s' n
 msgid "Customs won't export: %s\n"
 msgstr "Customizações não exportadas: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1830,7 +1819,7 @@ msgstr ""
 "\n"
 "# Regras implícitas."
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1838,7 +1827,7 @@ msgstr ""
 "\n"
 "# Faltam as regras implícitas."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1847,11 +1836,11 @@ msgstr ""
 "\n"
 "# %u regras implícitas, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "ERRO: num_pattern_rules errada!  %u != %u"
@@ -2063,45 +2052,45 @@ msgstr ""
 "# tabela hash de arquivos:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automático"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "padrão"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "ambiente"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "ambiente sob -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "linha de comando"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "diretiva `override'"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (de `%s', linha %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# tabela hash do conjunto de variávies:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2109,7 +2098,7 @@ msgstr ""
 "\n"
 "# Variáveis\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2117,7 +2106,7 @@ msgstr ""
 "\n"
 "# Valores da variável de padrões específicos"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2125,7 +2114,7 @@ msgstr ""
 "\n"
 "# Faltam valores para variável de padrões específicos"
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2144,77 +2133,82 @@ msgstr "aviso: vari
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() falhou com %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Aviso: Redireção vazia\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "erro interno: `%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr "-warning, pode ser preciso reativar o CTRL-Y no DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "EMBUTIDO [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "CD EMBUTIDO %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "RM EMBUTIDO %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "CD EMBUTIDO %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Comando embutido desconhecido `%s'.\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Erro, comando vazio\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Entrada de %s redirecionada\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Erro redirecionado para %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Saida redirecionada para %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Saida redirecionada para %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Acrescentado %.*s e limpo\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Executando %s ao invés de\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Erro de execução, %d\n"
@@ -2273,6 +2267,15 @@ msgstr ""
 #~ msgid "Invoking builtin recipe to update target `%s'.\n"
 #~ msgstr "Chamando comandos internos para atualizar o alvo `%s'.\n"
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "erro interno: múltiplas opções --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "A memória virtual encheu"
+
+#~ msgid "write error"
+#~ msgstr "erro de gravação"
+
 #~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
 #~ msgstr "%s # de buffers strcache: %d (* %d B/buffer = %d B)\n"
 
@@ -2285,6 +2288,9 @@ msgstr ""
 #~ "# tabela hash de arquivos:\n"
 #~ "#"
 
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "RM EMBUTIDO %s\n"
+
 #~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
 #~ msgstr "process_easy() falhou ao executar o processo (e=%ld)\n"
 
index 6aaf94befd879285171b01ac8fd5bc7324c8dae4..19546133dd288aa92dc6667f311bc1a9a1a22cc6 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index 790c4e94d93a5a43208d5fe68467a479203b5c0c..624c68ec2aec9381e059e5b050821acc13d977e3 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,26 +1,27 @@
-# Translation of make messages to Russian
+# Translation of make messages to Russian.
 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
 # This file is distributed under the same license as the make package.
-# Alexey Mahotkin <alexm@hsys.msk.ru> 2001
 #
 # Oleg S. Tihonov <tihonov@ffke-campus.mipt.ru>, 1998.
+# Alexey Mahotkin <alexm@hsys.msk.ru>, 2001.
 # Denis Perchine <dyp@perchine.com>, 2001, 2002.
-# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2010, 2013.
 # Pavel Maryanov <acid_jack@ukr.net>, 2009.
+# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2010, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.99.93\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-02 19:25+0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-10 20:44+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Lokalize 1.4\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: ar.c:46
 #, c-format
@@ -53,50 +54,50 @@ msgstr ""
 "обновление времени изменения: Функция ar_member_touch вернула\n"
 "ошибочное значение для «%s»"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module() не смогла извлечь информацию о модуле, статус = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$init_control() вернула код ошибки %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "Ошибка открытия библиотеки «%s» для поиска элемента «%s»"
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Элемент «%s»%s: %ld байт по адресу %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (имя может быть усечено)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Дата %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "В способе слишком много строк (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Останов.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Элемент архива «%s», кажется, недействителен; не удалён"
@@ -106,25 +107,25 @@ msgstr "*** [%s] Элемент архива «%s», кажется, недей
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Элемент архива «%s», кажется, недействителен; не удалён"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Удаляется файл «%s»"
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Удаляется файл «%s»"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  способ, который следует применить"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (встроенные):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr "  (из «%s», строка %lu):\n"
@@ -206,153 +207,153 @@ msgstr "Рекурсивная переменная «%s» ссылается с
 msgid "unterminated variable reference"
 msgstr "незавершённая ссылка на переменную"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Способ для файла «%s» был задан в %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Способ для файла «%s» был найден из неявного правила,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "но «%s» и «%s» теперь считаются одним и тем же файлом."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Способ для «%s» игнорируется, вместо него будет использован способ для «%s»."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "невозможно переименовать «%s» с одним двоеточием в «%s» с двумя двоеточиями"
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 "невозможно переименовать «%s» с двумя двоеточиями в «%s» с одним двоеточием"
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Удаление промежуточного файла «%s»"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Удаление промежуточных файлов...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Текущее время"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Временной штамп выходит за пределы диапазона; подставляем %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Текущее время"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Не является целью:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Ценный файл (зависимость .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Псевдоцель (зависимость от .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Цель, вызываемая из командной строки."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  По умолчанию, MAKEFILES, или -include/sinclude makefile."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "# Встроенное правило"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Производился поиск неявных правил."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Поиск неявных правил не производился."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Основа неявного или статического образца: «%s»\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Файл — промежуточная зависимость."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Собирает также:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Время изменения ни разу не проверялось."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Файл не существует."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Файл очень старый."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Время последнего изменения %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Файл был обновлён."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Файл не был обновлён."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  В данный момент уже применяется некий способ (ЭТО ОШИБКА)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr ""
 "#  В данный момент уже применяется некий способ по зависимостям (ЭТО ОШИБКА)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Успешно обновлено."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Должно быть обновлено (задан ключ -q)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Попытка обновления безуспешна."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Неверное значение члена «command_state»!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -360,7 +361,7 @@ msgstr ""
 "\n"
 "# Файлы"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -370,103 +371,104 @@ msgstr ""
 "# состояние файлов хеш-таблицы:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Поле «%s» не кешировано: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "нечисловой первый аргумент функции «word»"
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "первый аргумент функции «word» должен быть больше нуля"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "нечисловой первый аргумент функции «wordlist»"
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "нечисловой второй аргумент функции «wordlist»"
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(In) вернула код ошибки (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(Err) вернула код ошибки (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() вернула код ошибки (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() завершилась неудачно\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Очищаю временный пакетный файл %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "открытие: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "запись: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Некорректная операция с файлом: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "недостаточно аргументов (всего %d) функции «%s»"
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "не реализовано на этой платформе: функция «%s»"
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "незавершённый вызов функции «%s»: пропущено «%c»"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Пустое имя функции\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Ð\9dекоÑ\80Ñ\80екÑ\82наÑ\8f Ð¾Ð¿ÐµÑ\80аÑ\86иÑ\8f Ñ\81 Ñ\84айлом: %s"
+msgid "Invalid function name: %s"
+msgstr "Ð\9dекоÑ\80Ñ\80екÑ\82ное Ð¸Ð¼Ñ\8f Ñ\84Ñ\83нкÑ\86ии: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Слишком длинное имя функции: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "Некорректное минимальное число аргументов (всего %d) функции %s\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "Некорректное максимальное число аргументов (всего %d) функции %s\n"
 
 # Сообщения getopt исключены, т.к. они относятся к уже
@@ -526,12 +528,12 @@ msgstr "%s: ключ «-W %s» неоднозначен\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: ключ «-W %s» должен использоваться без аргумента\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: расширяется «%s»\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: вычисляется «%s»\n"
@@ -614,96 +616,96 @@ msgstr "Поиск правила с промежуточным файлом «%
 msgid "Cannot create a temporary file\n"
 msgstr "Не удалось создать временный файл\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (сделан дамп памяти)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (игнорирование)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<встроенное>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: ошибка выполнения рецепта для цели «%s»"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Ошибка 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Ошибка %d%s"
 
-#: job.c:517
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Ошибка 0x%x%s"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Ожидание завершения заданий…"
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Незавершённый потомок %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (удалённый)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Подбирается неудачно завершившийся  потомок %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Подбирается удачно завершившийся потомок %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Подчищаю временный пакетный файл %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Очистка временного пакетного файла %s завершилась с ошибкой (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Удаляется потомок %p PID %s%s из цепочки.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "освобождение семафора сервера заданий: (ошибка %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Освобождён токен для потомка %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "запись сервера заданий"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() не смогла запустить процесс (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -712,97 +714,97 @@ msgstr ""
 "\n"
 "При неудачном запуске сосчитано %d аргументов\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Помещение потомка %p (%s) PID %s%s в цепочку потомков.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "ожидание семафора или процесса-потомка: (ошибка %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Получен токен для потомка %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "чтение потока заданий"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: цель «%s» не существует"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: обновление цели «%s» из-за: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "эта операционная система не позволяет устанавливать пределы загрузки"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "невозможно установить пределы загрузки: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "закончились файловые дескрипторы: не удалось сделать копию stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "закончились файловые дескрипторы: не удалось сделать копию stdout\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "закончились файловые дескрипторы: не удалось сделать копию stderr\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Не удалось восстановить stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Не удалось восстановить stdout\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Не удалось восстановить stderr\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make нашла завершившегося потомка pid %s, всё ещё ожидает pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Команда не найдена"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Командный процессор не найден"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: вероятно, закончилось место под окружение"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "Переменная $SHELL изменилась (было «%s», теперь «%s»)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Создаётся временный пакетный файл %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -810,7 +812,7 @@ msgstr ""
 "Содержимое файла пакетных заданий:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -819,7 +821,7 @@ msgstr ""
 "Содержимое файла пакетных заданий:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -830,48 +832,48 @@ msgstr ""
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr "-O[ТИП] (--output-sync[=ТИП]) не настроен в данной сборке."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Не удалось открыть глобальную таблицу символов: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Загруженный объект %s не объявлено как совместимый с GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Не удалось загрузить символ %s из %s: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Пустое имя символа для загрузки: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Загружается символ %s из %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Операция «load» не поддерживается на этой платформе."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Ключи:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Игнорируется для совместимости.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Без условий отрабатывать все цели.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -879,18 +881,18 @@ msgstr ""
 "  -C КАТАЛОГ, --directory=КАТАЛОГ\n"
 "                              Перейти в КАТАЛОГ перед выполнением действий.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Выводить массу отладочных сообщений.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=ФЛАГИ]             Выводить различные типы отладочной "
 "информации.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -899,13 +901,13 @@ msgstr ""
 "                              Переменные окружения заменяют значения "
 "makefile.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=СТРОКА               Вычислить СТРОКУ как предложение makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -913,15 +915,15 @@ msgstr ""
 "  -f ФАЙЛ, --file=ФАЙЛ, --makefile=ФАЙЛ\n"
 "                              Использовать ФАЙЛ в качестве makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Показать эту справку и выйти.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Игнорировать ошибки способов.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -929,7 +931,7 @@ msgstr ""
 "  -I КАТАЛОГ, --include-dir=КАТАЛОГ\n"
 "                              Искать включаемые make-файлы в КАТАЛОГЕ.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -938,14 +940,14 @@ msgstr ""
 "                              если N не указано, число заданий "
 "неограничено.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Продолжать работу, даже если некоторые цели\n"
 "                              не могут быть достигнуты.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -954,7 +956,7 @@ msgstr ""
 "  -l [N], --load-average[=N], --max-load[=N]         Не запускать\n"
 "                               несколько заданий, если загрузка больше N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -962,7 +964,7 @@ msgstr ""
 "  -L, --check-symlink-times   Использовать последнее mtime при выборе между\n"
 "                              символическими ссылками и целью.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -972,7 +974,7 @@ msgstr ""
 "                              Не применять способ на самом деле; просто\n"
 "                              напечатать его.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -982,7 +984,7 @@ msgstr ""
 "                              Считать ФАЙЛ очень старым и не переделывать "
 "его.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -991,12 +993,12 @@ msgstr ""
 "                              Синхронизировать вывод параллельных\n"
 "                              заданий с типом ТИП.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 "  -p, --print-data-base       Напечатать внутреннюю базу данных make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1005,23 +1007,23 @@ msgstr ""
 "                              код завершения показывает, всё ли уже "
 "сделано.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Не использовать встроенные неявные правила.\n"
 
 # Что такое "variable settings"?
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables   Выключить установку встроенных\n"
 "                              значений переменных.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet        Не показывать сами способы.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1029,26 +1031,26 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Отменить ключ -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Установить время доступа целей в текущее,\n"
 "                              а не пересобирать их.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Выводить трассировочную информацию.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Показать информацию о версии и выйти.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Напечатать текущий каталог.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1056,7 +1058,7 @@ msgstr ""
 "  --no-print-directory        Отменить ключ -w, даже если он был явно "
 "указан.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1064,7 +1066,7 @@ msgstr ""
 "  -W ФАЙЛ, --what-if=ФАЙЛ, --new-file=ФАЙЛ, --assume-new=ФАЙЛ\n"
 "                              Считать ФАЙЛ всегда новым.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1072,30 +1074,26 @@ msgstr ""
 "  --warn-undefined-variables  Выдавать предупреждение при ссылке\n"
 "                              на неопределённую переменную.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "пустая строка недопустима в качестве имени файла"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "задан неизвестный уровень отладки «%s»"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "неизвестный тип output-sync «%s»"
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "внутренняя ошибка: несколько ключей --sync-mutex"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: поймано прерывание или исключение (код = 0x%lx, адрес = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1110,41 +1108,37 @@ msgstr ""
 "Флаги исключения = %lx\n"
 "Адрес исключения = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Нарушение доступа: операция записи по адресу 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Нарушение доступа: операция чтения адреса 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() устанавливает default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell(): поиск в путях устанавливает default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s приостанавливается на 30 секунд..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) завершён. Продолжаем.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "внутренняя ошибка: несколько ключей --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
@@ -1152,143 +1146,143 @@ msgstr ""
 "внутренняя ошибка: не удалось открыть семафор сервера заданий «%s»: (ошибка "
 "%ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Клиент сервера заданий (семафор %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "внутренняя ошибка: неправильная строка --jobserver-fds «%s»"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Клиент сервера заданий (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "предупреждение: в суб-Makefile принудительно задан -jN; режим сервера "
 "заданий запрещён"
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "создаю копию сервера заданий"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "предупреждение: сервер заданий недоступен: используется -j1. Добавьте «+» к "
 "правилу в родительском make."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile из стандартного ввода указан дважды."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (временный файл)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (временный файл)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Параллельные задания (-j) не поддерживаются на этой платформе."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Возвращается режим одиночного задания (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Количество слотов сервера заданий ограничено %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "создание семафора сервера заданий: (ошибка %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "создаётся канал заданий"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "начальная настройка сервера заданий"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Символические ссылки не поддерживаются: отменяется ключ -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Обновление make-файлов....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Make-файл «%s», возможно, зациклен, он не будет пересобираться.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Попытка пересобрать make-файл «%s» завершилась неудачно."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Включаемый make-файл «%s» не найден."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Make-файл «%s» не найден"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Невозможно перейти в первоначальный каталог."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Повторное выполнение[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (временный файл)"
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL содержит более одной цели"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Не заданы цели и не найден make-файл"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Нет целей"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Обновление целей результата...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "предупреждение: Неправильный ход часов.  Сборка может быть неполной."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Использование: %s [КЛЮЧ]... [ЦЕЛЬ]...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1297,7 +1291,7 @@ msgstr ""
 "\n"
 "Эта программа собрана для %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1306,32 +1300,32 @@ msgstr ""
 "\n"
 "Эта программа собрана для %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Сообщайте об ошибках по адресу <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "для ключа «%s%s» нужно указать аргументом непустую строку"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "ключ «-%c» должен использоваться с целым положительным аргументом"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sЭта программа собрана для %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sЭта программа собрана для %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1344,7 +1338,7 @@ msgstr ""
 "%sЭто свободное программное обеспечение: вы можете свободно изменять его и\n"
 "%sраспространять. НЕТ НИКАКИХ ГАРАНТИЙ вне пределов, допустимых законом.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1353,7 +1347,7 @@ msgstr ""
 "\n"
 "# База данных Make, напечатана %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1367,10 +1361,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Неизвестная ошибка %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "закончилась виртуальная память"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1394,65 +1384,61 @@ msgstr "Доступ make"
 msgid "Child access"
 msgstr "Доступ потомка"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Вход в неизвестный каталог\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Выход из неизвестного каталога\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: вход в каталог «%s»\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: выход из каталога «%s»\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: вход в неизвестный каталог\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: выход из неизвестного каталога\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: вход в каталог «%s»\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: выход из каталога «%s»\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "ошибка записи: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "ошибка записи"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Останов.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1461,215 +1447,221 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Чтение make-файлов...\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Чтение make-файла «%s»"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (нет цели по умолчанию)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (путь поиска)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (игнорировать ошибки)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (не раскрывать символ `~') "
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "Пропуск UTF-8 BOM в make-файле «%s»\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "Пропуск UTF-8 BOM в буфере make-файла\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "неверный синтаксис в условном выражении"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: не удалось загрузить"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "обнаружен способ до первого определения цели"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "перед способом отсутствует правило"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "пропущен разделитель%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr "(не имели ли вы в виду TAB вместо восьми пробелов?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "пропущен разделитель%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "пропущен образец цели"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "несколько образцов цели"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "образец цели не содержит «%%»"
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "отсутствует «endif»"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "пустое имя переменной"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "излишний текст после директивы «define»"
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "отсутствует «endif», незавершённая «define»"
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "излишний текст после директивы «endef»"
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Излишний текст после директивы «%s»"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "излишняя «%s»"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "в условном выражении возможна только одна «else»"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Неправильный формат задания переменной цели"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "в способах не могут задаваться зависимости"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "смешаны неявные правила и правила со статическими образцами"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "смешаны неявные и обычные правила"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "цель «%s» не соответствует образцу целей"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "целевой файл «%s» имеет вхождения и с :, и с ::"
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "цель «%s» указана несколько раз в одном правиле"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "предупреждение: переопределение способа для цели «%s»"
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "предупреждение: старый способ для цели «%s» игнорируются"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "смешаны неявные и обычные правила"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "предупреждение: встречен символ NUL; игнорируется до конца строки"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Цель «%s» не требует выполнения команд."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "«%s» не требует обновления."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Обрезается файл «%s».\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sНет правила для сборки цели «%s»%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sНет правила для сборки цели «%s», требуемой для «%s»%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sНет правила для сборки цели «%s»%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Обработка целевого файла «%s».\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Предыдущая попытка обновить файл «%s» завершилась неудачно.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Файл «%s» уже был обработан.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Файл «%s» обновляется в данный момент.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Обновление файла «%s» завершено.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Файл «%s» не существует.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1677,137 +1669,137 @@ msgstr ""
 "*** Предупреждение: у файла «%s» параметр LOW_RESOLUTION_TIME содержит метку "
 "времени с высокой точностью"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Найдено неявное правило для «%s».\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Не найдено неявного правила для «%s».\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Использование способа по умолчанию для «%s».\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Циклическая зависимость %s <- %s пропущена."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Обновление целей, от которых зависит целевой файл «%s», завершено.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Цели, от которых зависит «%s», в настоящий момент собираются.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Аварийный останов на целевом файле «%s».\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Цель «%s» не была пересобрана из-за ошибок."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Зависимость «%s» для цели «%s» зависит от порядка.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Зависимость «%s» цели «%s» не существует.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Зависимость «%s» новее, чем цель «%s».\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Зависимость «%s» старее, чем цель «%s».\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Цель «%s» объявлена с двумя двоеточиями и не имеет зависимостей.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Способ для «%s» не задан, и начальные условия не изменены.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Пересборка «%s» из-за установленного флага always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Нет необходимости пересобирать цель «%s»"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; используется VPATH-имя «%s»"
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Необходимо пересобрать цель «%s».\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Игнорируется VPATH-имя «%s».\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "В настоящее время применяется способ «%s».\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Не удалось пересоздать файл цели «%s».\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Целевой файл «%s» успешно пересоздан.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Целевой файл «%s» требует пересоздания с ключом -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Использование команд по умолчанию для «%s».\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Предупреждение: время изменения файла «%s» находится в будущем"
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Предупреждение: время изменения файла «%s» находится в будущем (%s)"
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Элемент .LIBPATTERNS «%s» не является образцом"
@@ -1817,7 +1809,7 @@ msgstr "Элемент .LIBPATTERNS «%s» не является образцо
 msgid "Customs won't export: %s\n"
 msgstr "Не экспортируемые настройки: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1825,7 +1817,7 @@ msgstr ""
 "\n"
 "# Неявные правила"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1833,7 +1825,7 @@ msgstr ""
 "\n"
 "# Неявных правил нет."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1842,11 +1834,11 @@ msgstr ""
 "\n"
 "# Неявных правил: %u, терминальных: %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " терминал."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "ОШИБКА: неверное значение num_pattern_rules! %u != %u"
@@ -2066,44 +2058,44 @@ msgstr ""
 "# состояние хеш-таблицы:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "автоматическая"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "по умолчанию"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "определена в среде"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "make-файл"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "окружение с -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "определена в командной строке"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "Директива «override»"
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (из «%s», строка %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# состояние переменных в хеш-таблице:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2111,7 +2103,7 @@ msgstr ""
 "\n"
 "# Переменные\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2119,7 +2111,7 @@ msgstr ""
 "\n"
 "# Значения переменных особенные для маски"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2127,7 +2119,7 @@ msgstr ""
 "\n"
 "# Нет значений переменных особенных для маски."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2146,79 +2138,84 @@ msgstr "предупреждение: неопределённая переме
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() вернула код ошибки %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Предупреждение: Пустое перенаправление\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "внутренняя ошибка: «%s» command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-предупреждение, возможно вам потребуется повторно разрешить\n"
 "обработку CTRL-Y из DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "ВСТРОЕННЫЙ [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "ВСТРОЕННЫЙ CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "ВСТРОЕННЫЙ RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "ВСТРОЕННЫЙ CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Неизвестная встроенная команда '%s'\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Ошибка, пустая команда\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Стандартный ввод перенаправлен из %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Поток ошибок перенаправлен в %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Стандартный вывод добавлен в %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Стандартный вывод перенаправлен в %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Добавить %.*s и очистить\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Вместо заданного выполняется %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Ошибка порождения процесса, %d\n"
@@ -2262,6 +2259,21 @@ msgstr ""
 "# Общий (переменная «VPATH») путь поиска:\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "внутренняя ошибка: несколько ключей --sync-mutex"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "внутренняя ошибка: несколько ключей --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "закончилась виртуальная память"
+
+#~ msgid "write error"
+#~ msgstr "ошибка записи"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "ВСТРОЕННЫЙ RM %s\n"
+
 #~ msgid "#  Invalid value in 'update_status' member!"
 #~ msgstr "#  Неверное значение члена «update_status»!"
 
index 5dccff308ab7b02451cda646a00c4db1e38ea6e9..4f9b30568dca18fd9f7471264dd4dce841c51f9c 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index 83866794875ff861fb444b79c11d92a7bec80758..4545ab3260210da88645bee709b0c0246994675a 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -5,13 +5,13 @@
 # Christer Andersson <klamm@comhem.se>, 2007.
 # Göran Uddeborg <goeran@uddeborg.se>, 2011, 2013.
 #
-# $Id: make.po,v 1.11 2013-10-01 22:03:56+02 göran Exp $
+# $Id: make.po,v 1.14 2013-10-09 21:33:42+02 göran Exp $
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.99.93\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-01 22:03+0200\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-09 21:33+0200\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
@@ -48,51 +48,51 @@ msgstr "nudda: medlemmen ”%s” finns inte i ”%s”"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "nudda: Felaktig returkod från ar_member_touch på ”%s”"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "lbr$set_module() misslyckades med att extrahera modulinformation, status = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() misslyckades och gav status = %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "kan inte öppna biblioteket ”%s” för att slå upp medlemmen ”%s”"
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Medlem ”%s”%s: %ld byte vid %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (namnet kan vara avkortat)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Datum %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, flaggor = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "Receptet har för många rader (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Avbrott.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Arkivmedlemmen ”%s” kan vara felaktig; ej borttagen"
@@ -102,25 +102,25 @@ msgstr "*** [%s] Arkivmedlemmen ”%s” kan vara felaktig; ej borttagen"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Arkivmedlemmen ”%s” kan vara felaktig; ej borttagen"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Tar bort filen ”%s”"
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Tar bort filen ”%s”"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  recept att utföra"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (inbyggd):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (från ”%s”, rad %lu):\n"
@@ -202,152 +202,152 @@ msgstr "Den rekursiva variabeln ”%s” hänvisar till sig själv (så småning
 msgid "unterminated variable reference"
 msgstr "oavslutad variabelreferens"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Recept angavs för filen ”%s” på %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Recept för filen ”%s” hittades genom sökning efter implicit regel,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "men ”%s” anses nu vara samma fil som ”%s”."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Kommer att bortse från recept för ”%s” till förmån för det som gäller ”%s”."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "kan inte ändra namn från enkelkolon ”%s” till dubbelkolon ”%s”"
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "kan inte ändra namn från dubbelkolon ”%s” till enkelkolon ”%s”"
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Tar bort mellanfilen ”%s”"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Tar bort mellanfiler …\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Nuvarande tid"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Tidsvärde utanför gränser; ersätter med %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Nuvarande tid"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Inte ett mål:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Värdefull fil (nödvändig för .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Låtsasmål (nödvändig för .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Kommandoradsmål."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr ""
 "#  En standardmakefil, eller enligt MAKEFILES, eller en -include/sinclude-"
 "makefil."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "#  Inbyggd regel"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Implicit regelsökning har genomförts."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Implicit regelsökning har inte genomförts."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Implicit/statisk mönsterstam: ”%s”\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Filen är ett övergående beroende."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Skapar också:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Ändringstiden har inte kontrollerats."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Filen finns inte."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Filen är mycket gammal."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Senast ändrad %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Filen har uppdaterats."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Filen har inte uppdaterats."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Recept körs just nu (DETTA ÄR ETT FEL)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Beroenderecept körs (DETTA ÄR ETT FEL)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Uppdateringen lyckades."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Behöver uppdateras (-q har angivits)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Uppdateringen misslyckades."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Ogiltigt värde i medlemmen ”command_state”!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -355,7 +355,7 @@ msgstr ""
 "\n"
 "# Filer"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -365,103 +365,104 @@ msgstr ""
 "# statistik för filhashtabell:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Fältet ”%s” cachas inte: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "icke-numeriskt första argument till funktionen ”word”"
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "det första argumentet till funktionen ”word” måste vara större än 0"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "icke-numeriskt första argument till funktionen ”wordlist”"
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "icke-numeriskt andra argument till funktionen ”wordlist”"
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(In) misslyckades (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(Fel) misslyckades (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() misslyckades (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() misslyckades\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Städar bort tillfällig satsfil %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "öppna: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "skriv: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Felaktig filåtgärd: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "otillräckligt antal argument (%d) till funktionen ”%s”"
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "ej implementerat på denna plattform: funktionen ”%s”"
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "oavslutat funktionsanrop ”%s”: ”%c” saknas"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Tomt funktionsnamn\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Felaktig filåtgärd: %s"
+msgid "Invalid function name: %s"
+msgstr "Felaktigt funktionsnamn: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Funktionsnamnet är för långt: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "Felaktigt minsta antal argument (%d) till funktionen ”%s”\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "Felaktigt största antal argument (%d) till funktionen ”%s”\n"
 
 #: getopt.c:659
@@ -519,12 +520,12 @@ msgstr "%s: flaggan ”-W %s” är tvetydig\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: flaggan ”-W %s” tar inget argument\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: Expanderar ”%s”\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: Evaluerar ”%s”\n"
@@ -607,96 +608,96 @@ msgstr "Letar efter en regel med mellanfilen ”%s”.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Kan inte skapa en temporärfil\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (minnesdump)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (ignoreras)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<inbyggd>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: receptet för målet ”%s” misslyckades"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Fel 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Fel %d%s"
 
-#: job.c:517
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Fel 0x%x%s"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s]: %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Inväntar oavslutade jobb..."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Levande barnprocess %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (fjärr)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Inhöstar misslyckad barnprocess: %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Inhöstar lyckad barnprocess: %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Städar bort tillfällig satsfil %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Bortstädning av tillfällig satsfil %s misslyckades (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Tar bort barnprocessen %p PID %s%s från kedjan.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "släpp jobbserversemafor: (Fel %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Frigjorde symbol för barnprocessen %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "skriver till jobbserver"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() misslyckades med processtart (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -705,97 +706,97 @@ msgstr ""
 "\n"
 "Räknade till %d argument vid misslyckad start\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "För upp barnprocessen %p (%s) PID %s%s på kedjan.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "väntan på semafor eller barnprocess: (Fel %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Erhöll symbol för barnprocessen %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "läser från jobbledning"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: målet ”%s” finns inte"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: uppdatera målet ”%s” på grund av: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "kan inte upprätthålla lastbegränsningar i detta operativsystem"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "kan inte upprätthålla lastbegränsning: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "inga fler filhandtag: kunde inte duplicera standard in\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "inga fler filhandtag: kunde inte duplicera standard ut\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "inga fler filhandtag: kunde inte duplicera standard fel\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Kunde inte återställa standard in\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Kunde inte återställa standard ut\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Kunde inte återställa standard fel\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make inhöstade barn-pid %s, inväntar fortfarande pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Kommandot hittades inte"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Skalprogrammet hittades inte"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: miljöutrymmet kanske är slut"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL ändrades (var ”%s”, är nu ”%s”)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Skapar tillfällig satsfil %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -803,7 +804,7 @@ msgstr ""
 "Satsfilinnehåll:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -812,7 +813,7 @@ msgstr ""
 "Satsfilinnehåll:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (rad %d) Felaktigt skalsammanhang (!unixy && !batch_mode_shell)\n"
@@ -821,48 +822,48 @@ msgstr "%s (rad %d) Felaktigt skalsammanhang (!unixy && !batch_mode_shell)\n"
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr "-O[TYP] (--output-sync[=TYP]) är inte konfigurerat för detta bygge."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Misslyckades att öppna den globala symboltabellen: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Laddat objekt %s är inte deklarerat att vara GPL-kompatibelt"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Misslyckades att ladda symbolen %s från %s: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Tomt symbolnamn för laddning: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Laddar symbol %s från %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Operationen ”load” stödjs inte på denna plattform."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Flaggor:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ignoreras av kompatibilitetsskäl.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Bygg ovillkorligen alla mål.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -870,19 +871,19 @@ msgstr ""
 "  -C KATALOG, --directory=KATALOG\n"
 "                              Byt katalog till KATALOG innan något görs.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr ""
 "  -d                          Skriv ut massor av felsökningsinformation.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=FLAGGOR]           Skriv ut olika sorters "
 "felsökningsinformation.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -890,12 +891,12 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              Miljövariabler åsidosätter makefiler.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr "  --eval=STRÄNG               Evaluera STRÄNG som en makefile-sats.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -903,15 +904,15 @@ msgstr ""
 "  -f FIL, --file=FIL, --makefile=FIL\n"
 "                              Använd FIL som makefil.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Skriv ut detta meddelande och avsluta.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Ignorera fel från recept.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -919,7 +920,7 @@ msgstr ""
 "  -I KATALOG, --include-dir=KATALOG\n"
 "                              Genomsök KATALOG efter inkluderade makefiler.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -927,13 +928,13 @@ msgstr ""
 "  -j [N], --jobs[=N]          Tillåt N samtidiga jobb; oändligt många om "
 "inget antal anges.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Fortsätt även om vissa mål inte kan skapas.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -943,7 +944,7 @@ msgstr ""
 "                              Påbörja fler jobb endast om lasten understiger "
 "N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -951,7 +952,7 @@ msgstr ""
 "  -L, --check-symlink-times   Använd den senaste av mtiderna för symboliska "
 "länkar eller mål.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -960,7 +961,7 @@ msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Kör inte något recept, skriv bara ut dem.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -970,7 +971,7 @@ msgstr ""
 "                              Betrakta FIL som mycket gammal och återskapa "
 "den inte.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -979,11 +980,11 @@ msgstr ""
 "                              Synkronisera utmatningen av parallella jobb\n"
 "                              enligt TYP.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Skriv ut makes interna databas.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -991,22 +992,22 @@ msgstr ""
 "  -q, --question              Kör inga recept; slutstatus visar om det är "
 "aktuellt.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Inaktivera de inbyggda implicita reglerna.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Inaktivera de inbyggda "
 "variabelinställningarna.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Återge inte recept.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1014,26 +1015,26 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Stäng av -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Nydatera mål i stället för att återskapa dem.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Skriv spårningsinformation.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr ""
 "  -v, --version               Skriv ut makes versionsnummer och avsluta.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Skriv ut aktuell katalog.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1041,7 +1042,7 @@ msgstr ""
 "  --no-print-directory        Stäng av -w, även om det är implicit "
 "påslaget.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1049,7 +1050,7 @@ msgstr ""
 "  -W FIL, --what-if=FIL, --new-file=FIL, --assume-new=FIL\n"
 "                              Betrakta FIL som hur ny som helst.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1057,30 +1058,26 @@ msgstr ""
 "  --warn-undefined-variables  Varna vid användning av en odefinierad "
 "variabel.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "en tom sträng är ett ogiltigt filnamn"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "okänd felsökningsnivå ”%s” angiven"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "okänd typ av utmatningssynkronisering ”%s”"
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "internt fel: flera flaggor ”--sync-mutex”"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Avbrott/Undantag fångat (kod = 0x%lx, adress = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1095,182 +1092,178 @@ msgstr ""
 "Undantagsflaggor = %lx\n"
 "Undantagsadress = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Åtkomstförseelse: skrivinstruktion på adressen 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Åtkomstförseelse: läsinstruktion på adressen 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() ger default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "sökvägen för find_and_set_shell() gav default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s suspenderas i 30 sekunder..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "färdig med sleep(30). Fortsätter.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "internt fel: flera \"--jobserver-fds\"-flaggor"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr "Internt fel: kan inte öppna jobbserversemaforen ”%s”: (Fel %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Jobbserverklient (semafor %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "internt fel: ogiltig sträng ”--jobserver-fds” ”%s”"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Jobbserverklient (fb %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "varning: -jN framtvingat i del-make: inaktiverar jobbserverläge."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "duplicerar jobbserver"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "varning: jobbserver otillgänglig: använder -j1. Lägg till ”+” i "
 "föräldraregeln."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefil från standard in angavs dubbelt."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (temporärfil)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (temporärfil)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Parallella jobb (-j) stöds inte på denna plattform."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Återställer till enkeljobbsläge (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Jobbserfacj begränsat till %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "skapar jobbserversemafor: (Fel %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "skapar jobbledning"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "iordningställer ledning till jobbserver"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Symboliska länkar stöds inte: inaktiverar -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Uppdaterar makefiler...\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Makefilen ”%s” kan loopa; återskapas inte.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Misslyckades med att återskapa makefilen ”%s”."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Den inkluderade makefilen ”%s” fanns inte."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Makefilen ”%s” fanns inte"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Kunde inte återgå till ursprungskatalogen."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Utför på nytt[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "avlänka (temporärfil): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL innehåller fler än ett mål"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Inga mål angavs och ingen makefil hittades"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Inga mål"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Uppdaterar slutmål...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "varning:  Klockförskjutning upptäckt.  Bygget kan ha blivit ofullständigt."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Användning: %s [flaggor] [mål] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1279,7 +1272,7 @@ msgstr ""
 "\n"
 "Detta program byggdes för %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1288,34 +1281,34 @@ msgstr ""
 "\n"
 "Detta program byggdes för %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Anmäl fel till <bug-make@gnu.org>.\n"
 "Skicka synpunkter på översättningen till <sv@li.org>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "flaggan ”%s%s” kräver ett strängargument som inte är tomt"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "flaggan ”-%c” kräver ett positivt heltal som argument"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sByggt för %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sByggt för %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1328,7 +1321,7 @@ msgstr ""
 "%sDetta är fri programvara. du får lov att ändra och vidaredistribuera den.\n"
 "%sDet finns INGEN GARANTI, så långt lagen tillåter.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1337,7 +1330,7 @@ msgstr ""
 "\n"
 "# Make-databas, utskriven %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1351,10 +1344,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Okänt fel %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "virtuellt minne uttömt"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1376,65 +1365,61 @@ msgstr "Make-åtkomst"
 msgid "Child access"
 msgstr "Barnåtkomst"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Går till en okänd katalog\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Lämnar en okänd katalog\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Går till katalogen ”%s”\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Lämnar katalogen ”%s”\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Går till en okänd katalog\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Lämnar en okänd katalog\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Går till katalogen ”%s”\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Lämnar katalogen ”%s”\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "skrivfel: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "skrivfel"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Stannar.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1443,352 +1428,358 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Läser makefiler...\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Läser makefilen ”%s”"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (inget standardmål)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (sökväg)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (oviktigt)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (ingen ~-expansion)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "Hoppar över UTF-8-BOM i makefilen ”%s”\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "Hoppar över UTF-8-BOM i makefile-buffert\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "ogiltig syntax i villkorssats"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: misslyckades att ladda"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "recept inleds före första målet"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "regel saknas före recept"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "separator saknas%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (var avsikten TAB i stället för 8 mellanslag?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "separator saknas%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "målmönster saknas"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "flera målmönster"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "målmönstret innehåller inget ”%%”"
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "”endif” saknas"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "tomt variabelnamn"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "överflödig text efter direktivet ”define”"
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "”endef” saknas, oavslutad ”define”"
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "överflödig text efter direktivet ”endef”"
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "överflödig text efter direktivet ”%s”"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "överflödigt ”%s”"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "endast ett ”else” per villkor"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Felformad målberoende variabeldefinition"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "beroenden kan inte definieras i recept"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "blandade implicita regler och statiska mönsterregler"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "blandade implicita regler och normala regler"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "målet ”%s” motsvarar inte målmönstret"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "målfilen ”%s” har både poster med : och ::"
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "målet ”%s” anges flera gånger i samma regel"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "varning: åsidosätter recept för målet ”%s”"
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "varning: ignorerar gammalt recept för målet ”%s”"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "blandade implicita regler och normala regler"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "varning: NUL-tecken upptäckt, bortser från resten av raden"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Inget behöver göras för ”%s”."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "”%s” är aktuell."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Beskär filen ”%s”.\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sIngen regel för att skapa målet ”%s”%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sIngen regel för att skapa målet ”%s”, som behövs av ”%s”%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sIngen regel för att skapa målet ”%s”%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Överväger målfilen ”%s”.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Misslyckades nyligen med att uppdatera filen ”%s”.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Filen ”%s” har redan övervägts.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Uppdaterar fortfarande filen ”%s”.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Slutförde uppdaterandet av filen ”%s”.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Filen ”%s” finns inte.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
 "*** Varning: .LOW_RESOLUTION_TIME-filen ”%s” har en högupplöst tidsstämpel"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Hittade en implicit regel för ”%s”.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Hittade ingen implicit regel för ”%s”.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Använder standardrecept för ”%s”.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Det cirkulära beroendet %s <- %s släpptes."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Avslutade förutsättningarna för målfilen ”%s”.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Förutsättningarna för ”%s” skapas.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Ger upp med målfilen ”%s”.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Målet ”%s” återskapades inte på grund av fel."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Förutsättningen ”%s” för målet ”%s” är endast ordning.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Förutsättningen ”%s” för målet ”%s” finns inte.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Förutsättningen ”%s” är nyare än målet ”%s”.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Förutsättningen ”%s” är äldre än målet ”%s”.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Målet ”%s” är dubbelkolon och har inga förutsättningar.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Inget recept för ”%s” och inga förutsättningar har förändrats.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Skapar ”%s” på grund av flaggan always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Inget behov att återskapa målet ”%s”"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; använder VPATH-namnet ”%s”"
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Måste återskapa målet ”%s”.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Bortser från VPATH-namnet ”%s”.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Receptet för ”%s” körs.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Misslyckades med att återskapa målfilen ”%s”.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Återskapade målfilen ”%s”.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Målfilen ”%s” behöver återskapas med -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Använder standardkommandon för ”%s”.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Varning: Filen ”%s” har ett ändringstid i framtiden"
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Varning: Filen ”%s” har en ändringstid %s s i framtiden"
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ".LIBPATTERNS-elementet ”%s” är inte ett mönster"
@@ -1798,7 +1789,7 @@ msgstr ".LIBPATTERNS-elementet ”%s” är inte ett mönster"
 msgid "Customs won't export: %s\n"
 msgstr "Customs kommer inte att exportera %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1806,7 +1797,7 @@ msgstr ""
 "\n"
 "# Implicita regler"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1814,7 +1805,7 @@ msgstr ""
 "\n"
 "# Inga implicita regler."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1823,11 +1814,11 @@ msgstr ""
 "\n"
 "# %u implicita regler, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " slutregler."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "FEL: num_pattern_rules är felaktigt!  %u != %u"
@@ -2045,44 +2036,44 @@ msgstr ""
 "# statistik för hashtabell:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "automatisk"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "normal"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "miljö"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefil"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "miljö enligt -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "kommandorad"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "”override”-direktiv"
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (från ”%s”, rad %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# statistik för variabelmängd-hashtabell:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2090,7 +2081,7 @@ msgstr ""
 "\n"
 "# Variabler\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2098,7 +2089,7 @@ msgstr ""
 "\n"
 "# Mönsterspecifika variabelvärden"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2106,7 +2097,7 @@ msgstr ""
 "\n"
 "# Inga mönsterspecifika variabelvärden."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2125,77 +2116,82 @@ msgstr "varning: odefinierad variabel ”%.*s”"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() misslyckades med %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Varning: Tom omdirigering\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "internt fel: ”%s” command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr "-varning, CTRL-Y-hantering kanske behöver återställas från DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "INBYGGT [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "INBYGGT CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "INBYGGT RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "INBYGGT CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Okänt inbyggt kommando \"%s\"\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Fel, tomt kommando\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Inkanal omdirigerad till %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Felkanal omdirigerad till %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Lägg till utdata till %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Utkanal omdirigerad till %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Lägg till %.*s och rensa upp\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Utför %s i stället\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Fel vid avknoppning, %d\n"
@@ -2238,3 +2234,18 @@ msgstr ""
 "\n"
 "# Allmän sökväg (enligt ”VPATH”-variabeln):\n"
 "# "
+
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "internt fel: flera flaggor ”--sync-mutex”"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "internt fel: flera \"--jobserver-fds\"-flaggor"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "virtuellt minne uttömt"
+
+#~ msgid "write error"
+#~ msgstr "skrivfel"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "INBYGGT RM %s\n"
index 1646492e64b995662ba49925f895996ea571ddc1..6a3ede868b4200121a216912362b33b5430387ad 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index 6f7f32a1bc9582c1da1b73a7e8230b5a42d6acec..79aa8076c5994eca146208c20c2673050d3bba99 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.81\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2006-04-23 08:45+0300\n"
 "Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -46,50 +46,50 @@ msgstr "Dokunulup geçildi: Üye `%s', `%s' içinde yok"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "Dokunulup geçildi: `%s' deki ar_member_touch'dan dönen kod hatalı"
 
-#: arscan.c:67
+#: arscan.c:124
 #, fuzzy, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module modül bilgisini çıkarırken başarısız oldu, durum = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, fuzzy, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control durum =%d ile başarısız oldu"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "`%s' kaynakçası `%s' üyesine bakmak için açılamadı"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Üye `%s'%s: %ld bayt  %ld 'de (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr "(isim kırpılmış olmalı)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Tarih %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  Kull-kim = %d, Grup-kim = %d, kip = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Bırakıldı.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Arşiv üyesi `%s' sahte olabilir; silinmedi"
@@ -99,26 +99,26 @@ msgstr "*** [%s] Arşiv üyesi `%s' sahte olabilir; silinmedi"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Arşiv üyesi `%s' sahte olabilir; silinmedi"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] `%s' dosyası siliniyor"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** `%s' dosyası siliniyor"
 
-#: commands.c:684
+#: commands.c:685
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  çalıştırma komutları"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (paket içinde):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (`%s'den, satır %lu):\n"
@@ -200,159 +200,159 @@ msgstr "Çevrimsel değişken `%s' tekrar kendine bağıntılı (sonuçta)"
 msgid "unterminated variable reference"
 msgstr "sonlandırılmamış değişken bağıntısı"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "`%s' dosyası için komutlar %s:%lu de belirtildi,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "`%s' dosyası için komutlar örtük kural aramasında bulundu,"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "fakat `%s' şimdi `%s' dosyası ile aynı dosya olarak düşünülmeli."
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "`%s' dosyası için komutlar `%s' lehine yoksayılmış olacak."
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "tek-sütun `%s', çift-sütun `%s' olarak yeniden adlandırılamaz"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "çift-sütun `%s', tek-sütun `%s' olarak yeniden adlandırılamaz"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Aracı dosya `%s' siliniyor"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Aracı dosyalar siliniyor...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Şu an"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Tarih damgası kapsamdışı; yerine %s kullanılıyor"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Şu an"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Bir hedef değil:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Kıymetli dosya (.PRECIOUS  önceden gerekliliği)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Sahte hedef (.PHONY önceden gerekliliği)."
 
-#: file.c:958
+#: file.c:964
 #, fuzzy
 msgid "#  Command line target."
 msgstr "#  Komut-satırı hedefi."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Bir öntanımlı,MAKEFILES veya -include/sinclude makefile."
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# Örtük kural yok."
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Örtük kural araştırması yapılmıştı."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Örtük kural araştırması yapılmamıştı."
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Örtük/değişmeyen kalıp kökü: `%s'\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr ""
 "#  Orta seviyede önceden gerekli bir dosya (öncelikle gerekli dosyalara "
 "aracılık eden dosya)"
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Oluştursa da:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Değişiklik zamanı hiç kontrol edilmedi."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Dosya yok."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Dosya çok eski."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Son değişiklik tarihi %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Dosya güncelleştirilmişti."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Dosya güncelleştirilmemişti."
 
-#: file.c:995
+#: file.c:1001
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Komutlar şu an işlemlerini sürdürüyor (BU BİR YAZILIM HATASI)."
 
-#: file.c:998
+#: file.c:1004
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr ""
 "#  Bağımlılıkların komutları işlemlerini sürdürüyor (BU BİR YAZILIM HATASI)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#   Tamamen güncellendi."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#   Güncellenmiş olması gerekir (-q verildi)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Güncellenmiş olamadı."
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  `command_state' üyesinde geçersiz değer!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -360,7 +360,7 @@ msgstr ""
 "\n"
 "# Dosyalar"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -370,108 +370,108 @@ msgstr ""
 "# dosyaların hash tablosu durumları:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "`word' işlevinde sayısal olmayan ilk argüman"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "`word' işlevinin ilk argümanı sıfırdan büyük olmalı"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "`wordlist' işlevinde sayısal olmayan ilk argüman"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "`wordlist' işlevinde sayısal olmayan ikinci argüman"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(In) başarısız (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(Err) başarısız (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() başarısız (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 #, fuzzy
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe (): process_init_fd() başarısız\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Geçici komut-listesi (batch) dosyası %s temizleniyor\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "yazma hatası: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "argüman sayısı (%d) `%s' işlevinde yetersiz"
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "bu platformda gerçekleştirilmemiş: işlev `%s'"
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "`%s' işlemine çağrı sonlandırılmamış: `%c' kayıp"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "argüman sayısı (%d) `%s' işlevinde yetersiz"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "argüman sayısı (%d) `%s' işlevinde yetersiz"
 
 #: getopt.c:659
@@ -529,12 +529,12 @@ msgstr "%s: `-W %s' seçeneği belirsiz\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: `-W %s' seçeneği argümansız kullanılır\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -617,98 +617,98 @@ msgstr "Aracı dosya `%s' ile bir kural arıyor.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Bir geçici dosya oluşturulamıyor\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (bellek kopyası - core dosyası - diske yazıldı)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] Hata %d (yoksayıldı)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (paket içinde):"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] Hata 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Hata %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Hata 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Bitmemiş işler için bekliyor...."
 
-#: job.c:639
+#: job.c:651
 #, fuzzy, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Ast dosya işini sürdürüyor: 0x%08lx (%s) PID %ld %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (karşıdan)"
 
-#: job.c:829
+#: job.c:841
 #, fuzzy, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Kaybeden ast dosya sağlanıyor: 0x%08lx PID %ld %s\n"
 
-#: job.c:830
+#: job.c:842
 #, fuzzy, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Kazanan ast dosya sağlanıyor: 0x%08lx PID %ld %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Geçici komut-listesi dosyası %s temizleniyor\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Geçici komut-listesi dosyası %s temizleniyor\n"
 
-#: job.c:949
+#: job.c:961
 #, fuzzy, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Ast 0x%08lx PID %ld%s zincirden kaldırılıyor\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, fuzzy, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Ast 0x%08lx (%s) için simge (token) kullanıma sunuldu.\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "iş-sunucusu yazıyor"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "Süreci başlatacak process_easy() başarısız oldu (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -717,114 +717,114 @@ msgstr ""
 "\n"
 "Sayılan %d argüman ile başarısız oldu\n"
 
-#: job.c:1685
+#: job.c:1735
 #, fuzzy, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Ast 0x%08lx (%s) PID %ld%s zincire konuluyor.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, fuzzy, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Ast 0x%08lx (%s) için simge (token) sağlandı.\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "görev listesi okunuyor"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "Dokunulup geçildi: Arşiv `%s' yok"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr ""
 "%sHedef `%s' i derlemek için  hiçbir kural yok, `%s' tarafından gereksinim "
 "duyuluyor%s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "işletim sisteminde yük sınırlarına ulaşılamadı "
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "ulaşılamayan yük sınırı: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "başka dosya tutucu yok: standart girdi kopyalanamadı\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "başka dosya tutucu yok: standart çıktı kopyalanamadı\n"
 
-#: job.c:2223
+#: job.c:2278
 #, fuzzy
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "başka dosya tutucu yok: standart girdi kopyalanamadı\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Standart girdi eski haline getirilemedi\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Standart çıktı eski haline getirilemedi\n"
 
-#: job.c:2254
+#: job.c:2309
 #, fuzzy
 msgid "Could not restore stderr\n"
 msgstr "Standart girdi eski haline getirilemedi\n"
 
-#: job.c:2365
+#: job.c:2420
 #, fuzzy, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make %ld pid'li ast süreci kaldırdı ama hala pid %ld için bekliyor\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Komut bulunamadı"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Kabuk uygulaması bulunamadı"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: ortam alanı tükenmiş olabilir"
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL değişti (`%s' idi, şimdi `%s')\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "%s geçici komut-liste dosyasını oluşturuyor\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (satır %d) kabuk bağlamı hatalı (!unixy && !batch_mode_shell)\n"
@@ -833,78 +833,78 @@ msgstr "%s (satır %d) kabuk bağlamı hatalı (!unixy && !batch_mode_shell)\n"
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "Bu platformda paralel işler (-j) desteklenmiyor."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Seçenekler:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Uyumluluk için yoksayıldı.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr ""
 "  -B, --always-make           Tüm hedefler koşulsuz olarak oluşturulur.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr "  -C DİZİN, --directory=DIZIN Birşey yapmadan önce DİZİNe geçilir.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -b, -m                      Bir sürü hata ayıklama bilgisi basar.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=SEÇENEKLER]        Çeşitli türde hata ayıklama bilgileri basar.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 "  -e, --environment-overrides Ortam değişkenleri makefile'ları değiştirir.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -912,16 +912,16 @@ msgstr ""
 "  -f DOSYA, --file=DOSYA, --makefile=DOSYA\n"
 "                              DOSYAyı bir makefile olarak okur.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Bu iletiyi basar ve çıkar.\n"
 
-#: main.c:334
+#: main.c:335
 #, fuzzy
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Komutların ürettiği hataları yoksayar.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -929,7 +929,7 @@ msgstr ""
 "  -I DİZİN, --include-dir=DİZİN\n"
 "                              Eklenecek makefile'ları DİZİNde arar.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -937,13 +937,13 @@ msgstr ""
 "  -j [N], --jobs[=N]          Bir defada N işe izin verir; argumansız iş\n"
 "                              sayısı sınırsızdır.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Bazı hedefler yapılmadığında devam eder.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -953,7 +953,7 @@ msgstr ""
 "                              Yük N'den az olmadıkça çoklu işler "
 "başlatılmaz.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -961,7 +961,7 @@ msgstr ""
 "  -L, --check-symlink-times   sembolik bağlarla hedef arasında en son mtime\n"
 "                              kullanılır\n"
 
-#: main.c:348
+#: main.c:349
 #, fuzzy
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
@@ -971,7 +971,7 @@ msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Gerçekte komutlar çalıştırılmaz, gösterilir.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -981,17 +981,17 @@ msgstr ""
 "                              DOSYAnın çok eski olduğu varsayılır ve\n"
 "                              yeniden işlem yapılmaz.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       make'in içsel veritabanını basar.\n"
 
-#: main.c:359
+#: main.c:360
 #, fuzzy
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
@@ -999,49 +999,49 @@ msgid ""
 msgstr ""
 "  -q, --question              Komut çalıştırmaz; güncelse çıkışta belirtir\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Oluşumiçi örtük kuralları etkisizleştirir.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Oluşumiçi değişken ayarlarını etkisizleştirir\n"
 
-#: main.c:365
+#: main.c:366
 #, fuzzy
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet     Komutlar işlenirken gösterilmez.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
 "  -S, --no-keep-going, --stop Bazı hedefler yapılmadığında devam etmez.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Yeniden derlemek yerine hedeflere bakıp "
 "geçer.\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  -b, -m                      Bir sürü hata ayıklama bilgisi basar.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               make sürüm numarasını basar ve çıkar.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Kullanılan dizini basar.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1049,7 +1049,7 @@ msgstr ""
 "  --no-print-directory        Dolaylı olarak açılmış olsa bile -w 'yi "
 "kapatır\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1057,7 +1057,7 @@ msgstr ""
 "  -W DOSYA, --what-if=DOSYA, --new-file=DOSYA, --assume-new=DOSYA\n"
 "                              DOSYA sonsuz yeni varsayılır.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1065,31 +1065,26 @@ msgstr ""
 "  --warn-undefined-variables  Atanmamış bir değişkene bağıntı yapıldığında\n"
 "                              uyarır.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "dosyaismi olarak boş dizge geçersiz"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "Hata ayıklama düzeyi özelliği `%s' bilinmiyor"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "içsel hata: çok sayıda --jobserver-fds seçeneği"
-
-#: main.c:848
+#: main.c:828
 #, fuzzy, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Kesinti/Olağandışı durum saptandı (kod = 0x%lx, adres = 0x%lx)\n"
 
-#: main.c:855
+#: main.c:835
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -1104,71 +1099,67 @@ msgstr ""
 "OlağandışılıkBayrakları = %lx\n"
 "OlağandışılıkAdresi = %lx\n"
 
-#: main.c:863
+#: main.c:843
 #, fuzzy, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Erişim uyumsuzluğu: %lx adresinde yazma işlemi\n"
 
-#: main.c:864
+#: main.c:844
 #, fuzzy, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Erişim uyumsuzluğu: %lx adresinde okuma işlemi\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, fuzzy, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell default_shell = %s olarak belirliyor\n"
 
-#: main.c:1008
+#: main.c:988
 #, fuzzy, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 "find_and_set_shell yol aramasını default_shell = %s olarak belirliyor\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s 30 saniyeliğine askıya alınıyor..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) bitti. Devam ediliyor.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "içsel hata: çok sayıda --jobserver-fds seçeneği"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "içsel hata: --jobserver-fds dizgesi `%s' geçersiz"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "uyarı: alt derlemede -jN zorlandı: iş sunucusu kipi kapatılıyor."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "çift iş sunucusu"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
@@ -1176,111 +1167,111 @@ msgstr ""
 "uyarı: iş sunucusu kullanımdışı: -j1 kullanılıyor. Üst make kuralına `+' "
 "ekle."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile standart girdiden iki kez belirtildi."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (geçici dosya)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (geçici dosya)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Bu platformda paralel işler (-j) desteklenmiyor."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Tek iş kipi (-j1) için make'i başlatma konumuna alıyor"
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "işleri yaratıyor"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "işleri hazırlıyor"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Sembolik bağlar desteklenmiyor: -L iptal ediliyor"
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "makefile'ları güncelliyor...\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "`%s' make dosyası çevrime girdi; yeniden derlenemez.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "`%s' make dosyası yeniden derlenemiyor."
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "İçerilen make dosyası `%s' bulunamadı."
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "`%s' make dosyası bulunamadı"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Geriye, özgün dizine geçilemiyor."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Yeniden çalıştırılıyor[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (geçici dosya): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL bir hedeften fazlasını içeriyor"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Hedefler belirtilmediğinden make dosyası yok"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Hedef yok"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Amaçlanan hedefler güncelleniyor...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "uyarı:  Clock skew saptandı. Derleme tamamlanamayabilir."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Kullanım: %s [seçenekler] [hedef] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1289,7 +1280,7 @@ msgstr ""
 "\n"
 "Bu program %s için kurgulanmış\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1298,38 +1289,38 @@ msgstr ""
 "\n"
 "Bu program %s için kurgulanmış (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Yazılım hatalarını <bug-make@gnu.org> adresine,\n"
 "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "`-%c' seçeneği bir boş olmayan dizge argüman gerektirir"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "`-%c' seçeneği bir pozitif tümleyici bağımsız değişkenle kullanılır"
 
-#: main.c:3253
+#: main.c:3269
 #, fuzzy, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 "\n"
 "%sBu program %s için derlenmiş\n"
 
-#: main.c:3255
+#: main.c:3271
 #, fuzzy, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 "\n"
 "%sBu program %s için derlenmiş (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1338,7 +1329,7 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1347,7 +1338,7 @@ msgstr ""
 "\n"
 "# Make veri tabanı, %s üzerine basıldı"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1361,10 +1352,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Bilinmeyen hata %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "sanal bellek tükendi"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1386,65 +1373,61 @@ msgstr "Make erişimi"
 msgid "Child access"
 msgstr "Asta erişim"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: bilinmeyen bir dizine giriliyor\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: bilinmeyen dizinden çıkılıyor\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: `%s' dizine giriliyor\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: `%s' dizininden çıkılıyor\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Bilinmeyen bir dizine giriliyor\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Bilinmeyen dizinden çıkılıyor\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]:`%s' dizinine giriliyor\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: `%s' dizininden çıkılıyor\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "yazma hatası: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "yazma hatası"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ". Durdu.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1453,225 +1436,231 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Makefile'lar okunuyor...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "`%s' make dosyası okunuyor"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (öntanımlı amaç yok)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (arama yolu)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (umurunda değil)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr "( ~ uzantısı yok)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "şartlı ifade de yazılış hatası"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 #, fuzzy
 msgid "recipe commences before first target"
 msgstr "komutlar ilk hedeften önce başlıyor"
 
-#: read.c:1036
+#: read.c:1041
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "komutlardan önceki kural kayıp"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "kayıp ayraç%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr "(8 boşluğu TAB'mı zannettiniz?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "kayıp ayraç%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "hedef kalıp kayıp"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "çok sayıda hedef kalıp"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "hedef kalıp `%%' içermiyor"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "`endif' kayıp"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "boş değişken ismi"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "`endef' yönergesinden sonraki metin yersiz"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "`endef' kayıp, `define' sonlandırılmamış"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "`endef' yönergesinden sonraki metin yersiz"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "`%s' yönergesinden sonraki metin yersiz"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "`%s' yersiz"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "her şartlı ifade de sadece bir `else'"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Hedefe özgü değişken tanımı bozuk"
 
-#: read.c:1951
+#: read.c:1957
 #, fuzzy
 msgid "prerequisites cannot be defined in recipes"
 msgstr "öngereksinimler komut betiklerinde tanımlanamaz"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "örtük ve durağan kalıp kuralları karışmış"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "örtük ve normal kurallar karışmış"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "hedef `%s' hedef kalıpla eşleşmiyor"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "hedef dosya `%s'hem : hem de :: girdilerine sahip"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "hedef `%s' aynı kuralda birden fazla belirtilmiş."
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "uyarı: hedef `%s' için komutlar geçersiz kılınıyor"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "uyarı: hedef `%s' için eski komutlar yoksayılıyor"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "örtük ve normal kurallar karışmış"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "uyarı: NUL karakteri görüldü; satırın geri kalanı yoksayılıyor"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "`%s' için hiçbir şey yapılmadı."
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "`%s' güncel"
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Budanmış dosya `%s'.\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sHedef `%s' i derlemek için  hiçbir kural yok%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
 "%sHedef `%s' i derlemek için  hiçbir kural yok, `%s' tarafından gereksinim "
 "duyuluyor%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sHedef `%s' i derlemek için  hiçbir kural yok%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "hedef dosya `%s' hesaba katılıyor.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "En son `%s'dosyasının güncellenmesi denendi ve başarısız oldu.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "`%s' dosyası zaten hesaba katıldı.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "`%s' dosyası hala güncelleniyor.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "`%s' dosyasının güncellenmesi tamamlandı.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "`%s' dosyası yok.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1679,137 +1668,137 @@ msgstr ""
 "*** Uyarı: .LOW_RESOLUTION_TIME dosyası `%s' yüksek çözünürlüklü bir zaman "
 "damgası içeriyor"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "`%s' için bir örtük kural bulundu.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "`%s' için bir örtük kural yok.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "`%s' için öntanımlı komutlar kullanılıyor.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Çevrimsel %s <- %s bağımlılığı iptal edildi."
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "`%s' hedef dosyasının önceden gereklilikleri tamamlandı.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "`%s' için önceden gereklilikler derlenmeye devam ediyor.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "`%s' hedef dosyasında umut kesiliyor.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Hedef `%s' hatalardan dolayı yeniden derlenemez."
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Önceden gerekli `%s' hedef `%s' için şart.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Hedef `%s' in önceden gereklisi `%s' mevcut değil.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Önceden gerekli `%s' hedef `%s' den daha yeni.\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Önceden gerekli `%s' hedef `%s' den daha eski.\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Hedef `%s' çift-sütunlu ve önceden gereklilikler gerektirmiyor.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, fuzzy, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "`%s' için komutlar ve  önceden gerekliliklerde bir değişiklik yok.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Daima derle seçeneğinden dolayı `%s' derleniyor.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "Hedef `%s' nin yeniden derlenmesine gerek yok"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; VPATH ismi `%s' kullanılıyor"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Hedef `%s' yeniden derlenmeli.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr " VPATH ismi `%s' yoksayılıyor.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "`%s' nin komutları çalışmaya devam ediyor.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Hedef dosya `%s' yeniden derlenirken hata oluştu.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Hedef dosya `%s' yeniden derlenmesi başarıyla tamamlandı.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "`%s' hedef dosyasının -q ile yeniden derlenmesi gerekir.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "`%s' için öntanımlı komutlar kullanılıyor.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Uyarı: `%s' dosyası gelecekteki bir değişiklik tarihini içeriyor"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Uyarı: `%s' dosyasının  değişiklik tarihi %.2g s kadar gelecekte"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ".LIBPATTERNS elemanı `%s' bir kalıp değil"
@@ -1819,7 +1808,7 @@ msgstr ".LIBPATTERNS elemanı `%s' bir kalıp değil"
 msgid "Customs won't export: %s\n"
 msgstr "Özelleştirilmiş olanlar dışarı aktarılmayacak: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1827,7 +1816,7 @@ msgstr ""
 "\n"
 "# Örtük Kurallar"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1835,7 +1824,7 @@ msgstr ""
 "\n"
 "# Örtük kural yok."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1844,11 +1833,11 @@ msgstr ""
 "\n"
 "# %u örtük kural, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " terminal."
 
-#: rule.c:531
+#: rule.c:530
 #, fuzzy, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "YAZILIM HATASI: num_pattern_rules yanlış!  %u != %u"
@@ -2058,45 +2047,45 @@ msgstr ""
 "# dosyaların hash tablosu durumları:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "otomatik"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "öntanımlı"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "çevre"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "derleme dosyası"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "çevre -e altında"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "komut satırı"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "`override' yönergesi"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (`%s'den, satır %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# değişken kümesi hash tablosunun durumu:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2104,7 +2093,7 @@ msgstr ""
 "\n"
 "# Değişkenler\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2112,7 +2101,7 @@ msgstr ""
 "\n"
 "# Kalıba özgü Değişken Değerleri"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2120,7 +2109,7 @@ msgstr ""
 "\n"
 "# Örneğe duyarlı değişken değeri yok."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2139,79 +2128,84 @@ msgstr "uyarı: `%.*s' değişkeni atanmamış"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search %d ile başarısız\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Uyarı: Boş yönlendirme\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "içsel hata: `%s' command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-uyarı, DCL den yönetimi almak için CTRL-Y'yi yeniden "
 "etkinleştirebilirsiniz.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "OLUŞUMİÇİ [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "OLUŞUMİÇİ CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "OLUŞUMİÇİ RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "OLUŞUMİÇİ CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Oluşumiçi komut '%s' bilinmiyor\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Hata, boş komut\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "%s den yönlendirilmiş girdi\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "%s e yönlendirilmiş hata\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, fuzzy, c-format
 msgid "Append output to %s\n"
 msgstr "%s e yönlendirilmiş çıktı\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "%s e yönlendirilmiş çıktı\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "%s yerine çalıştırılıyor\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "doğum hatası, %d\n"
@@ -2267,6 +2261,9 @@ msgstr ""
 #~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
 #~ msgstr "Süreci başlatmada process_easy() başarısız oldu (e=%ld)\n"
 
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "içsel hata: çok sayıda --jobserver-fds seçeneği"
+
 #~ msgid ""
 #~ "%sThis is free software; see the source for copying conditions.\n"
 #~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
@@ -2278,6 +2275,12 @@ msgstr ""
 #~ "KULLANIMINIZA\n"
 #~ "%sUYGUNLUĞU için bile garanti verilmez.\n"
 
+#~ msgid "virtual memory exhausted"
+#~ msgstr "sanal bellek tükendi"
+
+#~ msgid "write error"
+#~ msgstr "yazma hatası"
+
 #~ msgid "extraneous `endef'"
 #~ msgstr "yersiz `endef'"
 
@@ -2297,6 +2300,9 @@ msgstr ""
 #~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
 #~ msgstr "-uyarı, CTRL-Y etraftaki alt-süreç(ler)i bıraktıracak.\n"
 
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "OLUŞUMİÇİ RM %s\n"
+
 #~ msgid "Syntax error, still inside '\"'\n"
 #~ msgstr "Dosyada hala yazılış hatası var: '\"'\n"
 
index 212214b9d9f16f1b1e3e8d7c66489bd6081e16a6..bfdbf8b46e696402eee010787918254bf6a9b4e9 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index 7bb31f09ea0b5530b594aaae2ebd65de9bcc7065..4eefbe03632609013729aab6126228f2aaa7bc48 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,10 +6,10 @@
 # Yuri Chornoivan <yurchor@ukr.net>, 2012, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.99.93\n"
+"Project-Id-Version: make 4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-02 07:20+0300\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-09 22:15+0300\n"
 "Last-Translator: Volodymyr M. Lisivka <lvm@mystery.lviv.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
 "Language: uk\n"
@@ -50,50 +50,50 @@ msgstr ""
 "оновлення часу зміни: Функція ar_member_touch повернула\n"
 "поганий код відповіді для \"%s\""
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module() не вдалося видобути дані модуля, стан = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "Помилка lbr$ini_control() з повідомленням стану = %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "не вдалося відкрити бібліотеку «%s» для пошуку елемента «%s»"
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Елемент «%s»%s: %ld байтів з %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (ім'я може бути обрізано)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Дата %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, режим = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "У рецепті забагато рядків (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Зупинка.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Елемент архіву, «%s», можливо є фіктивним; не вилучено"
@@ -103,25 +103,25 @@ msgstr "*** [%s] Елемент архіву, «%s», можливо є фікт
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Елемент архіву, «%s», можливо є фіктивним; не вилучено"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Вилучаємо файл \"%s\""
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Вилучаємо файл \"%s\""
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  спосіб, який слід застосувати"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (вбудоване):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (з \"%s\", рядок %lu):\n"
@@ -203,154 +203,154 @@ msgstr "Рекурсивна змінна \"%s\" посилається сама
 msgid "unterminated variable reference"
 msgstr "незавершена посилання на змінну"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Спосіб для файла «%s» було задано %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr ""
 "Спосіб для файла «%s» було знайдено за допомогою пошуку неявних правил,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "але \"%s\" і \"%s\" тепер вважаються одним і тим же ж файлом. "
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "Спосіб для «%s» буде проігноровано на користь способу для «%s»."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "неможливо перейменувати \"%s\" з однією двокрапкою у \"%s\" з двома "
 "двокрапками"
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 "неможливо перейменувати \"%s\" з двома двокрапками у \"%s\" з однією "
 "двокрапкою"
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Вилучаємо проміжний файл «%s»"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Видаляю проміжні файли...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Поточний час"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: часова позначка поза допустимим діапазоном; замінюємо на %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Поточний час"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Не є метою:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Вартісний файл (залежність .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Псевдоціль (залежність .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Мета, що викликається з командного рядка."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Типово, MAKEFILES, або -include/sinclude makefile."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "#  Вбудоване правило"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Пошук неявних правил виконано."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Пошук неявних правил не було виконано."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Основа неявного або статичного шаблону: \"%s\"\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Файл є проміжною залежністю."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Збирає також:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Час зміни ніколи не перевірявся."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Файл не існує."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Файл дуже старий."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Востаннє оновлено %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Файл був оновлений."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Файл не було оновлено."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Виконується обробка (ЦЕ ПОМИЛКА)"
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Ці залежності вже обробляються (ЦЕ ПОМИЛКА)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Успішно оновлено."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Повинно бути оновлено (встановлений ключ -q)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Спроба оновлення безуспішна."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Некоректне значення члена \"command_state\"!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -358,7 +358,7 @@ msgstr ""
 "\n"
 "# Файли"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -368,103 +368,104 @@ msgstr ""
 "# статистика щодо таблиці хешів файлів:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: поле «%s» не кешовано: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "не числовий перший аргумент для функції \"word\""
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "першим аргументом функції «word» має бути число, більше за 0"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "не числовий перший аргумент для функції \"wordlist\""
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "не числовий другий аргумент для функції \"wordlist\""
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe: помилка DuplicateHandle(In) (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_openpipe: помилка DuplicateHandle(Err) (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "Помилка CreatePipe() (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): помилка process_init_fd()\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Спорожнюємо тимчасовий пакетний файл %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "open: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "write: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Некоректна дія над файлом: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "недостатня кількість аргументів (%d) функції «%s»"
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "не реалізовано на цій платформі: функція «%s»"
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "незавершений виклик функції \"%s\"; пропущено \"%c\""
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Порожня назва функції\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Ð\9dекоÑ\80екÑ\82на Ð´Ñ\96Ñ\8f Ð½Ð°Ð´ Ñ\84айлом: %s"
+msgid "Invalid function name: %s"
+msgstr "Ð\9dекоÑ\80екÑ\82на Ð½Ð°Ð·Ð²Ð° Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Назва функції є задовгою: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "Некоректна мінімальна кількість аргументів (%d) функції %s\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "Некоректна максимальна кількість аргументів (%d) функції %s\n"
 
 #: getopt.c:659
@@ -522,12 +523,12 @@ msgstr "%s: параметр «-W %s» не є однозначним\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: додавання аргументів до параметра «-W %s» не передбачено\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: розгортаємо «%s»\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: обчислюємо «%s»\n"
@@ -610,97 +611,97 @@ msgstr "Пошук правила з проміжним файлом \"%s\".\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Не вдалося створити тимчасовий файл\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (зроблений дамп пам'яті)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (ігнорується)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<вбудований>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: спроба виконання рецепта для мети «%s» зазнала невдачі"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Помилка 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Помилка %d%s"
 
-#: job.c:517
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Помилка 0x%x%s"
+
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Очікування завершення завдань..."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Незавершений дочірній процес %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (віддалений)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Підбираємо невдалий дочірній процес з PID %p %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Підбираємо вдалий дочірній процес з PID %p %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Знищення тимчасового командного файла %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr ""
 "Спроба витикання тимчасового файла пакетної обробки %s зазнала невдачі (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Вилучаємо PID дочірнього процесу %p %s%s з ланцюжка.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "спускаємо семафор сервера завдань: (Помилка %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Звільнено символ для дочірнього процесу %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "запис до сервера завдань"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() не вдалося запустити процес (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -709,100 +710,100 @@ msgstr ""
 "\n"
 "Під час невдалого запуску кількість аргументів дорівнювала %d\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Додаємо дочірній процес з PID %p (%s) %s%s до ланцюжка.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "очіккування семафора або дочірнього процесу: (помилка %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Отримано символ для дочірнього процесу %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "читаємо записи з потоку завдань"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: мети «%s» не існує"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: оновлення мети «%s» з такої причини: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr ""
 "ця операційна система не дозволяє встановлювати обмеження на завантаження"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "неможливо встановити обмеження на завантаження: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "не вистачає файлових дескрипторів: не вдалося здублювати stdin\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "не вистачає файлових дескрипторів: не вдалося здублювати stdout\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "не вистачає файлових дескрипторів: не вдалося здублювати stderr\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Не вдалося відновити stdin\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Не вдалося відновити stdout\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Не вдалося відновити stderr\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 "make підібрано дочірній процес з pid %s, який все ще чекає на завершення "
 "процесу з pid %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Команда не знайдена"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Командний процесор не знайдений"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: ймовірно, завершилося місце у середовищі"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL змінено (було «%s», тепер «%s»)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Створюємо тимчасовий пакетний файл %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -810,7 +811,7 @@ msgstr ""
 "Вміст файла пакетної обробки:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -819,7 +820,7 @@ msgstr ""
 "Вміст пакетного файла:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
@@ -830,48 +831,48 @@ msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 "-O[ТИП] (--output-sync[=ТИП]) для цього сеансу збирання не налаштовано."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Не вдалося відкрити таблицю загальних символів: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Завантажений об’єкт %s не оголошено як сумісний з GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Не вдалося завантажити символ %s з %s: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Порожня назва символу для завантаження: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Завантажуємо символ %s з %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "На цій платформі виконання дії «load» не передбачено."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Ключі:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Ігнорується, для сумісності.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           безумовно обробляти всі записи мети.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -880,18 +881,18 @@ msgstr ""
 "                              Перейти до каталогу до виконання будь-яких "
 "дій.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Вивести діагностичні повідомлення.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=ПРАПОРЦІ]          Вивести діагностичні повідомлення вказаних "
 "типів.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -900,12 +901,12 @@ msgstr ""
 "                              Змінні середовища мають вищий пріоритет за "
 "змінні makefile.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr "  --eval=РЯДОК                Обробити РЯДОК як інструкцію makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -913,16 +914,16 @@ msgstr ""
 "  -f ФАЙЛ, --file=ФАЙЛ, --makefile=ФАЙЛ\n"
 "                              Використати ФАЙЛ як makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Вивести це повідомлення і вийти.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         Ігнорувати помилки від способів збирання.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -930,7 +931,7 @@ msgstr ""
 "  -I КАТАЛОГ, --include-dir=КАТАЛОГ\n"
 "                              Виконати пошук включених makefile у каталозі.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -938,14 +939,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Виконувати одночасно N завдань; якщо не "
 "вказано — необмежену кількість.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Продовжувати роботу, якщо збирання якоїсь мети "
 "неможливе.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -955,7 +956,7 @@ msgstr ""
 "                              Не запускати декількох завдань, якщо "
 "навантаження перевищує N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -963,7 +964,7 @@ msgstr ""
 "  -L, --check-symlink-times   Використовувати новіший час зміни з часів "
 "зміни посилання і мети.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -973,7 +974,7 @@ msgstr ""
 "                              Не застосовувати способів збирання, просто "
 "вивести назви способів.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -983,7 +984,7 @@ msgstr ""
 "                              Вважати ФАЙЛ дуже старим і не виконувати його "
 "повторного збирання.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -992,11 +993,11 @@ msgstr ""
 "                              синхронізувати виведені дані паралельних "
 "завдань за ТИПом.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Вивести внутрішню базу даних make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -1005,19 +1006,19 @@ msgstr ""
 "способів;                               код завершення показує, чи все вже "
 "зроблено.\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr "  -r, --no-builtin-rules      Вимкнути вбудовані неявні правила.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr "  -R, --no-builtin-variables  Вимкнути вбудовані параметри змінних.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Не виводити способи збирання.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1025,26 +1026,26 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Вимкнути -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Змінювати час доступу до мети замість її "
 "повторного збирання.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Вивести дані щодо трасування.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Вивести дані щодо версії make і вийти.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Виводити дані щодо поточного каталогу.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1052,7 +1053,7 @@ msgstr ""
 "  --no-print-directory        Вимкнути -w, навіть якщо вмикання було "
 "виконано неявним чином.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1060,7 +1061,7 @@ msgstr ""
 "  -W ФАЙЛ, --what-if=ФАЙЛ, --new-file=ФАЙЛ, --assume-new=ФАЙЛ\n"
 "                              Вважати ФАЙЛ завжди новим.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1068,30 +1069,26 @@ msgstr ""
 "  --warn-undefined-variables  Попереджати про посилання на невизначену "
 "змінну.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "порожній рядок не може бути назвою файла"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "невідома специфікація рівня діагностики, «%s»"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "невідомий тип синхронізації виведених даних, «%s»"
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "внутрішня помилка: вказано декілька параметрів --sync-mutex"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: сталося переривання або виключення (код = 0x%lx, адреса = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1106,42 +1103,38 @@ msgstr ""
 "Прапорці виключення = %lx\n"
 "Адреса виключення = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Порушення правил доступу: дія з запису за адресою 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Порушення правил доступу: дія з читання за адресою 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() встановлює default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr ""
 "Пошуком шляхів find_and_set_shell() встановлено значення default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s призупиняється на 30 секунд..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "виконано sleep(30). Продовжуємо.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "внутрішня помилка: вказано декілька ключів --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
@@ -1149,145 +1142,145 @@ msgstr ""
 "внутрішня помилка: не вдалося відкрити семафор сервера завдань «%s»: "
 "(помилка %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Клієнт сервера завдань (семафор %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "внутрішня помилка: некоректний рядок --jobserver-fds, «%s»"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Клієнт сервера завдань (fd %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr ""
 "попередження: у вкладеному файлів збирання вказано -jN: вимикаємо режим "
 "сервера завдань."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "дублюємо сервер завдань"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "попередження: сервер завдань недоступний: використовуємо -j1. Додайте «+» до "
 "батьківського правила збирання."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Makefile зі стандартного джерела вхідних даних вказано двічі."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (тимчасовий файл)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (тимчасовий файл)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "На цій платформі паралельної обробки завдань (-j) не передбачено."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Повертаємося до режиму єдиного завдання (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Слоти сервера завдань обмежено значенням %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "створюємо семафор сервера завдань: (помилка %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "створюємо канал завдань"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "ініціалізуємо канал сервера завдань"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Підтримки символічних посилань не передбачено: вимикаємо -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Оновлення make-файлів...\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Make-файл \"%s\", можливо, зациклений, він не перезбиратиметься.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Спроба перезібрати make-файл \"%s\" безуспішна."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Make-файл \"%s\", який включається, не було знайдено."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Make-файл \"%s\" не було знайдено"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Неможливо перейти у первісний каталог."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Повторне виконання[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (тимчасовий файл): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL містить декілька записів мети"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "Не задані цілі і не знайдений make-файл"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Нема цілей"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "Оновлення цілей мети...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "попередження: виявлено відхилення показів годинника. Збирання може бути "
 "неповним."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Використання: %s [КЛЮЧІ]... [ЦІЛЬ]...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1296,7 +1289,7 @@ msgstr ""
 "\n"
 "Цю програму зібрано для %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1305,32 +1298,32 @@ msgstr ""
 "\n"
 "Цю програму зібрано для %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "Повідомлюйте про помилки до <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "разом з «%s%s» мало бути вказано непорожній рядковий аргумент"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "ключ \"-%c\" повинен використовуватися з цілим додатним аргументом"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sЗібрано для %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sЗібрано для %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1345,7 +1338,7 @@ msgstr ""
 "%sВам не надається ЖОДНИХ ГАРАНТІЙ, окрім гарантій передбачених "
 "законодавством.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1354,7 +1347,7 @@ msgstr ""
 "\n"
 "# База даних Make, надрукована %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1368,10 +1361,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Невідома помилка %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "віртуальна пам'ять вичерпана"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1393,65 +1382,61 @@ msgstr "Доступ make"
 msgid "Child access"
 msgstr "Доступ дочірнього процесу"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: входимо до невідомого каталогу\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: виходимо з невідомого каталогу\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: входимо до каталогу «%s»\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Залишаю каталог \"%s\"\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: входимо до невідомого каталогу\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: залишаємо невідомий каталог\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: входимо до каталогу «%s»\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Залишаю каталог \"%s\"\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "помилка запису: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "помилка запису"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Зупинка.\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1460,215 +1445,221 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "Читання make-файлів...\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Читання make-файла \"%s\""
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (немає типової мети)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (шлях пошуку)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (не зважати)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (не розширювати ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "Пропускаємо мітку UTF-8 у файлі makefile «%s»\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "Пропускаємо мітку UTF-8 у буфері файла makefile\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "невірний синтаксис у умовному вираженні"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: не вдалося завантажити"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "визначення способу збирання розпочинається до визначення першої мети"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "пропущено правило до способу"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "пропущений розділювач%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (ви хотіли ввести TAB замість 8 пробілів?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "пропущений розділювач%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "пропущений шаблон цілі"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "не один шаблон цілі"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "шаблон цілі не містить \"%%\""
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
 msgstr "пропущена \"endif\""
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "порожнє ім'я змінної"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "зайвий текст після директиви «define»"
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
 msgstr "пропущена \"endif\", незавершена \"define\""
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "зайвий текст після директиви «endef»"
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "зайвий текст після директиви \"%s\""
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "зайва \"%s\""
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "в умовному виразі можлива лише одна директива `else'"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Помилкове форматування специфічного для мети визначення змінної"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "у способах збирання не можна вказувати залежностей"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "змішані неявні правила і правила зі статичними зразками"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "змішані неявні і звичайні правила"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "ціль \"%s\" не відповідає зразку цілей"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "цільовий файл \"%s\" має входження і з \":\", і з \"::\" "
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "ціль \"%s\" зазначено декілька разів у одному правилі"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "попередження: замінюємо спосіб для мети «%s»"
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "попередження: ігноруємо застарілий спосіб для мети «%s»"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "змішані неявні і звичайні правила"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "попередження: зустрінутий символ NUL; ігнорується до кінця рядки"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Ціль \"%s\" не вимагає виконання команд."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "\"%s\" не вимагає оновлення."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Обрізаємо файл «%s».\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sНема правила для створення цілі \"%s\"%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sНема правила для створення цілі \"%s\", необхідної для \"%s\"%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sНема правила для створення цілі \"%s\"%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Обробка цільового файла \"%s\".\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Попередня спроба оновити файл \"%s\" завершилася безуспішно.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Файл \"%s\" вже було оброблено.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Все ще оновлюється файл \"%s\".\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Оновлення файла \"%s\" завершено.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Не виявлено файла з назвою «%s».\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1676,137 +1667,137 @@ msgstr ""
 "*** Попередження: файл .LOW_RESOLUTION_TIME «%s» має часову позначку високої "
 "точності"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Знайдено неявне правило для \"%s\".\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Не знайдено неявних правил для \"%s\".\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Використовуємо типовий спосіб для «%s».\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Циклічна залежність %s <- %s пропущена."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Завершено обробку попередніх залежностей файла мети «%s».\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Цілі, від яких залежить \"%s\", збираються.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Аварійний зупинка на цільовому файлі \"%s\".\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Ціль \"%s\" не була перезібрана через помилки."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Залежність «%s» визначено для мети «%s» лише порядком збирання.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Залежності «%s» мети «%s» не існує.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Залежність «%s» є новішою за мету «%s».\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Залежність «%s» є старішою за мету «%s».\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Ціль \"%s\" оголошена з двома двокрапками і не має залежностей.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Немає способу збирання «%s», всі попередні залежності не змінено.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Збираємо «%s» через встановлення ключа always-make.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Потреби у повторному збиранні мети «%s» немає"
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; використовуємо назву VPATH «%s»"
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Необхідно перезібрати ціль \"%s\".\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Ігноруємо назву VPATH «%s».\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Застосовуємо спосіб «%s».\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Спроба перезібрати цільовий файл \"%s\" безуспішна.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Цільовий файл \"%s\" успішно перезібраний.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Цільовий файл \"%s\" вимагає перезбирання з ключем -q.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Використання типових команд для «%s».\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Увага: Файл \"%s\" має майбутній час зміни"
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Увага: час зміни файла «%s» перебуває на %s с у майбутньому"
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Елемент .LIBPATTERNS «%s» не є зразком"
@@ -1816,7 +1807,7 @@ msgstr "Елемент .LIBPATTERNS «%s» не є зразком"
 msgid "Customs won't export: %s\n"
 msgstr "Неекспортовні налаштування: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1824,7 +1815,7 @@ msgstr ""
 "\n"
 "# Неявні правила"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1832,7 +1823,7 @@ msgstr ""
 "\n"
 "# Неявних правил нема."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1841,11 +1832,11 @@ msgstr ""
 "\n"
 "# Неявних правил: %u, термінальних: %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr "."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "ПОМИЛКА: значення num_pattern_rules є помилковим!  %u != %u"
@@ -2063,44 +2054,44 @@ msgstr ""
 "# статистика щодо таблиці хешів:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "автоматична"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "типовий"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "визначена у середовищі"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "файл make"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "заданий ключ -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "визначена у командному рядку"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "Директива «override»"
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (з \"%s\", рядок %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# стан змінних у хеш-таблиці:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2108,7 +2099,7 @@ msgstr ""
 "\n"
 "# Змінні\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2116,7 +2107,7 @@ msgstr ""
 "\n"
 "# Специфічні для зразка значення змінних"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2124,7 +2115,7 @@ msgstr ""
 "\n"
 "# Немає специфічних для зразка значень змінних."
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2143,78 +2134,83 @@ msgstr "попередження: невизначена змінна \"%.*s\""
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() повернуто код помилки %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Попередження: порожнє переспрямування\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "внутрішня помилка: «%s» command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-попередження, ймовірно, вам варто повторно увімкнути обробку CTRL-Y з DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "ВБУДОВАНИЙ [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "ВБУДОВАНИЙ CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "ВБУДОВАНИЙ RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "ВБУДОВАНИЙ CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Невідома вбудована команда \"%s\".\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Помилка, порожня команда\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Переспрямоване виведення з %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Повідомлення про помилку переспрямовано до %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Дописати виведенні дані до %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Переспрямовуємо виведення до %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Дописати %.*s і спорожнити\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Замість заданого виконується %s\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Помилка породження процесу, %d\n"
@@ -2258,6 +2254,21 @@ msgstr ""
 "# Загальний шлях пошуку (змінна \"VPATH\"):\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "внутрішня помилка: вказано декілька параметрів --sync-mutex"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "внутрішня помилка: вказано декілька ключів --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "віртуальна пам'ять вичерпана"
+
+#~ msgid "write error"
+#~ msgstr "помилка запису"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "ВБУДОВАНИЙ RM %s\n"
+
 #~ msgid "#  Invalid value in 'update_status' member!"
 #~ msgstr "#  Некоректне значення члена \"update_status\"!"
 
index ad334ae374519968aa5d76b91158a3ace7879428..ee98bb26dc4e58b454fe3a1e47d3b739455a79ce 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index ee0fea51eb517cf9d0bc57d9b405260a728ff8e8..6e64cf05aa0ce11f4f7097e4326d9c986f2a03aa 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,10 +7,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.99.93\n"
+"Project-Id-Version: make-4.0\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
-"PO-Revision-Date: 2013-10-02 07:35+0700\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
+"PO-Revision-Date: 2013-10-10 07:36+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
 "Language: vi\n"
@@ -53,51 +53,51 @@ msgstr "touch: Thành viên “%s” không tồn tại trong “%s”"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: Gặp mã trả lại sai từ ar_member_touch trên “%s”"
 
-#: arscan.c:67
+#: arscan.c:124
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr ""
 "lbr$set_module() đã không giải nén thông tin về mô-đun, trạng thái = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control() bị lỗi với trạng thái = %d"
 
-#: arscan.c:185
-#, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+#: arscan.c:255
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "không thể mở thư viện “%s” để tra tìm thành viên “%s”"
 
-#: arscan.c:847
+#: arscan.c:944
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Thành viên “%s”%s: %ld byte tại %ld (%ld).\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (có lẽ tên bị cắt ngắn)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  Ngày %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, chế độ = 0%o.\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr "Công thức có quá nhiều dòng (%ud)"
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** Ngắt.\n"
 
-#: commands.c:630
+#: commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Thành phần kho “%s” có thể là giả; chưa bị xóa bỏ"
@@ -105,27 +105,27 @@ msgstr "*** [%s] Thành phần kho “%s” có thể là giả; chưa bị xóa
 #: commands.c:633
 #, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
-msgstr "*** Thành phần kho “%s” có thể là giả; chưa bị xóa bỏ"
+msgstr "*** Thành viên kho “%s” có thể là giả; chưa bị xóa bỏ"
 
-#: commands.c:646
+#: commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Đang xoá tập tin “%s”"
 
-#: commands.c:648
+#: commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Đang xoá tập tin “%s”"
 
-#: commands.c:684
+#: commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  công thức cần thực hiện"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (dựng-sẵn):"
 
-#: commands.c:689
+#: commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (từ “%s”, dòng %lu):\n"
@@ -187,7 +187,7 @@ msgstr "không"
 
 #: dir.c:1064
 msgid " impossibilities"
-msgstr " không thể"
+msgstr " việc không thể làm được"
 
 #: dir.c:1068
 msgid " so far."
@@ -207,150 +207,150 @@ msgstr "Biến đệ quy “%s” (cuối cùng) lại tham chiếu đến chín
 msgid "unterminated variable reference"
 msgstr "tham chiếu biến chưa chấm dứt"
 
-#: file.c:269
+#: file.c:271
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Công thức được chỉ định cho tập tin “%s” tại %s:%lu,"
 
-#: file.c:274
+#: file.c:276
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Tìm thấy công thức cho tập tin “%s” nhờ quy tắc tìm kiếm ngầm,"
 
-#: file.c:277
+#: file.c:280
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "nhưng “%s” bây giờ được cũng được xem là cùng tập tin “%s”."
 
-#: file.c:280
+#: file.c:283
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Công thức cho “%s” sẽ bị bỏ qua trong sự chấp thuận của một cái cho “%s”."
 
-#: file.c:300
+#: file.c:303
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "không thể đổi tên “%s” hai chấm đơn thành “%s” hai chấm đôi"
 
-#: file.c:305
+#: file.c:309
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "không thể đổi tên “%s” hai chấm đôi thành “%s” hai chấm đơn"
 
-#: file.c:396
+#: file.c:401
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Đang xoá tập tin trung gian “%s”"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "Xoá các tập tin trung gian...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "Giờ hiện tại"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Thời gian của tập tin ở ngoài phạm vi nên thay thế bằng %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "Giờ hiện tại"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# Không phải là đích:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Tập tin giá trị (điều kiện tiên quyết của .PRECIOUS)."
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Đích giả (điều kiện tiên quyết của .PHONY)."
 
-#: file.c:958
+#: file.c:964
 msgid "#  Command line target."
 msgstr "#  Đích dòng lệnh."
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Mặc định, MAKEFILES, hoặc makefile kiểu -include/sinclude."
 
-#: file.c:962
+#: file.c:968
 msgid "#  Builtin rule"
 msgstr "#  Quy tắc dựng sẵn"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  Hoàn tất tìm quy tắc ngầm."
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Chưa hoàn tất tìm quy tắc ngầm."
 
-#: file.c:967
+#: file.c:973
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Cuống mẫu ngầm/tĩnh: “%s”\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Tập tin là một điều kiện tiên quyết trung gian."
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  Cũng tạo:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  Chưa kiểm tra giờ sửa đổi."
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  Tập tin không tồn tại."
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  Tập tin rất cũ."
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Lần sửa cuối cùng %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  Tập tin đã được cập nhật."
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  Tập tin chưa được cập nhật."
 
-#: file.c:995
+#: file.c:1001
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Công thức đang chạy (ĐÂY LÀ MỘT LỖI)."
 
-#: file.c:998
+#: file.c:1004
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Công thức phụ thuộc đang chạy (ĐÂY LÀ MỘT LỖI)."
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  Cập nhật thành công."
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Cần được cập nhật (-q được đặt)."
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  Gặp lỗi khi cập nhật."
 
-#: file.c:1019
+#: file.c:1025
 msgid "#  Invalid value in 'command_state' member!"
-msgstr "#  Gặp giá trị sai trong thành phần “command_state”!"
+msgstr "#  Gặp giá trị sai trong thành viên “command_state”!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -358,7 +358,7 @@ msgstr ""
 "\n"
 "# Tập tin"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -368,104 +368,105 @@ msgstr ""
 "# thống kê bảng băm tập tin:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Trường “%s” chưa được nhớ đệm: %s"
 
-#: function.c:742
+#: function.c:780
 msgid "non-numeric first argument to 'word' function"
 msgstr "đối số thứ nhất không phải dạng số cho hàm “word”"
 
-#: function.c:747
+#: function.c:785
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "đối số thứ nhất cho hàm “word” phải lớn hơn 0"
 
-#: function.c:767
+#: function.c:805
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "đối số thứ nhất không phải số cho hàm “wordlist”"
 
-#: function.c:769
+#: function.c:807
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "đối số thứ hai không phải số cho hàm “wordlist”"
 
-#: function.c:1460
+#: function.c:1499
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(In) gặp lỗi (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "windows32_openpipe: DuplicateHandle(Err) gặp lỗi (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() bị lỗi (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() gặp lỗi\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Dọn dẹp tập tin bó tạm %s\n"
 
 # Variable: do not translate/ biến: đừng dịch
-#: function.c:2151
+#: function.c:2193
 #, c-format
 msgid "open: %s: %s"
 msgstr "mở: %s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, c-format
 msgid "write: %s: %s"
 msgstr "ghi: %s: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr "Thao tác tập tin không hợp lệ: %s"
 
-#: function.c:2279
+#: function.c:2324
 #, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "không đủ số đối số (%d) cho hàm “%s”"
 
-#: function.c:2291
+#: function.c:2336
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "chưa được viết mã thi hành trên hệ thống này: hàm “%s”"
 
-#: function.c:2354
+#: function.c:2399
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "cuộc gọi chưa được chấm dứt cho hàm “%s”: thiếu “%c”"
 
-#: function.c:2546
-msgid "Empty function name\n"
-msgstr ""
+#: function.c:2591
+#, fuzzy
+msgid "Empty function name"
+msgstr "Tên hàm trống rỗng\n"
 
-#: function.c:2548
+#: function.c:2593
 #, fuzzy, c-format
-msgid "Invalid function name: %s\n"
-msgstr "Thao tác tập tin không hợp lệ: %s"
+msgid "Invalid function name: %s"
+msgstr "Tên hàm không hợp lệ: %s\n"
 
-#: function.c:2550
-#, c-format
-msgid "Function name too long: %s\n"
+#: function.c:2595
+#, fuzzy, c-format
+msgid "Function name too long: %s"
 msgstr "Tên hàm quá dài: %s\n"
 
-#: function.c:2552
-#, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+#: function.c:2598
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "số lượng đối số tối thiểu (%d) là không hợp lệ cho hàm “%s”\n"
 
-#: function.c:2555
-#, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+#: function.c:2601
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "số lượng đối số tối đa (%d) là không hợp lệ cho hàm “%s”\n"
 
 #: getopt.c:659
@@ -476,12 +477,12 @@ msgstr "%s: tùy chọn “%s” chưa rõ ràng\n"
 #: getopt.c:683
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: tùy chọn “--%s” không nhận một đối số\n"
+msgstr "%s: tùy chọn “--%s” không nhận đối số\n"
 
 #: getopt.c:688
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: tùy chọn “%c%s” không nhận một đối số\n"
+msgstr "%s: tùy chọn “%c%s” không nhận đối số\n"
 
 #: getopt.c:705 getopt.c:878
 #, c-format
@@ -523,12 +524,12 @@ msgstr "%s: tùy chọn “-W %s” chưa rõ ràng\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: tùy chọn “-W %s” không nhận một đối số\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: Đang khai triển “%s”\n"
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: Đang định giá “%s”\n"
@@ -611,97 +612,97 @@ msgstr "Tìm quy tắc có tập tin trung gian “%s”.\n"
 msgid "Cannot create a temporary file\n"
 msgstr "Không thể tạo tập tin tạm\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (đổ lõi)"
 
-#: job.c:487
+#: job.c:488
 msgid " (ignored)"
 msgstr " (bỏ qua)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 msgid "<builtin>"
 msgstr "<dựng-sẵn>"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr "%s: công thức cho đích “%s” gặp lỗi"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "%s[%s] Lỗi 0x%x%s"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "%s[%s] Lỗi %d%s"
 
+#: job.c:519
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Lỗi 0x%x%s"
+
 # Variable: don't translate / Biến: đừng dịch
-#: job.c:517
+#: job.c:529
 #, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s[%s] %s%s%s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Đang đợi những công việc chưa hoàn tất..."
 
-#: job.c:639
+#: job.c:651
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Tiến trình con còn sống %p (%s) PID %s %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (máy chủ)"
 
-#: job.c:829
+#: job.c:841
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "Đang mất tiến trình con %p PID %s %s\n"
 
-#: job.c:830
+#: job.c:842
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Đang thắng lại tiến trình con %p PID %s %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Dọn dẹp tập tin bó tạm %s\n"
 
-#: job.c:843
+#: job.c:855
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Dọn dẹp tập tin bó tạm %s gặp lỗi (%d)\n"
 
-#: job.c:949
+#: job.c:961
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Bỏ tiến trình con %p PID %s%s khỏi xâu.\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "giải phóng tín hiệu jobserver: (Lỗi %ld: %s)"
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Đã giải phóng thẻ bài cho tiến trình con %p (%s).\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "ghi lại trình phục vụ công việc"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() gặp lỗi khi chạy tiến trình (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -710,100 +711,100 @@ msgstr ""
 "\n"
 "Đếm được %d đối số trong lần khởi chạy bị lỗi\n"
 
-#: job.c:1685
+#: job.c:1735
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Đặt tiến trình con %p (%s) PID %s%s vào xâu.\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "chờ tín hiệu hay tiến trình con: (Lỗi %ld: %s)"
 
-#: job.c:1967
+#: job.c:2019
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Đã lấy thẻ bài cho điều con  %p (%s).\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "đọc ống dẫn công việc"
 
-#: job.c:2003
+#: job.c:2056
 #, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "%s: đích “%s” không tồn tại"
 
-#: job.c:2005
+#: job.c:2059
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: cập nhật đích “%s”, cần bởi: %s"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "không thể buộc giới hạn tải trên hệ điều hành này"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "không thể buộc giới hạn tải: "
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 "không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu vào chuẩn\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 "không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu ra chuẩn\n"
 
-#: job.c:2223
+#: job.c:2278
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr ""
 "không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu ra lỗi chuẩn\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "Không thể phục hồi đầu vào chuẩn\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "Không thể phục hồi đầu ra chuẩn\n"
 
-#: job.c:2254
+#: job.c:2309
 msgid "Could not restore stderr\n"
 msgstr "Không thể phục hồi đầu ra lỗi tiêu chuẩn\n"
 
-#: job.c:2365
+#: job.c:2420
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "đặt điều con đã bắt là PID %s, vẫn còn đợi PID %s\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Không tìm thấy lệnh"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Không tìm thấy chương trình hệ vỏ"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: cạn không gian dành cho biến môi trường"
 
-#: job.c:2709
+#: job.c:2765
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL thay đổi (trước là “%s”, giờ là “%s”)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Tạo tập tin bó lệnh tạm: %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -811,7 +812,7 @@ msgstr ""
 "Nội dung tập tin bó lệnh:\n"
 "\t@echo off\n"
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -820,7 +821,7 @@ msgstr ""
 "Nội dung tập tin bó lệnh:%s\n"
 "\t%s\n"
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (dòng %d) Ngữ cảnh shell sai (!unixy && !batch_mode_shell)\n"
@@ -829,48 +830,48 @@ msgstr "%s (dòng %d) Ngữ cảnh shell sai (!unixy && !batch_mode_shell)\n"
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr "-O[KIỂU] (--output-sync[=KIỂU]) chưa được cấu hình cho lần dịch này."
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Gặp lỗi khi mở bảng ký hiệu toàn cục: %s"
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Đối tượng %s đã được tải không được công bố là tương thích GPL"
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Gặp lỗi khi tải ký hiệu %s từ %s: %s"
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Tên ký hiệu là trống rỗng cho việc tải: %s"
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Đang tải ký hiệu %s từ %s\n"
 
-#: load.c:229
+#: load.c:244
 msgid "The 'load' operation is not supported on this platform."
 msgstr "không hỗ trợ thao tác “load” trên hệ thống này."
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "Tùy chọn:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Bỏ qua để tương thích.\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Tạo mọi đích vô điều kiện.\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -878,17 +879,17 @@ msgstr ""
 "  -C THƯ_MỤC, --directory=THƯ_MỤC\n"
 "                              Chuyển sang THƯ MỤC này trước khi làm.\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          In rất nhiều thông tin gỡ rối.\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=CỜ...]             In nhiều loại thông tin gỡ rối khác nhau.\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -896,13 +897,13 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              Biến môi trường đè tập tin makefile.\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 "  --eval=CHUỖI                Định lượng CHUỖI như một lệnh makefile.\n"
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -910,15 +911,15 @@ msgstr ""
 "  -f TẬP-TIN, --file=TẬP-TIN, --makefile=TẬP-TIN\n"
 "                              Đọc TẬP-TIN dạng makefile.\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Hiển thị trợ giúp này và thoát.\n"
 
-#: main.c:334
+#: main.c:335
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Bỏ qua lỗi từ công thức.\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -926,7 +927,7 @@ msgstr ""
 "  -I THƯ_MỤC, --include-dir=THƯ_MỤC\n"
 "                              Quét THƯ-MỤC này tìm makefile con.\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -934,12 +935,12 @@ msgstr ""
 "  -j [N], --jobs[=N]          Cho phép N công việc đồng thời; không có đối "
 "số thì vô hạn.\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr "  -k, --keep-going            Cứ tiếp tục khi không thể tạo đích.\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -948,14 +949,14 @@ msgstr ""
 "  -l [SỐ], --load-average[=N], --max-load[=N]\n"
 "                              Chỉ chạy nhiều công việc nếu tải dưới N.\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
 "  -L, --check-symlink-times   Dùng mtime mới nhất giữa liên kết và đích.\n"
 
-#: main.c:348
+#: main.c:349
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -964,7 +965,7 @@ msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Không chạy công thức; chỉ in chúng ra.\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -973,7 +974,7 @@ msgstr ""
 "  -o TẬP-TIN, --old-file=TẬP-TIN, --assume-old=TẬP-TIN\n"
 "                              Coi TẬP-TIN là rất cũ và không tạo lại.\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -982,30 +983,30 @@ msgstr ""
 "                              Đồng bộ hóa kết xuất công việc song song theo "
 "KIỂU.\n"
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       In cơ sở dữ liệu nội bộ của make.\n"
 
-#: main.c:359
+#: main.c:360
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
 "  -q, --question              Không chạy; mã thoát là \"đã cập nhật\".\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr "  -r, --no-builtin-rules      Tắt quy tắc ngầm dựng sẵn.\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr "  -R, --no-builtin-variables  Tắt đặt biến dựng sẵn.\n"
 
-#: main.c:365
+#: main.c:366
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Không in lại công thức.\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1013,30 +1014,30 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Tắt -k.\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
-msgstr "  -t, --touch                 Sờ đích thay vì tạo lại.\n"
+msgstr "  -t, --touch                 Chạm đích thay vì tạo lại.\n"
 
-#: main.c:372
+#: main.c:373
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Hiển thị thông tin dấu vết.\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
-msgstr "  -v, --version               Hiển thị phiên bản make  thoát.\n"
+msgstr "  -v, --version               Hiển thị phiên bản make rồi thoát.\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Hiển thị thư mục hiện thời.\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr "  --no-print-directory        Tắt -w, thậm chí nếu được bật ngầm.\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1044,37 +1045,33 @@ msgstr ""
 "  -W TẬP-TIN, --what-if=TẬP-TIN, --new-file=TẬP-TIN, --assume-new=TẬP-TIN\n"
 "                              Giả định TẬP-TIN là mới vô hạn.\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
 "  --warn-undefined-variables  Cảnh báo tham chiếu đến biến chưa xác định.\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "chuỗi rỗng không hợp lệ làm tên tập tin"
 
-#: main.c:734
+#: main.c:737
 #, c-format
 msgid "unknown debug level specification '%s'"
-msgstr "không  đặc tả cấp gỡ rối “%s”"
+msgstr "không hiểu đặc tả cấp gỡ rối “%s”"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "không hiểu kiểu output-sync “%s”"
 
-#: main.c:787
-msgid "internal error: multiple --sync-mutex options"
-msgstr "lỗi nội bộ: có nhiều tùy chọn --sync-mutex"
-
-#: main.c:848
+#: main.c:828
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Bắt được ngắt/ngoại lệ (mã = 0x%lx, địa chỉ = 0x%p)\n"
 
-#: main.c:855
+#: main.c:835
 #, c-format
 msgid ""
 "\n"
@@ -1089,183 +1086,179 @@ msgstr ""
 "ExceptionFlags (các cờ ngoại lệ) = %lx\n"
 "ExceptionAddress (địa chỉ ngoại lệ) = 0x%p\n"
 
-#: main.c:863
+#: main.c:843
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Vi phạm truy cập: thao tác ghi tại địa chỉ 0x%p\n"
 
-#: main.c:864
+#: main.c:844
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Vi phạm truy cập: thao tác đọc tại địa chỉ 0x%p\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() đang đặt default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell() đã quét đường dẫn thì đặt default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s đang ngưng trong 30 giây..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "đã ngủ(30). Tiếp tục.\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "lỗi nội bộ: có nhiều tùy chọn --jobserver-fds"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 "lỗi nội tại: không thể mở cờ hiệu máy phục vụ công việc “%s”: (Lỗi %ld: %s)"
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Ứng dụng khách jobserver (cờ hiệu %s)\n"
 
-#: main.c:1551
+#: main.c:1534
 #, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "lỗi nội bộ: gặp chuỗi --jobserver-fds “%s” không hợp lệ"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr "Ứng dụng khách jobserver (fds %d,%d)\n"
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "cảnh báo: -jN bị ép buộc trong make con: tắt chế độ jobserver."
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "dup jobserver"
 
-#: main.c:1586
+#: main.c:1570
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "cảnh báo: trình jobserver không sẵn sàng: dùng -j1. Thêm “+” vào quy tắc "
 "make cha."
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "Tập tin makefile từ đầu vào chuẩn được ghi hai lần."
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (tập tin tạm)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (tập tin tạm)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Không hỗ trợ công việc song song (-j) trên hệ thống này."
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "Đặt lại thành chế độ công việc đơn (-j1)."
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Khe jobserver bị giới hạn thành %d\n"
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "đang tạo tín hiệu jobserver: (Lỗi %ld: %s)"
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "tạo ống dẫn công việc"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
-msgstr "init jobserver pipe"
+msgstr "khởi tạo đường ống “jobserver”"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Không hỗ trợ liên kết mềm: tắt -L."
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "Cập nhật makefile...\n"
 
-#: main.c:2174
+#: main.c:2158
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Makefile “%s” bị lặp; không tạo lại nó.\n"
 
-#: main.c:2253
+#: main.c:2237
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Gặp lỗi khi làm lại makefile “%s”."
 
-#: main.c:2270
+#: main.c:2257
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Không tìm thấy makefile bao gồm “%s”."
 
-#: main.c:2275
+#: main.c:2262
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Không tìm thấy makefile “%s”."
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "Không thể chuyển về thư mục gốc."
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Thực hiện lại[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "unlink (bỏ liên kết tập tin tạm): "
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL chứa nhiều đích"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
-msgstr "Chưa xác định đích, và không tìm thấy makefile"
+msgstr "Chưa chỉ định đích, và không tìm thấy makefile"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "Không có đích"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
-msgstr "Cập nhật đích mục tiêu...\n"
+msgstr "Đang cập nhật đích mong muốn...\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "cảnh báo: Phát hiện lệch giờ. Bản dịch của bạn có thể không hoàn thiện."
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Cách dùng: %s [các_tùy_chọn] [đích] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1274,7 +1267,7 @@ msgstr ""
 "\n"
 "Chương trình này đã được dịch cho %s\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1283,34 +1276,34 @@ msgstr ""
 "\n"
 "Chương trình này đã được dịch cho %s (%s)\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Hãy thông báo lỗi cho <bug-make@gnu.org>\n"
 "Hãy thông báo lỗi dịch cho <http://translationproject.org/team/vi.html>.\n"
 
-#: main.c:2810
+#: main.c:2807
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "tùy chọn “%s%s” cần một đối số là chuỗi khác rỗng"
 
-#: main.c:2864
+#: main.c:2871
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "tùy chọn “-%c” cần một đối số số nguyên dương"
 
-#: main.c:3253
+#: main.c:3269
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sĐược dịch cho %s\n"
 
-#: main.c:3255
+#: main.c:3271
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sĐược dịch cho %s (%s)\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1321,9 +1314,9 @@ msgstr ""
 "%sGiấy phép GPL pb3+: Giấy phép Công cộng GNU phiên bản 3 hay sau <http://"
 "gnu.org/licenses/gpl.html>\n"
 "%sĐây là phần mềm tự do: bạn có quyền sửa đổi và phát hành lại nó.\n"
-"%sKHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều khiển được pháp luật cho phép.\n"
+"%sKHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n"
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1332,7 +1325,7 @@ msgstr ""
 "\n"
 "# Cơ sở dữ liệu Make, in lúc %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1346,10 +1339,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "Lỗi lạ %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "hết bộ nhớ ảo"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1371,284 +1360,286 @@ msgstr "Truy cập Make"
 msgid "Child access"
 msgstr "Truy cập con"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Vào thư mục lạ\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Rời khỏi thư mục lạ\n"
 
-#: output.c:133
+#: output.c:109
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Vào thư mục “%s”\n"
 
-#: output.c:135
+#: output.c:111
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Rời thư mục “%s”\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Vào thư mục lạ\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Rời thư mục lạ\n"
 
-#: output.c:144
+#: output.c:120
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Vào thư mục “%s”\n"
 
-#: output.c:146
+#: output.c:122
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Rời thư mục “%s”\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "lỗi ghi: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "lỗi ghi"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr ".  Dừng.\n"
 
 # Variable: don't translate / Biến: đừng dịch
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
 # Variable: do not translate/ biến: đừng dịch
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
 #: read.c:180
 msgid "Reading makefiles...\n"
-msgstr "Đọc makefile...\n"
+msgstr "Đang đọc makefile...\n"
 
-#: read.c:333
+#: read.c:335
 #, c-format
 msgid "Reading makefile '%s'"
-msgstr "Đọc makefile “%s”"
+msgstr "Đang đọc makefile “%s”"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
-msgstr " (không có mục tiêu mặc định)"
+msgstr " (không có mục đích mặc định)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (đường dẫn tìm kiếm)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (không quan tâm)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (không nối thêm ~)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
-msgstr "Bỏ qua UTF-8 BOM trong makefile “%s”\n"
+msgstr "Bỏ qua “UTF-8 BOM” trong makefile “%s”\n"
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
-msgstr "Bỏ qua UTF-8 BOM trong bộ đệm makefile\n"
+msgstr "Bỏ qua “UTF-8 BOM” trong bộ đệm makefile\n"
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "cú pháp không hợp lệ trong biểu thức điều kiện"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr "%s: gặp lỗi khi tải"
 
-#: read.c:987
+#: read.c:992
 msgid "recipe commences before first target"
 msgstr "công thức bắt đầu trước đích thứ nhất"
 
-#: read.c:1036
+#: read.c:1041
 msgid "missing rule before recipe"
 msgstr "thiếu quy tắc trước công thức"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "thiếu dấu cách%s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (bạn đã định dùng TAB thay vì 8 khoảng trắng phải không?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "thiếu dấu phân cách%s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "thiếu mẫu đích"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "nhiều mẫu đích"
 
-#: read.c:1269
+#: read.c:1276
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "mẫu đích không chứa “%%”"
 
-#: read.c:1391
+#: read.c:1398
 msgid "missing 'endif'"
-msgstr "thiếu “endif”"
+msgstr "thiếu chỉ thị “endif”"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "tên biến rỗng"
 
-#: read.c:1465
+#: read.c:1471
 msgid "extraneous text after 'define' directive"
 msgstr "gặp các ký tự thừa đằng sau chỉ thị “define”"
 
-#: read.c:1490
+#: read.c:1496
 msgid "missing 'endef', unterminated 'define'"
-msgstr "thiếu “endef”, chỉ thị “define” chưa hoàn tất"
+msgstr "thiếu “endef”, chỉ thị “define” chưa hoàn thiện"
 
-#: read.c:1518
+#: read.c:1524
 msgid "extraneous text after 'endef' directive"
 msgstr "gặp các ký tự thừa đằng sau chỉ thị “endef”"
 
-#: read.c:1589
+#: read.c:1595
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "gặp các ký tự thừa đằng sau chỉ thị “%s”"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, c-format
 msgid "extraneous '%s'"
 msgstr "gặp “%s” thừa"
 
-#: read.c:1617
+#: read.c:1624
 msgid "only one 'else' per conditional"
 msgstr "chỉ cho phép một “else” cho mỗi biểu thức điều kiện"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "Định nghĩa biến đích riêng biệt bị hỏng"
 
-#: read.c:1951
+#: read.c:1957
 msgid "prerequisites cannot be defined in recipes"
 msgstr "không thể định nghĩa điều kiện tiên quyết cho công thức"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "trộn lẫn quy tắc ngầm và mẫu tĩnh"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "trộn quy tắc ngầm và thường"
 
-#: read.c:2084
+#: read.c:2091
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "đích “%s” không tương ứng với mẫu đích"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "tập tin đích “%s” có cả hai mục nhập : và ::"
 
-#: read.c:2105
+#: read.c:2112
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "đích “%s” có nhiều hơn một trong cùng một quy tắc"
 
-#: read.c:2114
+#: read.c:2122
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "cảnh báo: đè công thức cho đích “%s”"
 
-#: read.c:2117
+#: read.c:2125
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "cảnh báo: bỏ qua công thức cũ cho đích “%s”"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "trộn quy tắc ngầm và thường"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "cảnh báo: thấy ký tự NUL; bỏ qua phần còn lại của dòng"
 
-#: remake.c:232
+#: remake.c:230
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Không cần làm gì cho “%s”."
 
-#: remake.c:233
+#: remake.c:231
 #, c-format
 msgid "'%s' is up to date."
 msgstr "Đã cập nhật “%s”."
 
-#: remake.c:305
+#: remake.c:303
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Xén bớt tập tin “%s”.\n"
 
-#: remake.c:377
-#, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%sKhông có quy tắc để tạo đích “%s”%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sKhông có quy tắc để tạo đích “%s”, cần bởi “%s”%s"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sKhông có quy tắc để tạo đích “%s”%s"
+
+#: remake.c:426
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Coi tập tin đích “%s”.\n"
 
-#: remake.c:420
+#: remake.c:433
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Vừa thử và thất bại khi cập nhật “%s”.\n"
 
-#: remake.c:432
+#: remake.c:445
 #, c-format
 msgid "File '%s' was considered already.\n"
-msgstr "Coi tập tin “%s” là đã sẵn sàng rồi.\n"
+msgstr "Coi tập tin “%s” là đã sẵn  rồi.\n"
 
-#: remake.c:442
+#: remake.c:455
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Vẫn đang cập nhật tập tin “%s”.\n"
 
-#: remake.c:445
+#: remake.c:458
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Hoàn tất cập nhật tập tin “%s”.\n"
 
-#: remake.c:474
+#: remake.c:487
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Tập tin “%s” không tồn tại.\n"
 
-#: remake.c:481
+#: remake.c:495
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1656,138 +1647,138 @@ msgstr ""
 "*** Cảnh báo: tập tin .LOW_RESOLUTION_TIME “%s” có nhãn thời gian độ phân "
 "giải cao"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "Tìm thấy quy tắc ngầm cho “%s”.\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "Không tìm thấy quy tắc ngầm cho “%s”.\n"
 
-#: remake.c:502
+#: remake.c:516
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Dùng công thức mặc định cho “%s”.\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Bỏ phụ thuộc vòng tròn %s <- %s."
 
-#: remake.c:655
+#: remake.c:675
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Hoàn tất điều kiện tiên quyết của tập tin đích “%s”.\n"
 
-#: remake.c:661
+#: remake.c:681
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Đang tạo điều kiện tiên quyết của “%s”.\n"
 
-#: remake.c:674
+#: remake.c:695
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Chịu thua tập tin đích “%s”.\n"
 
-#: remake.c:679
+#: remake.c:700
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Đích “%s” không được tạo lại do lỗi."
 
-#: remake.c:731
+#: remake.c:752
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Điều kiện tiên quyết “%s” là order-only (chỉ thứ tự) cho đích “%s”.\n"
 
-#: remake.c:736
+#: remake.c:757
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Điều kiện tiên quyết “%s” của đích “%s” không tồn tại.\n"
 
-#: remake.c:741
+#: remake.c:762
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Điều kiện tiên quyết “%s” là mới hơn đích “%s” .\n"
 
-#: remake.c:744
+#: remake.c:765
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Điều kiện tiên quyết “%s” cũ hơn đích “%s” .\n"
 
-#: remake.c:762
+#: remake.c:783
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Đích “%s” là hai chấm đôi và không có điều kiện tiên quyết.\n"
 
-#: remake.c:769
+#: remake.c:790
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 "Không có công thức cho “%s” và chưa thay đổi điều kiện tiên quyết nào.\n"
 
-#: remake.c:774
+#: remake.c:795
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
-msgstr "Tạo “%s” do cờ always-make.\n"
+msgstr "Tạo “%s” do cờ “always-make”.\n"
 
-#: remake.c:782
+#: remake.c:803
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Không cần tạo lại đích “%s”."
 
-#: remake.c:784
+#: remake.c:805
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; dùng tên VPATH “%s”"
 
-#: remake.c:804
+#: remake.c:825
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Phải tạo lại đích “%s”.\n"
 
-#: remake.c:810
+#: remake.c:831
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Bỏ qua tên VPATH “%s”.\n"
 
-#: remake.c:819
+#: remake.c:840
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "Đang chạy công thức của “%s”.\n"
 
-#: remake.c:826
+#: remake.c:847
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Gặp lỗi khi tạo lại được tập tin đích “%s”.\n"
 
-#: remake.c:829
+#: remake.c:850
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Tạo lại thành công tập tin đích “%s”.\n"
 
-#: remake.c:832
+#: remake.c:853
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Tập tin đích “%s” cần được tạo lại dưới tùy chọn “-q”.\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Dùng lệnh mặc định cho “%s”.\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "Cảnh báo: Tập tin “%s” có giờ sửa đổi ở thì tương lai."
 
-#: remake.c:1385
+#: remake.c:1411
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Cảnh báo: Tập tin “%s” có giờ sửa đổi %s giây trong thì tương lai."
 
-#: remake.c:1583
+#: remake.c:1610
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Phần tử .LIBPATTERNS “%s” không phải là một mẫu"
@@ -1795,9 +1786,9 @@ msgstr "Phần tử .LIBPATTERNS “%s” không phải là một mẫu"
 #: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
-msgstr "Customs không xuất được: %s\n"
+msgstr "Phần tùy chỉnh không xuất được: %s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1805,7 +1796,7 @@ msgstr ""
 "\n"
 "# Quy tắc ngầm"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1813,7 +1804,7 @@ msgstr ""
 "\n"
 "# Không có quy tắc ngầm."
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1822,11 +1813,11 @@ msgstr ""
 "\n"
 "# %u quy tắc ngầm, %u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " thiết bị cuối."
 
-#: rule.c:531
+#: rule.c:530
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "LỖI: num_pattern_rules không đúng!  %u != %u"
@@ -2047,44 +2038,44 @@ msgstr ""
 "# thống kê bảng băm tập tin:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "tự động"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "mặc định"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "môi trường"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "môi trường với -e"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "dòng lệnh"
 
-#: variable.c:1625
+#: variable.c:1617
 msgid "'override' directive"
 msgstr "chỉ thị “override”"
 
-#: variable.c:1636
+#: variable.c:1628
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (từ “%s”, dòng %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# thống kê bảng băm biến được đặt:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2092,7 +2083,7 @@ msgstr ""
 "\n"
 "# Biến\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2100,7 +2091,7 @@ msgstr ""
 "\n"
 "# Giá trị biến đặc tả cho mẫu"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2108,7 +2099,7 @@ msgstr ""
 "\n"
 "# Không có giá trị biến đặc tả cho mẫu"
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2127,77 +2118,82 @@ msgstr "cảnh báo: biến “%.*s” chưa được định nghĩa"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() gặp lỗi với %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Cảnh báo: Chuyển hướng trống rỗng\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, c-format
 msgid "internal error: '%s' command_state"
 msgstr "lỗi nội bộ: command_state “%s”"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr "-warning, có lẽ bạn cần phải bật lại xử lý CTRL-Y từ DCL.\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BUILTIN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "BUILTIN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Không hiểu lệnh dựng sẵn “%s”\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Lỗi, lệnh trống rỗng\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Đã chuyển hướng đầu vào từ %s\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Đã chuyển hướng lỗi tới %s\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Nối thêm đầu ra vào %s\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Đã chuyển hướng đầu ra tới %s\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Nối thêm %.*s và dọn dẹp\n"
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Thực hiện %s để thay thế\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Gặp lỗi sản sinh tiến trình, %d\n"
@@ -2241,6 +2237,21 @@ msgstr ""
 "# Đường dẫn tìm kiếm chung (biến “VPATH”):\n"
 "# "
 
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "lỗi nội bộ: có nhiều tùy chọn --sync-mutex"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "lỗi nội bộ: có nhiều tùy chọn --jobserver-fds"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "hết bộ nhớ ảo"
+
+#~ msgid "write error"
+#~ msgstr "lỗi ghi"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "BUILTIN RM %s\n"
+
 #~ msgid "#  Invalid value in 'update_status' member!"
 #~ msgstr "#  Gặp giá trị sai trong thành phần “update_status”!"
 
index 2046413af12092a3aedce43b915c86d10facdef8..54b7430ffedf84b53456c6216d8e4ea34a5173df 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index 35a1dba5701e3820a5de45b4d3274f9cb5c05c25..2282094ffaee5d7335ffcfb2b7e6bdea92bceaa7 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.99.90\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"POT-Creation-Date: 2014-10-05 12:25-0400\n"
 "PO-Revision-Date: 2013-06-12 15:54+0800\n"
 "Last-Translator: LI Daobing <lidaobing@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -46,50 +46,50 @@ msgstr "touch:在“%2$s”中不存在成员“%1$s”"
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch:来自“%s”上的 ar_member_touch 的错误返回码"
 
-#: arscan.c:67
+#: arscan.c:124
 #, fuzzy, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_modules 获取模块信息失败,返回状态 = %d"
 
-#: arscan.c:173
+#: arscan.c:230
 #, fuzzy, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control 失败,返回状态 = %d"
 
-#: arscan.c:185
+#: arscan.c:255
 #, fuzzy, c-format
-msgid "unable to open library '%s' to lookup member '%s'"
+msgid "unable to open library '%s' to lookup member status %d"
 msgstr "无法打开库“%s”以寻找成员“%s”"
 
-#: arscan.c:847
+#: arscan.c:944
 #, fuzzy, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "成员“%s”%s: %ld 字节在 %ld (%ld)。\n"
 
-#: arscan.c:848
+#: arscan.c:945
 msgid " (name might be truncated)"
 msgstr " (名称可能被截短)"
 
-#: arscan.c:850
+#: arscan.c:947
 #, c-format
 msgid "  Date %s"
 msgstr "  日期 %s"
 
-#: arscan.c:851
+#: arscan.c:948
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d,gid = %d,mode = 0%o。\n"
 
-#: commands.c:406
+#: commands.c:404
 #, c-format
 msgid "Recipe has too many lines (%ud)"
 msgstr ""
 
-#: commands.c:507
+#: commands.c:505
 msgid "*** Break.\n"
 msgstr "*** 中断。\n"
 
-#: commands.c:630
+#: commands.c:629
 #, fuzzy, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] 归档成员“%s”可能是假的;未删除"
@@ -99,26 +99,26 @@ msgstr "*** [%s] 归档成员“%s”可能是假的;未删除"
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** 归档成员“%s”可能是假的;未删除"
 
-#: commands.c:646
+#: commands.c:647
 #, fuzzy, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] 正在删除文件“%s”"
 
-#: commands.c:648
+#: commands.c:649
 #, fuzzy, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** 正在删除文件“%s”"
 
-#: commands.c:684
+#: commands.c:685
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  要执行的命令"
 
-#: commands.c:687
+#: commands.c:688
 msgid " (built-in):"
 msgstr " (内置):"
 
-#: commands.c:689
+#: commands.c:690
 #, fuzzy, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr " (从“%s”,行 %lu):\n"
@@ -200,156 +200,156 @@ msgstr "递归变量“%s”应用自身 (最终)"
 msgid "unterminated variable reference"
 msgstr "未终止的变量引用"
 
-#: file.c:269
+#: file.c:271
 #, fuzzy, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "关于文件“%s”的命令在 %s:%lu 处指定,"
 
-#: file.c:274
+#: file.c:276
 #, fuzzy, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "关于文件“%s”的命令通过隐含规则搜索而找到,"
 
-#: file.c:277
+#: file.c:280
 #, fuzzy, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "但“%s”现在被看做“%s”的同一个文件。"
 
-#: file.c:280
+#: file.c:283
 #, fuzzy, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr "“%2$s”更优先,“%1$s”的命令被忽略。"
 
-#: file.c:300
+#: file.c:303
 #, fuzzy, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr "无法将单冒号“%s”重命名为双冒号“%s”"
 
-#: file.c:305
+#: file.c:309
 #, fuzzy, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr "无法将双冒号“%s”重命名为单冒号“%s”"
 
-#: file.c:396
+#: file.c:401
 #, fuzzy, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** 正在删除中间文件“%s”"
 
-#: file.c:400
+#: file.c:405
 msgid "Removing intermediate files...\n"
 msgstr "正在删除中间文件...\n"
 
-#: file.c:808
+#: file.c:811
+msgid "Current time"
+msgstr "当前时间"
+
+#: file.c:815
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s:时间标记超出范围;正在替换 %s"
 
-#: file.c:809
-msgid "Current time"
-msgstr "当前时间"
-
-#: file.c:949
+#: file.c:955
 msgid "# Not a target:"
 msgstr "# 不是一个目标:"
 
-#: file.c:954
+#: file.c:960
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  重要文件 (.PRECIOUS的前提)。"
 
-#: file.c:956
+#: file.c:962
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  假目标 (.PHONY的前提)。"
 
-#: file.c:958
+#: file.c:964
 #, fuzzy
 msgid "#  Command line target."
 msgstr "#  命令行目标。"
 
-#: file.c:960
+#: file.c:966
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  缺省的、MAKEFILES 指定的、-include/sinclude 包含的 makefile。"
 
-#: file.c:962
+#: file.c:968
 #, fuzzy
 msgid "#  Builtin rule"
 msgstr ""
 "\n"
 "# 没有隐含规则。"
 
-#: file.c:964
+#: file.c:970
 msgid "#  Implicit rule search has been done."
 msgstr "#  对隐含规则的搜索已完成。"
 
-#: file.c:965
+#: file.c:971
 msgid "#  Implicit rule search has not been done."
 msgstr "#  对隐含规则的搜索尚未完成。"
 
-#: file.c:967
+#: file.c:973
 #, fuzzy, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  隐含/静态模式主干:“%s”\n"
 
-#: file.c:969
+#: file.c:975
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  文件是一个中间前提。"
 
-#: file.c:973
+#: file.c:979
 msgid "#  Also makes:"
 msgstr "#  还要创建:"
 
-#: file.c:979
+#: file.c:985
 msgid "#  Modification time never checked."
 msgstr "#  从不检查修改时间。"
 
-#: file.c:981
+#: file.c:987
 msgid "#  File does not exist."
 msgstr "#  文件不存在。"
 
-#: file.c:983
+#: file.c:989
 msgid "#  File is very old."
 msgstr "#  文件非常陈旧。"
 
-#: file.c:988
+#: file.c:994
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  最近更新 %s\n"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has been updated."
 msgstr "#  文件已经被更新。"
 
-#: file.c:991
+#: file.c:997
 msgid "#  File has not been updated."
 msgstr "#  文件尚未被更新。"
 
-#: file.c:995
+#: file.c:1001
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  正在运行的命令 (这是个错误)。"
 
-#: file.c:998
+#: file.c:1004
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  正在运行的依赖性命令 (这是个错误)。"
 
-#: file.c:1007
+#: file.c:1013
 msgid "#  Successfully updated."
 msgstr "#  更新成功。"
 
-#: file.c:1011
+#: file.c:1017
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  需要更新 (用 -q 设定)。"
 
-#: file.c:1014
+#: file.c:1020
 msgid "#  Failed to be updated."
 msgstr "#  更新失败。"
 
-#: file.c:1019
+#: file.c:1025
 #, fuzzy
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  “command_state”成员中无效的值!"
 
-#: file.c:1038
+#: file.c:1044
 msgid ""
 "\n"
 "# Files"
@@ -357,7 +357,7 @@ msgstr ""
 "\n"
 "# 文件"
 
-#: file.c:1042
+#: file.c:1048
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -367,108 +367,108 @@ msgstr ""
 "# 文件杂凑表状态:\n"
 "# "
 
-#: file.c:1051
+#: file.c:1058
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr ""
 
-#: function.c:742
+#: function.c:780
 #, fuzzy
 msgid "non-numeric first argument to 'word' function"
 msgstr "“word”函数的第一个参数不是数值参数"
 
-#: function.c:747
+#: function.c:785
 #, fuzzy
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "“word”函数的第一个参数必须大于 0"
 
-#: function.c:767
+#: function.c:805
 #, fuzzy
 msgid "non-numeric first argument to 'wordlist' function"
 msgstr "“wordlist”函数的第一个参数不是数值参数"
 
-#: function.c:769
+#: function.c:807
 #, fuzzy
 msgid "non-numeric second argument to 'wordlist' function"
 msgstr "“wordlist”函数的第二个参数不是数值参数"
 
-#: function.c:1460
+#: function.c:1499
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "创建子进程:复制句柄(In)失败 (e=%ld)\n"
 
-#: function.c:1483
+#: function.c:1523
 #, fuzzy, c-format
 msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "创建子进程:复制句柄(Err)失败 (e=%ld)\n"
 
-#: function.c:1490
+#: function.c:1530
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() 失败 (e=%ld)\n"
 
-#: function.c:1498
+#: function.c:1538
 #, fuzzy
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe ():process_init_fd() 失败\n"
 
-#: function.c:1792
+#: function.c:1832
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "正在清除临时批处理文件 %s\n"
 
-#: function.c:2151
+#: function.c:2193
 #, fuzzy, c-format
 msgid "open: %s: %s"
 msgstr "%s: %s"
 
-#: function.c:2158
+#: function.c:2203
 #, fuzzy, c-format
 msgid "write: %s: %s"
 msgstr "写错误: %s"
 
-#: function.c:2164
+#: function.c:2209
 #, c-format
 msgid "Invalid file operation: %s"
 msgstr ""
 
-#: function.c:2279
+#: function.c:2324
 #, fuzzy, c-format
 msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "函数“%2$s”的参数数量(%1$d)不够"
 
-#: function.c:2291
+#: function.c:2336
 #, fuzzy, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "在本平台上未实现:函数“%s”"
 
-#: function.c:2354
+#: function.c:2399
 #, fuzzy, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "对函数“%s”的未终止的调用:遗漏“%c”"
 
-#: function.c:2546
-msgid "Empty function name\n"
+#: function.c:2591
+msgid "Empty function name"
 msgstr ""
 
-#: function.c:2548
+#: function.c:2593
 #, c-format
-msgid "Invalid function name: %s\n"
+msgid "Invalid function name: %s"
 msgstr ""
 
-#: function.c:2550
+#: function.c:2595
 #, c-format
-msgid "Function name too long: %s\n"
+msgid "Function name too long: %s"
 msgstr ""
 
-#: function.c:2552
+#: function.c:2598
 #, fuzzy, c-format
-msgid "Invalid minimum argument count (%d) for function %s\n"
+msgid "Invalid minimum argument count (%d) for function %s"
 msgstr "函数“%2$s”的参数数量(%1$d)不够"
 
-#: function.c:2555
+#: function.c:2601
 #, fuzzy, c-format
-msgid "Invalid maximum argument count (%d) for function %s\n"
+msgid "Invalid maximum argument count (%d) for function %s"
 msgstr "函数“%2$s”的参数数量(%1$d)不够"
 
 #: getopt.c:659
@@ -526,12 +526,12 @@ msgstr "%s:选项“-W %s”含义不清\n"
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s:选项“-W %s”不允许给出参数\n"
 
-#: guile.c:55
+#: guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr ""
 
-#: guile.c:71
+#: guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr ""
@@ -614,98 +614,98 @@ msgstr "正在寻找使用中间文件“%s”的规则。\n"
 msgid "Cannot create a temporary file\n"
 msgstr "无法创建临时文件\n"
 
-#: job.c:482
+#: job.c:483
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: job.c:487
+#: job.c:488
 #, fuzzy
 msgid " (ignored)"
 msgstr "[%s] 错误 %d (忽略)"
 
-#: job.c:491 job.c:1994
+#: job.c:492 job.c:2046
 #, fuzzy
 msgid "<builtin>"
 msgstr " (内置):"
 
-#: job.c:501
+#: job.c:503
 #, c-format
 msgid "%s: recipe for target '%s' failed"
 msgstr ""
 
-#: job.c:510
-#, fuzzy, c-format
-msgid "%s[%s] Error 0x%x%s"
-msgstr "*** [%s] 错误 0x%x"
-
-#: job.c:513
+#: job.c:516 job.c:524
 #, fuzzy, c-format
 msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] 错误 %d"
 
-#: job.c:517
+#: job.c:519
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] 错误 0x%x"
+
+#: job.c:529
 #, fuzzy, c-format
 msgid "%s[%s] %s%s%s"
 msgstr "%s%s: %s"
 
-#: job.c:609
+#: job.c:621
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** 正在等待未完成的任务...."
 
-#: job.c:639
+#: job.c:651
 #, fuzzy, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "活跃子进程 0x%08lx (%s) PID %ld %s\n"
 
-#: job.c:641 job.c:831 job.c:950 job.c:1687
+#: job.c:653 job.c:843 job.c:962 job.c:1737
 msgid " (remote)"
 msgstr " (远程)"
 
-#: job.c:829
+#: job.c:841
 #, fuzzy, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr "正在中止失败的子进程 0x%08lx PID %ld %s\n"
 
-#: job.c:830
+#: job.c:842
 #, fuzzy, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "正在中止获胜的子进程 0x%08lx PID %ld %s\n"
 
-#: job.c:837
+#: job.c:849
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "正在清除临时批文件 %s\n"
 
-#: job.c:843
+#: job.c:855
 #, fuzzy, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "正在清除临时批文件 %s\n"
 
-#: job.c:949
+#: job.c:961
 #, fuzzy, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "从链中删除子进程 0x%08lx PID %ld%s。\n"
 
-#: job.c:1007
+#: job.c:1021
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1011 job.c:1025
+#: job.c:1024 job.c:1038
 #, fuzzy, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "为子进程 0x%08lx (%s) 释放令牌(token)。\n"
 
-#: job.c:1023
+#: job.c:1036
 msgid "write jobserver"
 msgstr "写入任务服务器"
 
-#: job.c:1612 job.c:2332
+#: job.c:1662 job.c:2387
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() 启动进程失败 (e=%ld)\n"
 
-#: job.c:1616 job.c:2336
+#: job.c:1666 job.c:2391
 #, c-format
 msgid ""
 "\n"
@@ -714,112 +714,112 @@ msgstr ""
 "\n"
 "失败执行中共有 %d 个参数。\n"
 
-#: job.c:1685
+#: job.c:1735
 #, fuzzy, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "将子进程 0x%08lx (%s) PID %ld%s 放入链。\n"
 
-#: job.c:1953
+#: job.c:2005
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr ""
 
-#: job.c:1967
+#: job.c:2019
 #, fuzzy, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "获得至进程 0x%08lx (%s) 的标记。\n"
 
-#: job.c:1977
+#: job.c:2029
 msgid "read jobs pipe"
 msgstr "读取任务管道"
 
-#: job.c:2003
+#: job.c:2056
 #, fuzzy, c-format
 msgid "%s: target '%s' does not exist"
 msgstr "touch:归档文件“%s”不存在"
 
-#: job.c:2005
+#: job.c:2059
 #, fuzzy, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%1$s没有规则可以创建“%3$s”%4$s需要的目标“%2$s”"
 
-#: job.c:2118
+#: job.c:2171
 msgid "cannot enforce load limits on this operating system"
 msgstr "无法在本操作系统中实施负载限制"
 
-#: job.c:2120
+#: job.c:2173
 msgid "cannot enforce load limit: "
 msgstr "无法实施负载限制:"
 
-#: job.c:2199
+#: job.c:2252
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr "没有剩余的文件句柄: 无法复制标准输入\n"
 
-#: job.c:2210
+#: job.c:2264
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr "没有剩余的文件句柄: 无法复制标准输出\n"
 
-#: job.c:2223
+#: job.c:2278
 #, fuzzy
 msgid "no more file handles: could not duplicate stderr\n"
 msgstr "没有剩余的文件句柄: 无法复制标准输入\n"
 
-#: job.c:2238
+#: job.c:2293
 msgid "Could not restore stdin\n"
 msgstr "无法还原标准输入\n"
 
-#: job.c:2246
+#: job.c:2301
 msgid "Could not restore stdout\n"
 msgstr "无法还原标准输出\n"
 
-#: job.c:2254
+#: job.c:2309
 #, fuzzy
 msgid "Could not restore stderr\n"
 msgstr "无法还原标准输入\n"
 
-#: job.c:2365
+#: job.c:2420
 #, fuzzy, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make 已中止的子进程 pid %ld,仍在等待 pid %ld\n"
 
-#: job.c:2403
+#: job.c:2458
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s:命令未找到"
 
-#: job.c:2463
+#: job.c:2518
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s:未找到 shell 程序"
 
-#: job.c:2472
+#: job.c:2527
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: 环境变量空间可能会耗尽"
 
-#: job.c:2709
+#: job.c:2765
 #, fuzzy, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL 已改变 (原为“%s”,现为“%s”)\n"
 
-#: job.c:3140 job.c:3325
+#: job.c:3198 job.c:3383
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "正在创建临时批文件 %s\n"
 
-#: job.c:3148
+#: job.c:3206
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
 msgstr ""
 
-#: job.c:3337
+#: job.c:3395
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3444
+#: job.c:3503
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (行 %d) 错误的 shell 上下文 (!unixy && !batch_mode_shell)\n"
@@ -828,49 +828,49 @@ msgstr "%s (行 %d) 错误的 shell 上下文 (!unixy && !batch_mode_shell)\n"
 msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
 msgstr ""
 
-#: load.c:53
+#: load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr ""
 
-#: load.c:87
+#: load.c:97
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr ""
 
-#: load.c:92
+#: load.c:104
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr ""
 
-#: load.c:136
+#: load.c:149
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr ""
 
-#: load.c:191
+#: load.c:205
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr ""
 
-#: load.c:229
+#: load.c:244
 #, fuzzy
 msgid "The 'load' operation is not supported on this platform."
 msgstr "本平台不支持并行任务 (-j)。"
 
-#: main.c:312
+#: main.c:313
 msgid "Options:\n"
 msgstr "选项:\n"
 
-#: main.c:313
+#: main.c:314
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      忽略兼容性。\n"
 
-#: main.c:315
+#: main.c:316
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           无条件 make 所有目标。\n"
 
-#: main.c:317
+#: main.c:318
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -878,16 +878,16 @@ msgstr ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              在执行前先切换到 DIRECTORY 目录。\n"
 
-#: main.c:320
+#: main.c:321
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          打印大量调试信息。\n"
 
-#: main.c:322
+#: main.c:323
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr "  --debug[=FLAGS]             打印各种调试信息。\n"
 
-#: main.c:324
+#: main.c:325
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -895,12 +895,12 @@ msgstr ""
 "  -e, --environment-overrides\n"
 "                              环境变量覆盖 makefile 中的变量。\n"
 
-#: main.c:327
+#: main.c:328
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:329
+#: main.c:330
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -908,16 +908,16 @@ msgstr ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              从 FILE 中读入 makefile。\n"
 
-#: main.c:332
+#: main.c:333
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  打印该消息并退出。\n"
 
-#: main.c:334
+#: main.c:335
 #, fuzzy
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         忽略来自命令的错误。\n"
 
-#: main.c:336
+#: main.c:337
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -925,19 +925,19 @@ msgstr ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              在 DIRECTORY 中搜索被包含的 makefile。\n"
 
-#: main.c:339
+#: main.c:340
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr ""
 "  -j [N], --jobs[=N]          同时允许 N 个任务;无参数表明允许无限个任务。\n"
 
-#: main.c:341
+#: main.c:342
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr "  -k, --keep-going            当某些目标无法创建时仍然继续。\n"
 
-#: main.c:343
+#: main.c:344
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -946,14 +946,14 @@ msgstr ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              在系统负载高于 N 时不启动多任务。\n"
 
-#: main.c:346
+#: main.c:347
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
 "  -L, --check-symlink-times   使用软链接及软链接目标中修改时间较晚的一个。\n"
 
-#: main.c:348
+#: main.c:349
 #, fuzzy
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
@@ -963,7 +963,7 @@ msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              只打印命令,不实际执行。\n"
 
-#: main.c:351
+#: main.c:352
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -972,17 +972,17 @@ msgstr ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              将 FILE 当做很旧,不必重新生成。\n"
 
-#: main.c:354
+#: main.c:355
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
 
-#: main.c:357
+#: main.c:358
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       打印 make 的内部数据库。\n"
 
-#: main.c:359
+#: main.c:360
 #, fuzzy
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
@@ -990,20 +990,20 @@ msgid ""
 msgstr ""
 "  -q, --question              不运行任何命令;退出状态说明是否已全部更新。\n"
 
-#: main.c:361
+#: main.c:362
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr "  -r, --no-builtin-rules      禁用内置隐含规则。\n"
 
-#: main.c:363
+#: main.c:364
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr "  -R, --no-builtin-variables  禁用内置变量设置。\n"
 
-#: main.c:365
+#: main.c:366
 #, fuzzy
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       不输出命令。\n"
 
-#: main.c:367
+#: main.c:368
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1011,31 +1011,31 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              关闭 -k。\n"
 
-#: main.c:370
+#: main.c:371
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr "  -t, --touch                 touch 目标而不是重新创建它们。\n"
 
-#: main.c:372
+#: main.c:373
 #, fuzzy
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --debug[=FLAGS]             打印各种调试信息。\n"
 
-#: main.c:374
+#: main.c:375
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               打印 make 的版本号并退出。\n"
 
-#: main.c:376
+#: main.c:377
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       打印当前目录。\n"
 
-#: main.c:378
+#: main.c:379
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
 msgstr "  --no-print-directory        关闭 -w,即使 -w 默认开启。\n"
 
-#: main.c:380
+#: main.c:381
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1043,37 +1043,32 @@ msgstr ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              将 FILE 当做最新。\n"
 
-#: main.c:383
+#: main.c:384
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr "  --warn-undefined-variables  当引用未定义变量的时候发出警告。\n"
 
-#: main.c:647
+#: main.c:654
 msgid "empty string invalid as file name"
 msgstr "空字符串是无效的文件名"
 
-#: main.c:734
+#: main.c:737
 #, fuzzy, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "未知的调试级别“%s”"
 
-#: main.c:777
+#: main.c:774
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr ""
 
-#: main.c:787
-#, fuzzy
-msgid "internal error: multiple --sync-mutex options"
-msgstr "内部错误:多个 --jobserver-fds 选项"
-
-#: main.c:848
+#: main.c:828
 #, fuzzy, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s:捕获中断/异常 (代码 = 0x%lx, 地址 = 0x%lx)\n"
 
-#: main.c:855
+#: main.c:835
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -1088,180 +1083,176 @@ msgstr ""
 "异常标志 = %lx\n"
 "异常地址 = %lx\n"
 
-#: main.c:863
+#: main.c:843
 #, fuzzy, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "访问冲突:地址 %lx 处的写操作\n"
 
-#: main.c:864
+#: main.c:844
 #, fuzzy, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "访问冲突:地址 %lx处的读操作\n"
 
-#: main.c:940 main.c:955
+#: main.c:920 main.c:935
 #, fuzzy, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell 设置 default_shell = %s\n"
 
-#: main.c:1008
+#: main.c:988
 #, fuzzy, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell 路径搜索结果设置 default_shell = %s\n"
 
-#: main.c:1447
+#: main.c:1436
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s 正在挂起 30 秒..."
 
-#: main.c:1449
+#: main.c:1438
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "睡眠完成(30)。继续。\n"
 
-#: main.c:1534
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "内部错误:多个 --jobserver-fds 选项"
-
-#: main.c:1544
+#: main.c:1527
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
 
-#: main.c:1547
+#: main.c:1530
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr ""
 
-#: main.c:1551
+#: main.c:1534
 #, fuzzy, c-format
 msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "内部错误:非法 --jobserver-fds 字符串“%s”"
 
-#: main.c:1554
+#: main.c:1537
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1567
+#: main.c:1551
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "警告: 子 make 中强制 -jN: 关闭 jobserver 模式。"
 
-#: main.c:1583
+#: main.c:1567
 msgid "dup jobserver"
 msgstr "复制任务服务器"
 
-#: main.c:1586
+#: main.c:1570
 #, fuzzy
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr "警告: jobserver 不存在: 使用 -j1。添加 “+” 到父 make 的规则。"
 
-#: main.c:1752
+#: main.c:1742
 msgid "Makefile from standard input specified twice."
 msgstr "两次指明来自标准输入的 makefile。"
 
-#: main.c:1790 vmsjobs.c:496
+#: main.c:1780 vmsjobs.c:653
 msgid "fopen (temporary file)"
 msgstr "fopen (临时文件)"
 
-#: main.c:1796
+#: main.c:1786
 msgid "fwrite (temporary file)"
 msgstr "fwrite (临时文件)"
 
-#: main.c:1984
+#: main.c:1974
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "本平台不支持并行任务 (-j)。"
 
-#: main.c:1985
+#: main.c:1975
 msgid "Resetting to single job (-j1) mode."
 msgstr "重置为单任务模式 (-j1)。"
 
-#: main.c:2006
+#: main.c:1994
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr ""
 
-#: main.c:2012
+#: main.c:2002
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr ""
 
-#: main.c:2019
+#: main.c:2008
 msgid "creating jobs pipe"
 msgstr "正在创建任务管道"
 
-#: main.c:2039
+#: main.c:2028
 msgid "init jobserver pipe"
 msgstr "创始化任务服务器管道"
 
-#: main.c:2064
+#: main.c:2047
 msgid "Symbolic links not supported: disabling -L."
 msgstr "不支持软链接: 关闭 -L"
 
-#: main.c:2149
+#: main.c:2133
 msgid "Updating makefiles....\n"
 msgstr "正在更新 makefile....\n"
 
-#: main.c:2174
+#: main.c:2158
 #, fuzzy, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Makefile “%s”可能循环;不会重新创建它。\n"
 
-#: main.c:2253
+#: main.c:2237
 #, fuzzy, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "重新创建 makefile “%s” 失败。"
 
-#: main.c:2270
+#: main.c:2257
 #, fuzzy, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "找不到被引入的 makefile “%s”"
 
-#: main.c:2275
+#: main.c:2262
 #, fuzzy, c-format
 msgid "Makefile '%s' was not found"
 msgstr "找不到 makefile “%s”"
 
-#: main.c:2341
+#: main.c:2330
 msgid "Couldn't change back to original directory."
 msgstr "无法回到原始目录。"
 
-#: main.c:2354
+#: main.c:2343
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "重新执行[%u]:"
 
-#: main.c:2463
+#: main.c:2453
 msgid "unlink (temporary file): "
 msgstr "删除 (临时文件):"
 
-#: main.c:2495
+#: main.c:2486
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL 包含多余一个目标"
 
-#: main.c:2518
+#: main.c:2509
 msgid "No targets specified and no makefile found"
 msgstr "没有指明目标并且找不到 makefile"
 
-#: main.c:2520
+#: main.c:2511
 msgid "No targets"
 msgstr "无目标"
 
-#: main.c:2525
+#: main.c:2516
 msgid "Updating goal targets....\n"
 msgstr "更新目标....\n"
 
-#: main.c:2550
+#: main.c:2541
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr "警告:检测到时钟错误。您的创建可能是不完整的。"
 
-#: main.c:2718
+#: main.c:2710
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "用法:%s [选项] [目标] ...\n"
 
-#: main.c:2724
+#: main.c:2716
 #, c-format
 msgid ""
 "\n"
@@ -1270,7 +1261,7 @@ msgstr ""
 "\n"
 "该程序为 %s 编译\n"
 
-#: main.c:2726
+#: main.c:2718
 #, c-format
 msgid ""
 "\n"
@@ -1279,36 +1270,36 @@ msgstr ""
 "\n"
 "该程序为 %s (%s) 编译\n"
 
-#: main.c:2729
+#: main.c:2721
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr "报告错误到 <bug-make@gnu.org>\n"
 
-#: main.c:2810
+#: main.c:2807
 #, fuzzy, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "“-%c”选项需要非空字符串参数"
 
-#: main.c:2864
+#: main.c:2871
 #, fuzzy, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "“-%c”选项需要正整数参数"
 
-#: main.c:3253
+#: main.c:3269
 #, fuzzy, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 "\n"
 "%s该程序为 %s 编译\n"
 
-#: main.c:3255
+#: main.c:3271
 #, fuzzy, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 "\n"
 "%s该程序为 %s (%s) 编译\n"
 
-#: main.c:3266
+#: main.c:3282
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1317,7 +1308,7 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3287
+#: main.c:3303
 #, c-format
 msgid ""
 "\n"
@@ -1326,7 +1317,7 @@ msgstr ""
 "\n"
 "# make 数据基础,打印在 %s"
 
-#: main.c:3297
+#: main.c:3313
 #, c-format
 msgid ""
 "\n"
@@ -1340,10 +1331,6 @@ msgstr ""
 msgid "Unknown error %d"
 msgstr "未知错误 %d"
 
-#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
-msgid "virtual memory exhausted"
-msgstr "虚拟内存耗尽"
-
 #: misc.c:522
 #, c-format
 msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
@@ -1365,65 +1352,61 @@ msgstr "Make 权限"
 msgid "Child access"
 msgstr "子进程 权限"
 
-#: output.c:128
+#: output.c:104
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: 进入一个未知的目录\n"
 
-#: output.c:130
+#: output.c:106
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: 离开一个未知的目录\n"
 
-#: output.c:133
+#: output.c:109
 #, fuzzy, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: 进入目录“%s”\n"
 
-#: output.c:135
+#: output.c:111
 #, fuzzy, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: 离开目录“%s”\n"
 
-#: output.c:139
+#: output.c:115
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: 进入一个未知的目录\n"
 
-#: output.c:141
+#: output.c:117
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: 离开一个未知的目录\n"
 
-#: output.c:144
+#: output.c:120
 #, fuzzy, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: 进入目录“%s”\n"
 
-#: output.c:146
+#: output.c:122
 #, fuzzy, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: 离开目录“%s”\n"
 
-#: output.c:515
-#, c-format
-msgid "write error: %s"
+#: output.c:495 output.c:497
+#, fuzzy
+msgid "write error: stdout"
 msgstr "写错误: %s"
 
-#: output.c:517
-msgid "write error"
-msgstr "写错误"
-
-#: output.c:740
+#: output.c:677
 msgid ".  Stop.\n"
 msgstr "。 停止。\n"
 
-#: output.c:751
+#: output.c:711
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:759
+#: output.c:720
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
@@ -1432,359 +1415,365 @@ msgstr "%s: %s"
 msgid "Reading makefiles...\n"
 msgstr "正在读入 makefiles...\n"
 
-#: read.c:333
+#: read.c:335
 #, fuzzy, c-format
 msgid "Reading makefile '%s'"
 msgstr "正在读入 makefile “%s”"
 
-#: read.c:335
+#: read.c:337
 #, c-format
 msgid " (no default goal)"
 msgstr " (没有缺省目标)"
 
-#: read.c:337
+#: read.c:339
 #, c-format
 msgid " (search path)"
 msgstr " (搜索路径)"
 
-#: read.c:339
+#: read.c:341
 #, c-format
 msgid " (don't care)"
 msgstr " (不用理)"
 
-#: read.c:341
+#: read.c:343
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (没有 ~ 扩展)"
 
-#: read.c:652
+#: read.c:656
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr ""
 
-#: read.c:655
+#: read.c:659
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr ""
 
-#: read.c:786
+#: read.c:789
 msgid "invalid syntax in conditional"
 msgstr "条件中含有无效语法"
 
-#: read.c:961
+#: read.c:966
 #, c-format
 msgid "%s: failed to load"
 msgstr ""
 
-#: read.c:987
+#: read.c:992
 #, fuzzy
 msgid "recipe commences before first target"
 msgstr "命令在第一个目标前开始"
 
-#: read.c:1036
+#: read.c:1041
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "命令之前遗漏了规则"
 
-#: read.c:1123
-#, c-format
-msgid "missing separator%s"
-msgstr "遗漏分隔符 %s"
-
-#: read.c:1125
-msgid " (did you mean TAB instead of 8 spaces?)"
+#: read.c:1131
+#, fuzzy
+msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr " (您的意思是用 TAB 代替 8 个空格?)"
 
-#: read.c:1263
+#: read.c:1133
+#, fuzzy
+msgid "missing separator"
+msgstr "遗漏分隔符 %s"
+
+#: read.c:1270
 msgid "missing target pattern"
 msgstr "无目标匹配"
 
-#: read.c:1265
+#: read.c:1272
 msgid "multiple target patterns"
 msgstr "多个目标匹配"
 
-#: read.c:1269
+#: read.c:1276
 #, fuzzy, c-format
 msgid "target pattern contains no '%%'"
 msgstr "目标模式不含有“%%”"
 
-#: read.c:1391
+#: read.c:1398
 #, fuzzy
 msgid "missing 'endif'"
 msgstr "遗漏“endif”"
 
-#: read.c:1430 read.c:1475 variable.c:1554
+#: read.c:1436 read.c:1481 variable.c:1546
 msgid "empty variable name"
 msgstr "空变量名"
 
-#: read.c:1465
+#: read.c:1471
 #, fuzzy
 msgid "extraneous text after 'define' directive"
 msgstr "“endef”指令后含有不该出现的文字"
 
-#: read.c:1490
+#: read.c:1496
 #, fuzzy
 msgid "missing 'endef', unterminated 'define'"
 msgstr "遗漏“endef”,未终止的“define”"
 
-#: read.c:1518
+#: read.c:1524
 #, fuzzy
 msgid "extraneous text after 'endef' directive"
 msgstr "“endef”指令后含有不该出现的文字"
 
-#: read.c:1589
+#: read.c:1595
 #, fuzzy, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "在“%s”指令之后含有不该出现的文字"
 
-#: read.c:1598 read.c:1612
+#: read.c:1596
 #, fuzzy, c-format
 msgid "extraneous '%s'"
 msgstr "不该出现的“%s”"
 
-#: read.c:1617
+#: read.c:1624
 #, fuzzy
 msgid "only one 'else' per conditional"
 msgstr "每个条件只能有一个“else”"
 
-#: read.c:1892
+#: read.c:1899
 msgid "Malformed target-specific variable definition"
 msgstr "畸形的针对目标的标量定义"
 
-#: read.c:1951
+#: read.c:1957
 #, fuzzy
 msgid "prerequisites cannot be defined in recipes"
 msgstr "依赖无法在命令脚本中定义"
 
-#: read.c:2009
+#: read.c:2015
 msgid "mixed implicit and static pattern rules"
 msgstr "混和的隐含和静态模式规则"
 
-#: read.c:2032 read.c:2220
+#: read.c:2038
 msgid "mixed implicit and normal rules"
 msgstr "混和的隐含和普通规则"
 
-#: read.c:2084
+#: read.c:2091
 #, fuzzy, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "目标“%s”不匹配目标模式"
 
-#: read.c:2099 read.c:2144
+#: read.c:2106 read.c:2152
 #, fuzzy, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "目标文件“%s”含有 : 和 :: 两种条目"
 
-#: read.c:2105
+#: read.c:2112
 #, fuzzy, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "目标“%s”在同一个规则中给出了多次。"
 
-#: read.c:2114
+#: read.c:2122
 #, fuzzy, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "警告:覆盖关于目标“%s”的命令"
 
-#: read.c:2117
+#: read.c:2125
 #, fuzzy, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "警告:忽略关于目标“%s”的旧命令"
 
-#: read.c:2530
+#: read.c:2229
+#, fuzzy
+msgid "*** mixed implicit and normal rules: deprecated syntax"
+msgstr "混和的隐含和普通规则"
+
+#: read.c:2539
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "警告:遇到了 NUL 字符;忽略行的剩余部分"
 
-#: remake.c:232
+#: remake.c:230
 #, fuzzy, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "对“%s”无需做任何事。"
 
-#: remake.c:233
+#: remake.c:231
 #, fuzzy, c-format
 msgid "'%s' is up to date."
 msgstr "“%s”是最新的。"
 
-#: remake.c:305
+#: remake.c:303
 #, fuzzy, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "正在删除文件“%s”。\n"
 
-#: remake.c:377
-#, fuzzy, c-format
-msgid "%sNo rule to make target '%s'%s"
-msgstr "%s没有规则可以创建目标“%s”%s"
-
-#: remake.c:379
+#: remake.c:390 remake.c:393
 #, fuzzy, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%1$s没有规则可以创建“%3$s”%4$s需要的目标“%2$s”"
 
-#: remake.c:413
+#: remake.c:402 remake.c:405
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%s没有规则可以创建目标“%s”%s"
+
+#: remake.c:426
 #, fuzzy, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "正在考虑目标文件“%s”。\n"
 
-#: remake.c:420
+#: remake.c:433
 #, fuzzy, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "最近已尝试过更新文件“%s”并失败。\n"
 
-#: remake.c:432
+#: remake.c:445
 #, fuzzy, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "已考虑过文件“%s”。\n"
 
-#: remake.c:442
+#: remake.c:455
 #, fuzzy, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "仍然在更新文件“%s”。\n"
 
-#: remake.c:445
+#: remake.c:458
 #, fuzzy, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "更新文件“%s”完成。\n"
 
-#: remake.c:474
+#: remake.c:487
 #, fuzzy, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "文件“%s”不存在。\n"
 
-#: remake.c:481
+#: remake.c:495
 #, fuzzy, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr "*** 警告: .LOW_RESOLUTION_TIME 文件 `%s' 有一个精细的时间标志"
 
-#: remake.c:494 remake.c:1019
+#: remake.c:508 remake.c:1040
 #, fuzzy, c-format
 msgid "Found an implicit rule for '%s'.\n"
 msgstr "找到一条关于“%s”的隐含规则。\n"
 
-#: remake.c:496 remake.c:1021
+#: remake.c:510 remake.c:1042
 #, fuzzy, c-format
 msgid "No implicit rule found for '%s'.\n"
 msgstr "找不到关于“%s”的隐含规则。\n"
 
-#: remake.c:502
+#: remake.c:516
 #, fuzzy, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "使用关于“%s”的默认命令。\n"
 
-#: remake.c:535 remake.c:1067
+#: remake.c:550 remake.c:1089
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "放弃循环依赖 %s <- %s 。"
 
-#: remake.c:655
+#: remake.c:675
 #, fuzzy, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "目标文件“%s”的前提已完成。\n"
 
-#: remake.c:661
+#: remake.c:681
 #, fuzzy, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "正在创建“%s”的前提。\n"
 
-#: remake.c:674
+#: remake.c:695
 #, fuzzy, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "放弃目标文件“%s”。\n"
 
-#: remake.c:679
+#: remake.c:700
 #, fuzzy, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "由于错误目标“%s”并未重新创建。"
 
-#: remake.c:731
+#: remake.c:752
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "“%s”是目标“%s”的一个仅用于指定执行顺序(order-only)的前提。\n"
 
-#: remake.c:736
+#: remake.c:757
 #, fuzzy, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "目标“%2$s”的前提“%1$s”不存在。\n"
 
-#: remake.c:741
+#: remake.c:762
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "前提“%s”比目标“%s”新。\n"
 
-#: remake.c:744
+#: remake.c:765
 #, fuzzy, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "前提“%s”比目标“%s”旧。\n"
 
-#: remake.c:762
+#: remake.c:783
 #, fuzzy, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "目标“%s”是双冒号目标并且没有前提。\n"
 
-#: remake.c:769
+#: remake.c:790
 #, fuzzy, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "没有关于“%s”的命令,并且实际上改变了的前提。\n"
 
-#: remake.c:774
+#: remake.c:795
 #, fuzzy, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "由于 always-make 标志所以 make “%s”。\n"
 
-#: remake.c:782
+#: remake.c:803
 #, fuzzy, c-format
 msgid "No need to remake target '%s'"
 msgstr "不需要重新创建目标“%s”"
 
-#: remake.c:784
+#: remake.c:805
 #, fuzzy, c-format
 msgid "; using VPATH name '%s'"
 msgstr ";使用 VPATH 名称“%s”"
 
-#: remake.c:804
+#: remake.c:825
 #, fuzzy, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "必须重新创建目标“%s”。\n"
 
-#: remake.c:810
+#: remake.c:831
 #, fuzzy, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  忽略 VPATH 名称 `%s'。\n"
 
-#: remake.c:819
+#: remake.c:840
 #, fuzzy, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "“%s”的命令正在被执行。\n"
 
-#: remake.c:826
+#: remake.c:847
 #, fuzzy, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "重新创建目标文件“%s”失败。\n"
 
-#: remake.c:829
+#: remake.c:850
 #, fuzzy, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "重新创建目标文件“%s”成功。\n"
 
-#: remake.c:832
+#: remake.c:853
 #, fuzzy, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "目标文件“%s”需要以 -q 选项重新创建。\n"
 
-#: remake.c:1027
+#: remake.c:1048
 #, fuzzy, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "使用关于“%s”的默认命令。\n"
 
-#: remake.c:1372
+#: remake.c:1397
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time in the future"
 msgstr "警告:文件“%s”的修改时间在未来"
 
-#: remake.c:1385
+#: remake.c:1411
 #, fuzzy, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "警告:文件“%s”的修改时间在 %.2g 秒后"
 
-#: remake.c:1583
+#: remake.c:1610
 #, fuzzy, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ".LIBPATTERNS 的元素“%s”不是一个模式"
@@ -1794,7 +1783,7 @@ msgstr ".LIBPATTERNS 的元素“%s”不是一个模式"
 msgid "Customs won't export: %s\n"
 msgstr "用户不希望导出:%s\n"
 
-#: rule.c:496
+#: rule.c:495
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1802,7 +1791,7 @@ msgstr ""
 "\n"
 "# 隐含规则。"
 
-#: rule.c:511
+#: rule.c:510
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1810,7 +1799,7 @@ msgstr ""
 "\n"
 "# 没有隐含规则。"
 
-#: rule.c:514
+#: rule.c:513
 #, c-format
 msgid ""
 "\n"
@@ -1819,11 +1808,11 @@ msgstr ""
 "\n"
 "# %u 条隐含规则,%u"
 
-#: rule.c:523
+#: rule.c:522
 msgid " terminal."
 msgstr " 终端。"
 
-#: rule.c:531
+#: rule.c:530
 #, fuzzy, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "错误:num_pattern_rules 出错!%u != %u"
@@ -2033,45 +2022,45 @@ msgstr ""
 "# 文件杂凑表状态:\n"
 "# "
 
-#: variable.c:1607
+#: variable.c:1599
 msgid "automatic"
 msgstr "自动"
 
-#: variable.c:1610
+#: variable.c:1602
 msgid "default"
 msgstr "默认"
 
-#: variable.c:1613
+#: variable.c:1605
 msgid "environment"
 msgstr "环境"
 
-#: variable.c:1616
+#: variable.c:1608
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1619
+#: variable.c:1611
 msgid "environment under -e"
 msgstr "-e 指定的环境变量"
 
-#: variable.c:1622
+#: variable.c:1614
 msgid "command line"
 msgstr "命令行"
 
-#: variable.c:1625
+#: variable.c:1617
 #, fuzzy
 msgid "'override' directive"
 msgstr "“override”指令"
 
-#: variable.c:1636
+#: variable.c:1628
 #, fuzzy, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (从“%s”,行 %lu)"
 
-#: variable.c:1699
+#: variable.c:1691
 msgid "# variable set hash-table stats:\n"
 msgstr "# 变量的杂凑表状态:\n"
 
-#: variable.c:1710
+#: variable.c:1702
 msgid ""
 "\n"
 "# Variables\n"
@@ -2079,7 +2068,7 @@ msgstr ""
 "\n"
 "# 变量\n"
 
-#: variable.c:1714
+#: variable.c:1706
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2087,7 +2076,7 @@ msgstr ""
 "\n"
 "# Pattern-specific 变量值"
 
-#: variable.c:1728
+#: variable.c:1720
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2095,7 +2084,7 @@ msgstr ""
 "\n"
 "# 没有 pattern-specific 变量的值。"
 
-#: variable.c:1730
+#: variable.c:1722
 #, c-format
 msgid ""
 "\n"
@@ -2114,77 +2103,82 @@ msgstr "警告:未定义的变量“%.*s”"
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search 失败并返回 %d\n"
 
-#: vmsjobs.c:70
+#: vmsjobs.c:72
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "警告:空的重定向\n"
 
-#: vmsjobs.c:178
+#: vmsjobs.c:183
 #, fuzzy, c-format
 msgid "internal error: '%s' command_state"
 msgstr "内部错误:“%s” command_state"
 
-#: vmsjobs.c:286
+#: vmsjobs.c:290
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr "-警告, 你可能必须从 DCL 重新启用 CTRL-Y。\n"
 
-#: vmsjobs.c:417
+#: vmsjobs.c:455 vmsjobs.c:559
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BUILTIN [%s][%s]\n"
 
-#: vmsjobs.c:428
+#: vmsjobs.c:465
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:446
-#, c-format
-msgid "BUILTIN RM %s\n"
-msgstr "BUILTIN RM %s\n"
+#: vmsjobs.c:501
+#, fuzzy, c-format
+msgid "BUILTIN ECHO %s->%s\n"
+msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:467
+#: vmsjobs.c:505
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "未知的内置命令“%s”\n"
 
-#: vmsjobs.c:489
+#: vmsjobs.c:592
+#, c-format
+msgid "Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"
+msgstr ""
+
+#: vmsjobs.c:643
 #, c-format
 msgid "Error, empty command\n"
 msgstr "错误,空命令\n"
 
-#: vmsjobs.c:502
+#: vmsjobs.c:674
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "来自 %s 的重定向输入\n"
 
-#: vmsjobs.c:509
+#: vmsjobs.c:681
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "到 %s 的重定向错误输出\n"
 
-#: vmsjobs.c:518
+#: vmsjobs.c:690
 #, fuzzy, c-format
 msgid "Append output to %s\n"
 msgstr "到 %s 的重定向输出\n"
 
-#: vmsjobs.c:524
+#: vmsjobs.c:696
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "到 %s 的重定向输出\n"
 
-#: vmsjobs.c:593
+#: vmsjobs.c:802
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:600
+#: vmsjobs.c:809
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "执行 %s 作为替代\n"
 
-#: vmsjobs.c:706
+#: vmsjobs.c:915
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "错误产生,%d\n"
@@ -2239,6 +2233,22 @@ msgstr ""
 #~ msgid "unknown trace mode '%s'"
 #~ msgstr "未知的内置命令“%s”\n"
 
+#, fuzzy
+#~ msgid "internal error: multiple --sync-mutex options"
+#~ msgstr "内部错误:多个 --jobserver-fds 选项"
+
+#~ msgid "internal error: multiple --jobserver-fds options"
+#~ msgstr "内部错误:多个 --jobserver-fds 选项"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "虚拟内存耗尽"
+
+#~ msgid "write error"
+#~ msgstr "写错误"
+
+#~ msgid "BUILTIN RM %s\n"
+#~ msgstr "BUILTIN RM %s\n"
+
 #~ msgid "*** [%s] Error 0x%x (ignored)"
 #~ msgstr "*** [%s] 错误 0x%x (忽略)"
 
diff --git a/read.c b/read.c
index 15d1b13c2d1ad1b288672749b7179afae845e669..6ff4bcc36f2ce531b70bf8e789d927521b21470a 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1,5 +1,5 @@
 /* Reading and parsing of makefiles for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -238,7 +238,7 @@ read_all_makefiles (const char **makefiles)
 
   if (num_makefiles == 0)
     {
-      static char *default_makefiles[] =
+      static const char *default_makefiles[] =
 #ifdef VMS
         /* all lower case since readdir() (the vms version) 'lowercasifies' */
         { "makefile.vms", "gnumakefile.", "makefile.", 0 };
@@ -246,10 +246,14 @@ read_all_makefiles (const char **makefiles)
 #ifdef _AMIGA
         { "GNUmakefile", "Makefile", "SMakefile", 0 };
 #else /* !Amiga && !VMS */
+#ifdef WINDOWS32
+        { "GNUmakefile", "makefile", "Makefile", "makefile.mak", 0 };
+#else /* !Amiga && !VMS && !WINDOWS32 */
         { "GNUmakefile", "makefile", "Makefile", 0 };
+#endif /* !Amiga && !VMS && !WINDOWS32 */
 #endif /* AMIGA */
 #endif /* VMS */
-      register char **p = default_makefiles;
+      const char **p = default_makefiles;
       while (*p != 0 && !file_exists_p (*p))
         ++p;
 
@@ -307,10 +311,8 @@ static void
 restore_conditionals (struct conditionals *saved)
 {
   /* Free any space allocated by conditional_line.  */
-  if (conditionals->ignoring)
-    free (conditionals->ignoring);
-  if (conditionals->seen_else)
-    free (conditionals->seen_else);
+  free (conditionals->ignoring);
+  free (conditionals->seen_else);
 
   /* Restore state.  */
   conditionals = saved;
@@ -368,7 +370,10 @@ eval_makefile (const char *filename, int flags)
     case ENFILE:
 #endif
     case ENOMEM:
-      fatal (reading_file, "%s", strerror (makefile_errno));
+      {
+        const char *err = strerror (makefile_errno);
+        OS (fatal, reading_file, "%s", err);
+      }
     }
 
   /* If the makefile wasn't found and it's either a makefile from
@@ -406,8 +411,7 @@ eval_makefile (const char *filename, int flags)
   if (flags & RM_DONTCARE)
     deps->dontcare = 1;
 
-  if (expanded)
-    free (expanded);
+  free (expanded);
 
   /* If the makefile can't be found at all, give up entirely.  */
 
@@ -704,8 +708,7 @@ eval (struct ebuffer *ebuf, int set_default)
       if (collapsed_length < linelen+1)
         {
           collapsed_length = linelen+1;
-          if (collapsed)
-            free (collapsed);
+          free (collapsed);
           /* Don't need xrealloc: we don't need to preserve the content.  */
           collapsed = xmalloc (collapsed_length);
         }
@@ -783,7 +786,7 @@ eval (struct ebuffer *ebuf, int set_default)
         if (i != -2)
           {
             if (i == -1)
-              fatal (fstart, _("invalid syntax in conditional"));
+              O (fatal, fstart, _("invalid syntax in conditional"));
 
             ignoring = i;
             continue;
@@ -853,8 +856,7 @@ eval (struct ebuffer *ebuf, int set_default)
             /* No pattern means remove all previous selective VPATH's.  */
             vpat = 0;
           construct_vpath_list (vpat, p);
-          if (vpat != 0)
-            free (vpat);
+          free (vpat);
 
           continue;
         }
@@ -912,7 +914,10 @@ eval (struct ebuffer *ebuf, int set_default)
                                   | (noerror ? RM_DONTCARE : 0)
                                   | (set_default ? 0 : RM_NO_DEFAULT_GOAL)));
               if (!r && !noerror)
-                error (fstart, "%s: %s", name, strerror (errno));
+                {
+                  const char *err = strerror (errno);
+                  OSS (error, fstart, "%s: %s", name, err);
+                }
             }
 
           /* Restore conditional state.  */
@@ -958,7 +963,7 @@ eval (struct ebuffer *ebuf, int set_default)
               /* Load the file.  0 means failure.  */
               r = load_file (&ebuf->floc, &name, noerror);
               if (! r && ! noerror)
-                fatal (&ebuf->floc, _("%s: failed to load"), name);
+                OS (fatal, &ebuf->floc, _("%s: failed to load"), name);
 
               free_ns (files);
               files = next;
@@ -984,7 +989,7 @@ eval (struct ebuffer *ebuf, int set_default)
          was no preceding target, and the line might have been usable as a
          variable definition.  But now we know it is definitely lossage.  */
       if (line[0] == cmd_prefix)
-        fatal (fstart, _("recipe commences before first target"));
+        O (fatal, fstart, _("recipe commences before first target"));
 
       /* This line describes some target files.  This is complicated by
          the existence of target-specific variables, because we can't
@@ -1033,7 +1038,7 @@ eval (struct ebuffer *ebuf, int set_default)
           {
           case w_eol:
             if (cmdleft != 0)
-              fatal (fstart, _("missing rule before recipe"));
+              O (fatal, fstart, _("missing rule before recipe"));
             /* This line contained something but turned out to be nothing
                but whitespace (a comment?).  */
             continue;
@@ -1117,13 +1122,15 @@ eval (struct ebuffer *ebuf, int set_default)
            it.  If so, we can't parse this line so punt.  */
         if (wtype == w_eol)
           {
-            if (*p2 != '\0')
-              /* There's no need to be ivory-tower about this: check for
-                 one of the most common bugs found in makefiles...  */
-              fatal (fstart, _("missing separator%s"),
-                     (cmd_prefix == '\t' && !strneq (line, "        ", 8))
-                     ? "" : _(" (did you mean TAB instead of 8 spaces?)"));
-            continue;
+            if (*p2 == '\0')
+              continue;
+
+            /* There's no need to be ivory-tower about this: check for
+               one of the most common bugs found in makefiles...  */
+            if (cmd_prefix == '\t' && strneq (line, "        ", 8))
+              O (fatal, fstart, _("missing separator (did you mean TAB instead of 8 spaces?)"));
+            else
+              O (fatal, fstart, _("missing separator"));
           }
 
         /* Make the colon the end-of-string so we know where to stop
@@ -1260,13 +1267,13 @@ eval (struct ebuffer *ebuf, int set_default)
                                      PARSEFS_NOGLOB);
             ++p2;
             if (target == 0)
-              fatal (fstart, _("missing target pattern"));
+              O (fatal, fstart, _("missing target pattern"));
             else if (target->next != 0)
-              fatal (fstart, _("multiple target patterns"));
+              O (fatal, fstart, _("multiple target patterns"));
             pattern_percent = find_percent_cached (&target->name);
             pattern = target->name;
             if (pattern_percent == 0)
-              fatal (fstart, _("target pattern contains no '%%'"));
+              O (fatal, fstart, _("target pattern contains no '%%'"));
             free_ns (target);
           }
         else
@@ -1388,13 +1395,12 @@ eval (struct ebuffer *ebuf, int set_default)
 #undef word1eq
 
   if (conditionals->if_cmds)
-    fatal (fstart, _("missing 'endif'"));
+    O (fatal, fstart, _("missing 'endif'"));
 
   /* At eof, record the last rule.  */
   record_waiting_files ();
 
-  if (collapsed)
-    free (collapsed);
+  free (collapsed);
   free (commands);
 }
 \f
@@ -1427,7 +1433,7 @@ do_undefine (char *name, enum variable_origin origin, struct ebuffer *ebuf)
   var = allocated_variable_expand (name);
   name = next_token (var);
   if (*name == '\0')
-    fatal (&ebuf->floc, _("empty variable name"));
+    O (fatal, &ebuf->floc, _("empty variable name"));
   p = name + strlen (name) - 1;
   while (p > name && isblank ((unsigned char)*p))
     --p;
@@ -1462,7 +1468,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
   else
     {
       if (var.value[0] != '\0')
-        error (&defstart, _("extraneous text after 'define' directive"));
+        O (error, &defstart, _("extraneous text after 'define' directive"));
 
       /* Chop the string before the assignment token to get the name.  */
       var.name[var.length] = '\0';
@@ -1472,7 +1478,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
   n = allocated_variable_expand (name);
   name = next_token (n);
   if (name[0] == '\0')
-    fatal (&defstart, _("empty variable name"));
+    O (fatal, &defstart, _("empty variable name"));
   p = name + strlen (name) - 1;
   while (p > name && isblank ((unsigned char)*p))
     --p;
@@ -1487,7 +1493,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
 
       /* If there is nothing left to be eval'd, there's no 'endef'!!  */
       if (nlines < 0)
-        fatal (&defstart, _("missing 'endef', unterminated 'define'"));
+        O (fatal, &defstart, _("missing 'endef', unterminated 'define'"));
 
       ebuf->floc.lineno += nlines;
       line = ebuf->buffer;
@@ -1514,8 +1520,8 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
               p += 5;
               remove_comments (p);
               if (*(next_token (p)) != '\0')
-                error (&ebuf->floc,
-                       _("extraneous text after 'endef' directive"));
+                O (error, &ebuf->floc,
+                   _("extraneous text after 'endef' directive"));
 
               if (--nlevels == 0)
                 break;
@@ -1564,7 +1570,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
 static int
 conditional_line (char *line, int len, const gmk_floc *flocp)
 {
-  char *cmdname;
+  const char *cmdname;
   enum { c_ifdef, c_ifndef, c_ifeq, c_ifneq, c_else, c_endif } cmdtype;
   unsigned int i;
   unsigned int o;
@@ -1586,16 +1592,17 @@ conditional_line (char *line, int len, const gmk_floc *flocp)
   /* Found one: skip past it and any whitespace after it.  */
   line = next_token (line + len);
 
-#define EXTRANEOUS() error (flocp, _("extraneous text after '%s' directive"), cmdname)
+#define EXTRATEXT() OS (error, flocp, _("extraneous text after '%s' directive"), cmdname)
+#define EXTRACMD()  OS (fatal, flocp, _("extraneous '%s'"), cmdname)
 
   /* An 'endif' cannot contain extra text, and reduces the if-depth by 1  */
   if (cmdtype == c_endif)
     {
       if (*line != '\0')
-        EXTRANEOUS ();
+        EXTRATEXT ();
 
       if (!conditionals->if_cmds)
-        fatal (flocp, _("extraneous '%s'"), cmdname);
+        EXTRACMD ();
 
       --conditionals->if_cmds;
 
@@ -1609,12 +1616,12 @@ conditional_line (char *line, int len, const gmk_floc *flocp)
       const char *p;
 
       if (!conditionals->if_cmds)
-        fatal (flocp, _("extraneous '%s'"), cmdname);
+        EXTRACMD ();
 
       o = conditionals->if_cmds - 1;
 
       if (conditionals->seen_else[o])
-        fatal (flocp, _("only one 'else' per conditional"));
+        O (fatal, flocp, _("only one 'else' per conditional"));
 
       /* Change the state of ignorance.  */
       switch (conditionals->ignoring[o])
@@ -1647,7 +1654,7 @@ conditional_line (char *line, int len, const gmk_floc *flocp)
       /* If it's 'else' or 'endif' or an illegal conditional, fail.  */
       if (word1eq ("else") || word1eq ("endif")
           || conditional_line (line, len, flocp) < 0)
-        EXTRANEOUS ();
+        EXTRATEXT ();
       else
         {
           /* conditional_line() created a new level of conditional.
@@ -1804,7 +1811,7 @@ conditional_line (char *line, int len, const gmk_floc *flocp)
       *line = '\0';
       line = next_token (++line);
       if (*line != '\0')
-        EXTRANEOUS ();
+        EXTRATEXT ();
 
       s2 = variable_expand (s2);
       conditionals->ignoring[o] = (streq (s1, s2) == (cmdtype == c_ifneq));
@@ -1889,7 +1896,7 @@ record_target_var (struct nameseq *filenames, char *defn,
           current_variable_set_list = f->variables;
           v = try_variable_definition (flocp, defn, origin, 1);
           if (!v)
-            fatal (flocp, _("Malformed target-specific variable definition"));
+            O (fatal, flocp, _("Malformed target-specific variable definition"));
           current_variable_set_list = global;
         }
 
@@ -1909,8 +1916,7 @@ record_target_var (struct nameseq *filenames, char *defn,
           if (gv && v != gv
               && (gv->origin == o_env_override || gv->origin == o_command))
             {
-              if (v->value != 0)
-                free (v->value);
+              free (v->value);
               v->value = xstrdup (gv->value);
               v->origin = gv->origin;
               v->recursive = gv->recursive;
@@ -1948,7 +1954,7 @@ record_files (struct nameseq *filenames, const char *pattern,
      at this time, since they won't get snapped and we'll get core dumps.
      See Savannah bug # 12124.  */
   if (snapped_deps)
-    fatal (flocp, _("prerequisites cannot be defined in recipes"));
+    O (fatal, flocp, _("prerequisites cannot be defined in recipes"));
 
   /* Determine if this is a pattern rule or not.  */
   name = filenames->name;
@@ -2006,7 +2012,7 @@ record_files (struct nameseq *filenames, const char *pattern,
       unsigned int c;
 
       if (pattern != 0)
-        fatal (flocp, _("mixed implicit and static pattern rules"));
+        O (fatal, flocp, _("mixed implicit and static pattern rules"));
 
       /* Count the targets to create an array of target names.
          We already have the first one.  */
@@ -2029,7 +2035,7 @@ record_files (struct nameseq *filenames, const char *pattern,
           implicit_percent = find_percent_cached (&name);
 
           if (implicit_percent == 0)
-            fatal (flocp, _("mixed implicit and normal rules"));
+            O (fatal, flocp, _("mixed implicit and normal rules"));
 
           targets[c] = name;
           target_pats[c] = implicit_percent;
@@ -2081,7 +2087,8 @@ record_files (struct nameseq *filenames, const char *pattern,
          'targets: target%pattern: prereq%pattern; recipe',
          make sure the pattern matches this target name.  */
       if (pattern && !pattern_matches (pattern, pattern_percent, name))
-        error (flocp, _("target '%s' doesn't match the target pattern"), name);
+        OS (error, flocp,
+            _("target '%s' doesn't match the target pattern"), name);
       else if (deps)
         /* If there are multiple targets, copy the chain DEPS for all but the
            last one.  It is not safe for the same deps to go in more than one
@@ -2095,25 +2102,26 @@ record_files (struct nameseq *filenames, const char *pattern,
              if any.  */
           f = enter_file (strcache_add (name));
           if (f->double_colon)
-            fatal (flocp,
-                   _("target file '%s' has both : and :: entries"), f->name);
+            OS (fatal, flocp,
+                _("target file '%s' has both : and :: entries"), f->name);
 
           /* If CMDS == F->CMDS, this target was listed in this rule
              more than once.  Just give a warning since this is harmless.  */
           if (cmds != 0 && cmds == f->cmds)
-            error (flocp,
-                   _("target '%s' given more than once in the same rule"),
-                   f->name);
+            OS (error, flocp,
+                _("target '%s' given more than once in the same rule"),
+                f->name);
 
           /* Check for two single-colon entries both with commands.
              Check is_target so that we don't lose on files such as .c.o
              whose commands were preinitialized.  */
           else if (cmds != 0 && f->cmds != 0 && f->is_target)
             {
-              error (&cmds->fileinfo,
+              size_t l = strlen (f->name);
+              error (&cmds->fileinfo, l,
                      _("warning: overriding recipe for target '%s'"),
                      f->name);
-              error (&f->cmds->fileinfo,
+              error (&f->cmds->fileinfo, l,
                      _("warning: ignoring old recipe for target '%s'"),
                      f->name);
             }
@@ -2140,8 +2148,8 @@ record_files (struct nameseq *filenames, const char *pattern,
           /* Check for both : and :: rules.  Check is_target so we don't lose
              on default suffix rules or makefiles.  */
           if (f != 0 && f->is_target && !f->double_colon)
-            fatal (flocp,
-                   _("target file '%s' has both : and :: entries"), f->name);
+            OS (fatal, flocp,
+                _("target file '%s' has both : and :: entries"), f->name);
 
           f = enter_file (strcache_add (name));
           /* If there was an existing entry and it was a double-colon entry,
@@ -2217,7 +2225,8 @@ record_files (struct nameseq *filenames, const char *pattern,
       /* Reduce escaped percents.  If there are any unescaped it's an error  */
       name = filenames->name;
       if (find_percent_cached (&name))
-        fatal (flocp, _("mixed implicit and normal rules"));
+        O (error, flocp,
+           _("*** mixed implicit and normal rules: deprecated syntax"));
     }
 }
 \f
@@ -2331,14 +2340,14 @@ unescape_char (char *string, int c)
           if (*e != c || l%2 == 0)
             {
               /* It's not; just take it all without unescaping.  */
-              memcpy (p, s, l);
+              memmove (p, s, l);
               p += l;
             }
           else if (l > 1)
             {
               /* It is, and there's >1 backslash.  Take half of them.  */
               l /= 2;
-              memcpy (p, s, l);
+              memmove (p, s, l);
               p += l;
             }
           s = e;
@@ -2526,8 +2535,8 @@ readline (struct ebuffer *ebuf)
              lossage strikes again!  (xmkmf puts NULs in its makefiles.)
              There is nothing really to be done; we synthesize a newline so
              the following line doesn't appear to be part of this line.  */
-          error (&ebuf->floc,
-                 _("warning: NUL character seen; rest of line ignored"));
+          O (error, &ebuf->floc,
+             _("warning: NUL character seen; rest of line ignored"));
           p[0] = '\n';
           len = 1;
         }
@@ -2842,8 +2851,7 @@ construct_include_path (const char **arg_dirs)
             dirs[idx++] = strcache_add_len (dir, len);
           }
 
-        if (expanded)
-          free (expanded);
+        free (expanded);
       }
 
   /* Now add the standard default dirs at the end.  */
@@ -3269,7 +3277,7 @@ parse_file_seq (char **stringp, unsigned int size, int stopmap,
         switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
           {
           case GLOB_NOSPACE:
-            fatal (NILF, _("virtual memory exhausted"));
+            OUT_OF_MEM();
 
           case 0:
             /* Success.  */
@@ -3335,12 +3343,10 @@ parse_file_seq (char **stringp, unsigned int size, int stopmap,
         globfree (&gl);
 
 #ifndef NO_ARCHIVES
-      if (arname)
-        free (arname);
+      free (arname);
 #endif
 
-      if (tildep)
-        free (tildep);
+      free (tildep);
     }
 
   *stringp = p;
index 138cdc686ec0e628f69f9eb43491f8bb46705200..299a2aaf53098431875c15bc6f037dd3805ffc94 100644 (file)
--- a/remake.c
+++ b/remake.c
@@ -1,5 +1,5 @@
 /* Basic dependency engine for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -58,10 +58,10 @@ unsigned int commands_started = 0;
 /* Current value for pruning the scan of the goal chain (toggle 0/1).  */
 static unsigned int considered;
 
-static int update_file (struct file *file, unsigned int depth);
-static int update_file_1 (struct file *file, unsigned int depth);
-static int check_dep (struct file *file, unsigned int depth,
-                      FILE_TIMESTAMP this_mtime, int *must_make_ptr);
+static enum update_status update_file (struct file *file, unsigned int depth);
+static enum update_status update_file_1 (struct file *file, unsigned int depth);
+static enum update_status check_dep (struct file *file, unsigned int depth,
+                                     FILE_TIMESTAMP this_mtime, int *must_make);
 static enum update_status touch_file (struct file *file);
 static void remake_file (struct file *file);
 static FILE_TIMESTAMP name_mtime (const char *name);
@@ -130,7 +130,7 @@ update_goal_chain (struct dep *goals)
                file = file->prev)
             {
               unsigned int ocommands_started;
-              int fail;
+              enum update_status fail;
 
               file->dontcare = g->dontcare;
 
@@ -161,14 +161,12 @@ update_goal_chain (struct dep *goals)
               if (commands_started > ocommands_started)
                 g->changed = 1;
 
-              /* If we updated a file and STATUS was not already 1, set it to
-                 1 if updating failed, or to 0 if updating succeeded.  Leave
-                 STATUS as it is if no updating was done.  */
-
               stop = 0;
               if ((fail || file->updated) && status < us_question)
                 {
-                  if (file->update_status != us_success)
+                  /* We updated this goal.  Update STATUS and decide whether
+                     to stop.  */
+                  if (file->update_status)
                     {
                       /* Updating failed, or -q triggered.  The STATUS value
                          tells our caller which.  */
@@ -228,10 +226,10 @@ update_goal_chain (struct dep *goals)
                   && file->update_status == us_success && !g->changed
                   /* Never give a message under -s or -q.  */
                   && !silent_flag && !question_flag)
-                message (1, ((file->phony || file->cmds == 0)
-                             ? _("Nothing to be done for '%s'.")
-                             : _("'%s' is up to date.")),
-                         file->name);
+                OS (message, 1, ((file->phony || file->cmds == 0)
+                                 ? _("Nothing to be done for '%s'.")
+                                 : _("'%s' is up to date.")),
+                    file->name);
 
               /* This goal is finished.  Remove it from the chain.  */
               if (lastgoal == 0)
@@ -282,11 +280,11 @@ update_goal_chain (struct dep *goals)
    If there are multiple double-colon entries for FILE,
    each is considered in turn.  */
 
-static int
+static enum update_status
 update_file (struct file *file, unsigned int depth)
 {
-  int status = 0;
-  register struct file *f;
+  enum update_status status = us_success;
+  struct file *f;
 
   f = file->double_colon ? file->double_colon : file;
 
@@ -311,26 +309,31 @@ update_file (struct file *file, unsigned int depth)
      the chain is exhausted. */
   for (; f != 0; f = f->prev)
     {
+      enum update_status new;
+
       f->considered = considered;
 
-      status |= update_file_1 (f, depth);
+      new = update_file_1 (f, depth);
       check_renamed (f);
 
       /* Clean up any alloca() used during the update.  */
       alloca (0);
 
       /* If we got an error, don't bother with double_colon etc.  */
-      if (status != 0 && !keep_going_flag)
-        return status;
+      if (new && !keep_going_flag)
+        return new;
 
       if (f->command_state == cs_running
           || f->command_state == cs_deps_running)
         {
           /* Don't run the other :: rules for this
              file until this rule is finished.  */
-          status = 0;
+          status = us_success;
           break;
         }
+
+      if (new > status)
+        status = new;
     }
 
   /* Process the remaining rules in the double colon chain so they're marked
@@ -343,7 +346,11 @@ update_file (struct file *file, unsigned int depth)
         f->considered = considered;
 
         for (d = f->deps; d != 0; d = d->next)
-          status |= update_file (d->file, depth + 1);
+          {
+            enum update_status new = update_file (d->file, depth + 1);
+            if (new > status)
+              new = status;
+          }
       }
 
   return status;
@@ -373,24 +380,30 @@ complain (struct file *file)
 
   if (d == 0)
     {
-      const char *msg_noparent
-        = _("%sNo rule to make target '%s'%s");
-      const char *msg_parent
-        = _("%sNo rule to make target '%s', needed by '%s'%s");
-
       /* Didn't find any dependencies to complain about. */
-      if (!keep_going_flag)
+      if (file->parent)
         {
-          if (file->parent == 0)
-            fatal (NILF, msg_noparent, "", file->name, "");
+          size_t l = strlen (file->name) + strlen (file->parent->name) + 4;
 
-          fatal (NILF, msg_parent, "", file->name, file->parent->name, "");
-        }
+          if (!keep_going_flag)
+            fatal (NILF, l,
+                   _("%sNo rule to make target '%s', needed by '%s'%s"),
+                   "", file->name, file->parent->name, "");
 
-      if (file->parent == 0)
-        error (NILF, msg_noparent, "*** ", file->name, ".");
+          error (NILF, l, _("%sNo rule to make target '%s', needed by '%s'%s"),
+                 "*** ", file->name, file->parent->name, ".");
+        }
       else
-        error (NILF, msg_parent, "*** ", file->name, file->parent->name, ".");
+        {
+          size_t l = strlen (file->name) + 4;
+
+          if (!keep_going_flag)
+            fatal (NILF, l,
+                   _("%sNo rule to make target '%s'%s"), "", file->name, "");
+
+          error (NILF, l,
+                 _("%sNo rule to make target '%s'%s"), "*** ", file->name, ".");
+        }
 
       file->no_diag = 0;
     }
@@ -399,12 +412,12 @@ complain (struct file *file)
 /* Consider a single 'struct file' and update it as appropriate.
    Return 0 on success, or non-0 on failure.  */
 
-static int
+static enum update_status
 update_file_1 (struct file *file, unsigned int depth)
 {
+  enum update_status dep_status = us_success;
   FILE_TIMESTAMP this_mtime;
   int noexist, must_make, deps_changed;
-  int dep_status = 0;
   struct file *ofile;
   struct dep *d, *ad;
   struct dep amake;
@@ -478,8 +491,9 @@ update_file_1 (struct file *file, unsigned int depth)
       /* Avoid spurious rebuilds due to low resolution time stamps.  */
       int ns = FILE_TIMESTAMP_NS (this_mtime);
       if (ns != 0)
-        error (NILF, _("*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"),
-               file->name);
+        OS (error, NILF,
+            _("*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"),
+            file->name);
       this_mtime += FILE_TIMESTAMPS_PER_S - 1 - ns;
     }
 
@@ -521,6 +535,7 @@ update_file_1 (struct file *file, unsigned int depth)
 
       while (d)
         {
+          enum update_status new;
           FILE_TIMESTAMP mtime;
           int maybe_make;
           int dontcare = 0;
@@ -532,8 +547,8 @@ update_file_1 (struct file *file, unsigned int depth)
 
           if (is_updating (d->file))
             {
-              error (NILF, _("Circular %s <- %s dependency dropped."),
-                     file->name, d->file->name);
+              OSS (error, NILF, _("Circular %s <- %s dependency dropped."),
+                   file->name, d->file->name);
               /* We cannot free D here because our the caller will still have
                  a reference to it when we were called recursively via
                  check_dep below.  */
@@ -555,7 +570,9 @@ update_file_1 (struct file *file, unsigned int depth)
               d->file->dontcare = file->dontcare;
             }
 
-          dep_status |= check_dep (d->file, depth, this_mtime, &maybe_make);
+          new = check_dep (d->file, depth, this_mtime, &maybe_make);
+          if (new > dep_status)
+            dep_status = new;
 
           /* Restore original dontcare flag. */
           if (rebuilding_makefiles)
@@ -601,6 +618,7 @@ update_file_1 (struct file *file, unsigned int depth)
       for (d = file->deps; d != 0; d = d->next)
         if (d->file->intermediate)
           {
+            enum update_status new;
             int dontcare = 0;
 
             FILE_TIMESTAMP mtime = file_mtime (d->file);
@@ -619,7 +637,9 @@ update_file_1 (struct file *file, unsigned int depth)
                not prune it.  */
             d->file->considered = !considered;
 
-            dep_status |= update_file (d->file, depth);
+            new = update_file (d->file, depth);
+            if (new > dep_status)
+              dep_status = new;
 
             /* Restore original dontcare flag. */
             if (rebuilding_makefiles)
@@ -664,9 +684,10 @@ update_file_1 (struct file *file, unsigned int depth)
 
   /* If any dependency failed, give up now.  */
 
-  if (dep_status != 0)
+  if (dep_status)
     {
-      file->update_status = us_failed;
+      /* I'm not sure if we can't just assign dep_status...  */
+      file->update_status = dep_status == us_none ? us_failed : dep_status;
       notice_finished_file (file);
 
       --depth;
@@ -675,8 +696,8 @@ update_file_1 (struct file *file, unsigned int depth)
 
       if (depth == 0 && keep_going_flag
           && !just_print_flag && !question_flag)
-        error (NILF,
-               _("Target '%s' not remade because of errors."), file->name);
+        OS (error, NILF,
+            _("Target '%s' not remade because of errors."), file->name);
 
       return dep_status;
     }
@@ -981,13 +1002,13 @@ notice_finished_file (struct file *file)
    FILE depends on (including FILE itself).  Return nonzero if any updating
    failed.  */
 
-static int
+static enum update_status
 check_dep (struct file *file, unsigned int depth,
            FILE_TIMESTAMP this_mtime, int *must_make_ptr)
 {
   struct file *ofile;
   struct dep *d;
-  int dep_status = 0;
+  enum update_status dep_status = us_success;
 
   ++depth;
   start_updating (file);
@@ -1060,12 +1081,13 @@ check_dep (struct file *file, unsigned int depth,
           d = file->deps;
           while (d != 0)
             {
+              enum update_status new;
               int maybe_make;
 
               if (is_updating (d->file))
                 {
-                  error (NILF, _("Circular %s <- %s dependency dropped."),
-                         file->name, d->file->name);
+                  OSS (error, NILF, _("Circular %s <- %s dependency dropped."),
+                       file->name, d->file->name);
                   if (ld == 0)
                     {
                       file->deps = d->next;
@@ -1083,12 +1105,14 @@ check_dep (struct file *file, unsigned int depth,
 
               d->file->parent = file;
               maybe_make = *must_make_ptr;
-              dep_status |= check_dep (d->file, depth, this_mtime,
-                                       &maybe_make);
+              new = check_dep (d->file, depth, this_mtime, &maybe_make);
+              if (new > dep_status)
+                dep_status = new;
+
               if (! d->ignore_mtime)
                 *must_make_ptr = maybe_make;
               check_renamed (d->file);
-              if (dep_status != 0 && !keep_going_flag)
+              if (dep_status && !keep_going_flag)
                 break;
 
               if (d->file->command_state == cs_running
@@ -1122,7 +1146,7 @@ static enum update_status
 touch_file (struct file *file)
 {
   if (!silent_flag)
-    message (0, "touch %s", file->name);
+    OS (message, 0, "touch %s", file->name);
 
   /* Print-only (-n) takes precedence over touch (-t).  */
   if (just_print_flag)
@@ -1369,8 +1393,9 @@ f_mtime (struct file *file, int search)
           if (adjusted_now < adjusted_mtime)
             {
 #ifdef NO_FLOAT
-              error (NILF, _("Warning: File '%s' has modification time in the future"),
-                     file->name);
+              OS (error, NILF,
+                  _("Warning: File '%s' has modification time in the future"),
+                  file->name);
 #else
               double from_now =
                 (FILE_TIMESTAMP_S (mtime) - FILE_TIMESTAMP_S (now)
@@ -1382,8 +1407,9 @@ f_mtime (struct file *file, int search)
                 sprintf (from_now_string, "%lu", (unsigned long) from_now);
               else
                 sprintf (from_now_string, "%.2g", from_now);
-              error (NILF, _("Warning: File '%s' has modification time %s s in the future"),
-                     file->name, from_now_string);
+              OSS (error, NILF,
+                   _("Warning: File '%s' has modification time %s s in the future"),
+                   file->name, from_now_string);
 #endif
               clock_skew_detected = 1;
             }
@@ -1520,7 +1546,7 @@ name_mtime (const char *name)
 static const char *
 library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
 {
-  static char *dirs[] =
+  static const char *dirs[] =
     {
 #ifndef _AMIGA
       "/lib",
@@ -1550,7 +1576,7 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
   /* Information about the earliest (in the vpath sequence) match.  */
   unsigned int best_vpath = 0, best_path = 0;
 
-  char **dp;
+  const char **dp;
 
   libpatterns = xstrdup (variable_expand ("$(.LIBPATTERNS)"));
 
@@ -1580,7 +1606,8 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
         if (!p3)
           {
             /* Give a warning if there is no pattern.  */
-            error (NILF, _(".LIBPATTERNS element '%s' is not a pattern"), p);
+            OS (error, NILF,
+                _(".LIBPATTERNS element '%s' is not a pattern"), p);
             p[len] = c;
             continue;
           }
index 8d6c635d660f7e3a65441a6657b74d006abcc98b..867ee8dab46e5ad9731cb771c0660a7ba05427aa 100644 (file)
@@ -3,7 +3,7 @@
    Please do not send bug reports or questions about it to
    the Make maintainers.
 
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -151,7 +151,7 @@ start_remote_job (char **argv, char **envp, int stdin_fd,
   retsock = Rpc_UdpCreate (True, 0);
   if (retsock < 0)
     {
-      error (NILF, "exporting: Couldn't create return socket.");
+      O (error, NILF, "exporting: Couldn't create return socket.");
       return 1;
     }
 
@@ -192,33 +192,35 @@ start_remote_job (char **argv, char **envp, int stdin_fd,
 
   host = gethostbyaddr ((char *)&permit.addr, sizeof(permit.addr), AF_INET);
 
-  if (status != RPC_SUCCESS)
-    {
-      (void) close (retsock);
-      (void) close (sock);
-      error (NILF, "exporting to %s: %s",
-             host ? host->h_name : inet_ntoa (permit.addr),
-             Rpc_ErrorMessage (status));
-      return 1;
-    }
-  else if (msg[0] != 'O' || msg[1] != 'k' || msg[2] != '\0')
-    {
-      (void) close (retsock);
-      (void) close (sock);
-      error (NILF, "exporting to %s: %s",
-             host ? host->h_name : inet_ntoa (permit.addr),
-             msg);
-      return 1;
-    }
-  else
-    {
-      error (NILF, "*** exported to %s (id %u)",
-              host ? host->h_name : inet_ntoa (permit.addr),
-              permit.id);
-    }
-
-  fflush (stdout);
-  fflush (stderr);
+  {
+    const char *hnm = host ? host->h_name : inet_ntoa (permit.addr);
+    size_t hlen = strlen (hnm);
+
+    if (status != RPC_SUCCESS)
+      {
+        const char *err = Rpc_ErrorMessage (status);
+        (void) close (retsock);
+        (void) close (sock);
+        error (NILF, hlen + strlen (err),
+               "exporting to %s: %s", hnm, err);
+        return 1;
+      }
+    else if (msg[0] != 'O' || msg[1] != 'k' || msg[2] != '\0')
+      {
+        (void) close (retsock);
+        (void) close (sock);
+        error (NILF, hlen + strlen (msg), "exporting to %s: %s", hnm, msg);
+        return 1;
+      }
+    else
+      {
+        error (NILF, hlen + INTSTR_LENGTH,
+               "*** exported to %s (id %u)", hnm, permit.id);
+      }
+
+    fflush (stdout);
+    fflush (stderr);
+  }
 
   pid = fork ();
   if (pid < 0)
index 45c3a7c37e01942a320d77706b2de3ad76e0d14a..aeb335c7532654df06d85782e92125ff03459ecc 100644 (file)
@@ -1,5 +1,5 @@
 /* Template for the remote job exportation interface to GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/rule.c b/rule.c
index cb355376028cd0eb26d2962107745f3b182dacf6..9abf5b0146ba84e99868e980023a0af5d78e6f62 100644 (file)
--- a/rule.c
+++ b/rule.c
@@ -1,5 +1,5 @@
 /* Pattern and suffix rule internals for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -140,8 +140,7 @@ count_implicit_rule_limits (void)
       rule = next;
     }
 
-  if (name != 0)
-    free (name);
+  free (name);
 }
 \f
 /* Create a pattern rule from a suffix rule.
@@ -357,7 +356,7 @@ void
 install_pattern_rule (struct pspec *p, int terminal)
 {
   struct rule *r;
-  char *ptr;
+  const char *ptr;
 
   r = xmalloc (sizeof (struct rule));
 
@@ -373,7 +372,7 @@ install_pattern_rule (struct pspec *p, int terminal)
   ++r->suffixes[0];
 
   ptr = p->dep;
-  r->deps = PARSE_SIMPLE_SEQ (&ptr, struct dep);
+  r->deps = PARSE_SIMPLE_SEQ ((char **)&ptr, struct dep);
 
   if (new_pattern_rule (r, 0))
     {
@@ -528,7 +527,7 @@ print_rule_data_base (void)
       /* This can happen if a fatal error was detected while reading the
          makefiles and thus count_implicit_rule_limits wasn't called yet.  */
       if (num_pattern_rules != 0)
-        fatal (NILF, _("BUG: num_pattern_rules is wrong!  %u != %u"),
-               num_pattern_rules, rules);
+        ONN (fatal, NILF, _("BUG: num_pattern_rules is wrong!  %u != %u"),
+             num_pattern_rules, rules);
     }
 }
diff --git a/rule.h b/rule.h
index 39826395d7f43003578d5c38ee2dc77bf532d8a3..df9fba2aa5b188f00cdcf3317034180ff75d8cea 100644 (file)
--- a/rule.h
+++ b/rule.h
@@ -1,5 +1,5 @@
 /* Definitions for using pattern rules in GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -33,7 +33,7 @@ struct rule
 /* For calling install_pattern_rule.  */
 struct pspec
   {
-    char *target, *dep, *commands;
+    const char *target, *dep, *commands;
   };
 
 
index 59dc9498e8f10afc295ff570b45109ffe2e2c572..7db24391313a202f4347d4c8d8211e31bf959859 100644 (file)
--- a/signame.c
+++ b/signame.c
@@ -1,5 +1,5 @@
 /* Convert between signal names and numbers.
-Copyright (C) 1990-2013 Free Software Foundation, Inc.
+Copyright (C) 1990-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index ff6a2d1fd4be414509ebad399d2390b089db41fc..1ade5e7d914046430afaa1c20fdcd6d1a34e9a94 100644 (file)
@@ -1,5 +1,5 @@
 /* Constant string caching for GNU Make.
-Copyright (C) 2006-2013 Free Software Foundation, Inc.
+Copyright (C) 2006-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 9a9048710c700089dfaa0dde6ca958944edc3f1e..e3b8d3cf5f5436c78fd68a5b83c5ed084b6d92f3 100644 (file)
@@ -1,5 +1,5 @@
 @echo off\r
-rem Copyright (C) 1996-2013 Free Software Foundation, Inc.\r
+rem Copyright (C) 1996-2014 Free Software Foundation, Inc.\r
 rem This file is part of GNU Make.\r
 rem\r
 rem GNU Make is free software; you can redistribute it and/or modify it under\r
diff --git a/tests/ChangeLog b/tests/ChangeLog
deleted file mode 100644 (file)
index 653c5a7..0000000
+++ /dev/null
@@ -1,1429 +0,0 @@
-2013-10-09  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/patspecific_vars: Typo fixes.
-
-2013-10-05  Paul Smith  <psmith@gnu.org>
-
-       * test_driver.pl (run_all_tests): Rewrite to be more clear.
-       * scripts/features/jobserver: Avoid using $ENV{HOME} as it doesn't
-       exist everywhere.
-       * scripts/features/default_names: End with 1;
-
-       * scripts/features/loadapi: Use new calling signatures.  Verify
-       the NOEXPAND flag works.  Test with all valid function name
-       characters.
-
-2013-09-29  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/SHELL: Solaris /bin/sh can't handle options in
-       multiple words; skip that test.
-       * scripts/targets/ONESHELL: Ditto.
-
-       * scripts/variables/GNUMAKEFLAGS: Verify that GNUMAKEFLAGS is
-       cleared and options are not duplicated.
-
-2013-09-23  Paul Smith  <psmith@gnu.org>
-
-       * scripts/options/print-directory: Rename dash-w to
-       print-directory to avoid conflicts with dash-W on case-insensitive
-       filesystems.
-
-2013-09-22  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/se_implicit: Verify that order-only tokens
-       inside second expansion are parsed correctly.
-       Test for Savannah bug #31155.
-
-       * run_make_tests.pl (set_more_defaults): If we can't find
-       gnumake.h based on the make program we might be running from a
-       remote build directory.  Parse the Makefile for the right path.
-
-       Fix some test issues on Solaris.
-
-       * scripts/features/archives: Determine what output ar gives when
-       adding and replacing objects and compare with that.
-       * scripts/features/escape: Solaris /bin/sh doesn't properly handle
-       backslashes inside single quotes, so don't rely on it.
-       * scripts/features/output-sync: false(1) gives different exit
-       codes on different systems; use "exit 1" instead.
-       * scripts/features/parallelism: Increase the timeout for slower systems.
-
-2013-09-21  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/archives: Some versions of ar (MacOSX) generate
-       different output when creating archives.  Run it and verify the
-       real output.
-       * scripts/features/default_names: MacOSX is, like Windows,
-       case-preserving / case-insensitive.  Redo the test to avoid
-       checking for "UNIX".
-       * test_driver.pl (attach_default_output): Don't dup stdout into
-       stderr.  Reported by Denis Excoffier <bug-tar@Denis-Excoffier.org>
-
-       * scripts/features/se_explicit: Fix a test that behaves
-       differently with/without archive capability enabled.
-       * scripts/features/output-sync: Don't test output-sync if it's not
-       enabled.  We also skip it if parallelism is not enabled, although
-       strictly speaking some of the output-sync tests are valid even
-       without parallelism.
-       * scripts/features/jobserver: Move some tests that require the
-       jobserver from features/parallelism to a separate suite.  Only run
-       this if jobserver mode is enabled.
-
-       * scripts/features/output-sync: Test shell functions writing to
-       stderr in recipes: ensure it's captured via output-sync.  Test
-       output generated while reading makefiles and make sure it's
-       captured via output-sync.  Make sure that fatal errors dump the
-       output so it's not lost.
-
-       * scripts/options/dash-w: Add a test for -w flag.
-
-2013-09-15  Paul Smith  <psmith@gnu.org>
-
-       * scripts/misc/fopen-fail: Check for failure on infinite recursion.
-       * run_make_tests.pl (run_make_test): Allow the answer string to be
-       undef, which means that we shouldn't compare it at all.  Only the
-       exit code matters in this case.
-       * test_driver.pl (compare_output): Ditto.
-       Test for Savannah bug #27374.
-
-       * scripts/features/parallelism: Test broken jobserver on recursion.
-       Test for Savannah bug #39934.
-
-       * scripts/options/eval: Verify --eval during restart.
-       Test for Savannah bug #39203.
-
-2013-09-14  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/output-sync: Verify -Orecurse properly.
-
-2013-09-12  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/output-sync: Modify for output sync behavior.
-       * scripts/variables/MAKE_RESTARTS: Ditto.
-       * scripts/variables/MAKEFLAGS: Remove mode for --trace.
-       * scripts/variables/GNUMAKEFLAGS: Ditto.
-
-2013-07-22  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/rule_glob: Add tests for wildcards in rules.
-       Test for Savannah bug #39310.
-
-2013-07-09  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/se_implicit: Add a test for SE rules depending
-       on other SE rules to be built.
-
-2013-05-26  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/archives: Test for Savannah bug #38442.
-
-       * scripts/misc/bs-nl: Test for Savannah bug #39035.
-       Add a test for Savannah bug #38945.
-
-2013-05-22  Paul Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-n: Fix results after MAKEFLAGS fixes.
-       * scripts/variables/MAKEFLAGS: Ditto.
-       * scripts/variables/GNUMAKEFLAGS: Ditto.
-
-2013-05-14  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/loadapi: Add plugin_is_GPL_compatible symbol.
-       * scripts/features/load: Ditto.
-
-2013-05-13  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/output-sync (output_sync_set): Update for new
-       --trace behavior.
-
-2013-05-05  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/output-sync (output_sync_set): Remove
-       extraneous enter/leave lines, which are no longer printed.
-       Add tests for syncing command line printing.
-       (output_sync_set): Rename options: "job"->"line"; "make"->"recurse"
-
-2013-05-04  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/loadapi: Use the new alloc functions.
-
-       * scripts/features/output-sync (output_sync_set): New test for
-       ordered recursive output for -Ojob / -Otarget.
-
-2013-05-03  Eli Zaretskii  <eliz@gnu.org>
-
-       * scripts/features/load: Fix signatures of testload_gmk_setup and
-       explicit_setup, to bring them in line with the documentation.
-
-2013-04-28  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/output-sync (output_sync_set): Add tests for
-       the per-job syntax mode.
-       (output_sync_set): Test improved error message location.
-
-2013-04-15  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/output-sync (output_sync_set): New arg syntax.
-
-2013-04-14  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/output-sync: Rewrite to be more reliable.
-
-       * test_driver.pl (_run_command): Don't set SIGALRM until after we
-       start the child.  Print errors to the top-level output, which will
-       be stderr.
-       (attach_default_output): Use a list of file handles as the stack.
-       (detach_default_output): Ditto.
-
-       * scripts/features/output-sync: Add a test for output-sync.
-
-2013-02-25  Paul Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (valid_option): Support the -srcdir flag.
-       (set_more_defaults): Set up $srcdir if it's not set yet.
-
-       * scripts/functions/guile: Verify gmk-eval doesn't expand twice.
-       * scripts/features/load: Rework to test just the load capability.
-       * scripts/features/loadapi: New set of tests for the load API.
-
-2013-01-19  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/load: Test loaded files with and without "./"
-       prefix.  Add tests for automatically rebuilding loaded files if
-       they are out of date or non-existent.
-
-2013-01-13  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/archives: Add a check targets that have parens,
-       but are not archives.  See Savannah bug #37878.
-
-       * scripts/options/dash-n: Verify -n is preserved after recursive /
-       re-exec.  See Savannah bug #38051.
-
-2013-01-12  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism: Change rule so it doesn't depend
-       on invocation order, etc.
-
-2012-10-29  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/load: New test suite for the "load" directive.
-
-2012-09-09  Paul Smith  <psmith@gnu.org>
-
-       * scripts/functions/file: Get errors in the C locale, not the
-       current locale.  Fixes Savannah bug #35764.
-
-       * scripts/features/escape: Check that backslashes before
-       non-special characters are not removed.
-
-       * scripts/features/utf8: New test for UTF-8 support.
-       See Savannah bug #36529.
-
-       * scripts/targets/POSIX: Add tests for default macro values as
-       specified by IEEE Std 1003.1-2008.  See Savannah bug #37069.
-
-2012-03-04  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/se_explicit: Test $(x:%=%) format in secondary
-       expansion prerequisite lists.  See Savannah bug #16545.
-
-       * scripts/features/escape: Test escaped ":" in prerequisite lists.
-       See Savannah bug #12126.
-
-       * scripts/variables/private: Test appending private variables in
-       pattern-specific target rules.  See Savannah bug #35468.
-
-2012-03-03  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/SHELL: Ensure .SHELLFLAGS works with options
-       separated by whitespace.
-
-       * scripts/targets/ONESHELL: Try .ONESHELL in combination with
-       whitespace-separated options in .SHELLFLAGS.  See Savannah bug #35397.
-
-       * scripts/functions/filter-out: Add filter tests and test escape
-       operations.  See Savannah bug #35410.
-
-       * guile.supp: Suppress valgrind errors from Guile
-       * run_make_tests.pl: Use the Guile suppression file.
-
-       * scripts/misc/bs-nl: Check for POSIX and non-POSIX
-       backslash/newline handling.  Addresses Savannah bug #16670.
-
-2012-01-29  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/flavors: Add tests for ::=
-       * scripts/variables/define: Ditto
-
-       * scripts/functions/file: Test the new $(file ...) function.
-
-2012-01-12  Paul Smith  <psmith@gnu.org>
-
-       * scripts/functions/guile: New regression tests for Guile support.
-
-2011-12-10  Paul Smith  <psmith@gnu.org>
-
-       * scripts/targets/SECONDARY: Add prereq statements to ensure rules
-       are printed in the right order for test #9
-
-2011-11-14  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/double_colon: Check double-colon with escaped
-       filenames.  See Savannah bug #33399.
-
-2011-09-18  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism: On re-exec make sure we preserve
-       the value of MAKEFLAGS when necessary.  See Savannah bug #33873.
-
-       * scripts/features/vpath3: Verify handling of -lfoo libraries
-       found via vpath vs. the standard directory search.
-       See Savannah bug #32511.
-
-2011-09-12  Paul Smith  <psmith@gnu.org>
-
-       * scripts/functions/call: Verify that using export in a $(call ...)
-       context creates a global variable.  See Savannah bug #32498.
-
-2011-09-02  Paul Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-n: Verify that in "-n -t", the -n takes
-       priority.  Patch from Michael Witten <mfwitten@gmail.com>.
-
-2011-08-29  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/varnesting: Test resetting of variables while
-       expanding them.  See Savannah patch #7534
-
-2011-06-12  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/archives: Check archives with whitespace at the
-       beginning, end, and extra in the middle.
-       Another test for Savannah bug #30612.
-
-2011-05-07  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/private: Ensure we skip private variables when
-       appending.  Test for Savannah bug #32872.
-
-       * scripts/functions/wildcard: Verify wildcard used to test for
-       file existence/non-existence.
-
-2011-05-02  Paul Smith  <psmith@gnu.org>
-
-       * scripts/functions/sort: Add a test for Savannah bug #33125.
-
-2011-04-17  David A. Wheeler  <dwheeler@dwheeler.com>
-
-       * scripts/features/shell_assignment: Regression for "!=" feature
-
-2010-11-06  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Fix known-good output for BS/NL changes.
-       * scripts/functions/call: Ditto.
-       * scripts/variables/special: Ditto.
-
-       * scripts/misc/bs-nl: New test suite for backslash/newline testing.
-
-2010-08-29  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/errors: Add new error message to output text.
-       * scripts/variables/SHELL: Ditto.
-       * scripts/targets/POSIX: Ditto.
-       * scripts/options/dash-k: Ditto.
-       * scripts/features/vpathplus: Ditto.
-       * scripts/features/patternrules: Ditto.
-       * scripts/features/parallelism: Ditto.
-
-2010-08-13  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/archives: New regression tests for archive
-       support.  Test for fix to Savannah bug #30612.
-
-       * run_make_tests.pl (set_more_defaults): Set a %FEATURES hash to
-       the features available in $(.FEATURES).
-
-2010-08-10  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/reinvoke: Ensure command line variable settings
-       are preserved across make re-exec.  Tests Savannah bug #30723.
-
-2010-07-28  Paul Smith  <psmith@gnu.org>
-
-       * scripts/targets/POSIX: Compatibility issues with Solaris (and
-       Tru64?); "false" returns different exit codes, and set -x shows
-       output with extra whitespace.  Run the commands by hand first to
-       find out what the real shell would do, then compare what make does.
-       * scripts/variables/SHELL: Ditto.
-
-2010-07-12  Paul Smith  <psmith@gnu.org>
-
-       * test_driver.pl: Add a new $perl_name containing the path to Perl.
-       * run_make_tests.pl (run_make_test): Replace the special string
-       #PERL# in a makefile etc. with the path the Perl executable so
-       makefiles can use it.
-
-       * scripts/targets/ONESHELL: Add a new set of regression tests for
-       the .ONESHELL feature.
-
-2010-07-06  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/SHELL: Test the new .SHELLFLAGS variable.
-
-       * scripts/targets/POSIX: New file.  Test the .POSIX special target.
-       Verify that enabling .POSIX changes the shell flags to set -e.
-
-2010-07-01  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/recursion: Add a space to separate command-line
-       args.  Fixes Savannah bug #29968.
-
-2009-11-12  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * scripts/features/vpath3: Test for the new library search
-       behavior.
-
-2009-10-06  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * scripts/features/se_explicit: Enable the test for now fixed
-       Savannah bug 25780.
-
-2009-10-06  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * scripts/variables/undefine: Tests for the new undefine feature.
-
-2009-10-03  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism: Test for open Savannah bug #26846.
-
-       * scripts/variables/MAKE: Rewrite for new run_make_test() format.
-
-       * scripts/variables/MAKEFLAGS: Created.
-       Add test for Savannah bug #2216 (still open).
-
-       * scripts/features/include: Test for Savannah bug #102 (still open).
-
-2009-09-30  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * scripts/features/include: Add diagnostics issuing tests for
-       cases where targets have been updated and failed with the
-       dontcare flag. Savannah bugs #15110, #25493, #12686, #17740.
-
-2009-09-28  Paul Smith  <psmith@gnu.org>
-
-       * scripts/functions/shell: Add regression test for Savannah bug
-       #20513 (still open).
-
-       * scripts/features/se_explicit: Add regression tests for Savannah
-       bug #25780 (still open).
-
-       * run_make_tests.pl (valid_option): Add a new flag, -all([-_]?tests)?
-       that runs tests we know will fail.  This allows us to add
-       regression tests to the test suite for bugs that haven't been
-       fixed yet.
-
-2009-09-28  Boris Kolpackov  <boris@codesynthesis.com>
-
-       * scripts/features/patspecific_vars: Add a test for the shortest
-       stem first order.
-
-       * scripts/features/patternrules: Add a test for the shortest stem
-       first order.
-
-2009-09-24  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/se_implicit: Add a test for order-only
-       secondary expansion prerequisites.
-
-2009-09-23  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/patternrules: Test that we can remove pattern
-       rules, both single and multiple prerequisites.  Savannah bug #18622.
-
-       * scripts/features/echoing: Rework for run_make_test().
-
-2009-06-14  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/vpath: Verify we don't get bogus circular
-       dependency warnings if we choose a different file via vpath during
-       update.  Savannah bug #13529.
-
-2009-06-13  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/MAKEFILES: Verify that MAKEFILES included
-       files (and files included by them) don't set the default goal.
-       Savannah bug #13401.
-
-       * scripts/functions/wildcard: Test that wildcards with
-       non-existent glob matchers return empty.
-
-2009-06-09  Paul Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-B: Test the $? works correctly with -B.
-       Savannah bug #17825.
-
-       * scripts/features/patternrules: Test that dependencies of
-       "also_make" targets are created properly.  Savannah bug #19108.
-
-       * test_driver.pl (compare_output): Create a "run" file for failed
-       tests containing the command that was run.
-       (get_runfile): New function.
-
-       * run_make_tests.pl (valid_option): Enhanced support for valgrind:
-       allow memcheck and massif tools.
-
-       * scripts/features/patternrules: Have to comment out a line in the
-       first test due to backing out a change that broke the implicit
-       rule search algorithm.  Savannah bug #17752.
-       * scripts/misc/general4: Remove a test that is redundant with
-       patternrules.
-
-       * scripts/features/parallelism: Add a test for re-exec with
-       jobserver master override.  Savannah bug #18124.
-
-2009-06-08  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Add a test for continued target
-       vars after a semicolon.  Savannah bug #17521.
-
-2009-06-07  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/se_explicit: Make sure we catch defining
-       prereqs during snap_deps().  Savannah bug #24622.
-
-       * scripts/variables/automatic: Check prereq ordering when the
-       target with the recipe has no prereqs.  Savannah bug #21198.
-
-       * scripts/variables/LIBPATTERNS: Add a new set of test for
-       $(.LIBPATTERNS) (previously untested!)
-
-2009-06-04  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/SHELL: The export target-specific SHELL test
-       has an incorrect known-good-value.
-
-       * scripts/misc/general4: Check for whitespace (ffeed, vtab, etc.)
-
-       * scripts/features/se_explicit: Add tests for Savannah bug #24588.
-
-2009-05-31  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/DEFAULT_GOAL: Add tests for Savannah bug #25697.
-
-       * scripts/features/targetvars: Add tests of overrides for Savannah
-       bug #26207.
-       * scripts/features/patspecific_vars: Ditto.
-
-       * scripts/features/patternrules: Add a test for Savannah bug #26593.
-
-2009-05-30  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/flavors: Update with new variable flavor tests.
-       * scripts/variables/define: Create a new set of tests for
-       define/endef and move those aspects of the flavors suite here.
-
-2009-05-25  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Ditto.
-
-       * scripts/features/export: Test new variable parsing abilities.
-
-2009-02-23  Ramon Garcia  <ramon.garcia.f@gmail.com>
-
-       * scripts/variables/private: Create a new suite of tests for 'private'.
-
-2007-11-04  Paul Smith  <psmith@gnu.org>
-
-       * scripts/functions/eval: Update error message for command -> recipe.
-
-       * test_driver.pl (compare_output): Allow the answer to be a regex,
-       if surrounded by '/'.
-       * scripts/misc/close_stdout: Use a regex for the answer, since
-       sometimes the error will have a description and sometimes it won't.
-
-2007-09-10  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/special: Add tests for .RECIPEPREFIX variable.
-
-2007-08-15  Paul Smith  <psmith@gnu.org>
-
-       These test cases were contributed by
-       Icarus Sparry <savannah@icarus.freeuk.com> and J. David Bryan for
-       Savannah bugs #3330 and #15919.
-
-       * scripts/targets/SECONDARY: Add tests for Savannah bugs 3330 and
-       15919.
-
-       * scripts/features/parallelism: Add tests for wrong answer/hang
-       combining INTERMEDIATE, order-only prereqs, and parallelism.
-       See Savannah bugs 3330 and 15919.
-
-2007-07-13  Paul Smith  <psmith@gnu.org>
-
-       Install a timeout so tests can never loop infinitely.
-       Original idea and patch for a single-test version provided by
-       Icarus Sparry <savannah@icarus.freeuk.com>
-
-       * test_driver.pl (_run_command): New function: this is called by
-       other functions to actually run a command.  Before we run it,
-       install a SIGALRM handler and set up a timer to go off in the
-       future (default is 5s; this can be overridden by individual tests).
-       (run_command): Call it.
-       (run_command_with_output): Call it.
-
-       * run_make_tests.pl (run_make_with_options): Override the default
-       timeout if the caller requests it.
-       (run_make_test): Pass any timeout override to run_make_with_options.
-
-       * scripts/features/parallelism: Increase the timeout for long tests.
-       * scripts/options/dash-l: Ditto.
-
-2006-10-01  Paul Smith  <psmith@paulandlesley.org>
-
-       * run_make_tests.pl (set_more_defaults): Remove setting of LANG in
-       ENV here.  This doesn't always work.
-       * test_driver.pl (toplevel): Set LC_ALL to 'C' in the make
-       environment.  Fixes Savannah bug #16698.
-
-2006-09-30  Paul Smith  <psmith@paulandlesley.org>
-
-       * scripts/variables/automatic: Add back the test for bug #8154.
-
-2006-04-01  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/realpath: Don't run tests with multiple
-       initial slashes on Windows: those paths mean something different.
-
-2006-03-19  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism: Test that the jobserver is
-       properly managed when we have to re-exec the master instance of
-       make.
-
-2006-03-17  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/statipattrules: Add tests for bug #16053.
-
-2006-03-09  Paul Smith  <psmith@gnu.org>
-
-       * scripts/features/escape: Use "pre:" not "p:" to avoid conflicts
-       with DOS drive letters.  Fixes Savannah bug #15947.
-
-       * test_driver.pl (run_each_test): Set the status properly even
-       when a test fails to execute.  Fixes Savannah bug #15942.
-
-       * scripts/functions/foreach: Use a different environment variable
-       other than PATH to avoid differences with Windows platforms.
-       Fixes Savannah bug #15938.
-
-2006-03-05  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (set_more_defaults): Add CYGWIN_NT as a port
-       type W32.  Fixed Savannah bug #15937.
-
-       * scripts/features/default_names: Don't call error() when the test
-       fails.  Fixes Savannah bug #15941.
-
-2006-02-17  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Test a complex construction which
-       guarantees that we have to merge variable lists of different
-       sizes.  Tests for Savannah bug #15757.
-
-2006-02-15  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/error: Make sure filename/lineno information
-       is related to where the error is expanded, not where it's set.
-       * scripts/functions/warning: Ditto.
-       * scripts/functions/foreach: Check for different error conditions.
-       * scripts/functions/word: Ditto.
-       * scripts/variables/negative: Test some variable reference failure
-       conditions.
-       * scripts/options/warn-undefined-variables: Test the
-       --warn-undefined-variables flag.
-
-2006-02-09  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (set_more_defaults): Update valgrind support
-       for newer versions.
-       * test_driver.pl (toplevel): Skip all hidden files/directories (ones
-       beginning with ".").
-
-       * scripts/functions/andor: Tests for $(and ...) and $(or ...)
-       functions.
-
-2006-02-08  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/parallelism: Add a test for bug #15641.
-
-2006-02-06  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-W: Add a test for bug #15341.
-
-2006-01-03  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/variables/automatic: Add a test for bug #8154.
-
-       * README: Update to reflect the current state of the test suite.
-
-2005-12-12  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism, scripts/functions/wildcard,
-       scripts/targets/FORCE, scripts/targets/PHONY,
-       scripts/targets/SILENT: Use the default setting for
-       $delete_command.  Fixes bug #15085.
-
-       * run_make_tests.pl (get_this_pwd) [VMS]: Use -no_ask with delete_file.
-
-2005-12-11  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/misc/general4: Test implicit rules with '$' in the
-       prereq list & prereq patterns.
-       * scripts/features/se_implicit: Add in .SECONDEXPANSION settings.
-
-2005-12-09  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/patternrules: Add a test for bug #13022.
-
-2005-12-07  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/double_colon: Add a test for bug #14334.
-
-2005-11-17  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/functions/flavor: Add a test for the flavor function.
-
-2005-11-14  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/variables/INCLUDE_DIRS: Add a test for the .INCLUDE_DIRS
-       special variable.
-
-2005-10-24  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/misc/general4: Test '$$' in prerequisites list.
-       * scripts/features/statipattrules: Rewrite to use run_make_test().
-       Add various static pattern info.
-       * scripts/features/se_statpat: Enable .SECONDEXPANSION target.
-       * scripts/features/se_explicit: Add tests for handling '$$' in
-       prerequisite lists with and without setting .SECONDEXPANSION.
-       * scripts/features/order_only: Convert to run_make_test().
-       * run_make_tests.pl (set_more_defaults): If we can't get the value
-       of $(MAKE) from make, then fatal immediately.
-
-2005-08-31  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (get_this_pwd): Require the POSIX module (in
-       an eval to trap errors) and if it exists, use POSIX::getcwd to
-       find the working directory.  If it doesn't exist, go back to the
-       previous methods.  This tries to be more accurate on Windows
-       systems.
-
-2005-08-29  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/abspath: Add some text to the error messages
-       to get a better idea of what's wrong.  Make warnings instead of
-       errors.
-
-       * scripts/features/patspecific_vars: Don't use "test", which is
-       UNIX specific.  Print the values and let the test script match
-       them.
-
-2005-08-25  Paul Smith  <psmith@gnu.org>
-
-       * scripts/variables/SHELL: Use a /./ prefix instead of //: the
-       former works better with non-UNIX environments.  Fixes Savannah
-       bug #14129.
-
-2005-08-13  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/functions/wildcard: Wrap calls to $(wildcard) with
-       $(sort) so that the resulting order is no longer filesystem-
-       dependent.
-
-2005-08-10  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/statipattrules: Add a test for Savannah bug #13881.
-
-2005-08-07  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism: Add a test for a bug reported by
-       Michael Matz (matz@suse.de) in which make exits without waiting
-       for all its children in some situations during parallel builds.
-
-2005-07-08  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl: Reset the environment to a clean value every
-       time before we invoke make.  I'm suspicious that the environment
-       isn't handled the same way in Windows as it is in UNIX, and some
-       variables are leaking out beyond the tests they are intended for.
-       Create an %extraENV hash tests can set to add more env. vars.
-       * tests/scripts/features/export: Change to use %extraENV.
-       * tests/scripts/functions/eval: Ditto.
-       * tests/scripts/functions/origin: Ditto.
-       * tests/scripts/options/dash-e: Ditto.
-       * tests/scripts/variables/SHELL: Ditto.
-
-2005-06-27  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-W: Use 'echo >>' instead of touch to update
-       files.
-       * scripts/features/reinvoke: Rewrite to be safer on systems with
-       subsecond timestamps.
-       * scripts/features/patternrules: False exits with different error
-       codes on different systems (for example, Linux => 1, Solaris => 255).
-
-       * scripts/options/dash-W: Set the timestamp to foo.x in the future,
-       to be sure it will be considered updated when it's remade.
-
-2005-06-26  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/shell: New test suite for the shell function.
-
-2005-06-25  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/include: Test include/-include/sinclude with no
-       arguments.  Tests fix for Savannah bug #1761.
-
-       * scripts/misc/general3: Implement comprehensive testing of
-       backslash-newline behavior in command scripts: various types of
-       quoting, fast path / slow path, etc.
-       Tests fix for Savannah bug #1332.
-
-       * scripts/options/symlinks: Test symlinks to non-existent files.
-       Tests fix for Savannah bug #13280.
-
-       * scripts/misc/general3: Test semicolons in variable references.
-       Tests fix for Savannah bug #1454.
-
-       * scripts/variables/MAKE_RESTARTS: New file: test the
-       MAKE_RESTARTS variable.
-       * scripts/options/dash-B: Test re-exec doesn't loop infinitely.
-       Tests fix for Savannah bug #7566.
-       * scripts/options/dash-W: New file: test the -W flag, including
-       re-exec infinite looping.
-
-2005-06-12  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/misc/close_stdout: Add a test for Savannah bug #1328.
-       This test only works on systems that have /dev/full (e.g., Linux).
-
-2005-06-09  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/foreach: Add a test for Savannah bug #11913.
-
-2005-05-31  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/include: Add a test for Savannah bug #13216.
-       * scripts/features/patternrules: Add a test for Savannah bug #13218.
-
-2005-05-13  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/conditionals: Add tests for the new if... else
-       if... endif syntax.
-
-2005-05-03  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/variables/DEFAULT_GOAL: Rename DEFAULT_TARGET to
-       DEFAULT_GOAL.
-
-2005-05-02  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism: Add a test for exporting recursive
-       variables containing $(shell) calls.  Rewrite this script to use
-       run_make_test() everywhere.
-
-2005-04-07  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/targets/SECONDARY: Add a test for Savannah bug #12331.
-
-2005-03-15  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/variables/automatic: Add a test for Savannah bug #12320.
-
-2005-03-10  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/patternrules: Add a test for Savannah bug #12267.
-
-2005-03-09  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/variables/DEFAULT_TARGET: Add a test for Savannah
-       bug #12266.
-
-2005-03-04  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/patternrules: Add a test for Savannah bug #12202.
-
-2005-03-03  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/se_implicit: Add a test for stem
-       termination bug. Add a test for stem triple-expansion bug.
-
-       * scripts/features/se_statpat: Add a test for stem
-       triple-expansion bug.
-
-       * scripts/features/statipattrules: Change test #4 to reflect
-       new way empty prerequisite list is handled.
-
-
-2005-03-01  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/statipattrules: Add a test for
-       Savannah bug #12180.
-
-2005-02-28  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-q: Add a test for Savannah bug # 7144.
-
-       * scripts/options/symlinks: New file to test checking of symlink
-       timestamps.  Can't use filename dash-L because it conflicts with
-       dash-l on case-insensitive filesystems.
-
-       * scripts/variables/MAKEFILE_LIST, scripts/variables/MFILE_LIST:
-       Rename MAKEFILE_LIST test to MFILE_LIST, for systems that need 8.3
-       unique filenames.
-
-2005-02-28  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/variables/DEFAULT_TARGET: Test the .DEFAULT_TARGET
-       special variable.
-
-2005-02-27  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/se_explicit: Test the second expansion in
-       explicit rules.
-       * scripts/features/se_implicit: Test the second expansion in
-       implicit rules.
-       * scripts/features/se_statpat: Test the second expansion in
-       static pattern rules.
-       * scripts/variables/automatic: Fix to work with the second
-       expansion.
-
-       * scripts/misc/general4: Add a test for bug #12091.
-
-2005-02-27  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/eval: Check that eval of targets within
-       command scripts fails.  See Savannah bug # 12124.
-
-2005-02-26  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl (compare_output): If a basic comparison of the
-       log and answer doesn't match, try harder: change all backslashes
-       to slashes and all CRLF to LF.  This helps on DOS/Windows systems.
-
-2005-02-09  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/recursion: Test command line variable settings:
-       only one instance of a given variable should be provided.
-
-2004-11-30  Boris Kolpackov  <boris@kolpackov.net>
-
-       * tests/scripts/functions/abspath: New file: test `abspath'
-       built-in function.
-
-       * tests/scripts/functions/realpath: New file: test `realpath'
-       built-in function.
-
-2004-11-28  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-C [WINDOWS32]: Add a test for bug #10252;
-       this doesn't really test anything useful in UNIX but...
-
-       * scripts/variables/SHELL: New file: test proper handling of SHELL
-       according to POSIX rules.  Fixes bug #1276.
-
-2004-10-21  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/functions/word: Test $(firstword ) and $(lastword ).
-
-2004-10-05  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/patspecific_vars: Test simple/recursive
-       variable expansion.
-
-2004-09-28  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/include: Test dontcare flag inheritance
-       when rebuilding makefiles.
-
-2004-09-27  Boris Kolpackov  <boris@kolpackov.net>
-
-       * scripts/features/patspecific_vars: Test exported variables.
-
-2004-09-22  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (run_make_test): Don't add newlines to the
-       makestring or answer if they are completely empty.
-
-       * scripts/features/patternrules: Rename from implicit_prereq_eval.
-
-       * scripts/test_template: Rework the template.
-
-2004-09-21  Boris Kolpackov  <boris@kolpackov.net>
-
-       * run_make_tests.pl: Change `#!/usr/local/bin/perl' to be
-       `#!/usr/bin/env perl'.
-
-       * scripts/features/implicit_prereq_eval: Test implicit rule
-       prerequisite evaluation code.
-
-2004-09-21  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (run_make_test): Enhance to allow the make
-       string to be undef: in that case it reuses the previous make
-       string.  Allows multiple tests on the same makefile.
-
-       * scripts/variables/flavors: Add some tests for prefix characters
-       interacting with define/endef variables.
-
-2004-09-20  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/substitution: Rewrite to use run_make_test()
-       interface, and add test for substitution failures reported by
-       Markus Mauhart <qwe123@chello.at>.
-
-2004-03-22  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl (run_each_test, toplevel, compare_output): Change
-       to track both the testing categories _AND_ the number of
-       individual tests, and report both sets of numbers.
-
-2004-02-21  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/origin: Set our own environment variable
-       rather than relying on $HOME.
-
-2004-01-21  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/conditionals: Test arguments to ifn?def which
-       contain whitespace (such as a function that is evaluated).  Bug
-       #7257.
-
-2004-01-07  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/order_only: Test order-only prerequisites in
-       pattern rules (patch #2349).
-
-2003-11-02  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/if: Test if on conditionals with trailing
-       whitespace--bug #5798.
-
-       * scripts/functions/eval: Test eval in a non-file context--bug #6195.
-
-2003-04-19  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/patspecific_vars: Test multiple patterns
-       matching the same target--Bug #1405.
-
-2003-04-09  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (set_more_defaults): A new $port_type of
-       'OS/2' for (surprise!) OS/2.  Also choose a wait time of 2 seconds
-       for OS/2.
-
-2003-03-28  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/targets/SECONDARY: Test the "global" .SECONDARY (with
-       not prerequisites)--Bug #2515.
-
-2003-01-30  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Test very long target-specific
-       variable definition lines (longer than the default make buffer
-       length).  Tests patch # 1022.
-
-       * scripts/functions/eval: Test very recursive $(eval ...) calls
-       with simple variable expansion (bug #2238).
-
-       * scripts/functions/word: Test error handling for word and
-       wordlist functions (bug #2407).
-
-2003-01-22  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/call: Test recursive argument masking (bug
-       #1744).
-
-2002-10-25  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/eval: Test using $(eval ...) inside
-       conditionals (Bug #1516).
-
-2002-10-14  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-t: Add a test for handling -t on targets
-       with no commands (Bug #1418).
-
-2002-10-13  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Add a test for exporting
-       target-specific vars (Bug #1391).
-
-2002-10-05  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/variables/automatic: Add tests for $$(@), $${@}, $${@D},
-       and $${@F}.
-
-2002-09-23  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/escape: Test handling of escaped comment
-       characters in targets and prerequisites.
-
-2002-09-18  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/export: Test export/unexport of multiple
-       variables in a single command.
-
-2002-09-17  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Tests for Bug #940: test
-       target-specific and pattern-specific variables in conjunction with
-       double-colon targets.
-
-2002-09-10  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl (compare_output): Match the new format for time
-       skew error messages.
-
-       * scripts/features/export: Created.  Add tests for export/unexport
-       capabilities, including exporting/unexporting expanded variables.
-
-       * scripts/features/conditionals: Add a test for expanded variables
-       in ifdef conditionals.
-
-2002-09-04  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/reinvoke: Change touch/sleep combos to utouch
-       invocations.
-       * scripts/features/vpathgpath: Ditto.
-       * scripts/features/vpathplus: Ditto.
-       * scripts/options/dash-n: Ditto.
-       * scripts/targets/INTERMEDIATE: Ditto.
-       * scripts/targets/SECONDARY: Ditto.
-
-       * scripts/options/dash-t: Added a test for the -t bug fixed by
-       Henning Makholm.  This test was also contributed by Henning.
-
-       * scripts/misc/general4: Add a test suite for obscure algorithmic
-       features of make.  First test: make sure creation subdirectories
-       as prerequisites of targets works properly.
-
-       * scripts/misc/version: Remove this bogus test.
-
-2002-08-07  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/misc/general3: Add a test for makefiles that don't end
-       in newlines.
-
-       * scripts/variables/special: Create tests for the special
-       variables (.VARIABLES and .TARGETS).  Comment out .TARGETS test
-       for now as it's not yet supported.
-
-2002-08-01  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-B: Add a test for the new -B option.
-
-2002-07-11  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (valid_option): Add support for Valgrind.  Use
-       -valgrind option to the test suite.
-       (set_more_defaults): Set up the file descriptor to capture
-       Valgrind output.  We have to unset its close-on-exec flag; we
-       hardcode the value for F_SETFD (2) rather than load it; hopefully
-       this will help us avoid breaking the Windows/DOS test suite.
-
-2002-07-10  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/variables/automatic: Add some tests for $$@, $$(@D), and
-       $$(@F).
-
-       * test_driver.pl (utouch): Create a new function that creates a
-       file with a specific timestamp offset.  Use of this function will
-       let us avoid lots of annoying sleep() invocations in the tests
-       just to get proper timestamping, which will make the tests run a
-       lot faster.  So far it's only used in the automatic test suite.
-
-2002-07-09  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/variables/automatic: Create a test for automatic variables.
-
-2002-07-08  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/order_only: Test new order-only prerequisites.
-
-2002-07-07  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/eval: Test new function.
-       * scripts/functions/value: Test new function.
-       * scripts/variables/MAKEFILE_LIST: Test new variable.
-
-2002-04-28  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/call: New test: transitive closure
-       implementation using $(call ...) to test variable recursion.
-
-2002-04-21  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl (compare_dir_tree): Ignore CVS and RCS
-       directories in the script directories.
-
-2001-05-02  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/variables/flavors: Test define/endef scripts where only
-       one of the command lines is quiet.
-
-2000-06-22  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-q: New file; test the -q option.  Includes
-       a test for PR/1780.
-
-2000-06-21  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Added a test for PR/1709: allowing
-       semicolons in target-specific variable values.
-
-2000-06-19  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/addsuffix: Test for an empty final argument.
-       Actually this bug might have happened for any function, but this
-       one was handy.
-
-2000-06-17  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * scripts/options/general: If parallel jobs are not supported,
-       expect a warning message from Make.
-
-2000-06-15  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * scripts/options/general: Don't try -jN with N != 1 if parallel
-       jobs are not supported.
-
-2000-05-24  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/general: Test general option processing (PR/1716).
-
-2000-04-11  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/strip: Test empty value to strip (PR/1689).
-
-2000-04-08  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * scripts/features/reinvoke: Sleep before updating the target
-       files in the first test, to ensure its time stamp really gets
-       newer; otherwise Make might re-exec more than once.
-
-2000-04-07  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * scripts/features/double_colon: Don't run the parallel tests if
-       parallel jobs aren't supported.
-
-2000-04-04  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/word: wordlist doesn't swap arguments anymore.
-
-2000-03-27  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/statipattrules: Test that static pattern rules
-       whose prerequisite patterns resolve to empty strings throw an
-       error (instead of dumping core).  Fixes PR/1670.
-
-       * scripts/features/reinvoke: Make more robust by touching "b"
-       first, to ensure it's not newer than "a".
-       Reported by Marco Franzen <Marco.Franzen@Thyron.com>.
-       * scripts/options/dash-n: Ditto.
-
-       * scripts/functions/call: Whoops.  The fix to PR/1527 caused
-       recursive invocations of $(call ...) to break.  I can't come up
-       with any way to get both working at the same time, so I backed out
-       the fix to 1527 and added a test case for recursive calls.  This
-       also tests the fix for PR/1610.
-
-       * scripts/features/double_colon: Test that circular dependencies
-       in double-colon rule sets are detected correctly (PR/1671).
-
-2000-03-26  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/targets/INTERMEDIATE: Test that make doesn't remove
-       .INTERMEDIATE files when given on the command line (PR/1669).
-
-2000-03-08  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-k: Add a test for error detection by
-       multiple targets depending on the same prerequisite with -k.
-       For PR/1634.
-
-2000-02-07  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/escape: Add a test for backslash-escaped spaces
-       in a target name (PR/1586).
-
-2000-02-04  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/patspecific_vars: Add a test for pattern-specific
-       target variables inherited from the parent target (PR/1407).
-
-2000-02-02  Paul D. Smith  <psmith@gnu.org>
-
-       * run_make_tests.pl (set_more_defaults): Hard-code the LANG to C
-       to make sure sorting order, etc. is predictable.
-       Reported by Andreas Jaeger <aj@suse.de>.
-
-       * run_make_tests.pl (set_more_defaults): Set the $wtime variable
-       depending on the OS.  Eli Zaretskii <eliz@is.elta.co.il> reports
-       this seems to need to be *4* on DOS/Windows, not just 2.  Keep it
-       1 for other systems.
-       * scripts/features/vpathplus (touchfiles): Use the $wtime value
-       instead of hardcoding 2.
-       * scripts/targets/SECONDARY: Ditto.
-       * scripts/targets/INTERMEDIATE: Ditto.
-
-2000-01-27  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl (toplevel): Don't try to run test scripts which
-       are really directories.
-
-2000-01-23  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/include: Remove a check; the fix caused more
-       problems than the error, so I removed it and removed the test for
-       it.
-
-2000-01-11  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/call: Add a test for PR/1517 and PR/1527: make
-       sure $(call ...) doesn't eval its arguments and that you can
-       invoke foreach from it without looping forever.
-
-1999-12-15  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/targets/INTERMEDIATE: Add a test for PR/1423: make sure
-       .INTERMEDIATE settings on files don't disable them as implicit
-       intermediate possibilities.
-
-1999-12-01  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/double_colon: Add a test for PR/1476: Try
-       double-colon rules as non-goal targets and during parallel builds
-       to make sure they're handled serially.
-
-1999-11-17  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/functions/if: Add a test for PR/1429: put some text
-       after an if-statement to make sure it works.
-
-       * scripts/features/targetvars: Add a test for PR/1380: handling +=
-       in target-specific variable definitions correctly.
-
-1999-10-15  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/variables/MAKEFILES: This was really broken: it didn't
-       test anything at all, really.  Rewrote it, plus added a test for
-       PR/1394.
-
-1999-10-13  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/options/dash-n: Add a test for PR/1379: "-n doesn't
-       behave properly when used with recursive targets".
-
-1999-10-08  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/targetvars: Add a check for PR/1378:
-       "Target-specific vars don't inherit correctly"
-
-1999-09-29  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl (get_osname): Change $fancy_file_names to
-       $short_filenames and reverse the logic.
-       (run_each_test): Change test of non-existent $port_host to use
-       $short_filenames--problem reported by Eli Zaretskii.
-
-1999-09-23  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/parallelism: Add a check to ensure that the
-       jobserver works when we re-invoke.  Also cleaned up the tests a
-       little, reducing the number of rules we use so the test won't need
-       as many "sleep" commands.
-
-1999-09-16  Paul D. Smith  <psmith@gnu.org>
-
-       * scripts/features/reinvoke: Remove invocations of "touch" in
-       makefiles.  See the comments on the touch function rewrite below.
-       Note that UNIX touch behaves the same way if the file already
-       exists: it sets the time to the _local_ time.  We don't want
-       this.  This is probably a good tip for makefile writers in
-       general, actually... where practical.
-       * scripts/options/dash-l: Ditto.
-       * scripts/options/dash-n: Ditto.
-
-       * test_driver.pl (run_each_test): In retrospect, I don't like the
-       .lN/.bN/.dN postfix required by DOS.  So, for non-DOS systems I
-       changed it back to use .log, .base, and .diff.
-
-       * run_make_tests.pl (set_more_defaults): Move the check for the
-       make pathname to here from set_defaults (that's too early since it
-       happens before the command line processing).
-       Create a new variable $port_type, calculated from $osname, to
-       specify what kind of system we're running on.  We should integrate
-       the VOS stuff here, too.
-       (valid_option): Comment out the workdir/-work stuff so people
-       won't be fooled into thinking it works... someone needs to fix
-       this, though!
-
-       * scripts/functions/origin: Use $port_type instead of $osname.
-       * scripts/functions/foreach: Ditto.
-       * scripts/features/default_names: Ditto.
-
-1999-09-15  Paul D. Smith  <psmith@gnu.org>
-
-       * test_driver.pl (touch): Rewrite this function.  Previously it
-       used to use utime() to hard-set the time based on the current
-       local clock, or, if the file didn't exist, it merely created it.
-       This mirrors exactly what real UNIX touch does, but it fails badly
-       on networked filesystems where the FS server clock is skewed from
-       the local clock: normally modifying a file causes it to get a mod
-       time based on the _server's_ clock.  Hard-setting it based on the
-       _local_ clock causes gratuitous errors and makes the tests
-       unreliable except on local filesystems.  The new function will
-       simply modify the file, allowing the filesystem to set the mod
-       time as it sees fit.
-
-       * scripts/features/parallelism: The second test output could
-       change depending on how fast some scripts completed; use "sleep"
-       to force the order we want.
-
-       * test_driver.pl (toplevel): A bug in Perl 5.000 to Perl 5.004
-       means that "%ENV = ();" doesn't do the right thing.  This worked
-       in Perl 4 and was fixed in Perl 5.004_01, but use a loop to delete
-       the environment rather than require specific versions.
-
-       * run_make_tests.pl (set_more_defaults): Don't use Perl 5 s///
-       modifier "s", so the tests will run with Perl 4.
-       (set_more_defaults): Set $pure_log to empty if there's no -logfile
-       option in PURIFYOPTIONS.
-       (setup_for_test): Don't remove any logs unless $pure_log is set.
-
-1999-09-15  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * scripts/features/reinvoke: Put the SHELL definition in the right
-       test makefile.
-
-1999-09-15  Paul D. Smith  <psmith@gnu.org>
-
-       ChangeLog file for the test suite created.
-\f
-
-Copyright (C) 1992-2013 Free Software Foundation, Inc.
-This file is part of GNU Make.
-
-GNU Make is free software; you can redistribute it and/or modify it under the
-terms of the GNU General Public License as published by the Free Software
-Foundation; either version 3 of the License, or (at your option) any later
-version.
-
-GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/tests/ChangeLog.1 b/tests/ChangeLog.1
new file mode 100644 (file)
index 0000000..9abe731
--- /dev/null
@@ -0,0 +1,1429 @@
+2013-10-09  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/patspecific_vars: Typo fixes.
+
+2013-10-05  Paul Smith  <psmith@gnu.org>
+
+       * test_driver.pl (run_all_tests): Rewrite to be more clear.
+       * scripts/features/jobserver: Avoid using $ENV{HOME} as it doesn't
+       exist everywhere.
+       * scripts/features/default_names: End with 1;
+
+       * scripts/features/loadapi: Use new calling signatures.  Verify
+       the NOEXPAND flag works.  Test with all valid function name
+       characters.
+
+2013-09-29  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/SHELL: Solaris /bin/sh can't handle options in
+       multiple words; skip that test.
+       * scripts/targets/ONESHELL: Ditto.
+
+       * scripts/variables/GNUMAKEFLAGS: Verify that GNUMAKEFLAGS is
+       cleared and options are not duplicated.
+
+2013-09-23  Paul Smith  <psmith@gnu.org>
+
+       * scripts/options/print-directory: Rename dash-w to
+       print-directory to avoid conflicts with dash-W on case-insensitive
+       filesystems.
+
+2013-09-22  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/se_implicit: Verify that order-only tokens
+       inside second expansion are parsed correctly.
+       Test for Savannah bug #31155.
+
+       * run_make_tests.pl (set_more_defaults): If we can't find
+       gnumake.h based on the make program we might be running from a
+       remote build directory.  Parse the Makefile for the right path.
+
+       Fix some test issues on Solaris.
+
+       * scripts/features/archives: Determine what output ar gives when
+       adding and replacing objects and compare with that.
+       * scripts/features/escape: Solaris /bin/sh doesn't properly handle
+       backslashes inside single quotes, so don't rely on it.
+       * scripts/features/output-sync: false(1) gives different exit
+       codes on different systems; use "exit 1" instead.
+       * scripts/features/parallelism: Increase the timeout for slower systems.
+
+2013-09-21  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/archives: Some versions of ar (MacOSX) generate
+       different output when creating archives.  Run it and verify the
+       real output.
+       * scripts/features/default_names: MacOSX is, like Windows,
+       case-preserving / case-insensitive.  Redo the test to avoid
+       checking for "UNIX".
+       * test_driver.pl (attach_default_output): Don't dup stdout into
+       stderr.  Reported by Denis Excoffier <bug-tar@Denis-Excoffier.org>
+
+       * scripts/features/se_explicit: Fix a test that behaves
+       differently with/without archive capability enabled.
+       * scripts/features/output-sync: Don't test output-sync if it's not
+       enabled.  We also skip it if parallelism is not enabled, although
+       strictly speaking some of the output-sync tests are valid even
+       without parallelism.
+       * scripts/features/jobserver: Move some tests that require the
+       jobserver from features/parallelism to a separate suite.  Only run
+       this if jobserver mode is enabled.
+
+       * scripts/features/output-sync: Test shell functions writing to
+       stderr in recipes: ensure it's captured via output-sync.  Test
+       output generated while reading makefiles and make sure it's
+       captured via output-sync.  Make sure that fatal errors dump the
+       output so it's not lost.
+
+       * scripts/options/dash-w: Add a test for -w flag.
+
+2013-09-15  Paul Smith  <psmith@gnu.org>
+
+       * scripts/misc/fopen-fail: Check for failure on infinite recursion.
+       * run_make_tests.pl (run_make_test): Allow the answer string to be
+       undef, which means that we shouldn't compare it at all.  Only the
+       exit code matters in this case.
+       * test_driver.pl (compare_output): Ditto.
+       Test for Savannah bug #27374.
+
+       * scripts/features/parallelism: Test broken jobserver on recursion.
+       Test for Savannah bug #39934.
+
+       * scripts/options/eval: Verify --eval during restart.
+       Test for Savannah bug #39203.
+
+2013-09-14  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/output-sync: Verify -Orecurse properly.
+
+2013-09-12  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/output-sync: Modify for output sync behavior.
+       * scripts/variables/MAKE_RESTARTS: Ditto.
+       * scripts/variables/MAKEFLAGS: Remove mode for --trace.
+       * scripts/variables/GNUMAKEFLAGS: Ditto.
+
+2013-07-22  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/rule_glob: Add tests for wildcards in rules.
+       Test for Savannah bug #39310.
+
+2013-07-09  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/se_implicit: Add a test for SE rules depending
+       on other SE rules to be built.
+
+2013-05-26  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/archives: Test for Savannah bug #38442.
+
+       * scripts/misc/bs-nl: Test for Savannah bug #39035.
+       Add a test for Savannah bug #38945.
+
+2013-05-22  Paul Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-n: Fix results after MAKEFLAGS fixes.
+       * scripts/variables/MAKEFLAGS: Ditto.
+       * scripts/variables/GNUMAKEFLAGS: Ditto.
+
+2013-05-14  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/loadapi: Add plugin_is_GPL_compatible symbol.
+       * scripts/features/load: Ditto.
+
+2013-05-13  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/output-sync (output_sync_set): Update for new
+       --trace behavior.
+
+2013-05-05  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/output-sync (output_sync_set): Remove
+       extraneous enter/leave lines, which are no longer printed.
+       Add tests for syncing command line printing.
+       (output_sync_set): Rename options: "job"->"line"; "make"->"recurse"
+
+2013-05-04  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/loadapi: Use the new alloc functions.
+
+       * scripts/features/output-sync (output_sync_set): New test for
+       ordered recursive output for -Ojob / -Otarget.
+
+2013-05-03  Eli Zaretskii  <eliz@gnu.org>
+
+       * scripts/features/load: Fix signatures of testload_gmk_setup and
+       explicit_setup, to bring them in line with the documentation.
+
+2013-04-28  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/output-sync (output_sync_set): Add tests for
+       the per-job syntax mode.
+       (output_sync_set): Test improved error message location.
+
+2013-04-15  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/output-sync (output_sync_set): New arg syntax.
+
+2013-04-14  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/output-sync: Rewrite to be more reliable.
+
+       * test_driver.pl (_run_command): Don't set SIGALRM until after we
+       start the child.  Print errors to the top-level output, which will
+       be stderr.
+       (attach_default_output): Use a list of file handles as the stack.
+       (detach_default_output): Ditto.
+
+       * scripts/features/output-sync: Add a test for output-sync.
+
+2013-02-25  Paul Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (valid_option): Support the -srcdir flag.
+       (set_more_defaults): Set up $srcdir if it's not set yet.
+
+       * scripts/functions/guile: Verify gmk-eval doesn't expand twice.
+       * scripts/features/load: Rework to test just the load capability.
+       * scripts/features/loadapi: New set of tests for the load API.
+
+2013-01-19  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/load: Test loaded files with and without "./"
+       prefix.  Add tests for automatically rebuilding loaded files if
+       they are out of date or non-existent.
+
+2013-01-13  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/archives: Add a check targets that have parens,
+       but are not archives.  See Savannah bug #37878.
+
+       * scripts/options/dash-n: Verify -n is preserved after recursive /
+       re-exec.  See Savannah bug #38051.
+
+2013-01-12  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism: Change rule so it doesn't depend
+       on invocation order, etc.
+
+2012-10-29  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/load: New test suite for the "load" directive.
+
+2012-09-09  Paul Smith  <psmith@gnu.org>
+
+       * scripts/functions/file: Get errors in the C locale, not the
+       current locale.  Fixes Savannah bug #35764.
+
+       * scripts/features/escape: Check that backslashes before
+       non-special characters are not removed.
+
+       * scripts/features/utf8: New test for UTF-8 support.
+       See Savannah bug #36529.
+
+       * scripts/targets/POSIX: Add tests for default macro values as
+       specified by IEEE Std 1003.1-2008.  See Savannah bug #37069.
+
+2012-03-04  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/se_explicit: Test $(x:%=%) format in secondary
+       expansion prerequisite lists.  See Savannah bug #16545.
+
+       * scripts/features/escape: Test escaped ":" in prerequisite lists.
+       See Savannah bug #12126.
+
+       * scripts/variables/private: Test appending private variables in
+       pattern-specific target rules.  See Savannah bug #35468.
+
+2012-03-03  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/SHELL: Ensure .SHELLFLAGS works with options
+       separated by whitespace.
+
+       * scripts/targets/ONESHELL: Try .ONESHELL in combination with
+       whitespace-separated options in .SHELLFLAGS.  See Savannah bug #35397.
+
+       * scripts/functions/filter-out: Add filter tests and test escape
+       operations.  See Savannah bug #35410.
+
+       * guile.supp: Suppress valgrind errors from Guile
+       * run_make_tests.pl: Use the Guile suppression file.
+
+       * scripts/misc/bs-nl: Check for POSIX and non-POSIX
+       backslash/newline handling.  Addresses Savannah bug #16670.
+
+2012-01-29  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/flavors: Add tests for ::=
+       * scripts/variables/define: Ditto
+
+       * scripts/functions/file: Test the new $(file ...) function.
+
+2012-01-12  Paul Smith  <psmith@gnu.org>
+
+       * scripts/functions/guile: New regression tests for Guile support.
+
+2011-12-10  Paul Smith  <psmith@gnu.org>
+
+       * scripts/targets/SECONDARY: Add prereq statements to ensure rules
+       are printed in the right order for test #9
+
+2011-11-14  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/double_colon: Check double-colon with escaped
+       filenames.  See Savannah bug #33399.
+
+2011-09-18  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism: On re-exec make sure we preserve
+       the value of MAKEFLAGS when necessary.  See Savannah bug #33873.
+
+       * scripts/features/vpath3: Verify handling of -lfoo libraries
+       found via vpath vs. the standard directory search.
+       See Savannah bug #32511.
+
+2011-09-12  Paul Smith  <psmith@gnu.org>
+
+       * scripts/functions/call: Verify that using export in a $(call ...)
+       context creates a global variable.  See Savannah bug #32498.
+
+2011-09-02  Paul Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-n: Verify that in "-n -t", the -n takes
+       priority.  Patch from Michael Witten <mfwitten@gmail.com>.
+
+2011-08-29  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/varnesting: Test resetting of variables while
+       expanding them.  See Savannah patch #7534
+
+2011-06-12  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/archives: Check archives with whitespace at the
+       beginning, end, and extra in the middle.
+       Another test for Savannah bug #30612.
+
+2011-05-07  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/private: Ensure we skip private variables when
+       appending.  Test for Savannah bug #32872.
+
+       * scripts/functions/wildcard: Verify wildcard used to test for
+       file existence/non-existence.
+
+2011-05-02  Paul Smith  <psmith@gnu.org>
+
+       * scripts/functions/sort: Add a test for Savannah bug #33125.
+
+2011-04-17  David A. Wheeler  <dwheeler@dwheeler.com>
+
+       * scripts/features/shell_assignment: Regression for "!=" feature
+
+2010-11-06  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Fix known-good output for BS/NL changes.
+       * scripts/functions/call: Ditto.
+       * scripts/variables/special: Ditto.
+
+       * scripts/misc/bs-nl: New test suite for backslash/newline testing.
+
+2010-08-29  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/errors: Add new error message to output text.
+       * scripts/variables/SHELL: Ditto.
+       * scripts/targets/POSIX: Ditto.
+       * scripts/options/dash-k: Ditto.
+       * scripts/features/vpathplus: Ditto.
+       * scripts/features/patternrules: Ditto.
+       * scripts/features/parallelism: Ditto.
+
+2010-08-13  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/archives: New regression tests for archive
+       support.  Test for fix to Savannah bug #30612.
+
+       * run_make_tests.pl (set_more_defaults): Set a %FEATURES hash to
+       the features available in $(.FEATURES).
+
+2010-08-10  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/reinvoke: Ensure command line variable settings
+       are preserved across make re-exec.  Tests Savannah bug #30723.
+
+2010-07-28  Paul Smith  <psmith@gnu.org>
+
+       * scripts/targets/POSIX: Compatibility issues with Solaris (and
+       Tru64?); "false" returns different exit codes, and set -x shows
+       output with extra whitespace.  Run the commands by hand first to
+       find out what the real shell would do, then compare what make does.
+       * scripts/variables/SHELL: Ditto.
+
+2010-07-12  Paul Smith  <psmith@gnu.org>
+
+       * test_driver.pl: Add a new $perl_name containing the path to Perl.
+       * run_make_tests.pl (run_make_test): Replace the special string
+       #PERL# in a makefile etc. with the path the Perl executable so
+       makefiles can use it.
+
+       * scripts/targets/ONESHELL: Add a new set of regression tests for
+       the .ONESHELL feature.
+
+2010-07-06  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/SHELL: Test the new .SHELLFLAGS variable.
+
+       * scripts/targets/POSIX: New file.  Test the .POSIX special target.
+       Verify that enabling .POSIX changes the shell flags to set -e.
+
+2010-07-01  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/recursion: Add a space to separate command-line
+       args.  Fixes Savannah bug #29968.
+
+2009-11-12  Boris Kolpackov  <boris@codesynthesis.com>
+
+       * scripts/features/vpath3: Test for the new library search
+       behavior.
+
+2009-10-06  Boris Kolpackov  <boris@codesynthesis.com>
+
+       * scripts/features/se_explicit: Enable the test for now fixed
+       Savannah bug 25780.
+
+2009-10-06  Boris Kolpackov  <boris@codesynthesis.com>
+
+       * scripts/variables/undefine: Tests for the new undefine feature.
+
+2009-10-03  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism: Test for open Savannah bug #26846.
+
+       * scripts/variables/MAKE: Rewrite for new run_make_test() format.
+
+       * scripts/variables/MAKEFLAGS: Created.
+       Add test for Savannah bug #2216 (still open).
+
+       * scripts/features/include: Test for Savannah bug #102 (still open).
+
+2009-09-30  Boris Kolpackov  <boris@codesynthesis.com>
+
+       * scripts/features/include: Add diagnostics issuing tests for
+       cases where targets have been updated and failed with the
+       dontcare flag. Savannah bugs #15110, #25493, #12686, #17740.
+
+2009-09-28  Paul Smith  <psmith@gnu.org>
+
+       * scripts/functions/shell: Add regression test for Savannah bug
+       #20513 (still open).
+
+       * scripts/features/se_explicit: Add regression tests for Savannah
+       bug #25780 (still open).
+
+       * run_make_tests.pl (valid_option): Add a new flag, -all([-_]?tests)?
+       that runs tests we know will fail.  This allows us to add
+       regression tests to the test suite for bugs that haven't been
+       fixed yet.
+
+2009-09-28  Boris Kolpackov  <boris@codesynthesis.com>
+
+       * scripts/features/patspecific_vars: Add a test for the shortest
+       stem first order.
+
+       * scripts/features/patternrules: Add a test for the shortest stem
+       first order.
+
+2009-09-24  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/se_implicit: Add a test for order-only
+       secondary expansion prerequisites.
+
+2009-09-23  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/patternrules: Test that we can remove pattern
+       rules, both single and multiple prerequisites.  Savannah bug #18622.
+
+       * scripts/features/echoing: Rework for run_make_test().
+
+2009-06-14  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/vpath: Verify we don't get bogus circular
+       dependency warnings if we choose a different file via vpath during
+       update.  Savannah bug #13529.
+
+2009-06-13  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/MAKEFILES: Verify that MAKEFILES included
+       files (and files included by them) don't set the default goal.
+       Savannah bug #13401.
+
+       * scripts/functions/wildcard: Test that wildcards with
+       non-existent glob matchers return empty.
+
+2009-06-09  Paul Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-B: Test the $? works correctly with -B.
+       Savannah bug #17825.
+
+       * scripts/features/patternrules: Test that dependencies of
+       "also_make" targets are created properly.  Savannah bug #19108.
+
+       * test_driver.pl (compare_output): Create a "run" file for failed
+       tests containing the command that was run.
+       (get_runfile): New function.
+
+       * run_make_tests.pl (valid_option): Enhanced support for valgrind:
+       allow memcheck and massif tools.
+
+       * scripts/features/patternrules: Have to comment out a line in the
+       first test due to backing out a change that broke the implicit
+       rule search algorithm.  Savannah bug #17752.
+       * scripts/misc/general4: Remove a test that is redundant with
+       patternrules.
+
+       * scripts/features/parallelism: Add a test for re-exec with
+       jobserver master override.  Savannah bug #18124.
+
+2009-06-08  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Add a test for continued target
+       vars after a semicolon.  Savannah bug #17521.
+
+2009-06-07  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/se_explicit: Make sure we catch defining
+       prereqs during snap_deps().  Savannah bug #24622.
+
+       * scripts/variables/automatic: Check prereq ordering when the
+       target with the recipe has no prereqs.  Savannah bug #21198.
+
+       * scripts/variables/LIBPATTERNS: Add a new set of test for
+       $(.LIBPATTERNS) (previously untested!)
+
+2009-06-04  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/SHELL: The export target-specific SHELL test
+       has an incorrect known-good-value.
+
+       * scripts/misc/general4: Check for whitespace (ffeed, vtab, etc.)
+
+       * scripts/features/se_explicit: Add tests for Savannah bug #24588.
+
+2009-05-31  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/DEFAULT_GOAL: Add tests for Savannah bug #25697.
+
+       * scripts/features/targetvars: Add tests of overrides for Savannah
+       bug #26207.
+       * scripts/features/patspecific_vars: Ditto.
+
+       * scripts/features/patternrules: Add a test for Savannah bug #26593.
+
+2009-05-30  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/flavors: Update with new variable flavor tests.
+       * scripts/variables/define: Create a new set of tests for
+       define/endef and move those aspects of the flavors suite here.
+
+2009-05-25  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Ditto.
+
+       * scripts/features/export: Test new variable parsing abilities.
+
+2009-02-23  Ramon Garcia  <ramon.garcia.f@gmail.com>
+
+       * scripts/variables/private: Create a new suite of tests for 'private'.
+
+2007-11-04  Paul Smith  <psmith@gnu.org>
+
+       * scripts/functions/eval: Update error message for command -> recipe.
+
+       * test_driver.pl (compare_output): Allow the answer to be a regex,
+       if surrounded by '/'.
+       * scripts/misc/close_stdout: Use a regex for the answer, since
+       sometimes the error will have a description and sometimes it won't.
+
+2007-09-10  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/special: Add tests for .RECIPEPREFIX variable.
+
+2007-08-15  Paul Smith  <psmith@gnu.org>
+
+       These test cases were contributed by
+       Icarus Sparry <savannah@icarus.freeuk.com> and J. David Bryan for
+       Savannah bugs #3330 and #15919.
+
+       * scripts/targets/SECONDARY: Add tests for Savannah bugs 3330 and
+       15919.
+
+       * scripts/features/parallelism: Add tests for wrong answer/hang
+       combining INTERMEDIATE, order-only prereqs, and parallelism.
+       See Savannah bugs 3330 and 15919.
+
+2007-07-13  Paul Smith  <psmith@gnu.org>
+
+       Install a timeout so tests can never loop infinitely.
+       Original idea and patch for a single-test version provided by
+       Icarus Sparry <savannah@icarus.freeuk.com>
+
+       * test_driver.pl (_run_command): New function: this is called by
+       other functions to actually run a command.  Before we run it,
+       install a SIGALRM handler and set up a timer to go off in the
+       future (default is 5s; this can be overridden by individual tests).
+       (run_command): Call it.
+       (run_command_with_output): Call it.
+
+       * run_make_tests.pl (run_make_with_options): Override the default
+       timeout if the caller requests it.
+       (run_make_test): Pass any timeout override to run_make_with_options.
+
+       * scripts/features/parallelism: Increase the timeout for long tests.
+       * scripts/options/dash-l: Ditto.
+
+2006-10-01  Paul Smith  <psmith@paulandlesley.org>
+
+       * run_make_tests.pl (set_more_defaults): Remove setting of LANG in
+       ENV here.  This doesn't always work.
+       * test_driver.pl (toplevel): Set LC_ALL to 'C' in the make
+       environment.  Fixes Savannah bug #16698.
+
+2006-09-30  Paul Smith  <psmith@paulandlesley.org>
+
+       * scripts/variables/automatic: Add back the test for bug #8154.
+
+2006-04-01  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/realpath: Don't run tests with multiple
+       initial slashes on Windows: those paths mean something different.
+
+2006-03-19  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism: Test that the jobserver is
+       properly managed when we have to re-exec the master instance of
+       make.
+
+2006-03-17  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/statipattrules: Add tests for bug #16053.
+
+2006-03-09  Paul Smith  <psmith@gnu.org>
+
+       * scripts/features/escape: Use "pre:" not "p:" to avoid conflicts
+       with DOS drive letters.  Fixes Savannah bug #15947.
+
+       * test_driver.pl (run_each_test): Set the status properly even
+       when a test fails to execute.  Fixes Savannah bug #15942.
+
+       * scripts/functions/foreach: Use a different environment variable
+       other than PATH to avoid differences with Windows platforms.
+       Fixes Savannah bug #15938.
+
+2006-03-05  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (set_more_defaults): Add CYGWIN_NT as a port
+       type W32.  Fixed Savannah bug #15937.
+
+       * scripts/features/default_names: Don't call error() when the test
+       fails.  Fixes Savannah bug #15941.
+
+2006-02-17  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Test a complex construction which
+       guarantees that we have to merge variable lists of different
+       sizes.  Tests for Savannah bug #15757.
+
+2006-02-15  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/error: Make sure filename/lineno information
+       is related to where the error is expanded, not where it's set.
+       * scripts/functions/warning: Ditto.
+       * scripts/functions/foreach: Check for different error conditions.
+       * scripts/functions/word: Ditto.
+       * scripts/variables/negative: Test some variable reference failure
+       conditions.
+       * scripts/options/warn-undefined-variables: Test the
+       --warn-undefined-variables flag.
+
+2006-02-09  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (set_more_defaults): Update valgrind support
+       for newer versions.
+       * test_driver.pl (toplevel): Skip all hidden files/directories (ones
+       beginning with ".").
+
+       * scripts/functions/andor: Tests for $(and ...) and $(or ...)
+       functions.
+
+2006-02-08  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/parallelism: Add a test for bug #15641.
+
+2006-02-06  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-W: Add a test for bug #15341.
+
+2006-01-03  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/variables/automatic: Add a test for bug #8154.
+
+       * README: Update to reflect the current state of the test suite.
+
+2005-12-12  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism, scripts/functions/wildcard,
+       scripts/targets/FORCE, scripts/targets/PHONY,
+       scripts/targets/SILENT: Use the default setting for
+       $delete_command.  Fixes bug #15085.
+
+       * run_make_tests.pl (get_this_pwd) [VMS]: Use -no_ask with delete_file.
+
+2005-12-11  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/misc/general4: Test implicit rules with '$' in the
+       prereq list & prereq patterns.
+       * scripts/features/se_implicit: Add in .SECONDEXPANSION settings.
+
+2005-12-09  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/patternrules: Add a test for bug #13022.
+
+2005-12-07  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/double_colon: Add a test for bug #14334.
+
+2005-11-17  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/functions/flavor: Add a test for the flavor function.
+
+2005-11-14  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/variables/INCLUDE_DIRS: Add a test for the .INCLUDE_DIRS
+       special variable.
+
+2005-10-24  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/misc/general4: Test '$$' in prerequisites list.
+       * scripts/features/statipattrules: Rewrite to use run_make_test().
+       Add various static pattern info.
+       * scripts/features/se_statpat: Enable .SECONDEXPANSION target.
+       * scripts/features/se_explicit: Add tests for handling '$$' in
+       prerequisite lists with and without setting .SECONDEXPANSION.
+       * scripts/features/order_only: Convert to run_make_test().
+       * run_make_tests.pl (set_more_defaults): If we can't get the value
+       of $(MAKE) from make, then fatal immediately.
+
+2005-08-31  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (get_this_pwd): Require the POSIX module (in
+       an eval to trap errors) and if it exists, use POSIX::getcwd to
+       find the working directory.  If it doesn't exist, go back to the
+       previous methods.  This tries to be more accurate on Windows
+       systems.
+
+2005-08-29  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/abspath: Add some text to the error messages
+       to get a better idea of what's wrong.  Make warnings instead of
+       errors.
+
+       * scripts/features/patspecific_vars: Don't use "test", which is
+       UNIX specific.  Print the values and let the test script match
+       them.
+
+2005-08-25  Paul Smith  <psmith@gnu.org>
+
+       * scripts/variables/SHELL: Use a /./ prefix instead of //: the
+       former works better with non-UNIX environments.  Fixes Savannah
+       bug #14129.
+
+2005-08-13  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/functions/wildcard: Wrap calls to $(wildcard) with
+       $(sort) so that the resulting order is no longer filesystem-
+       dependent.
+
+2005-08-10  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/statipattrules: Add a test for Savannah bug #13881.
+
+2005-08-07  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism: Add a test for a bug reported by
+       Michael Matz (matz@suse.de) in which make exits without waiting
+       for all its children in some situations during parallel builds.
+
+2005-07-08  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl: Reset the environment to a clean value every
+       time before we invoke make.  I'm suspicious that the environment
+       isn't handled the same way in Windows as it is in UNIX, and some
+       variables are leaking out beyond the tests they are intended for.
+       Create an %extraENV hash tests can set to add more env. vars.
+       * tests/scripts/features/export: Change to use %extraENV.
+       * tests/scripts/functions/eval: Ditto.
+       * tests/scripts/functions/origin: Ditto.
+       * tests/scripts/options/dash-e: Ditto.
+       * tests/scripts/variables/SHELL: Ditto.
+
+2005-06-27  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-W: Use 'echo >>' instead of touch to update
+       files.
+       * scripts/features/reinvoke: Rewrite to be safer on systems with
+       subsecond timestamps.
+       * scripts/features/patternrules: False exits with different error
+       codes on different systems (for example, Linux => 1, Solaris => 255).
+
+       * scripts/options/dash-W: Set the timestamp to foo.x in the future,
+       to be sure it will be considered updated when it's remade.
+
+2005-06-26  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/shell: New test suite for the shell function.
+
+2005-06-25  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/include: Test include/-include/sinclude with no
+       arguments.  Tests fix for Savannah bug #1761.
+
+       * scripts/misc/general3: Implement comprehensive testing of
+       backslash-newline behavior in command scripts: various types of
+       quoting, fast path / slow path, etc.
+       Tests fix for Savannah bug #1332.
+
+       * scripts/options/symlinks: Test symlinks to non-existent files.
+       Tests fix for Savannah bug #13280.
+
+       * scripts/misc/general3: Test semicolons in variable references.
+       Tests fix for Savannah bug #1454.
+
+       * scripts/variables/MAKE_RESTARTS: New file: test the
+       MAKE_RESTARTS variable.
+       * scripts/options/dash-B: Test re-exec doesn't loop infinitely.
+       Tests fix for Savannah bug #7566.
+       * scripts/options/dash-W: New file: test the -W flag, including
+       re-exec infinite looping.
+
+2005-06-12  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/misc/close_stdout: Add a test for Savannah bug #1328.
+       This test only works on systems that have /dev/full (e.g., Linux).
+
+2005-06-09  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/foreach: Add a test for Savannah bug #11913.
+
+2005-05-31  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/include: Add a test for Savannah bug #13216.
+       * scripts/features/patternrules: Add a test for Savannah bug #13218.
+
+2005-05-13  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/conditionals: Add tests for the new if... else
+       if... endif syntax.
+
+2005-05-03  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/variables/DEFAULT_GOAL: Rename DEFAULT_TARGET to
+       DEFAULT_GOAL.
+
+2005-05-02  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism: Add a test for exporting recursive
+       variables containing $(shell) calls.  Rewrite this script to use
+       run_make_test() everywhere.
+
+2005-04-07  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/targets/SECONDARY: Add a test for Savannah bug #12331.
+
+2005-03-15  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/variables/automatic: Add a test for Savannah bug #12320.
+
+2005-03-10  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/patternrules: Add a test for Savannah bug #12267.
+
+2005-03-09  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/variables/DEFAULT_TARGET: Add a test for Savannah
+       bug #12266.
+
+2005-03-04  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/patternrules: Add a test for Savannah bug #12202.
+
+2005-03-03  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/se_implicit: Add a test for stem
+       termination bug. Add a test for stem triple-expansion bug.
+
+       * scripts/features/se_statpat: Add a test for stem
+       triple-expansion bug.
+
+       * scripts/features/statipattrules: Change test #4 to reflect
+       new way empty prerequisite list is handled.
+
+
+2005-03-01  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/statipattrules: Add a test for
+       Savannah bug #12180.
+
+2005-02-28  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-q: Add a test for Savannah bug # 7144.
+
+       * scripts/options/symlinks: New file to test checking of symlink
+       timestamps.  Can't use filename dash-L because it conflicts with
+       dash-l on case-insensitive filesystems.
+
+       * scripts/variables/MAKEFILE_LIST, scripts/variables/MFILE_LIST:
+       Rename MAKEFILE_LIST test to MFILE_LIST, for systems that need 8.3
+       unique filenames.
+
+2005-02-28  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/variables/DEFAULT_TARGET: Test the .DEFAULT_TARGET
+       special variable.
+
+2005-02-27  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/se_explicit: Test the second expansion in
+       explicit rules.
+       * scripts/features/se_implicit: Test the second expansion in
+       implicit rules.
+       * scripts/features/se_statpat: Test the second expansion in
+       static pattern rules.
+       * scripts/variables/automatic: Fix to work with the second
+       expansion.
+
+       * scripts/misc/general4: Add a test for bug #12091.
+
+2005-02-27  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/eval: Check that eval of targets within
+       command scripts fails.  See Savannah bug # 12124.
+
+2005-02-26  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl (compare_output): If a basic comparison of the
+       log and answer doesn't match, try harder: change all backslashes
+       to slashes and all CRLF to LF.  This helps on DOS/Windows systems.
+
+2005-02-09  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/recursion: Test command line variable settings:
+       only one instance of a given variable should be provided.
+
+2004-11-30  Boris Kolpackov  <boris@kolpackov.net>
+
+       * tests/scripts/functions/abspath: New file: test `abspath'
+       built-in function.
+
+       * tests/scripts/functions/realpath: New file: test `realpath'
+       built-in function.
+
+2004-11-28  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-C [WINDOWS32]: Add a test for bug #10252;
+       this doesn't really test anything useful in UNIX but...
+
+       * scripts/variables/SHELL: New file: test proper handling of SHELL
+       according to POSIX rules.  Fixes bug #1276.
+
+2004-10-21  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/functions/word: Test $(firstword ) and $(lastword ).
+
+2004-10-05  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/patspecific_vars: Test simple/recursive
+       variable expansion.
+
+2004-09-28  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/include: Test dontcare flag inheritance
+       when rebuilding makefiles.
+
+2004-09-27  Boris Kolpackov  <boris@kolpackov.net>
+
+       * scripts/features/patspecific_vars: Test exported variables.
+
+2004-09-22  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (run_make_test): Don't add newlines to the
+       makestring or answer if they are completely empty.
+
+       * scripts/features/patternrules: Rename from implicit_prereq_eval.
+
+       * scripts/test_template: Rework the template.
+
+2004-09-21  Boris Kolpackov  <boris@kolpackov.net>
+
+       * run_make_tests.pl: Change `#!/usr/local/bin/perl' to be
+       `#!/usr/bin/env perl'.
+
+       * scripts/features/implicit_prereq_eval: Test implicit rule
+       prerequisite evaluation code.
+
+2004-09-21  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (run_make_test): Enhance to allow the make
+       string to be undef: in that case it reuses the previous make
+       string.  Allows multiple tests on the same makefile.
+
+       * scripts/variables/flavors: Add some tests for prefix characters
+       interacting with define/endef variables.
+
+2004-09-20  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/substitution: Rewrite to use run_make_test()
+       interface, and add test for substitution failures reported by
+       Markus Mauhart <qwe123@chello.at>.
+
+2004-03-22  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl (run_each_test, toplevel, compare_output): Change
+       to track both the testing categories _AND_ the number of
+       individual tests, and report both sets of numbers.
+
+2004-02-21  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/origin: Set our own environment variable
+       rather than relying on $HOME.
+
+2004-01-21  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/conditionals: Test arguments to ifn?def which
+       contain whitespace (such as a function that is evaluated).  Bug
+       #7257.
+
+2004-01-07  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/order_only: Test order-only prerequisites in
+       pattern rules (patch #2349).
+
+2003-11-02  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/if: Test if on conditionals with trailing
+       whitespace--bug #5798.
+
+       * scripts/functions/eval: Test eval in a non-file context--bug #6195.
+
+2003-04-19  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/patspecific_vars: Test multiple patterns
+       matching the same target--Bug #1405.
+
+2003-04-09  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (set_more_defaults): A new $port_type of
+       'OS/2' for (surprise!) OS/2.  Also choose a wait time of 2 seconds
+       for OS/2.
+
+2003-03-28  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/targets/SECONDARY: Test the "global" .SECONDARY (with
+       not prerequisites)--Bug #2515.
+
+2003-01-30  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Test very long target-specific
+       variable definition lines (longer than the default make buffer
+       length).  Tests patch # 1022.
+
+       * scripts/functions/eval: Test very recursive $(eval ...) calls
+       with simple variable expansion (bug #2238).
+
+       * scripts/functions/word: Test error handling for word and
+       wordlist functions (bug #2407).
+
+2003-01-22  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/call: Test recursive argument masking (bug
+       #1744).
+
+2002-10-25  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/eval: Test using $(eval ...) inside
+       conditionals (Bug #1516).
+
+2002-10-14  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-t: Add a test for handling -t on targets
+       with no commands (Bug #1418).
+
+2002-10-13  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Add a test for exporting
+       target-specific vars (Bug #1391).
+
+2002-10-05  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/variables/automatic: Add tests for $$(@), $${@}, $${@D},
+       and $${@F}.
+
+2002-09-23  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/escape: Test handling of escaped comment
+       characters in targets and prerequisites.
+
+2002-09-18  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/export: Test export/unexport of multiple
+       variables in a single command.
+
+2002-09-17  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Tests for Bug #940: test
+       target-specific and pattern-specific variables in conjunction with
+       double-colon targets.
+
+2002-09-10  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl (compare_output): Match the new format for time
+       skew error messages.
+
+       * scripts/features/export: Created.  Add tests for export/unexport
+       capabilities, including exporting/unexporting expanded variables.
+
+       * scripts/features/conditionals: Add a test for expanded variables
+       in ifdef conditionals.
+
+2002-09-04  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/reinvoke: Change touch/sleep combos to utouch
+       invocations.
+       * scripts/features/vpathgpath: Ditto.
+       * scripts/features/vpathplus: Ditto.
+       * scripts/options/dash-n: Ditto.
+       * scripts/targets/INTERMEDIATE: Ditto.
+       * scripts/targets/SECONDARY: Ditto.
+
+       * scripts/options/dash-t: Added a test for the -t bug fixed by
+       Henning Makholm.  This test was also contributed by Henning.
+
+       * scripts/misc/general4: Add a test suite for obscure algorithmic
+       features of make.  First test: make sure creation subdirectories
+       as prerequisites of targets works properly.
+
+       * scripts/misc/version: Remove this bogus test.
+
+2002-08-07  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/misc/general3: Add a test for makefiles that don't end
+       in newlines.
+
+       * scripts/variables/special: Create tests for the special
+       variables (.VARIABLES and .TARGETS).  Comment out .TARGETS test
+       for now as it's not yet supported.
+
+2002-08-01  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-B: Add a test for the new -B option.
+
+2002-07-11  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (valid_option): Add support for Valgrind.  Use
+       -valgrind option to the test suite.
+       (set_more_defaults): Set up the file descriptor to capture
+       Valgrind output.  We have to unset its close-on-exec flag; we
+       hardcode the value for F_SETFD (2) rather than load it; hopefully
+       this will help us avoid breaking the Windows/DOS test suite.
+
+2002-07-10  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/variables/automatic: Add some tests for $$@, $$(@D), and
+       $$(@F).
+
+       * test_driver.pl (utouch): Create a new function that creates a
+       file with a specific timestamp offset.  Use of this function will
+       let us avoid lots of annoying sleep() invocations in the tests
+       just to get proper timestamping, which will make the tests run a
+       lot faster.  So far it's only used in the automatic test suite.
+
+2002-07-09  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/variables/automatic: Create a test for automatic variables.
+
+2002-07-08  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/order_only: Test new order-only prerequisites.
+
+2002-07-07  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/eval: Test new function.
+       * scripts/functions/value: Test new function.
+       * scripts/variables/MAKEFILE_LIST: Test new variable.
+
+2002-04-28  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/call: New test: transitive closure
+       implementation using $(call ...) to test variable recursion.
+
+2002-04-21  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl (compare_dir_tree): Ignore CVS and RCS
+       directories in the script directories.
+
+2001-05-02  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/variables/flavors: Test define/endef scripts where only
+       one of the command lines is quiet.
+
+2000-06-22  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-q: New file; test the -q option.  Includes
+       a test for PR/1780.
+
+2000-06-21  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Added a test for PR/1709: allowing
+       semicolons in target-specific variable values.
+
+2000-06-19  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/addsuffix: Test for an empty final argument.
+       Actually this bug might have happened for any function, but this
+       one was handy.
+
+2000-06-17  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * scripts/options/general: If parallel jobs are not supported,
+       expect a warning message from Make.
+
+2000-06-15  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * scripts/options/general: Don't try -jN with N != 1 if parallel
+       jobs are not supported.
+
+2000-05-24  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/general: Test general option processing (PR/1716).
+
+2000-04-11  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/strip: Test empty value to strip (PR/1689).
+
+2000-04-08  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * scripts/features/reinvoke: Sleep before updating the target
+       files in the first test, to ensure its time stamp really gets
+       newer; otherwise Make might re-exec more than once.
+
+2000-04-07  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * scripts/features/double_colon: Don't run the parallel tests if
+       parallel jobs aren't supported.
+
+2000-04-04  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/word: wordlist doesn't swap arguments anymore.
+
+2000-03-27  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/statipattrules: Test that static pattern rules
+       whose prerequisite patterns resolve to empty strings throw an
+       error (instead of dumping core).  Fixes PR/1670.
+
+       * scripts/features/reinvoke: Make more robust by touching "b"
+       first, to ensure it's not newer than "a".
+       Reported by Marco Franzen <Marco.Franzen@Thyron.com>.
+       * scripts/options/dash-n: Ditto.
+
+       * scripts/functions/call: Whoops.  The fix to PR/1527 caused
+       recursive invocations of $(call ...) to break.  I can't come up
+       with any way to get both working at the same time, so I backed out
+       the fix to 1527 and added a test case for recursive calls.  This
+       also tests the fix for PR/1610.
+
+       * scripts/features/double_colon: Test that circular dependencies
+       in double-colon rule sets are detected correctly (PR/1671).
+
+2000-03-26  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/targets/INTERMEDIATE: Test that make doesn't remove
+       .INTERMEDIATE files when given on the command line (PR/1669).
+
+2000-03-08  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-k: Add a test for error detection by
+       multiple targets depending on the same prerequisite with -k.
+       For PR/1634.
+
+2000-02-07  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/escape: Add a test for backslash-escaped spaces
+       in a target name (PR/1586).
+
+2000-02-04  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/patspecific_vars: Add a test for pattern-specific
+       target variables inherited from the parent target (PR/1407).
+
+2000-02-02  Paul D. Smith  <psmith@gnu.org>
+
+       * run_make_tests.pl (set_more_defaults): Hard-code the LANG to C
+       to make sure sorting order, etc. is predictable.
+       Reported by Andreas Jaeger <aj@suse.de>.
+
+       * run_make_tests.pl (set_more_defaults): Set the $wtime variable
+       depending on the OS.  Eli Zaretskii <eliz@is.elta.co.il> reports
+       this seems to need to be *4* on DOS/Windows, not just 2.  Keep it
+       1 for other systems.
+       * scripts/features/vpathplus (touchfiles): Use the $wtime value
+       instead of hardcoding 2.
+       * scripts/targets/SECONDARY: Ditto.
+       * scripts/targets/INTERMEDIATE: Ditto.
+
+2000-01-27  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl (toplevel): Don't try to run test scripts which
+       are really directories.
+
+2000-01-23  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/include: Remove a check; the fix caused more
+       problems than the error, so I removed it and removed the test for
+       it.
+
+2000-01-11  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/call: Add a test for PR/1517 and PR/1527: make
+       sure $(call ...) doesn't eval its arguments and that you can
+       invoke foreach from it without looping forever.
+
+1999-12-15  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/targets/INTERMEDIATE: Add a test for PR/1423: make sure
+       .INTERMEDIATE settings on files don't disable them as implicit
+       intermediate possibilities.
+
+1999-12-01  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/double_colon: Add a test for PR/1476: Try
+       double-colon rules as non-goal targets and during parallel builds
+       to make sure they're handled serially.
+
+1999-11-17  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/functions/if: Add a test for PR/1429: put some text
+       after an if-statement to make sure it works.
+
+       * scripts/features/targetvars: Add a test for PR/1380: handling +=
+       in target-specific variable definitions correctly.
+
+1999-10-15  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/variables/MAKEFILES: This was really broken: it didn't
+       test anything at all, really.  Rewrote it, plus added a test for
+       PR/1394.
+
+1999-10-13  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/options/dash-n: Add a test for PR/1379: "-n doesn't
+       behave properly when used with recursive targets".
+
+1999-10-08  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/targetvars: Add a check for PR/1378:
+       "Target-specific vars don't inherit correctly"
+
+1999-09-29  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl (get_osname): Change $fancy_file_names to
+       $short_filenames and reverse the logic.
+       (run_each_test): Change test of non-existent $port_host to use
+       $short_filenames--problem reported by Eli Zaretskii.
+
+1999-09-23  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/parallelism: Add a check to ensure that the
+       jobserver works when we re-invoke.  Also cleaned up the tests a
+       little, reducing the number of rules we use so the test won't need
+       as many "sleep" commands.
+
+1999-09-16  Paul D. Smith  <psmith@gnu.org>
+
+       * scripts/features/reinvoke: Remove invocations of "touch" in
+       makefiles.  See the comments on the touch function rewrite below.
+       Note that UNIX touch behaves the same way if the file already
+       exists: it sets the time to the _local_ time.  We don't want
+       this.  This is probably a good tip for makefile writers in
+       general, actually... where practical.
+       * scripts/options/dash-l: Ditto.
+       * scripts/options/dash-n: Ditto.
+
+       * test_driver.pl (run_each_test): In retrospect, I don't like the
+       .lN/.bN/.dN postfix required by DOS.  So, for non-DOS systems I
+       changed it back to use .log, .base, and .diff.
+
+       * run_make_tests.pl (set_more_defaults): Move the check for the
+       make pathname to here from set_defaults (that's too early since it
+       happens before the command line processing).
+       Create a new variable $port_type, calculated from $osname, to
+       specify what kind of system we're running on.  We should integrate
+       the VOS stuff here, too.
+       (valid_option): Comment out the workdir/-work stuff so people
+       won't be fooled into thinking it works... someone needs to fix
+       this, though!
+
+       * scripts/functions/origin: Use $port_type instead of $osname.
+       * scripts/functions/foreach: Ditto.
+       * scripts/features/default_names: Ditto.
+
+1999-09-15  Paul D. Smith  <psmith@gnu.org>
+
+       * test_driver.pl (touch): Rewrite this function.  Previously it
+       used to use utime() to hard-set the time based on the current
+       local clock, or, if the file didn't exist, it merely created it.
+       This mirrors exactly what real UNIX touch does, but it fails badly
+       on networked filesystems where the FS server clock is skewed from
+       the local clock: normally modifying a file causes it to get a mod
+       time based on the _server's_ clock.  Hard-setting it based on the
+       _local_ clock causes gratuitous errors and makes the tests
+       unreliable except on local filesystems.  The new function will
+       simply modify the file, allowing the filesystem to set the mod
+       time as it sees fit.
+
+       * scripts/features/parallelism: The second test output could
+       change depending on how fast some scripts completed; use "sleep"
+       to force the order we want.
+
+       * test_driver.pl (toplevel): A bug in Perl 5.000 to Perl 5.004
+       means that "%ENV = ();" doesn't do the right thing.  This worked
+       in Perl 4 and was fixed in Perl 5.004_01, but use a loop to delete
+       the environment rather than require specific versions.
+
+       * run_make_tests.pl (set_more_defaults): Don't use Perl 5 s///
+       modifier "s", so the tests will run with Perl 4.
+       (set_more_defaults): Set $pure_log to empty if there's no -logfile
+       option in PURIFYOPTIONS.
+       (setup_for_test): Don't remove any logs unless $pure_log is set.
+
+1999-09-15  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * scripts/features/reinvoke: Put the SHELL definition in the right
+       test makefile.
+
+1999-09-15  Paul D. Smith  <psmith@gnu.org>
+
+       ChangeLog file for the test suite created.
+\f
+
+Copyright (C) 1992-2014 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program.  If not, see <http://www.gnu.org/licenses/>.
index 7fb864ca29527085e61b6ca59afb53906cdc3bca..584f4a4f8300b6e047d504d71471ced69fe9dbf8 100644 (file)
@@ -162,7 +162,7 @@ Changes from 0.1 to 0.2 (5-4-92):
 
 \f
 -------------------------------------------------------------------------------
-Copyright (C) 1992-2013 Free Software Foundation, Inc.
+Copyright (C) 1992-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 0663082eeec4ea08ed94b2f7e17d42618a13e0e8..3b699eec777e87fd9a969f8e3cbe23401c5b2b4a 100644 (file)
@@ -7,7 +7,7 @@ This entire test suite, including all test files, are copyright and
 distributed under the following terms:
 
  -----------------------------------------------------------------------------
- Copyright (C) 1992-2013 Free Software Foundation, Inc.
+ Copyright (C) 1992-2014 Free Software Foundation, Inc.
  This file is part of GNU Make.
 
  GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/tests/config-flags.pm b/tests/config-flags.pm
new file mode 100644 (file)
index 0000000..903c468
--- /dev/null
@@ -0,0 +1,19 @@
+# This is a -*-perl-*- script
+#
+# Set variables that were defined by configure, in case we need them
+# during the tests.
+
+%CONFIG_FLAGS = (
+    AM_LDFLAGS   => '-Wl,--export-dynamic',
+    AR           => 'ar',
+    CC           => 'gcc',
+    CFLAGS       => '-g -O2',
+    CPP          => 'gcc -E',
+    CPPFLAGS     => '',
+    GUILE_CFLAGS => '-pthread -I/usr/include/guile/2.0  ',
+    GUILE_LIBS   => '-lguile-2.0 -lgc  ',
+    LDFLAGS      => '',
+    LIBS         => '-ldl '
+);
+
+1;
diff --git a/tests/config-flags.pm.in b/tests/config-flags.pm.in
new file mode 100644 (file)
index 0000000..29ba146
--- /dev/null
@@ -0,0 +1,19 @@
+# This is a -*-perl-*- script
+#
+# Set variables that were defined by configure, in case we need them
+# during the tests.
+
+%CONFIG_FLAGS = (
+    AM_LDFLAGS   => '@AM_LDFLAGS@',
+    AR           => '@AR@',
+    CC           => '@CC@',
+    CFLAGS       => '@CFLAGS@',
+    CPP          => '@CPP@',
+    CPPFLAGS     => '@CPPFLAGS@',
+    GUILE_CFLAGS => '@GUILE_CFLAGS@',
+    GUILE_LIBS   => '@GUILE_LIBS@',
+    LDFLAGS      => '@LDFLAGS@',
+    LIBS         => '@LIBS@'
+);
+
+1;
diff --git a/tests/config_flags_pm.com b/tests/config_flags_pm.com
new file mode 100755 (executable)
index 0000000..3f5adff
--- /dev/null
@@ -0,0 +1,53 @@
+$!
+$! config_flags_pm.com  - Build config-flags.pm on VMS.
+$!
+$! Just good enough to run the self tests for now.
+$!
+$! Copyright (C) 2014 Free Software Foundation, Inc.
+$! This file is part of GNU Make.
+$!
+$! GNU Make is free software; you can redistribute it and/or modify it under
+$! the terms of the GNU General Public License as published by the Free Software
+$! Foundation; either version 3 of the License, or (at your option) any later
+$! version.
+$!
+$! GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+$! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+$! FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+$! details.
+$!
+$! You should have received a copy of the GNU General Public License along with
+$! this program.  If not, see <http://www.gnu.org/licenses/>.
+$!
+$!
+$ open/read cfpm_in config-flags.pm.in
+$!
+$ outfile = "sys$disk:[]config-flags.pm"
+$!
+$ cflags = "/include=([],[.glob]"
+$!
+$ create 'outfile'
+$ open/append cfpm 'outfile'
+$!
+$cfpm_read_loop:
+$   read cfpm_in/end=cfpm_read_loop_end line_in
+$   line_in_len = f$length(line_in)
+$   if f$locate("@", line_in) .lt. line_in_len
+$   then
+$       part1 = f$element(0, "@", line_in)
+$       key = f$element(1, "@", line_in)
+$       part2 = f$element(2, "@", line_in)
+$       value = ""
+$       if key .eqs. "CC" then value = "CC"
+$       if key .eqs. "CPP" then value = "CPP"
+$       if key .eqs. "CFLAGS" then value = cflags
+$       if key .eqs. "GUILE_CFLAGS" then value = cflags
+$       write cfpm part1, value, part2
+$       goto cfpm_read_loop
+$   endif
+$   write cfpm line_in
+$   goto cfpm_read_loop
+$cfpm_read_loop_end:
+$ close cfpm_in
+$ close cfpm
+$!
index 5e0a402d33232573f5518cf8f859def9eeb741a9..aa9b3bcddd199a8a7a93269d6431a66e2e33cd5a 100755 (executable)
@@ -3,7 +3,7 @@
 # Simple script to make a "shadow" test directory, using symbolic links.
 # Typically you'd put the shadow in /tmp or another local disk
 #
-# Copyright (C) 1992-2013 Free Software Foundation, Inc.
+# Copyright (C) 1992-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/tests/run_make_tests.com b/tests/run_make_tests.com
new file mode 100755 (executable)
index 0000000..2f17f7f
--- /dev/null
@@ -0,0 +1,272 @@
+$! Test_make.com
+$!
+$! This is a wrapper for the GNU make perl test programs on VMS.
+$!
+$! Parameter "-help" for description on how to use described below.
+$!
+$! Copyright (C) 2014 Free Software Foundation, Inc.
+$! This file is part of GNU Make.
+$!
+$! GNU Make is free software; you can redistribute it and/or modify it under
+$! the terms of the GNU General Public License as published by the Free Software
+$! Foundation; either version 3 of the License, or (at your option) any later
+$! version.
+$!
+$! GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+$! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+$! FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+$! details.
+$!
+$! You should have received a copy of the GNU General Public License along with
+$! this program.  If not, see <http://www.gnu.org/licenses/>.
+$!
+$!
+$! Allow more than 8 paramters with using commas as a delimiter.
+$!
+$ params = "''p1',''p2',''p3',''p4',''p5',''p6',''p7',''p8'"
+$!
+$ test_flags = ",verbose,detail,keep,usage,help,debug,"
+$ test_flags_len = f$length(test_flags)
+$ verbose_flag = ""
+$ detail_flag = ""
+$ keep_flag = ""
+$ usage_flag = ""
+$ help_flag = ""
+$ debug_flag = ""
+$!
+$ ignored_options = "profile,make,srcdir,valgrind,memcheck,massif,"
+$ ignored_option_len = f$length(ignored_options)
+$!
+$ testname = ""
+$ make :== $bin:make.exe"
+$!
+$ i = 0
+$param_loop:
+$ param = f$element(i, ",", params)
+$ i = i + 1
+$ if param .eqs. "" then goto param_loop
+$ if param .eqs. "," then goto param_loop_end
+$ param_len = f$length(param)
+$ if f$locate("/", param) .lt. param_len
+$ then
+$   if testname .nes. ""
+$   then
+$       write sys$output "Only the last test name specified will be run!"
+$   endif
+$   testname = param
+$   goto param_loop
+$ endif
+$ lc_param = f$edit(param,"LOWERCASE") - "-"
+$ if f$locate(",''lc_param',", ignored_options) .lt. ignored_option_len
+$ then
+$   write sys$output "parameter ''param' is ignored on VMS for now."
+$   goto param_loop
+$ endif
+$ if f$locate(",''lc_param',", test_flags) .lt. test_flags_len
+$ then
+$   'lc_param'_flag = "-" + lc_param
+$   goto param_loop
+$ endif
+$   write sys$output "parameter ''param' is not known to VMS."
+$ goto param_loop
+$!
+$param_loop_end:
+$!
+$no_gnv = 1
+$no_perl = 1
+$!
+$!  Find GNV 2.1.3 + manditory updates
+$!  If properly updated, the GNV$GNU logical name is present.
+$!  Updated GNV utilities have a gnv$ prefix on them.
+$   gnv_root = f$trnlnm("GNV$GNU", "LNM$SYSTEM_TABLE")
+$   if gnv_root .nes. ""
+$   then
+$       no_gnv = 0
+$       ! Check for update ar utility.
+$       new_ar = "gnv$gnu:[usr.bin]gnv$ar.exe"
+$       if f$search(new_ar) .nes. ""
+$       then
+$           ! See if a new port of ar exists.
+$           ar :== $'new_ar'
+$       else
+$           ! Fall back to legacy GNV AR wrapper.
+$           old_ar = "gnv$gnu:[bin]ar.exe"
+$           if f$search(old_ar) .nes. ""
+$           then
+$               ar :== $'old_ar'
+$           else
+$               no_gnv = 1
+$           endif
+$       endif
+$       ! Check for updated bash
+$       if no_gnv .eq. 0
+$       then
+$           new_bash = "gnv$gnu:[bin]gnv$bash.exe"
+$           if f$search(new_bash) .nes. ""
+$           then
+$               bash :== $'new_bash'
+$               sh :== $'new_bash'
+$           else
+$               no_gnv = 1
+$           endif
+$       endif
+$       ! Check for updated coreutils
+$       if no_gnv .eq. 0
+$       then
+$           new_cat = "gnv$gnu:[bin]gnv$cat.exe"
+$           if f$search(new_cat) .nes. ""
+$           then
+$               cat :== $'new_cat'
+$               cp :== $gnv$gnu:[bin]gnv$cp.exe
+$               echo :== $gnv$gnu:[bin]gnv$echo.exe
+$               false :== $gnv$gnu:[bin]gnv$false.exe
+$               true :== $gnv$gnu:[bin]gnv$true.exe
+$               touch :== $gnv$gnu:[bin]gnv$touch.exe
+$               mkdir :== $gnv$gnu:[bin]gnv$mkdir.exe
+$               rm :== $gnv$gnu:[bin]gnv$rm.exe
+$               sleep :== $gnv$gnu:[bin]gnv$sleep.exe
+$           else
+$               no_gnv = 1
+$           endif
+$       endif
+$       ! Check for updated diff utility.
+$       if no_gnv .eq. 0
+$       then
+$           new_diff = "gnv$gnu:[usr.bin]gnv$diff.exe"
+$           if f$search(new_diff) .nes. ""
+$           then
+$               ! See if a new port of diff exists.
+$               diff :== $'new_diff'
+$           else
+$               ! Fall back to legacy GNV diff
+$               old_diff = "gnv$gnu:[bin]diff.exe"
+$               if f$search(old_diff) .nes. ""
+$               then
+$                   diff :== $'old_diff'
+$               else
+$                   no_gnv = 1
+$               endif
+$           endif
+$       endif
+$   endif
+$!
+$if no_gnv
+$then
+$   write sys$output "Could not find an up to date GNV installed!"
+$   help_flag = 1
+$endif
+$!
+$! Find perl 5.18.1 or later.
+$!
+$! look in perl_root:[000000]perl_setup.com
+$ perl_root = f$trnlnm("perl_root")
+$ ! This works with known perl installed from PCSI kits.
+$ if perl_root .nes. ""
+$ then
+$   perl_ver = f$element(1, ".", perl_root)
+$   if f$locate("-", perl_ver) .lt. f$length(perl_ver)
+$   then
+$       no_perl = 0
+$   endif
+$ endif
+$ if no_perl
+$ then
+$!  look for sys$common:[perl-*]perl_setup.com
+$   perl_setup = f$search("sys$common:[perl-*]perl_setup.com")
+$   if perl_setup .eqs. ""
+$   then
+$       if gnv_root .nes. ""
+$       then
+$           gnv_device = f$parse(gnv_root,,,"DEVICE")
+$           perl_templ = "[vms$common.perl-*]perl_setup.com"
+$           perl_search = f$parse(perl_templ, gnv_device)
+$           perl_setup = f$search(perl_search)
+$       endif
+$   endif
+$   if perl_setup .nes. ""
+$   then
+$       @'perl_setup'
+$       no_perl = 0
+$   endif
+$ endif
+$!
+$ if no_perl
+$ then
+$   write sys$output "Could not find an up to date Perl installed!"
+$   help_flag = "-help"
+$ endif
+$!
+$!
+$ if help_flag .nes. ""
+$ then
+$   type sys$input
+$DECK
+This is a test script wrapper for the run_make_tests.pl script.
+
+This wrapper makes sure that the DCL symbols and logical names needed to
+run the perl script are in place.
+
+The test wrapper currently requires that the DCL symbols be global symbols.
+Those symbols will be left behind after the procedure is run.
+
+The PERL_ROOT will be set to a compatible perl if such a perl is found and
+is not the default PERL_ROOT:.  This setting will persist after the test.
+
+This wrapper should be run with the default set to the base directory
+of the make source.
+
+The HELP parameter will bring up this text and then run the help script
+for the Perl wrapper.  Not all options for the perl script have been
+implemented, such as valgrind or specifying the make path or source path.
+
+Running the wrapper script requires:
+  Perl 5.18 or later.
+  PCSI kits available from http://sourceforge.net/projects/vmsperlkit/files/
+
+  GNV 2.1.3 or later.  GNV 3.0.1 has not tested with this script.
+  Bash 4.2.47 or later.
+  Coreutils 8.21 or later.
+  http://sourceforge.net/projects/gnv/files/
+  Read before installing:
+     http://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/
+  As updates for other GNV components get posted, those updates should
+  be used.
+
+$EOD
+$ endif
+$!
+$ if no_gnv .or. no_perl then exit 44
+$!
+$!
+$ make := $bin:make.exe
+$ default = f$environment("DEFAULT")
+$ this = f$environment("PROCEDURE")
+$ on error then goto all_error
+$ set default 'f$parse(this,,,"DEVICE")''f$parse(this,,,"DIRECTORY")'
+$!
+$! Need to make sure that the config-flags.pm exists.
+$ if f$search("config-flags.pm") .eqs. ""
+$ then
+$   @config_flags_pm.com
+$ endif
+$ define/user bin 'default',gnv$gnu:[bin]
+$ define/user decc$filename_unix_noversion enable
+$ define/user decc$filename_unix_report enable
+$ define/user decc$readdir_dropdotnotype enable
+$ flags = ""
+$ if verbose_flag .nes. "" then flags = verbose_flag
+$ if detail_flag .nes. "" then flags = flags + " " + detail_flag
+$ if keep_flag .nes. "" then flags = flags + " " + keep_flag
+$ if usage_flag .nes. "" then flags = flags + " " + usage_flag
+$ if help_flag .nes. "" then flags = flags + " " + help_flag
+$ if debug_flag .nes. "" then flags = flags + " " + debug_flag
+$ flags = f$edit(flags, "TRIM, COMPRESS")
+$ if testname .nes. ""
+$ then
+$   perl run_make_tests.pl "''testname'" 'flags'
+$ else
+$   perl run_make_tests.pl 'flags'
+$ endif
+$all_error:
+$ set default 'default'
+$!
index 54c2892238aba572622a4b64b2d7bbd63e936f48..9468faba97bfd9c2a9976b876286dbed1cfdb834 100644 (file)
@@ -11,7 +11,7 @@
 #                         [-make <make prog>]
 #                        (and others)
 
-# Copyright (C) 1992-2013 Free Software Foundation, Inc.
+# Copyright (C) 1992-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -42,7 +42,24 @@ $command_string = '';
 
 $all_tests = 0;
 
+# rmdir broken in some Perls on VMS.
+if ($^O eq 'VMS')
+{
+  require VMS::Filespec;
+  VMS::Filespec->import();
+
+  sub vms_rmdir {
+    my $vms_file = vmspath($_[0]);
+    $vms_file = fileify($vms_file);
+    my $ret = unlink(vmsify($vms_file));
+    return $ret
+  };
+
+  *CORE::GLOBAL::rmdir = \&vms_rmdir;
+}
+
 require "test_driver.pl";
+require "config-flags.pm";
 
 # Some target systems might not have the POSIX module...
 $has_POSIX = eval { require "POSIX.pm" };
@@ -177,6 +194,40 @@ sub run_make_with_options {
   }
 
   if ($options) {
+    if ($^O eq 'VMS') {
+      # Try to make sure arguments are properly quoted.
+      # This does not handle all cases.
+
+      # VMS uses double quotes instead of single quotes.
+      $options =~ s/\'/\"/g;
+
+      # If the leading quote is inside non-whitespace, then the
+      # quote must be doubled, because it will be enclosed in another
+      # set of quotes.
+      $options =~ s/(\S)(\".*\")/$1\"$2\"/g;
+
+      # Options must be quoted to preserve case if not already quoted.
+      $options =~ s/(\S+)/\"$1\"/g;
+
+      # Special fixup for embedded quotes.
+      $options =~ s/(\"\".+)\"(\s+)\"(.+\"\")/$1$2$3/g;
+
+      $options =~ s/(\A)(?:\"\")(.+)(?:\"\")/$1\"$2\"/g;
+
+      # Special fixup for misc/general4 test.
+      $options =~ s/""\@echo" "cc""/\@echo cc"/;
+      $options =~ s/"\@echo link"""/\@echo link"/;
+
+      # Remove shell escapes expected to be removed by bash
+      if ($options !~ /path=pre/) {
+        $options =~ s/\\//g;
+      }
+
+      # special fixup for options/eval
+      $options =~ s/"--eval=\$\(info" "eval/"--eval=\$\(info eval/;
+
+      print ("Options fixup = -$options-\n") if $debug;
+    }
     $command .= " $options";
   }
 
@@ -195,7 +246,6 @@ sub run_make_with_options {
       $valgrind and $test_timeout = 0;
 
       $code = &run_command_with_output($logname,$command);
-
       $test_timeout = $old_timeout;
   }
 
@@ -326,19 +376,28 @@ sub set_more_defaults
 
    # Find the full pathname of Make.  For DOS systems this is more
    # complicated, so we ask make itself.
-   my $mk = `sh -c 'echo "all:;\@echo \\\$(MAKE)" | $make_path -f-'`;
-   chop $mk;
-   $mk or die "FATAL ERROR: Cannot determine the value of \$(MAKE):\n
+   if ($osname eq 'VMS') {
+     # On VMS pre-setup make to be found with simply 'make'.
+     $make_path = 'make';
+   } else {
+     my $mk = `sh -c 'echo "all:;\@echo \\\$(MAKE)" | $make_path -f-'`;
+     chop $mk;
+     $mk or die "FATAL ERROR: Cannot determine the value of \$(MAKE):\n
 'echo \"all:;\@echo \\\$(MAKE)\" | $make_path -f-' failed!\n";
-   $make_path = $mk;
+     $make_path = $mk;
+   }
    print "Make\t= '$make_path'\n" if $debug;
 
-   $string = `$make_path -v -f /dev/null 2> /dev/null`;
+   my $redir2 = '2> /dev/null';
+   $redir2 = '' if os_name eq 'VMS';
+   $string = `$make_path -v -f /dev/null $redir2`;
 
    $string =~ /^(GNU Make [^,\n]*)/;
    $testee_version = "$1\n";
 
-   $string = `sh -c "$make_path -f /dev/null 2>&1"`;
+   my $redir = '2>&1';
+   $redir = '' if os_name eq 'VMS';
+   $string = `sh -c "$make_path -f /dev/null $redir"`;
    if ($string =~ /(.*): \*\*\* No targets\.  Stop\./) {
      $make_name = $1;
    }
@@ -387,7 +446,7 @@ sub set_more_defaults
      $purify_errors = 0;
    }
 
-   $string = `sh -c "$make_path -j 2 -f /dev/null 2>&1"`;
+   $string = `sh -c "$make_path -j 2 -f /dev/null $redir"`;
    if ($string =~ /not supported/) {
      $parallel_jobs = 0;
    }
index a7ec881b4b70a779c9f0154ea1384ead3219eea3..b0acfecb5647eabbb30f6b966d934ae6d4eddea7 100644 (file)
@@ -11,32 +11,34 @@ exists $FEATURES{archives} or return -1;
 # Create some .o files to work with
 utouch(-60, qw(a1.o a2.o a3.o));
 
+my $ar = $CONFIG_FLAGS{AR};
+
 # Some versions of ar print different things on creation.  Find out.
-my $created = `ar rv libxx.a a1.o 2>&1`;
+my $created = `$ar rv libxx.a a1.o 2>&1`;
 
 # Some versions of ar print different things on add.  Find out.
-my $add = `ar rv libxx.a a2.o 2>&1`;
+my $add = `$ar rv libxx.a a2.o 2>&1`;
 $add =~ s/a2\.o/#OBJECT#/g;
 
 # Some versions of ar print different things on replacement.  Find out.
-my $repl = `ar rv libxx.a a2.o 2>&1`;
+my $repl = `$ar rv libxx.a a2.o 2>&1`;
 $repl =~ s/a2\.o/#OBJECT#/g;
 
 unlink('libxx.a');
 
 # Very simple
 run_make_test('all: libxx.a(a1.o)',
-              '', "ar rv libxx.a a1.o\n$created");
+              '', "$ar rv libxx.a a1.o\n$created");
 
 # Multiple .o's.  Add a new one to the existing library
 ($_ = $add) =~ s/#OBJECT#/a2.o/g;
 run_make_test('all: libxx.a(a1.o a2.o)',
-              '', "ar rv libxx.a a2.o\n$_");
+              '', "$ar rv libxx.a a2.o\n$_");
 
 # Touch one of the .o's so it's rebuilt
 utouch(-40, 'a1.o');
 ($_ = $repl) =~ s/#OBJECT#/a1.o/g;
-run_make_test(undef, '', "ar rv libxx.a a1.o\n$_");
+run_make_test(undef, '', "$ar rv libxx.a a1.o\n$_");
 
 # Use wildcards
 run_make_test('all: libxx.a(*.o)',
@@ -45,21 +47,21 @@ run_make_test('all: libxx.a(*.o)',
 # Touch one of the .o's so it's rebuilt
 utouch(-30, 'a1.o');
 ($_ = $repl) =~ s/#OBJECT#/a1.o/g;
-run_make_test(undef, '', "ar rv libxx.a a1.o\n$_");
+run_make_test(undef, '', "$ar rv libxx.a a1.o\n$_");
 
 # Use both wildcards and simple names
 utouch(-50, 'a2.o');
 ($_ = $add) =~ s/#OBJECT#/a3.o/g;
-$_ .= "ar rv libxx.a a2.o\n";
+$_ .= "$ar rv libxx.a a2.o\n";
 ($_ .= $repl) =~ s/#OBJECT#/a2.o/g;
 run_make_test('all: libxx.a(a3.o *.o)', '',
-              "ar rv libxx.a a3.o\n$_");
+              "$ar rv libxx.a a3.o\n$_");
 
 # Check whitespace handling
 utouch(-40, 'a2.o');
 ($_ = $repl) =~ s/#OBJECT#/a2.o/g;
 run_make_test('all: libxx.a(  a3.o    *.o     )', '',
-              "ar rv libxx.a a2.o\n$_");
+              "$ar rv libxx.a a2.o\n$_");
 
 rmfiles(qw(a1.o a2.o a3.o libxx.a));
 
index 2e3f263c80d64aa23ad523bc3e09d689b537c179..1f8cdc22a33b89113f087aa3267e52b0b37bec6f 100644 (file)
@@ -6,8 +6,6 @@ $details = "Test dynamic loading of modules.";
 # Don't do anything if this system doesn't support "load"
 exists $FEATURES{load} or return -1;
 
-my $sobuild = '$(CC) '.($srcdir? "-I$srcdir":'').' -g -shared -fPIC -o $@ $<';
-
 # First build a shared object
 # Provide both a default and non-default load symbol
 
@@ -25,6 +23,7 @@ int plugin_is_GPL_compatible;
 int
 testload_gmk_setup (gmk_floc *pos)
 {
+    (void)pos;
     gmk_eval ("TESTLOAD = implicit", 0);
     return 1;
 }
@@ -32,6 +31,7 @@ testload_gmk_setup (gmk_floc *pos)
 int
 explicit_setup (gmk_floc *pos)
 {
+    (void)pos;
     gmk_eval ("TESTLOAD = explicit", 0);
     return 1;
 }
@@ -39,7 +39,15 @@ EOF
 close($F) or die "close: testload.c: $!\n";
 
 # Make sure we can compile
-run_make_test('testload.so: testload.c ; @'.$sobuild, '', '');
+# CONFIG_FLAGS are loaded from config-flags.pm and set by configure
+
+my $sobuild = "$CONFIG_FLAGS{CC} ".($srcdir? "-I$srcdir":'')." $CONFIG_FLAGS{CPPFLAGS} $CONFIG_FLAGS{CFLAGS} -shared -fPIC $CONFIG_FLAGS{LDFLAGS} -o testload.so testload.c";
+
+my $clog = `$sobuild 2>&1`;
+if ($? != 0) {
+    $verbose and print "Failed to build testload.so:\n$sobuild\n$_";
+    return -1;
+}
 
 # TEST 1
 run_make_test(q!
index 6d3b03f735a8be53bd87b14c14fa9555f4b7763c..8c824c049d84b9ae10c612708df92f278d4bc2f2 100644 (file)
@@ -6,8 +6,6 @@ $details = "Verify the different aspects of the shared object API.";
 # Don't do anything if this system doesn't support "load"
 exists $FEATURES{load} or return -1;
 
-my $sobuild = '$(CC) '.($srcdir? "-I$srcdir":'').' -g -shared -fPIC -o $@ $<';
-
 # First build a shared object
 # Provide both a default and non-default load symbol
 
@@ -38,7 +36,7 @@ test_expand (const char *val)
 static char *
 test_noexpand (const char *val)
 {
-    char *str = gmk_alloc (strlen (val));
+    char *str = gmk_alloc (strlen (val) + 1);
     strcpy (str, val);
     return str;
 }
@@ -74,7 +72,13 @@ testapi_gmk_setup ()
 EOF
 close($F) or die "close: testapi.c: $!\n";
 
-run_make_test('testapi.so: testapi.c ; @'.$sobuild, '', '');
+my $sobuild = "$CONFIG_FLAGS{CC} ".($srcdir? "-I$srcdir":'')." $CONFIG_FLAGS{CPPFLAGS} $CONFIG_FLAGS{CFLAGS} -shared -fPIC $CONFIG_FLAGS{LDFLAGS} -o testapi.so testapi.c";
+
+my $clog = `$sobuild 2>&1`;
+if ($? != 0) {
+    $verbose and print "Failed to build testapi.so:\n$sobuild\n$_";
+    return -1;
+}
 
 # TEST 1
 # Check the gmk_expand() function
index 75d7e81defa2b80f7e1ef18e49667104ac0f6413..a7534cb7aaf03881fe7016b62c76cf01a766378c 100644 (file)
@@ -330,5 +330,12 @@ t1: ; -\@\$(MAKE) -f $m1
 
 rmfiles($m1);
 
+# Test $(error ...) functions in recipes
+
+run_make_test(q!
+foo: $(OBJS) ; echo $(or $(filter %.o,$^),$(error fail))
+!,
+              '-O', "#MAKEFILE#:2: *** fail.  Stop.\n", 512);
+
 # This tells the test driver that the perl test script executed properly.
 1;
index 9a4cd024a1d5940288d7387549d2c0283f67cf8f..55eb58a0e4ae8dad9495a997f9f2853da6a781e5 100644 (file)
@@ -30,6 +30,23 @@ x:;@cat file.out
 
 unlink('file.out');
 
+# Test > with no content
+run_make_test(q!
+$(file >4touch)
+.PHONY:x
+x:;@cat 4touch
+!,
+              '', '');
+
+# Test >> with no content
+run_make_test(q!
+$(file >>4touch)
+.PHONY:x
+x:;@cat 4touch
+!,
+              '', '');
+unlink('4touch');
+
 # Test > to a read-only file
 touch('file.out');
 chmod(0444, 'file.out');
diff --git a/tests/scripts/misc/utf8 b/tests/scripts/misc/utf8
new file mode 100644 (file)
index 0000000..2adcd07
--- /dev/null
@@ -0,0 +1,14 @@
+#                                                                    -*-perl-*-
+$description = "Test utf8 handling.";
+
+$details = "";
+
+# Variable names containing UTF8 characters
+run_make_test("
+\xe2\x96\xaa := hello
+\$(info \$(\xe2\x96\xaa))
+all:
+",
+              '', "hello\n#MAKE#: Nothing to be done for 'all'.");
+
+1;
index 56f04a1f8275570d0df6d6fb46e9894bb959c3f9..194588d9e5222c0a9bed9d6f821dd7927dc32e26 100644 (file)
@@ -5,21 +5,21 @@ $details = "Try various uses of -q and ensure they all give the correct results.
 
 # TEST 0
 
-run_make_test('
+run_make_test(qq!
 one:
 two: ;
 three: ; :
-four: ; $(.XY)
-five: ; \
- $(.XY)
-six: ; \
- $(.XY)
-       $(.XY)
-seven: ; \
- $(.XY)
-       : foo
-       $(.XY)
-',
+four: ; \$(.XY)
+five: ; \\
\$(.XY)
+six: ; \\
\$(.XY)
+\t\$(.XY)
+seven: ; \\
\$(.XY)
+\t: foo
+\t\$(.XY)
+!,
               '-q one', '');
 
 # TEST 1
@@ -54,4 +54,24 @@ one:: ; @echo two
 ',
               '-q', '', 256);
 
+# TEST 7 : Savannah bug # 42249
+# Make sure we exit with 1 even for prerequisite updates
+run_make_test('
+build-stamp: ; echo $@
+build-arch: build-stamp
+build-x: build-arch
+build-y: build-x
+',
+              '-q build-y', '', 256);
+
+# TEST 8
+# Make sure we exit with 2 on error even with -q
+run_make_test('
+build-stamp: ; echo $@
+build-arch: build-stamp-2
+build-x: build-arch
+build-y: build-x
+',
+              '-q build-y', "#MAKE#: *** No rule to make target 'build-stamp-2', needed by 'build-arch'.  Stop.\n", 512);
+
 1;
index e9c0d55b8a47803b4d705e4a51cf086941dcfb21..6e507949be8275d2be84a8684ff94bde76177688 100644 (file)
@@ -27,7 +27,7 @@ erR --trace --no-print-directory");
 
 unlink('x.mk');
 
-$extraENV{GNUMAKEFLAGS} = '-Itst/bad -Oline';
+$extraENV{GNUMAKEFLAGS} = '-Itst/bad';
 
 run_make_test(q!
 recurse: ; @echo $@; echo MAKEFLAGS = $$MAKEFLAGS; echo GNUMAKEFLAGS = $$GNUMAKEFLAGS; #MAKEPATH# -f #MAKEFILE# all
@@ -35,7 +35,7 @@ all: ; @echo $@; echo MAKEFLAGS = $$MAKEFLAGS; echo GNUMAKEFLAGS = $$GNUMAKEFLAG
 -include x.mk
 x.mk: ; @echo $@; echo MAKEFLAGS = $$MAKEFLAGS; echo GNUMAKEFLAGS = $$GNUMAKEFLAGS; echo > $@
 !,
-              "", "x.mk\nMAKEFLAGS = -Itst/bad -Oline\nGNUMAKEFLAGS =\nrecurse\nMAKEFLAGS = -Itst/bad -Oline\nGNUMAKEFLAGS =\n#MAKE#[1]: Entering directory '#PWD#'\nall\nMAKEFLAGS = w -Itst/bad -Oline\nGNUMAKEFLAGS =\n#MAKE#[1]: Leaving directory '#PWD#'\n");
+              "", "x.mk\nMAKEFLAGS = -Itst/bad\nGNUMAKEFLAGS =\nrecurse\nMAKEFLAGS = -Itst/bad\nGNUMAKEFLAGS =\n#MAKE#[1]: Entering directory '#PWD#'\nall\nMAKEFLAGS = w -Itst/bad\nGNUMAKEFLAGS =\n#MAKE#[1]: Leaving directory '#PWD#'\n");
 
 unlink('x.mk');
 
index 4637b2a25a4f02866554f709fda3558a256fc6fb..a5ab93aa0528d7039f1e57ef20a6e2975a57aab1 100644 (file)
@@ -114,4 +114,28 @@ reset-four \
 : foo-three
 : foo-four');
 
+# Test that the "did you mean TAB" message is printed properly
+
+run_make_test(q!
+$x.
+!,
+              '', '#MAKEFILE#:2: *** missing separator.  Stop.', 512);
+
+run_make_test(q!
+foo:
+        bar
+!,
+              '', '#MAKEFILE#:3: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.', 512);
+
+run_make_test(q!
+.RECIPEPREFIX = :
+foo:
+        bar
+!,
+              '', '#MAKEFILE#:4: *** missing separator.  Stop.', 512);
+
 1;
+
+### Local Variables:
+### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
+### End:
index 2f8327058a8af4504151e670ad79b4bf1da4b307..91141eb493c792e1a41910e040ace7bf5dc98034 100644 (file)
@@ -5,7 +5,7 @@
 # Written 91-12-02 through 92-01-01 by Stephen McGee.
 # Modified 92-02-11 through 92-02-22 by Chris Arthur to further generalize.
 #
-# Copyright (C) 1991-2013 Free Software Foundation, Inc.
+# Copyright (C) 1991-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -48,9 +48,9 @@ $tests_passed = 0;
 # Yeesh.  This whole test environment is such a hack!
 $test_passed = 1;
 
-
 # Timeout in seconds.  If the test takes longer than this we'll fail it.
 $test_timeout = 5;
+$test_timeout = 10 if $^O eq 'VMS';
 
 # Path to Perl
 $perl_name = $^X;
@@ -62,19 +62,67 @@ $perl_name = $^X;
 # These are RESET AFTER EVERY TEST!
 %extraENV = ();
 
+sub vms_get_process_logicals {
+  # Sorry for the long note here, but to keep this test running on
+  # VMS, it is needed to be understood.
+  #
+  # Perl on VMS by default maps the %ENV array to the system wide logical
+  # name table.
+  #
+  # This is a very large dynamically changing table.
+  # On Linux, this would be the equivalent of a table that contained
+  # every mount point, temporary pipe, and symbolic link on every
+  # file system.  You normally do not have permission to clear or replace it,
+  # and if you did, the results would be catastrophic.
+  #
+  # On VMS, added/changed %ENV items show up in the process logical
+  # name table.  So to track changes, a copy of it needs to be captured.
+
+  my $raw_output = `show log/process/access_mode=supervisor`;
+  my @raw_output_lines = split('\n',$raw_output);
+  my %log_hash;
+  foreach my $line (@raw_output_lines) {
+    if ($line =~ /^\s+"([A-Za-z\$_]+)"\s+=\s+"(.+)"$/) {
+      $log_hash{$1} = $2;
+    }
+  }
+  return \%log_hash
+}
+
 # %origENV is the caller's original environment
-%origENV = %ENV;
+if ($^O ne 'VMS') {
+  %origENV = %ENV;
+} else {
+  my $proc_env = vms_get_process_logicals;
+  %origENV = %{$proc_env};
+}
 
 sub resetENV
 {
   # We used to say "%ENV = ();" but this doesn't work in Perl 5.000
   # through Perl 5.004.  It was fixed in Perl 5.004_01, but we don't
   # want to require that here, so just delete each one individually.
-  foreach $v (keys %ENV) {
-    delete $ENV{$v};
+
+  if ($^O ne 'VMS') {
+    foreach $v (keys %ENV) {
+      delete $ENV{$v};
+    }
+
+    %ENV = %makeENV;
+  } else {
+    my $proc_env = vms_get_process_logicals();
+    my %delta = %{$proc_env};
+    foreach my $v (keys %delta) {
+      if (exists $origENV{$v}) {
+        if ($origENV{$v} ne $delta{$v}) {
+          $ENV{$v} = $origENV{$v};
+        }
+      } else {
+        delete $ENV{$v};
+      }
+    }
   }
 
-  %ENV = %makeENV;
   foreach $v (keys %extraENV) {
     $ENV{$v} = $extraENV{$v};
     delete $extraENV{$v};
@@ -105,7 +153,7 @@ sub toplevel
 
   # Replace the environment with the new one
   #
-  %origENV = %ENV;
+  %origENV = %ENV unless $^O eq 'VMS';
 
   resetENV();
 
@@ -139,6 +187,25 @@ sub toplevel
 
   &print_banner;
 
+  if ($osname eq 'VMS' && $cwdslash eq "")
+  {
+    # Porting this script to VMS revealed a small bug in opendir() not
+    # handling search lists correctly when the directory only exists in
+    # one of the logical_devices.  Need to find the first directory in
+    # the search list, as that is where things will be written to.
+    my @dirs = split("/", $pwd);
+
+    my $logical_device = $ENV{$dirs[1]};
+    if ($logical_device =~ /([A-Za-z0-9_]+):(:?.+:)+/)
+    {
+        # A search list was found.  Grab the first logical device
+        # and use it instead of the search list.
+        $dirs[1]=$1;
+        my $lcl_pwd = join('/', @dirs);
+        $workpath = $lcl_pwd . '/' . $workdir
+    }
+  }
+
   if (-d $workpath)
   {
     print "Clearing $workpath...\n";
@@ -181,8 +248,10 @@ sub toplevel
     {
       next if ($dir =~ /^(\..*|CVS|RCS)$/ || ! -d "$scriptpath/$dir");
       push (@rmdirs, $dir);
+      # VMS can have overlayed file systems, so directories may repeat.
+      next if -d "$workpath/$dir";
       mkdir ("$workpath/$dir", 0777)
-           || &error ("Couldn't mkdir $workpath/$dir: $!\n");
+          || &error ("Couldn't mkdir $workpath/$dir: $!\n");
       opendir (SCRIPTDIR, "$scriptpath/$dir")
           || &error ("Couldn't opendir $scriptpath/$dir: $!\n");
       @files = grep (!/^(\..*|CVS|RCS|.*~)$/, readdir (SCRIPTDIR) );
@@ -239,6 +308,13 @@ sub get_osname
   # Set up an initial value.  In perl5 we can do it the easy way.
   $osname = defined($^O) ? $^O : '';
 
+  if ($osname eq 'VMS')
+  {
+    $vos = 0;
+    $pathsep = "/";
+    return;
+  }
+
   # Find a path to Perl
 
   # See if the filesystem supports long file names with multiple
@@ -419,7 +495,11 @@ sub run_all_tests
 {
     $categories_run = 0;
 
+    $lasttest = '';
     foreach $testname (sort @TESTS) {
+        # Skip duplicates on VMS caused by logical name search lists.
+        next if $testname eq $lasttest;
+        $lasttest = $testname;
         $suite_passed = 1;       # reset by test on failure
         $num_of_logfiles = 0;
         $num_of_tmpfiles = 0;
@@ -445,6 +525,7 @@ sub run_all_tests
             $runext = 'run';
             $extext = '.';
         }
+        $extext = '_' if $^O eq 'VMS';
         $log_filename = "$testpath.$logext";
         $diff_filename = "$testpath.$diffext";
         $base_filename = "$testpath.$baseext";
@@ -686,6 +767,121 @@ sub compare_output
           $slurp_mod =~ s,\r\n,\n,gs;
 
           $answer_matched = ($slurp_mod eq $answer_mod);
+          if ($^O eq 'VMS') {
+
+            # VMS has extra blank lines in output sometimes.
+            # Ticket #41760
+            if (!$answer_matched) {
+              $slurp_mod =~ s/\n\n+/\n/gm;
+              $slurp_mod =~ s/\A\n+//g;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # VMS adding a "Waiting for unfinished jobs..."
+            # Remove it for now to see what else is going on.
+            if (!$answer_matched) {
+              $slurp_mod =~ s/^.+\*\*\* Waiting for unfinished jobs.+$//m;
+              $slurp_mod =~ s/\n\n/\n/gm;
+              $slurp_mod =~ s/^\n+//gm;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # VMS wants target device to exist or generates an error,
+            # Some test tagets look like VMS devices and trip this.
+            if (!$answer_matched) {
+              $slurp_mod =~ s/^.+\: no such device or address.*$//gim;
+              $slurp_mod =~ s/\n\n/\n/gm;
+              $slurp_mod =~ s/^\n+//gm;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # VMS error message has a different case
+            if (!$answer_matched) {
+              $slurp_mod =~ s/no such file /No such file /gm;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # VMS is putting comas instead of spaces in output
+            if (!$answer_matched) {
+              $slurp_mod =~ s/,/ /gm;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # VMS Is sometimes adding extra leading spaces to output?
+            if (!$answer_matched) {
+               my $slurp_mod = $slurp_mod;
+               $slurp_mod =~ s/^ +//gm;
+               $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # VMS port not handling POSIX encoded child status
+            # Translate error case it for now.
+            if (!$answer_matched) {
+              $slurp_mod =~ s/0x1035a00a/1/gim;
+              $answer_matched = 1 if $slurp_mod =~ /\Q$answer_mod\E/i;
+
+            }
+            if (!$answer_matched) {
+              $slurp_mod =~ s/0x1035a012/2/gim;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # Tests are using a UNIX null command, temp hack
+            # until this can be handled by the VMS port.
+            # ticket # 41761
+            if (!$answer_matched) {
+              $slurp_mod =~ s/^.+DCL-W-NOCOMD.*$//gim;
+              $slurp_mod =~ s/\n\n+/\n/gm;
+              $slurp_mod =~ s/^\n+//gm;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+            # Tests are using exit 0;
+            # this generates a warning that should stop the make, but does not
+            if (!$answer_matched) {
+              $slurp_mod =~ s/^.+NONAME-W-NOMSG.*$//gim;
+              $slurp_mod =~ s/\n\n+/\n/gm;
+              $slurp_mod =~ s/^\n+//gm;
+              $answer_matched = ($slurp_mod eq $answer_mod);
+            }
+
+            # VMS is sometimes adding single quotes to output?
+            if (!$answer_matched) {
+              my $noq_slurp_mod = $slurp_mod;
+              $noq_slurp_mod =~ s/\'//gm;
+              $answer_matched = ($noq_slurp_mod eq $answer_mod);
+
+              # And missing an extra space in output
+              if (!$answer_matched) {
+                $noq_answer_mod = $answer_mod;
+                $noq_answer_mod =~ s/\h\h+/ /gm;
+                $answer_matched = ($noq_slurp_mod eq $noq_answer_mod);
+              }
+
+              # VMS adding ; to end of some lines.
+              if (!$answer_matched) {
+                $noq_slurp_mod =~ s/;\n/\n/gm;
+                $answer_matched = ($noq_slurp_mod eq $noq_answer_mod);
+              }
+
+              # VMS adding trailing space to end of some quoted lines.
+              if (!$answer_matched) {
+                $noq_slurp_mod =~ s/\h+\n/\n/gm;
+                $answer_matched = ($noq_slurp_mod eq $noq_answer_mod);
+              }
+
+              # And VMS missing leading blank line
+              if (!$answer_matched) {
+                $noq_answer_mod =~ s/\A\n//g;
+                $answer_matched = ($noq_slurp_mod eq $noq_answer_mod);
+              }
+
+              # Unix double quotes showing up as single quotes on VMS.
+              if (!$answer_matched) {
+                $noq_answer_mod =~ s/\"//g;
+                $answer_matched = ($noq_slurp_mod eq $noq_answer_mod);
+              }
+            }
+          }
 
           # If it still doesn't match, see if the answer might be a regex.
           if (!$answer_matched && $answer =~ m,^/(.+)/$,) {
@@ -781,7 +977,8 @@ sub detach_default_output
   @OUTSTACK or error("default output stack has flown under!\n", 1);
 
   close(STDOUT);
-  close(STDERR);
+  close(STDERR) unless $^O eq 'VMS';
+
 
   open (STDOUT, '>&', pop @OUTSTACK) or error("ddo: $! duping STDOUT\n", 1);
   open (STDERR, '>&', pop @ERRSTACK) or error("ddo: $! duping STDERR\n", 1);
@@ -798,14 +995,39 @@ sub _run_command
   resetENV();
 
   eval {
-      my $pid = fork();
-      if (! $pid) {
-          exec(@_) or die "Cannot execute $_[0]\n";
+      if ($^O eq 'VMS') {
+          local $SIG{ALRM} = sub {
+              my $e = $ERRSTACK[0];
+              print $e "\nTest timed out after $test_timeout seconds\n";
+              die "timeout\n"; };
+#          alarm $test_timeout;
+          system(@_);
+          my $severity = ${^CHILD_ERROR_NATIVE} & 7;
+          $code = 0;
+          if (($severity & 1) == 0) {
+              $code = 512;
+          }
+
+          # Get the vms status.
+          my $vms_code = ${^CHILD_ERROR_NATIVE};
+
+          # Remove the print status bit
+          $vms_code &= ~0x10000000;
+
+          # Posix code translation.
+          if (($vms_code & 0xFFFFF000) == 0x35a000) {
+              $code = (($vms_code & 0xFFF) >> 3) * 256;
+          }
+      } else {
+          my $pid = fork();
+          if (! $pid) {
+              exec(@_) or die "Cannot execute $_[0]\n";
+          }
+          local $SIG{ALRM} = sub { my $e = $ERRSTACK[0]; print $e "\nTest timed out after $test_timeout seconds\n"; die "timeout\n"; };
+          alarm $test_timeout;
+          waitpid($pid, 0) > 0 or die "No such pid: $pid\n";
+          $code = $?;
       }
-      local $SIG{ALRM} = sub { my $e = $ERRSTACK[0]; print $e "\nTest timed out after $test_timeout seconds\n"; die "timeout\n"; };
-      alarm $test_timeout;
-      waitpid($pid, 0) > 0 or die "No such pid: $pid\n";
-      $code = $?;
       alarm 0;
   };
   if ($@) {
@@ -829,7 +1051,7 @@ sub run_command
   print "\nrun_command: @_\n" if $debug;
   my $code = _run_command(@_);
   print "run_command returned $code.\n" if $debug;
-
+  print "vms status = ${^CHILD_ERROR_NATIVE}\n" if $debug and $^O eq 'VMS';
   return $code;
 }
 
@@ -851,7 +1073,7 @@ sub run_command_with_output
   $err and die $err;
 
   print "run_command_with_output returned $code.\n" if $debug;
-
+  print "vms status = ${^CHILD_ERROR_NATIVE}\n" if $debug and $^O eq 'VMS';
   return $code;
 }
 
@@ -911,7 +1133,15 @@ sub remove_directory_tree_inner
     }
     else
     {
-      unlink $object || return 0;
+      if ($^O ne 'VMS')
+      {
+        unlink $object || return 0;
+      }
+      else
+      {
+        # VMS can have multiple versions of a file.
+        1 while unlink $object;
+      }
     }
   }
   closedir ($dirhandle);
index 2ff14b648621827f205724a07014c4754431d994..01b6d89ea51ca097f5607cde6b8d642224579602 100644 (file)
@@ -1,5 +1,5 @@
 /* Internals of variables for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -222,8 +222,7 @@ define_variable_in_set (const char *name, unsigned int length,
          than this one, don't redefine it.  */
       if ((int) origin >= (int) v->origin)
         {
-          if (v->value != 0)
-            free (v->value);
+          free (v->value);
           v->value = xstrdup (value);
           if (flocp != 0)
             v->fileinfo = *flocp;
@@ -785,12 +784,8 @@ merge_variable_set_lists (struct variable_set_list **setlist0,
 void
 define_automatic_variables (void)
 {
-#if defined(WINDOWS32) || defined(__EMX__)
-  extern char* default_shell;
-#else
-  extern char default_shell[];
-#endif
-  register struct variable *v;
+  extern const char* default_shell;
+  struct variable *v;
   char buf[200];
 
   sprintf (buf, "%u", makelevel);
@@ -1045,7 +1040,7 @@ target_environment (struct file *file)
           }
     }
 
-  makelevel_key.name = MAKELEVEL_NAME;
+  makelevel_key.name = xstrdup (MAKELEVEL_NAME);
   makelevel_key.length = MAKELEVEL_LENGTH;
   hash_delete (&table, &makelevel_key);
 
@@ -1237,8 +1232,7 @@ do_variable_definition (const gmk_floc *flocp, const char *varname,
             alloc_value[oldlen] = ' ';
             memcpy (&alloc_value[oldlen + 1], val, vallen + 1);
 
-            if (tp)
-              free (tp);
+            free (tp);
           }
       }
     }
@@ -1328,7 +1322,7 @@ do_variable_definition (const gmk_floc *flocp, const char *varname,
   if ((origin == o_file || origin == o_override || origin == o_command)
       && streq (varname, "SHELL"))
     {
-      extern char *default_shell;
+      extern const char *default_shell;
 
       /* Call shell locator function. If it returns TRUE, then
          set no_default_sh_exe to indicate sh was found and
@@ -1363,8 +1357,7 @@ do_variable_definition (const gmk_floc *flocp, const char *varname,
           else
             v = lookup_variable (varname, strlen (varname));
 
-          if (tp)
-            free (tp);
+          free (tp);
         }
     }
   else
@@ -1384,8 +1377,7 @@ do_variable_definition (const gmk_floc *flocp, const char *varname,
   v->append = append;
   v->conditional = conditional;
 
-  if (alloc_value)
-    free (alloc_value);
+  free (alloc_value);
 
   return v->special ? set_special_var (v) : v;
 }
@@ -1537,7 +1529,7 @@ parse_variable_definition (const char *p, struct variable *var)
    returned.  */
 
 struct variable *
-assign_variable_definition (struct variable *v, char *line)
+assign_variable_definition (struct variable *v, const char *line)
 {
   char *name;
 
@@ -1551,7 +1543,7 @@ assign_variable_definition (struct variable *v, char *line)
   v->name = allocated_variable_expand (name);
 
   if (v->name[0] == '\0')
-    fatal (&v->fileinfo, _("empty variable name"));
+    O (fatal, &v->fileinfo, _("empty variable name"));
 
   return v;
 }
@@ -1570,7 +1562,7 @@ assign_variable_definition (struct variable *v, char *line)
    returned.  */
 
 struct variable *
-try_variable_definition (const gmk_floc *flocp, char *line,
+try_variable_definition (const gmk_floc *flocp, const char *line,
                          enum variable_origin origin, int target_var)
 {
   struct variable v;
@@ -1690,11 +1682,11 @@ print_noauto_variable (const void *item, void *arg)
 /* Print all the variables in SET.  PREFIX is printed before
    the actual variable definitions (everything else is comments).  */
 
-void
-print_variable_set (struct variable_set *set, char *prefix, int pauto)
+static void
+print_variable_set (struct variable_set *set, const char *prefix, int pauto)
 {
   hash_map_arg (&set->table, (pauto ? print_auto_variable : print_variable),
-                prefix);
+                (void *)prefix);
 
   fputs (_("# variable set hash-table stats:\n"), stdout);
   fputs ("# ", stdout);
@@ -1721,7 +1713,7 @@ print_variable_data_base (void)
       {
         ++rules;
         printf ("\n%s :\n", p->target);
-        print_variable (&p->variable, "# ");
+        print_variable (&p->variable, (void *)"# ");
       }
 
     if (rules == 0)
@@ -1768,16 +1760,10 @@ sync_Path_environment (void)
   if (!path)
     return;
 
-  /*
-   * If done this before, don't leak memory unnecessarily.
-   * Free the previous entry before allocating new one.
-   */
-  if (environ_path)
-    free (environ_path);
+  /* If done this before, free the previous entry before allocating new one.  */
+  free (environ_path);
 
-  /*
-   * Create something WINDOWS32 world can grok
-   */
+  /* Create something WINDOWS32 world can grok.  */
   convert_Path_to_windows32 (path, ';');
   environ_path = xstrdup (concat (3, "PATH", "=", path));
   putenv (environ_path);
index dec75b1c584732c8cf21e83a710df802b9186f33..fa2dbbd11356fff376e2e3954333c9b54c4fa7d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for using variables in GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -159,8 +159,8 @@ struct variable *do_variable_definition (const gmk_floc *flocp,
                                          int target_var);
 char *parse_variable_definition (const char *line,
                                  struct variable *v);
-struct variable *assign_variable_definition (struct variable *v, char *line);
-struct variable *try_variable_definition (const gmk_floc *flocp, char *line,
+struct variable *assign_variable_definition (struct variable *v, const char *line);
+struct variable *try_variable_definition (const gmk_floc *flocp, const char *line,
                                           enum variable_origin origin,
                                           int target_var);
 void init_hash_global_variable_set (void);
@@ -219,10 +219,10 @@ void undefine_variable_in_set (const char *name, unsigned int length,
 /* Warn that NAME is an undefined variable.  */
 
 #define warn_undefined(n,l) do{\
-                              if (warn_undefined_variables_flag) \
-                                error (reading_file, \
+                              if (warn_undefined_variables_flag)        \
+                                error (reading_file, (l),               \
                                        _("warning: undefined variable '%.*s'"), \
-                                (int)(l), (n)); \
+                                       (int)(l), (n));                  \
                               }while(0)
 
 char **target_environment (struct file *file);
index af461f7cf67853419f4157cc88fc0683859e68f1..d94ecec31d595f4e6be0bed4851c23f2a0a117cb 100644 (file)
--- a/version.c
+++ b/version.c
@@ -1,5 +1,5 @@
 /* Record version and build host architecture for GNU make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -23,8 +23,8 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 # define MAKE_HOST "unknown"
 #endif
 
-char *version_string = VERSION;
-char *make_host = MAKE_HOST;
+const char *version_string = VERSION;
+const char *make_host = MAKE_HOST;
 \f
 /*
   Local variables:
index ef53acc5571bcdee3d2b24765e508e99fb9db9f3..3be3f0c015db2b48939698654a7b30790556349d 100644 (file)
--- a/vmsdir.h
+++ b/vmsdir.h
@@ -1,5 +1,5 @@
 /* dirent.h for vms
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 1907e3a5e4f517c7c4959b919fc1f288bb30f141..6ed136ce2cb485986a06ed2294e8f708c274d0df 100644 (file)
@@ -1,5 +1,5 @@
 /* VMS functions
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -18,14 +18,14 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "debug.h"
 #include "job.h"
 
+#include <ctype.h>
+#include <string.h>
+
 #ifdef __DECC
 #include <starlet.h>
 #endif
-#include <descrip.h>
+
 #include <rms.h>
-#include <iodef.h>
-#include <atrdef.h>
-#include <fibdef.h>
 #include "vmsdir.h"
 
 #ifdef HAVE_VMSDIR_H
@@ -127,135 +127,100 @@ closedir (DIR *dir)
 }
 #endif /* compiled for OpenVMS prior to V7.x */
 
-char *
-getwd (char *cwd)
+/* Argv0 will be a full vms file specification, like
+   node$dka100:[utils.gnumake]make.exe;47
+   prefix it with "mcr " to make it a vms command, executable for DCL. */
+const char *
+vms_command(const char* argv0)
 {
-  static char buf[512];
-
-  if (cwd)
-    return (getcwd (cwd, 512));
-  else
-    return (getcwd (buf, 512));
+  size_t l = strlen(argv0) + 1;
+  char* s = xmalloc(l + 4);
+  memcpy(s, "mcr ", 4);
+  memcpy(s+4, argv0, l);
+  return s;
 }
 
-#if 0
-/*
- * Is this used? I don't see any reference, so I suggest to remove it.
- */
-int
-vms_stat (char *name, struct stat *buf)
+/* Argv0 aka argv[0] will be a full vms file specification, like
+   node$dka100:[utils.gnumake]make.exe;47, set up by the CRTL.
+   The vms progname should be ^^^^, the file name without
+   file type .exe and ;version.
+   Use sys$parse to get the name part of the file specification. That is
+   in the above example, pick up "make" and return a copy of that string.
+   If something goes wrong in sys$parse (unlikely, this is a VMS/CRTL supplied
+   file specification) or if there is an empty name part (not easy to produce,
+   but it is possible) just return "make".
+   Somes notes ...
+   NAM[L]$M_SYNCHK requests a syntax check, only.
+   NAM is for ODS2 names (shorter parts, output usually converted to UPPERCASE).
+   NAML is for ODS2/ODS5 names (longer parts, output unchanged).
+   NAM$M_NO_SHORT_UPCASE may not be available for older versions of VMS.
+   NAML is not available on older versions of VMS (NAML$C_BID not defined).
+   argv[0] on older versions of VMS (no extended parse style and no
+   CRTL feature DECC$ARGV_PARSE_STYLE) is always in lowercase. */
+const char *
+vms_progname(const char* argv0)
 {
   int status;
-  int i;
+  static struct FAB fab;
+  char *progname;
+  const char *fallback = "make";
 
-  static struct FAB Fab;
-  static struct NAM Nam;
-  static struct fibdef Fib;    /* short fib */
-  static struct dsc$descriptor FibDesc =
-  { sizeof (Fib), DSC$K_DTYPE_Z, DSC$K_CLASS_S, (char *) &Fib };
-  static struct dsc$descriptor_s DevDesc =
-  { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, &Nam.nam$t_dvi[1] };
-  static char EName[NAM$C_MAXRSS];
-  static char RName[NAM$C_MAXRSS];
-  static struct dsc$descriptor_s FileName =
-  { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0 };
-  static struct dsc$descriptor_s string =
-  { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0 };
-  static unsigned long Rdate[2];
-  static unsigned long Cdate[2];
-  static struct atrdef Atr[] =
-  {
-#if defined(VAX)
-    /* Revision date */
-    { sizeof (Rdate), ATR$C_REVDATE, (unsigned int) &Rdate[0] },
-    /* Creation date */
-    { sizeof (Cdate), ATR$C_CREDATE, (unsigned int) &Cdate[0] },
+#ifdef NAML$C_BID
+  static char esa[NAML$C_MAXRSS];
+  static struct NAML naml;
 #else
-    /* Revision date */
-    { sizeof (Rdate), ATR$C_REVDATE, &Rdate[0] },
-    /* Creation date */
-    { sizeof (Cdate), ATR$C_CREDATE, &Cdate[0]},
+  static char esa[NAM$C_MAXRSS];
+  static struct NAM nam;
 #endif
-    { 0, 0, 0 }
-  };
-  static short int DevChan;
-  static short int iosb[4];
-
-  name = vmsify (name, 0);
-
-  /* initialize RMS structures, we need a NAM to retrieve the FID */
-  Fab = cc$rms_fab;
-  Fab.fab$l_fna = name;                /* name of file */
-  Fab.fab$b_fns = strlen (name);
-  Fab.fab$l_nam = &Nam;                /* FAB has an associated NAM */
-
-  Nam = cc$rms_nam;
-  Nam.nam$l_esa = EName;       /* expanded filename */
-  Nam.nam$b_ess = sizeof (EName);
-  Nam.nam$l_rsa = RName;       /* resultant filename */
-  Nam.nam$b_rss = sizeof (RName);
-
-  /* do $PARSE and $SEARCH here */
-  status = sys$parse (&Fab);
-  if (!(status & 1))
-    return -1;
 
-  DevDesc.dsc$w_length = Nam.nam$t_dvi[0];
-  status = sys$assign (&DevDesc, &DevChan, 0, 0);
-  if (!(status & 1))
-    return -1;
-
-  FileName.dsc$a_pointer = Nam.nam$l_name;
-  FileName.dsc$w_length = Nam.nam$b_name + Nam.nam$b_type + Nam.nam$b_ver;
-
-  /* Initialize the FIB */
-  for (i = 0; i < 3; i++)
-    {
-#ifndef __VAXC
-      Fib.fib$w_fid[i] = Nam.nam$w_fid[i];
-      Fib.fib$w_did[i] = Nam.nam$w_did[i];
+  fab = cc$rms_fab;
+  fab.fab$l_fna = (char*)argv0;
+  fab.fab$b_fns = strlen(argv0);
+
+#ifdef NAML$C_BID
+  fab.fab$l_naml = &naml;
+  naml = cc$rms_naml;
+  naml.naml$l_long_expand = esa;
+  naml.naml$l_long_expand_alloc = NAML$C_MAXRSS;
+  naml.naml$b_nop = NAML$M_SYNCHK;
+  naml.naml$l_input_flags = NAML$M_NO_SHORT_OUTPUT;
 #else
-      Fib.fib$r_fid_overlay.fib$w_fid[i] = Nam.nam$w_fid[i];
-      Fib.fib$r_did_overlay.fib$w_did[i] = Nam.nam$w_did[i];
+  fab.fab$l_nam = &nam;
+  nam = cc$rms_nam;
+  nam.nam$l_esa = esa;
+  nam.nam$b_ess = NAM$C_MAXRSS;
+# ifdef NAM$M_NO_SHORT_UPCASE
+  nam.nam$b_nop = NAM$M_SYNCHK | NAM$M_NO_SHORT_UPCASE;
+# else
+  nam.nam$b_nop = NAM$M_SYNCHK;
+# endif
 #endif
-    }
 
-  status = sys$qiow (0, DevChan, IO$_ACCESS, &iosb, 0, 0,
-                    &FibDesc, &FileName, 0, 0, &Atr, 0);
-  sys$dassgn (DevChan);
-  if (!(status & 1))
-    return -1;
-  status = iosb[0];
+  status = sys$parse(&fab);
   if (!(status & 1))
-    return -1;
-
-  status = stat (name, buf);
-  if (status)
-    return -1;
-
-  buf->st_mtime = ((Rdate[0] >> 24) & 0xff) + ((Rdate[1] << 8) & 0xffffff00);
-  buf->st_ctime = ((Cdate[0] >> 24) & 0xff) + ((Cdate[1] << 8) & 0xffffff00);
-
-  return 0;
-}
+    return fallback;
+
+#ifdef NAML$C_BID
+  if (naml.naml$l_long_name_size == 0)
+    return fallback;
+  progname = xmalloc(naml.naml$l_long_name_size + 1);
+  memcpy(progname, naml.naml$l_long_name, naml.naml$l_long_name_size);
+  progname[naml.naml$l_long_name_size] = '\0';
+#else
+  if (nam.nam$b_name == 0)
+    return fallback;
+  progname = xmalloc(nam.nam$b_name + 1);
+# ifdef NAM$M_NO_SHORT_UPCASE
+  memcpy(progname, nam.nam$l_name, nam.nam$b_name);
+# else
+    {
+      int i;
+      for (i = 0; i < nam.nam$b_name; i++)
+        progname[i] = tolower(nam.nam$l_name[i]);
+    }
+# endif
+  progname[nam.nam$b_name] = '\0';
 #endif
 
-char *
-cvt_time (unsigned long tval)
-{
-  static long int date[2];
-  static char str[27];
-  static struct dsc$descriptor date_str =
-  { 26, DSC$K_DTYPE_T, DSC$K_CLASS_S, str };
-
-  date[0] = (tval & 0xff) << 24;
-  date[1] = ((tval >> 8) & 0xffffff);
-
-  if ((date[0] == 0) && (date[1] == 0))
-    return ("never");
-
-  sys$asctim (0, &date_str, date, 0);
-  str[26] = '\0';
-
-  return (str);
+  return progname;
 }
index c87d68c303cbd414218de2ffb33c2c064793ec0e..02bdbf59513da290d5e1fcad54f1ef6a219769fe 100644 (file)
--- a/vmsify.c
+++ b/vmsify.c
@@ -1,5 +1,5 @@
 /* vmsify.c -- Module for vms <-> unix file name conversion
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -22,6 +22,8 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <string.h>
 #include <ctype.h>
 
+#include "makeint.h"
+
 #if VMS
 #include <unixlib.h>
 #include <stdlib.h>
@@ -137,9 +139,7 @@ trnlog (const char *name)
     }
   reslt[resltlen] = '\0';
 
-  s = malloc (resltlen+1);
-  if (s == 0)
-    return "";
+  s = xmalloc (resltlen+1);
   strcpy (s, reslt);
   return s;
 }
@@ -221,10 +221,11 @@ vmsify (const char *name, int type)
    max 39 filetype
    max 5 version
 */
-#define MAXPATHLEN 512
+/* todo: VMSMAXPATHLEN is defined for ODS2 names: it needs to be adjusted. */
+#define VMSMAXPATHLEN 512
 
   enum namestate nstate;
-  static char vmsname[MAXPATHLEN+1];
+  static char vmsname[VMSMAXPATHLEN+1];
   const char *fptr;
   const char *t;
   char *vptr;
@@ -402,9 +403,9 @@ vmsify (const char *name, int type)
              fptr++;
            if (*fptr == 0)             /* just // */
              {
-               char cwdbuf[MAXPATHLEN+1];
+               char cwdbuf[VMSMAXPATHLEN+1];
 
-               s1 = getcwd(cwdbuf, MAXPATHLEN);
+               s1 = getcwd(cwdbuf, VMSMAXPATHLEN);
                if (s1 == 0)
                  {
                     vmsname[0] = '\0';
@@ -796,9 +797,9 @@ vmsify (const char *name, int type)
              }
            {                                   /* got '..' or '../' */
               char *vp;
-             char cwdbuf[MAXPATHLEN+1];
+             char cwdbuf[VMSMAXPATHLEN+1];
 
-             vp = getcwd(cwdbuf, MAXPATHLEN);
+             vp = getcwd(cwdbuf, VMSMAXPATHLEN);
              if (vp == 0)
                {
                   vmsname[0] = '\0';
@@ -856,9 +857,9 @@ vmsify (const char *name, int type)
 
            {
               char *vp;
-             char cwdbuf[MAXPATHLEN+1];
+             char cwdbuf[VMSMAXPATHLEN+1];
 
-             vp = getcwd(cwdbuf, MAXPATHLEN);
+             vp = getcwd(cwdbuf, VMSMAXPATHLEN);
              if (vp == 0)
                {
                   vmsname[0] = '\0';
index 8bacc866f5a88ca24027526981a988a6e0f7eec3..b11bca13f5f2decb384d4c71ff1334f71aafdf34 100644 (file)
--- a/vmsjobs.c
+++ b/vmsjobs.c
@@ -1,7 +1,7 @@
 /* --------------- Moved here from job.c ---------------
    This file must be #included in job.c, as it accesses static functions.
 
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -43,10 +43,11 @@ vmsWaitForChildren(int *status)
 
 /* Set up IO redirection.  */
 
-char *
+static char *
 vms_redirect (struct dsc$descriptor_s *desc, char *fname, char *ibuf)
 {
   char *fptr;
+  char saved;
 
   ibuf++;
   while (isspace ((unsigned char)*ibuf))
@@ -54,6 +55,7 @@ vms_redirect (struct dsc$descriptor_s *desc, char *fname, char *ibuf)
   fptr = ibuf;
   while (*ibuf && !isspace ((unsigned char)*ibuf))
     ibuf++;
+  saved = *ibuf;
   *ibuf = 0;
   if (strcmp (fptr, "/dev/null") != 0)
     {
@@ -68,7 +70,10 @@ vms_redirect (struct dsc$descriptor_s *desc, char *fname, char *ibuf)
 
   if (*fname == 0)
     printf (_("Warning: Empty redirection\n"));
-  return ibuf;
+  if (saved=='\0')
+    return ibuf;
+  *ibuf = saved;
+  return --ibuf;
 }
 
 
@@ -76,13 +81,10 @@ vms_redirect (struct dsc$descriptor_s *desc, char *fname, char *ibuf)
    inc p until after closing apostrophe.
 */
 
-char *
+static char *
 vms_handle_apos (char *p)
 {
   int alast;
-
-#define SEPCHARS ",/()= "
-
   alast = 0;
 
   while (*p != 0)
@@ -95,7 +97,7 @@ vms_handle_apos (char *p)
       else
         {
           p++;
-          if (strchr (SEPCHARS, *p))
+          if (*p!='"')
             break;
           alast = 1;
         }
@@ -111,10 +113,10 @@ static int ctrlYPressed= 0;
    terminated. At AST level it won't get interrupted by anything except a
    inner mode level AST.
 */
-int
+static int
 vmsHandleChildTerm(struct child *child)
 {
-  int status;
+  int exit_code;
   register struct child *lastc, *c;
   int child_failed;
 
@@ -130,7 +132,9 @@ vmsHandleChildTerm(struct child *child)
 
   (void) sigblock (fatal_signal_mask);
 
-  child_failed = !(child->cstatus & 1 || ((child->cstatus & 7) == 0));
+  child_failed = !(child->cstatus & 1);
+  if (child_failed)
+    exit_code = child->cstatus;
 
   /* Search for a child matching the deceased one.  */
   lastc = 0;
@@ -175,8 +179,8 @@ vmsHandleChildTerm(struct child *child)
           break;
 
         default:
-          error (NILF, _("internal error: '%s' command_state"),
-                 c->file->name);
+          OS (error, NILF,
+              _("internal error: '%s' command_state"), c->file->name);
           abort ();
           break;
         }
@@ -202,7 +206,7 @@ vmsHandleChildTerm(struct child *child)
 
   /* If the job failed, and the -k flag was not given, die.  */
   if (child_failed && !keep_going_flag)
-    die (EXIT_FAILURE);
+    die (exit_code);
 
   (void) sigsetmask (sigblock (0) & ~(fatal_signal_mask));
 
@@ -294,6 +298,21 @@ tryToSetupYAst(void)
     chan = loc_chan;
 }
 
+static int
+nextnl(char *cmd, int l)
+{
+  int instring;
+  instring = 0;
+  while (cmd[l])
+    {
+      if (cmd[l]=='"')
+        instring = !instring;
+      else if (cmd[l]=='\n' && !instring)
+        return ++l;
+      ++l;
+    }
+  return l;
+}
 int
 child_execute_job (char *argv, struct child *child)
 {
@@ -337,7 +356,11 @@ child_execute_job (char *argv, struct child *child)
   pnamedsc.dsc$b_class = DSC$K_CLASS_S;
 
   in_string = 0;
-  /* Handle comments and redirection. */
+  /* Handle comments and redirection.
+     For ONESHELL, the redirection must be on the first line. Any other
+     redirection token is handled by DCL, that is, the pipe command with
+     redirection can be used, but it should not be used on the first line
+     for ONESHELL. */
   for (p = argv, q = cmd; *p; p++, q++)
     {
       if (*p == '"')
@@ -365,40 +388,50 @@ child_execute_job (char *argv, struct child *child)
           *q = *p;
           break;
         case '<':
-          p = vms_redirect (&ifiledsc, ifile, p);
-          *q = ' ';
-          have_redirection = 1;
+          if (have_newline==0)
+            {
+              p = vms_redirect (&ifiledsc, ifile, p);
+              *q = ' ';
+              have_redirection = 1;
+            }
+          else
+            *q = *p;
           break;
         case '>':
-          have_redirection = 1;
-          if (*(p-1) == '2')
+          if (have_newline==0)
             {
-              q--;
-              if (strncmp (p, ">&1", 3) == 0)
+              have_redirection = 1;
+              if (*(p-1) == '2')
                 {
-                  p += 3;
-                  strcpy (efile, "sys$output");
-                  efiledsc.dsc$w_length = strlen(efile);
-                  efiledsc.dsc$a_pointer = efile;
-                  efiledsc.dsc$b_dtype = DSC$K_DTYPE_T;
-                  efiledsc.dsc$b_class = DSC$K_CLASS_S;
+                  q--;
+                  if (strncmp (p, ">&1", 3) == 0)
+                    {
+                      p += 2;
+                      strcpy (efile, "sys$output");
+                      efiledsc.dsc$w_length = strlen(efile);
+                      efiledsc.dsc$a_pointer = efile;
+                      efiledsc.dsc$b_dtype = DSC$K_DTYPE_T;
+                      efiledsc.dsc$b_class = DSC$K_CLASS_S;
+                    }
+                  else
+                    p = vms_redirect (&efiledsc, efile, p);
                 }
               else
-                  p = vms_redirect (&efiledsc, efile, p);
-            }
-          else
-            {
-              if (*(p+1) == '>')
                 {
-                  have_append = 1;
-                  p += 1;
+                  if (*(p+1) == '>')
+                    {
+                      have_append = 1;
+                      p += 1;
+                    }
+                  p = vms_redirect (&ofiledsc, ofile, p);
                 }
-              p = vms_redirect (&ofiledsc, ofile, p);
+              *q = ' ';
             }
-          *q = ' ';
+          else
+            *q = *p;
           break;
         case '\n':
-          have_newline = 1;
+          have_newline++;
         default:
           *q = *p;
           break;
@@ -408,82 +441,203 @@ child_execute_job (char *argv, struct child *child)
   while (isspace ((unsigned char)*--q))
     *q = '\0';
 
-  if (strncmp (cmd, "builtin_", 8) == 0)
+
+#define VMS_EMPTY_ECHO "write sys$output \"\""
+  if (have_newline == 0)
     {
-      child->pid = 270163;
-      child->efn = 0;
-      child->cstatus = 1;
+      /* multiple shells */
+      if (strncmp(cmd, "builtin_", 8) == 0)
+        {
+          child->pid = 270163;
+          child->efn = 0;
+          child->cstatus = 1;
 
-      DB (DB_JOBS, (_("BUILTIN [%s][%s]\n"), cmd, cmd+8));
+          DB(DB_JOBS, (_("BUILTIN [%s][%s]\n"), cmd, cmd + 8));
 
-      p = cmd + 8;
+          p = cmd + 8;
 
-      if ((*(p) == 'c')
-          && (*(p+1) == 'd')
-          && ((*(p+2) == ' ') || (*(p+2) == '\t')))
-        {
-          p += 3;
-          while ((*p == ' ') || (*p == '\t'))
-            p++;
-          DB (DB_JOBS, (_("BUILTIN CD %s\n"), p));
-          if (chdir (p))
-            return 0;
+          if ((*(p) == 'c') && (*(p + 1) == 'd')
+              && ((*(p + 2) == ' ') || (*(p + 2) == '\t')))
+            {
+              p += 3;
+              while ((*p == ' ') || (*p == '\t'))
+                p++;
+              DB(DB_JOBS, (_("BUILTIN CD %s\n"), p));
+              if (chdir(p))
+                return 0;
+              else
+                return 1;
+            }
+          else if ((*(p) == 'e')
+              && (*(p+1) == 'c')
+              && (*(p+2) == 'h')
+              && (*(p+3) == 'o')
+              && ((*(p+4) == ' ') || (*(p+4) == '\t') || (*(p+4) == '\0')))
+            {
+              /* This is not a real builtin, it is a built in pre-processing
+                 for the VMS/DCL echo (write sys$output) to ensure the to be echoed
+                 string is correctly quoted (with the DCL quote character '"'). */
+              char *vms_echo;
+              p += 4;
+              if (*p == '\0')
+                cmd = VMS_EMPTY_ECHO;
+              else
+                {
+                  p++;
+                  while ((*p == ' ') || (*p == '\t'))
+                    p++;
+                  if (*p == '\0')
+                    cmd = VMS_EMPTY_ECHO;
+                  else
+                    {
+                      vms_echo = alloca(strlen(p) + sizeof VMS_EMPTY_ECHO);
+                      strcpy(vms_echo, VMS_EMPTY_ECHO);
+                      vms_echo[sizeof VMS_EMPTY_ECHO - 2] = '\0';
+                      strcat(vms_echo, p);
+                      strcat(vms_echo, "\"");
+                      cmd = vms_echo;
+                    }
+                }
+              DB (DB_JOBS, (_("BUILTIN ECHO %s->%s\n"), p, cmd));
+            }
           else
-            return 1;
+            {
+              printf(_("Unknown builtin command '%s'\n"), cmd);
+              fflush(stdout);
+              return 0;
+            }
         }
-      else if ((*(p) == 'r')
-               && (*(p+1) == 'm')
-               && ((*(p+2) == ' ') || (*(p+2) == '\t')))
+      /* expand ':' aka 'do nothing' builtin for bash and friends */
+      else if (cmd[0]==':' && cmd[1]=='\0')
         {
-          int in_arg;
-
-          /* rm  */
-          p += 3;
-          while ((*p == ' ') || (*p == '\t'))
-            p++;
-          in_arg = 1;
-
-          DB (DB_JOBS, (_("BUILTIN RM %s\n"), p));
-          while (*p)
+          cmd = "continue";
+        }
+    }
+  else
+    {
+      /* todo: expand ':' aka 'do nothing' builtin for bash and friends */
+      /* For 'one shell' expand all the
+           builtin_echo
+         to
+           write sys$output ""
+         where one is  ......7 bytes longer.
+         At the same time ensure that the echo string is properly terminated.
+         For that, allocate a command buffer big enough for all possible expansions
+         (have_newline is the count), then expand, copy and terminate. */
+      char *tmp_cmd;
+      int nloff = 0;
+      int vlen = 0;
+      int clen = 0;
+      int inecho;
+
+      tmp_cmd = alloca(strlen(cmd) + (have_newline + 1) * 7 + 1);
+      tmp_cmd[0] = '\0';
+      inecho = 0;
+      while (cmd[nloff])
+        {
+          if (inecho)
+            {
+              if (clen < nloff - 1)
+                {
+                  memcpy(&tmp_cmd[vlen], &cmd[clen], nloff - clen - 1);
+                  vlen += nloff - clen - 1;
+                  clen = nloff;
+                }
+              inecho = 0;
+              tmp_cmd[vlen] = '"';
+              vlen++;
+              tmp_cmd[vlen] = '\n';
+              vlen++;
+            }
+          if (strncmp(&cmd[nloff], "builtin_", 8) == 0)
             {
-              switch (*p)
+              /* ??? */
+              child->pid = 270163;
+              child->efn = 0;
+              child->cstatus = 1;
+
+              DB (DB_JOBS, (_("BUILTIN [%s][%s]\n"), &cmd[nloff], &cmd[nloff+8]));
+              p = &cmd[nloff + 8];
+              if ((*(p) ==        'e')
+                  && (*(p + 1) == 'c')
+                  && (*(p + 2) == 'h')
+                  && (*(p + 3) == 'o')
+                  && ((*(p + 4) == ' ') || (*(p + 4) == '\t') || (*(p + 4) == '\0')))
                 {
-                case ' ':
-                case '\t':
-                  if (in_arg)
+                  if (clen < nloff - 1)
                     {
-                      *p++ = ';';
-                      in_arg = 0;
+                      memcpy(&tmp_cmd[vlen], &cmd[clen], nloff - clen - 1);
+                      vlen += nloff - clen - 1;
+                      clen = nloff;
+                      if (inecho)
+                        {
+                          inecho = 0;
+                          tmp_cmd[vlen] = '"';
+                          vlen++;
+                        }
+                      tmp_cmd[vlen] = '\n';
+                      vlen++;
                     }
-                  break;
-                default:
-                  break;
+                  inecho = 1;
+                  p += 4;
+                  while ((*p == ' ') || (*p == '\t'))
+                    p++;
+                  clen = p - cmd;
+                  memcpy(&tmp_cmd[vlen], VMS_EMPTY_ECHO,
+                      sizeof VMS_EMPTY_ECHO - 2);
+                  vlen += sizeof VMS_EMPTY_ECHO - 2;
+                }
+              else
+                {
+                  printf (_("Builtin command is unknown or unsupported in .ONESHELL: '%s'\n"), &cmd[nloff]);
+                  fflush(stdout);
+                  return 0;
                 }
-              p++;
             }
+          nloff = nextnl(cmd, nloff + 1);
         }
-      else
+      if (clen < nloff)
         {
-          printf (_("Unknown builtin command '%s'\n"), cmd);
-          fflush (stdout);
-          return 0;
+          memcpy(&tmp_cmd[vlen], &cmd[clen], nloff - clen);
+          vlen += nloff - clen;
+          clen = nloff;
+          if (inecho)
+            {
+              inecho = 0;
+              tmp_cmd[vlen] = '"';
+              vlen++;
+            }
         }
+
+      tmp_cmd[vlen] = '\0';
+
+      cmd = tmp_cmd;
     }
 
+#ifdef USE_DCL_COM_FILE
+  /* Enforce the creation of a command file.
+     Then all the make environment variables are written as DCL symbol
+     assignments into the command file as well, so that they are visible
+     in the sub-process but do not affect the current process.
+     Further, this way DCL reads the input stream and therefore does
+     'forced' symbol substitution, which it doesn't do for one-liners when
+     they are 'lib$spawn'ed. */
+#else
   /* Create a *.com file if either the command is too long for
      lib$spawn, or the command contains a newline, or if redirection
      is desired. Forcing commands with newlines into DCLs allows to
      store search lists on user mode logicals.  */
-
   if (strlen (cmd) > MAXCMDLEN
       || (have_redirection != 0)
       || (have_newline != 0))
+#endif
     {
       FILE *outfile;
       char c;
       char *sep;
       int alevel = 0;   /* apostrophe level */
-
+      int tmpstrlen;
+      char *tmpstr;
       if (strlen (cmd) == 0)
         {
           printf (_("Error, empty command\n"));
@@ -492,10 +646,28 @@ child_execute_job (char *argv, struct child *child)
         }
 
       outfile = output_tmpfile (&child->comname, "sys$scratch:CMDXXXXXX.COM");
+      /*                                          012345678901234567890 */
+#define TMP_OFFSET 12
+#define TMP_LEN 9
       if (outfile == 0)
         pfatal_with_name (_("fopen (temporary file)"));
       comnamelen = strlen (child->comname);
-
+      tmpstr = &child->comname[TMP_OFFSET];
+      tmpstrlen = TMP_LEN;
+      /* The whole DCL "script" is executed as one action, and it behaves as
+         any DCL "script", that is errors stop it but warnings do not. Usually
+         the command on the last line, defines the exit code.  However, with
+         redirections there is a prolog and possibly an epilog to implement
+         the redirection.  Both are part of the script which is actually
+         executed. So if the redirection encounters an error in the prolog,
+         the user actions will not run; if in the epilog, the user actions
+         ran, but output is not captured. In both error cases, the error of
+         redirection is passed back and not the exit code of the actions. The
+         user should be able to enable DCL "script" verification with "set
+         verify". However, the prolog and epilog commands are not shown. Also,
+         if output redirection is used, the verification output is redirected
+         into that file as well. */
+      fprintf (outfile, "$ %.*s_1 = \"''f$verify(0)'\"\n", tmpstrlen, tmpstr);
       if (ifile[0])
         {
           fprintf (outfile, "$ assign/user %s sys$input\n", ifile);
@@ -513,8 +685,8 @@ child_execute_job (char *argv, struct child *child)
       if (ofile[0])
         if (have_append)
           {
-            fprintf (outfile, "$ set noon\n");
             fprintf (outfile, "$ define sys$output %.*s\n", comnamelen-3, child->comname);
+            fprintf (outfile, "$ on error then $ goto %.*s\n", tmpstrlen, tmpstr);
             DB (DB_JOBS, (_("Append output to %s\n"), ofile));
             ofiledsc.dsc$w_length = 0;
           }
@@ -524,72 +696,109 @@ child_execute_job (char *argv, struct child *child)
             DB (DB_JOBS, (_("Redirected output to %s\n"), ofile));
             ofiledsc.dsc$w_length = 0;
           }
-
+#ifdef USE_DCL_COM_FILE
+      /* Export the child environment into DCL symbols */
+      if (child->environment != 0)
+        {
+          char **ep = child->environment;
+          char *valstr;
+          while (*ep != 0)
+            {
+              valstr = strchr(*ep, '=');
+              if (valstr == NULL)
+                continue;
+              fprintf(outfile, "$ %.*s=\"%s\"\n", valstr - *ep, *ep,
+                  valstr + 1);
+              ep++;
+            }
+        }
+#endif
+      fprintf (outfile, "$ %.*s_ = f$verify(%.*s_1)\n", tmpstrlen, tmpstr, tmpstrlen, tmpstr);
+
+      /* TODO: give 78 a name! Whether 78 is a good number is another question.
+         Trim, split and write the command lines.
+         Splitting of a command is done after 78 output characters at an
+         appropriate place (after strings, after comma or space and
+         before slash): appending a hyphen indicates that the DCL command
+         is being continued.
+         Trimming is to skip any whitespace around - including - a
+         leading $ from the command to ensure writing exactly one "$ "
+         at the beginning of the line of the output file. Trimming is
+         done when a new command is seen, indicated by a '\n' (outside
+         of a string).
+         The buffer so far is written and reset, when a new command is
+         seen, when a split was done and at the end of the command.
+         Only for ONESHELL there will be several commands separated by
+         '\n'. But there can always be multiple continuation lines. */
       p = sep = q = cmd;
       for (c = '\n'; c; c = *q++)
         {
           switch (c)
-            {
-            case '\n':
-              /* At a newline, skip any whitespace around a leading $
-                 from the command and issue exactly one $ into the DCL. */
-              while (isspace ((unsigned char)*p))
-                p++;
-              if (*p == '$')
-                p++;
-              while (isspace ((unsigned char)*p))
-                p++;
-              fwrite (p, 1, q - p, outfile);
-              fputc ('$', outfile);
-              fputc (' ', outfile);
-              /* Reset variables. */
-              p = sep = q;
-              break;
-
-              /* Nice places for line breaks are after strings, after
-                 comma or space and before slash. */
-            case '"':
-              q = vms_handle_apos (q);
-              sep = q;
-              break;
-            case ',':
-            case ' ':
-              sep = q;
-              break;
-            case '/':
-            case '\0':
-              sep = q - 1;
-              break;
-            default:
-              break;
-            }
+          {
+          case '\n':
+            if (q > p)
+              {
+                fwrite(p, 1, q - p, outfile);
+                p = q;
+              }
+            fputc('$', outfile);
+            fputc(' ', outfile);
+            while (isspace((unsigned char) *p))
+              p++;
+            if (*p == '$')
+              p++;
+            while (isspace((unsigned char) *p))
+              p++;
+            q = sep = p;
+            break;
+          case '"':
+            q = vms_handle_apos(q);
+            sep = q;
+            break;
+          case ',':
+          case ' ':
+            sep = q;
+            break;
+          case '/':
+          case '\0':
+            sep = q - 1;
+            break;
+          default:
+            break;
+          }
           if (sep - p > 78)
             {
               /* Enough stuff for a line. */
-              fwrite (p, 1, sep - p, outfile);
+              fwrite(p, 1, sep - p, outfile);
               p = sep;
               if (*sep)
                 {
                   /* The command continues.  */
-                  fputc ('-', outfile);
+                  fputc('-', outfile);
                 }
-              fputc ('\n', outfile);
+              fputc('\n', outfile);
             }
         }
 
       if (*p)
         {
-          fwrite (p, 1, --q - p, outfile);
-          fputc ('\n', outfile);
+          fwrite(p, 1, --q - p, outfile);
+          fputc('\n', outfile);
         }
 
       if (have_append)
         {
-          fprintf (outfile, "$ deassign sys$output ! 'f$verify(0)\n");
+          fprintf (outfile, "$ %.*s: ! 'f$verify(0)\n", tmpstrlen, tmpstr);
+          fprintf (outfile, "$ %.*s_2 = $status\n", tmpstrlen, tmpstr);
+          fprintf (outfile, "$ on error then $ exit\n");
+          fprintf (outfile, "$ deassign sys$output\n");
+          if (efile[0])
+            fprintf (outfile, "$ deassign sys$error\n");
           fprintf (outfile, "$ append:=append\n");
           fprintf (outfile, "$ delete:=delete\n");
           fprintf (outfile, "$ append/new %.*s %s\n", comnamelen-3, child->comname, ofile);
           fprintf (outfile, "$ delete %.*s;*\n", comnamelen-3, child->comname);
+          fprintf (outfile, "$ exit '%.*s_2 + (0*f$verify(%.*s_1))\n", tmpstrlen, tmpstr, tmpstrlen, tmpstr);
           DB (DB_JOBS, (_("Append %.*s and cleanup\n"), comnamelen-3, child->comname));
         }
 
diff --git a/vpath.c b/vpath.c
index 94956fa30c65b42913b899b148bd2288aef5725f..1bcba042b81c4b10b37c5d6490aa48cc55308b35 100644 (file)
--- a/vpath.c
+++ b/vpath.c
@@ -1,5 +1,5 @@
 /* Implementation of pattern-matching file search paths for GNU Make.
-Copyright (C) 1988-2013 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index be757fee4e06449a10748175486e57a560e1a50c..a2c40632f39d3113f26b9dfbb9f79a313a6720ef 100644 (file)
@@ -1,5 +1,5 @@
 # Makefile.am to create libw32.a for mingw32 host.
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
@@ -15,6 +15,8 @@
 # You should have received a copy of the GNU General Public License along with
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
+AUTOMAKE_OPTIONS = subdir-objects
+
 noinst_LIBRARIES = libw32.a
 
 libw32_a_SOURCES =  subproc/misc.c subproc/sub_proc.c subproc/w32err.c \
index 9683105c9232ab9245783d1b3c2e6c68ccd8383e..476054129726040ca7d885cc796acdbb72ccf8db 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,7 +15,7 @@
 @SET_MAKE@
 
 # Makefile.am to create libw32.a for mingw32 host.
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
 # this program.  If not, see <http://www.gnu.org/licenses/>.
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -69,7 +96,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = w32
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/config/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
        $(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
@@ -89,16 +117,29 @@ LIBRARIES = $(noinst_LIBRARIES)
 ARFLAGS = cru
 AM_V_AR = $(am__v_AR_@AM_V@)
 am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_AR_0 = @echo "  AR      " $@;
+am__v_AR_1 = 
 libw32_a_AR = $(AR) $(ARFLAGS)
 libw32_a_LIBADD =
-am_libw32_a_OBJECTS = libw32_a-misc.$(OBJEXT) \
-       libw32_a-sub_proc.$(OBJEXT) libw32_a-w32err.$(OBJEXT) \
-       libw32_a-posixfcn.$(OBJEXT) libw32_a-pathstuff.$(OBJEXT)
+am__dirstamp = $(am__leading_dot)dirstamp
+am_libw32_a_OBJECTS = subproc/libw32_a-misc.$(OBJEXT) \
+       subproc/libw32_a-sub_proc.$(OBJEXT) \
+       subproc/libw32_a-w32err.$(OBJEXT) \
+       compat/libw32_a-posixfcn.$(OBJEXT) \
+       libw32_a-pathstuff.$(OBJEXT)
 libw32_a_OBJECTS = $(am_libw32_a_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -106,19 +147,19 @@ am__mv = mv -f
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libw32_a_SOURCES)
 DIST_SOURCES = $(libw32_a_SOURCES)
 am__can_run_installinfo = \
@@ -126,6 +167,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -212,6 +270,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
@@ -258,6 +317,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = subdir-objects
 noinst_LIBRARIES = libw32.a
 libw32_a_SOURCES = subproc/misc.c subproc/sub_proc.c subproc/w32err.c \
                    compat/posixfcn.c pathstuff.c
@@ -276,9 +336,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu w32/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign w32/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu w32/Makefile
+         $(AUTOMAKE) --foreign w32/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -300,6 +360,27 @@ $(am__aclocal_m4_deps):
 
 clean-noinstLIBRARIES:
        -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+subproc/$(am__dirstamp):
+       @$(MKDIR_P) subproc
+       @: > subproc/$(am__dirstamp)
+subproc/$(DEPDIR)/$(am__dirstamp):
+       @$(MKDIR_P) subproc/$(DEPDIR)
+       @: > subproc/$(DEPDIR)/$(am__dirstamp)
+subproc/libw32_a-misc.$(OBJEXT): subproc/$(am__dirstamp) \
+       subproc/$(DEPDIR)/$(am__dirstamp)
+subproc/libw32_a-sub_proc.$(OBJEXT): subproc/$(am__dirstamp) \
+       subproc/$(DEPDIR)/$(am__dirstamp)
+subproc/libw32_a-w32err.$(OBJEXT): subproc/$(am__dirstamp) \
+       subproc/$(DEPDIR)/$(am__dirstamp)
+compat/$(am__dirstamp):
+       @$(MKDIR_P) compat
+       @: > compat/$(am__dirstamp)
+compat/$(DEPDIR)/$(am__dirstamp):
+       @$(MKDIR_P) compat/$(DEPDIR)
+       @: > compat/$(DEPDIR)/$(am__dirstamp)
+compat/libw32_a-posixfcn.$(OBJEXT): compat/$(am__dirstamp) \
+       compat/$(DEPDIR)/$(am__dirstamp)
+
 libw32.a: $(libw32_a_OBJECTS) $(libw32_a_DEPENDENCIES) $(EXTRA_libw32_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libw32.a
        $(AM_V_AR)$(libw32_a_AR) libw32.a $(libw32_a_OBJECTS) $(libw32_a_LIBADD)
@@ -307,85 +388,89 @@ libw32.a: $(libw32_a_OBJECTS) $(libw32_a_DEPENDENCIES) $(EXTRA_libw32_a_DEPENDEN
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
+       -rm -f compat/*.$(OBJEXT)
+       -rm -f subproc/*.$(OBJEXT)
 
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-misc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-pathstuff.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-posixfcn.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-sub_proc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-w32err.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libw32_a-posixfcn.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@subproc/$(DEPDIR)/libw32_a-misc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@subproc/$(DEPDIR)/libw32_a-sub_proc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@subproc/$(DEPDIR)/libw32_a-w32err.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
-libw32_a-misc.o: subproc/misc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.o -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/misc.c' object='libw32_a-misc.o' libtool=no @AMDEPBACKSLASH@
+subproc/libw32_a-misc.o: subproc/misc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT subproc/libw32_a-misc.o -MD -MP -MF subproc/$(DEPDIR)/libw32_a-misc.Tpo -c -o subproc/libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) subproc/$(DEPDIR)/libw32_a-misc.Tpo subproc/$(DEPDIR)/libw32_a-misc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/misc.c' object='subproc/libw32_a-misc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o subproc/libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
 
-libw32_a-misc.obj: subproc/misc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.obj -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/misc.c' object='libw32_a-misc.obj' libtool=no @AMDEPBACKSLASH@
+subproc/libw32_a-misc.obj: subproc/misc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT subproc/libw32_a-misc.obj -MD -MP -MF subproc/$(DEPDIR)/libw32_a-misc.Tpo -c -o subproc/libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) subproc/$(DEPDIR)/libw32_a-misc.Tpo subproc/$(DEPDIR)/libw32_a-misc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/misc.c' object='subproc/libw32_a-misc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o subproc/libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
 
-libw32_a-sub_proc.o: subproc/sub_proc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.o -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/sub_proc.c' object='libw32_a-sub_proc.o' libtool=no @AMDEPBACKSLASH@
+subproc/libw32_a-sub_proc.o: subproc/sub_proc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT subproc/libw32_a-sub_proc.o -MD -MP -MF subproc/$(DEPDIR)/libw32_a-sub_proc.Tpo -c -o subproc/libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) subproc/$(DEPDIR)/libw32_a-sub_proc.Tpo subproc/$(DEPDIR)/libw32_a-sub_proc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/sub_proc.c' object='subproc/libw32_a-sub_proc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o subproc/libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
 
-libw32_a-sub_proc.obj: subproc/sub_proc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.obj -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/sub_proc.c' object='libw32_a-sub_proc.obj' libtool=no @AMDEPBACKSLASH@
+subproc/libw32_a-sub_proc.obj: subproc/sub_proc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT subproc/libw32_a-sub_proc.obj -MD -MP -MF subproc/$(DEPDIR)/libw32_a-sub_proc.Tpo -c -o subproc/libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) subproc/$(DEPDIR)/libw32_a-sub_proc.Tpo subproc/$(DEPDIR)/libw32_a-sub_proc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/sub_proc.c' object='subproc/libw32_a-sub_proc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o subproc/libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
 
-libw32_a-w32err.o: subproc/w32err.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.o -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/w32err.c' object='libw32_a-w32err.o' libtool=no @AMDEPBACKSLASH@
+subproc/libw32_a-w32err.o: subproc/w32err.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT subproc/libw32_a-w32err.o -MD -MP -MF subproc/$(DEPDIR)/libw32_a-w32err.Tpo -c -o subproc/libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) subproc/$(DEPDIR)/libw32_a-w32err.Tpo subproc/$(DEPDIR)/libw32_a-w32err.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/w32err.c' object='subproc/libw32_a-w32err.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o subproc/libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
 
-libw32_a-w32err.obj: subproc/w32err.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.obj -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/w32err.c' object='libw32_a-w32err.obj' libtool=no @AMDEPBACKSLASH@
+subproc/libw32_a-w32err.obj: subproc/w32err.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT subproc/libw32_a-w32err.obj -MD -MP -MF subproc/$(DEPDIR)/libw32_a-w32err.Tpo -c -o subproc/libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) subproc/$(DEPDIR)/libw32_a-w32err.Tpo subproc/$(DEPDIR)/libw32_a-w32err.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='subproc/w32err.c' object='subproc/libw32_a-w32err.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o subproc/libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
 
-libw32_a-posixfcn.o: compat/posixfcn.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-posixfcn.o -MD -MP -MF $(DEPDIR)/libw32_a-posixfcn.Tpo -c -o libw32_a-posixfcn.o `test -f 'compat/posixfcn.c' || echo '$(srcdir)/'`compat/posixfcn.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-posixfcn.Tpo $(DEPDIR)/libw32_a-posixfcn.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='compat/posixfcn.c' object='libw32_a-posixfcn.o' libtool=no @AMDEPBACKSLASH@
+compat/libw32_a-posixfcn.o: compat/posixfcn.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compat/libw32_a-posixfcn.o -MD -MP -MF compat/$(DEPDIR)/libw32_a-posixfcn.Tpo -c -o compat/libw32_a-posixfcn.o `test -f 'compat/posixfcn.c' || echo '$(srcdir)/'`compat/posixfcn.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) compat/$(DEPDIR)/libw32_a-posixfcn.Tpo compat/$(DEPDIR)/libw32_a-posixfcn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='compat/posixfcn.c' object='compat/libw32_a-posixfcn.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-posixfcn.o `test -f 'compat/posixfcn.c' || echo '$(srcdir)/'`compat/posixfcn.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compat/libw32_a-posixfcn.o `test -f 'compat/posixfcn.c' || echo '$(srcdir)/'`compat/posixfcn.c
 
-libw32_a-posixfcn.obj: compat/posixfcn.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-posixfcn.obj -MD -MP -MF $(DEPDIR)/libw32_a-posixfcn.Tpo -c -o libw32_a-posixfcn.obj `if test -f 'compat/posixfcn.c'; then $(CYGPATH_W) 'compat/posixfcn.c'; else $(CYGPATH_W) '$(srcdir)/compat/posixfcn.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-posixfcn.Tpo $(DEPDIR)/libw32_a-posixfcn.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='compat/posixfcn.c' object='libw32_a-posixfcn.obj' libtool=no @AMDEPBACKSLASH@
+compat/libw32_a-posixfcn.obj: compat/posixfcn.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compat/libw32_a-posixfcn.obj -MD -MP -MF compat/$(DEPDIR)/libw32_a-posixfcn.Tpo -c -o compat/libw32_a-posixfcn.obj `if test -f 'compat/posixfcn.c'; then $(CYGPATH_W) 'compat/posixfcn.c'; else $(CYGPATH_W) '$(srcdir)/compat/posixfcn.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) compat/$(DEPDIR)/libw32_a-posixfcn.Tpo compat/$(DEPDIR)/libw32_a-posixfcn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='compat/posixfcn.c' object='compat/libw32_a-posixfcn.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-posixfcn.obj `if test -f 'compat/posixfcn.c'; then $(CYGPATH_W) 'compat/posixfcn.c'; else $(CYGPATH_W) '$(srcdir)/compat/posixfcn.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compat/libw32_a-posixfcn.obj `if test -f 'compat/posixfcn.c'; then $(CYGPATH_W) 'compat/posixfcn.c'; else $(CYGPATH_W) '$(srcdir)/compat/posixfcn.c'; fi`
 
 libw32_a-pathstuff.o: pathstuff.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-pathstuff.o -MD -MP -MF $(DEPDIR)/libw32_a-pathstuff.Tpo -c -o libw32_a-pathstuff.o `test -f 'pathstuff.c' || echo '$(srcdir)/'`pathstuff.c
@@ -401,26 +486,15 @@ libw32_a-pathstuff.obj: pathstuff.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-pathstuff.obj `if test -f 'pathstuff.c'; then $(CYGPATH_W) 'pathstuff.c'; else $(CYGPATH_W) '$(srcdir)/pathstuff.c'; fi`
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -432,15 +506,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -449,6 +519,21 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -513,6 +598,10 @@ clean-generic:
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
        -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -rm -f compat/$(DEPDIR)/$(am__dirstamp)
+       -rm -f compat/$(am__dirstamp)
+       -rm -f subproc/$(DEPDIR)/$(am__dirstamp)
+       -rm -f subproc/$(am__dirstamp)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -522,7 +611,7 @@ clean: clean-am
 clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
+       -rm -rf ./$(DEPDIR) compat/$(DEPDIR) subproc/$(DEPDIR)
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -568,7 +657,7 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
+       -rm -rf ./$(DEPDIR) compat/$(DEPDIR) subproc/$(DEPDIR)
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -588,17 +677,17 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-noinstLIBRARIES ctags distclean distclean-compile \
-       distclean-generic distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \
+       distclean-compile distclean-generic distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
        uninstall-am
 
 
index bc776ddb9c7d23c85a373054cc5d586994ebcb5a..56407dd522a19809c7c5263e827e3ed178f71b18 100644 (file)
@@ -1,5 +1,5 @@
 /* Directory entry code for Window platforms.
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -27,180 +27,180 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 DIR*
 opendir(const char* pDirName)
 {
-       struct stat sb;
-       DIR*    pDir;
-       char*   pEndDirName;
-       int     nBufferLen;
-
-       /* sanity checks */
-       if (!pDirName) {
-               errno = EINVAL;
-               return NULL;
-       }
-       if (stat(pDirName, &sb) != 0) {
-               errno = ENOENT;
-               return NULL;
-       }
-       if ((sb.st_mode & S_IFMT) != S_IFDIR) {
-               errno = ENOTDIR;
-               return NULL;
-       }
-
-       /* allocate a DIR structure to return */
-       pDir = (DIR *) malloc(sizeof (DIR));
-
-       if (!pDir)
-               return NULL;
-
-       /* input directory name length */
-       nBufferLen = strlen(pDirName);
-
-       /* copy input directory name to DIR buffer */
-       strcpy(pDir->dir_pDirectoryName, pDirName);
-
-       /* point to end of the copied directory name */
-       pEndDirName = &pDir->dir_pDirectoryName[nBufferLen - 1];
-
-       /* if directory name did not end in '/' or '\', add '/' */
-       if ((*pEndDirName != '/') && (*pEndDirName != '\\')) {
-               pEndDirName++;
-               *pEndDirName = '/';
-       }
-
-       /* now append the wildcard character to the buffer */
-       pEndDirName++;
-       *pEndDirName = '*';
-       pEndDirName++;
-       *pEndDirName = '\0';
-
-       /* other values defaulted */
-       pDir->dir_nNumFiles = 0;
-       pDir->dir_hDirHandle = INVALID_HANDLE_VALUE;
-       pDir->dir_ulCookie = __DIRENT_COOKIE;
-
-       return pDir;
+        struct stat sb;
+        DIR*    pDir;
+        char*   pEndDirName;
+        int     nBufferLen;
+
+        /* sanity checks */
+        if (!pDirName) {
+                errno = EINVAL;
+                return NULL;
+        }
+        if (stat(pDirName, &sb) != 0) {
+                errno = ENOENT;
+                return NULL;
+        }
+        if ((sb.st_mode & S_IFMT) != S_IFDIR) {
+                errno = ENOTDIR;
+                return NULL;
+        }
+
+        /* allocate a DIR structure to return */
+        pDir = (DIR *) malloc(sizeof (DIR));
+
+        if (!pDir)
+                return NULL;
+
+        /* input directory name length */
+        nBufferLen = strlen(pDirName);
+
+        /* copy input directory name to DIR buffer */
+        strcpy(pDir->dir_pDirectoryName, pDirName);
+
+        /* point to end of the copied directory name */
+        pEndDirName = &pDir->dir_pDirectoryName[nBufferLen - 1];
+
+        /* if directory name did not end in '/' or '\', add '/' */
+        if ((*pEndDirName != '/') && (*pEndDirName != '\\')) {
+                pEndDirName++;
+                *pEndDirName = '/';
+        }
+
+        /* now append the wildcard character to the buffer */
+        pEndDirName++;
+        *pEndDirName = '*';
+        pEndDirName++;
+        *pEndDirName = '\0';
+
+        /* other values defaulted */
+        pDir->dir_nNumFiles = 0;
+        pDir->dir_hDirHandle = INVALID_HANDLE_VALUE;
+        pDir->dir_ulCookie = __DIRENT_COOKIE;
+
+        return pDir;
 }
 
 void
 closedir(DIR *pDir)
 {
-       /* got a valid pointer? */
-       if (!pDir) {
-               errno = EINVAL;
-               return;
-       }
+        /* got a valid pointer? */
+        if (!pDir) {
+                errno = EINVAL;
+                return;
+        }
 
-       /* sanity check that this is a DIR pointer */
-       if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
-               errno = EINVAL;
-               return;
-       }
+        /* sanity check that this is a DIR pointer */
+        if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
+                errno = EINVAL;
+                return;
+        }
 
-       /* close the WINDOWS32 directory handle */
-       if (pDir->dir_hDirHandle != INVALID_HANDLE_VALUE)
-               FindClose(pDir->dir_hDirHandle);
+        /* close the WINDOWS32 directory handle */
+        if (pDir->dir_hDirHandle != INVALID_HANDLE_VALUE)
+                FindClose(pDir->dir_hDirHandle);
 
-       free(pDir);
+        free(pDir);
 
-       return;
+        return;
 }
 
 struct dirent *
 readdir(DIR* pDir)
 {
-       WIN32_FIND_DATA wfdFindData;
-
-       if (!pDir) {
-               errno = EINVAL;
-               return NULL;
-       }
-
-       /* sanity check that this is a DIR pointer */
-       if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
-               errno = EINVAL;
-               return NULL;
-       }
-
-       if (pDir->dir_nNumFiles == 0) {
-               pDir->dir_hDirHandle = FindFirstFile(pDir->dir_pDirectoryName, &wfdFindData);
-               if (pDir->dir_hDirHandle == INVALID_HANDLE_VALUE)
-                       return NULL;
-       } else if (!FindNextFile(pDir->dir_hDirHandle, &wfdFindData))
-                       return NULL;
-
-       /* bump count for next call to readdir() or telldir() */
-       pDir->dir_nNumFiles++;
-
-       /* fill in struct dirent values */
-       pDir->dir_sdReturn.d_ino = (ino_t)-1;
-       strcpy(pDir->dir_sdReturn.d_name, wfdFindData.cFileName);
-
-       return &pDir->dir_sdReturn;
+        WIN32_FIND_DATA wfdFindData;
+
+        if (!pDir) {
+                errno = EINVAL;
+                return NULL;
+        }
+
+        /* sanity check that this is a DIR pointer */
+        if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
+                errno = EINVAL;
+                return NULL;
+        }
+
+        if (pDir->dir_nNumFiles == 0) {
+                pDir->dir_hDirHandle = FindFirstFile(pDir->dir_pDirectoryName, &wfdFindData);
+                if (pDir->dir_hDirHandle == INVALID_HANDLE_VALUE)
+                        return NULL;
+        } else if (!FindNextFile(pDir->dir_hDirHandle, &wfdFindData))
+                        return NULL;
+
+        /* bump count for next call to readdir() or telldir() */
+        pDir->dir_nNumFiles++;
+
+        /* fill in struct dirent values */
+        pDir->dir_sdReturn.d_ino = (ino_t)-1;
+        strcpy(pDir->dir_sdReturn.d_name, wfdFindData.cFileName);
+
+        return &pDir->dir_sdReturn;
 }
 
 void
 rewinddir(DIR* pDir)
 {
-       if (!pDir) {
-               errno = EINVAL;
-               return;
-       }
-
-       /* sanity check that this is a DIR pointer */
-       if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
-               errno = EINVAL;
-               return;
-       }
-
-       /* close the WINDOWS32 directory handle */
-       if (pDir->dir_hDirHandle != INVALID_HANDLE_VALUE)
-               if (!FindClose(pDir->dir_hDirHandle))
-                       errno = EBADF;
-
-       /* reset members which control readdir() */
-       pDir->dir_hDirHandle = INVALID_HANDLE_VALUE;
-       pDir->dir_nNumFiles = 0;
-
-       return;
+        if (!pDir) {
+                errno = EINVAL;
+                return;
+        }
+
+        /* sanity check that this is a DIR pointer */
+        if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
+                errno = EINVAL;
+                return;
+        }
+
+        /* close the WINDOWS32 directory handle */
+        if (pDir->dir_hDirHandle != INVALID_HANDLE_VALUE)
+                if (!FindClose(pDir->dir_hDirHandle))
+                        errno = EBADF;
+
+        /* reset members which control readdir() */
+        pDir->dir_hDirHandle = INVALID_HANDLE_VALUE;
+        pDir->dir_nNumFiles = 0;
+
+        return;
 }
 
 int
 telldir(DIR* pDir)
 {
-       if (!pDir) {
-               errno = EINVAL;
-               return -1;
-       }
-
-       /* sanity check that this is a DIR pointer */
-       if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
-               errno = EINVAL;
-               return -1;
-       }
-
-       /* return number of times readdir() called */
-       return pDir->dir_nNumFiles;
+        if (!pDir) {
+                errno = EINVAL;
+                return -1;
+        }
+
+        /* sanity check that this is a DIR pointer */
+        if (pDir->dir_ulCookie != __DIRENT_COOKIE) {
+                errno = EINVAL;
+                return -1;
+        }
+
+        /* return number of times readdir() called */
+        return pDir->dir_nNumFiles;
 }
 
 void
 seekdir(DIR* pDir, long nPosition)
 {
-       if (!pDir)
-               return;
+        if (!pDir)
+                return;
 
-       /* sanity check that this is a DIR pointer */
-       if (pDir->dir_ulCookie != __DIRENT_COOKIE)
-               return;
+        /* sanity check that this is a DIR pointer */
+        if (pDir->dir_ulCookie != __DIRENT_COOKIE)
+                return;
 
-       /* go back to beginning of directory */
-       rewinddir(pDir);
+        /* go back to beginning of directory */
+        rewinddir(pDir);
 
-       /* loop until we have found position we care about */
-       for (--nPosition; nPosition && readdir(pDir); nPosition--);
+        /* loop until we have found position we care about */
+        for (--nPosition; nPosition && readdir(pDir); nPosition--);
 
-       /* flag invalid nPosition value */
-       if (nPosition)
-               errno = EINVAL;
+        /* flag invalid nPosition value */
+        if (nPosition)
+                errno = EINVAL;
 
-       return;
+        return;
 }
index 1d852f5fc6a95a7be23eea220df5e09e358fa0f7..b366399705d625c3a7dd5f0567cf1f78dc1c77ec 100644 (file)
@@ -1,6 +1,6 @@
 /* Replacements for Posix functions and Posix functionality for MS-Windows.
 
-Copyright (C) 2013 Free Software Foundation, Inc.
+Copyright (C) 2013-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -454,3 +454,33 @@ dlclose (void *handle)
 
 #endif  /* MAKE_LOAD */
 
+
+/* MS runtime's isatty returns non-zero for any character device,
+   including the null device, which is not what we want.  */
+int
+isatty (int fd)
+{
+  HANDLE fh = (HANDLE) _get_osfhandle (fd);
+  DWORD con_mode;
+
+  if (fh == INVALID_HANDLE_VALUE)
+    {
+      errno = EBADF;
+      return 0;
+    }
+  if (GetConsoleMode (fh, &con_mode))
+    return 1;
+
+  errno = ENOTTY;
+  return 0;
+}
+
+char *
+ttyname (int fd)
+{
+  /* This "knows" that Make only asks about stdout and stderr.  A more
+     sophisticated implementation should test whether FD is open for
+     input or output.  We can do that by looking at the mode returned
+     by GetConsoleMode.  */
+  return "CONOUT$";
+}
index e75a1b1638e98dc4eb20fad3e3a5ac8370d980b9..13308de9ccf416e3b3789105b9a600b8f5af4a73 100644 (file)
@@ -1,5 +1,5 @@
 /* Windows version of dirent.h
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -36,16 +36,16 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 struct dirent
 {
-  ino_t d_ino;                         /* unused - no equivalent on WINDOWS32 */
+  ino_t d_ino;                  /* unused - no equivalent on WINDOWS32 */
   char d_name[NAME_MAX+1];
 };
 
 typedef struct dir_struct {
-       ULONG   dir_ulCookie;
-       HANDLE  dir_hDirHandle;
-       DWORD   dir_nNumFiles;
-       char    dir_pDirectoryName[NAME_MAX+1];
-       struct dirent dir_sdReturn;
+        ULONG   dir_ulCookie;
+        HANDLE  dir_hDirHandle;
+        DWORD   dir_nNumFiles;
+        char    dir_pDirectoryName[NAME_MAX+1];
+        struct dirent dir_sdReturn;
 } DIR;
 
 DIR *opendir(const char *);
index e920703a00537d370c9bf68b35c00c10b9d4f441..c64ac7b6ec9d2815483f68e4d1e995f507983daf 100644 (file)
@@ -1,5 +1,5 @@
 /* dlfcn.h replacement for MS-Windows build.
-Copyright (C) 2013 Free Software Foundation, Inc.
+Copyright (C) 2013-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 4e34a1351b006dcf5c0ca792bef5cbfdaf8fbbd5..fb03f1220520bea384fadc3cc87b7b8de3d295c1 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for Windows path manipulation.
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index c7d9feedfe62fca98fd174188e91f6ce7414d448..1e1b2139815fc64883e46e2f536350215e5fccb2 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for Windows process invocation.
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -32,17 +32,17 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 EXTERN_DECL(HANDLE process_init, (VOID_DECL));
 EXTERN_DECL(HANDLE process_init_fd, (HANDLE stdinh, HANDLE stdouth,
-       HANDLE stderrh));
+        HANDLE stderrh));
 EXTERN_DECL(long process_begin, (HANDLE proc, char **argv, char **envp,
-       char *exec_path, char *as_user));
+        char *exec_path, char *as_user));
 EXTERN_DECL(long process_pipe_io, (HANDLE proc, char *stdin_data,
-       int stdin_data_len));
+        int stdin_data_len));
 EXTERN_DECL(long process_file_io, (HANDLE proc));
 EXTERN_DECL(void process_cleanup, (HANDLE proc));
 EXTERN_DECL(HANDLE process_wait_for_any, (int block, DWORD* pdwWaitStatus));
 EXTERN_DECL(void process_register, (HANDLE proc));
 EXTERN_DECL(HANDLE process_easy, (char** argv, char** env,
-                                 int outfd, int errfd));
+                                  int outfd, int errfd));
 EXTERN_DECL(BOOL process_kill, (HANDLE proc, int signal));
 EXTERN_DECL(int process_used_slots, (VOID_DECL));
 
index 938a119969cdb058601bd44d7aab2ad32d14e490..7d722265e0b208aa96bed2828997f866326f7f26 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for Windows error handling.
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
index 0e338211459a4bad49074ddec3e6e72aa1816772..55332abaf57c977b6e18a6b0eaeefd11b67873fe 100644 (file)
@@ -1,5 +1,5 @@
 /* Path conversion for Windows pathnames.
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -27,15 +27,15 @@ convert_vpath_to_windows32(char *Path, char to_delim)
 {
     char *etok;            /* token separator for old Path */
 
-       /*
-        * Convert all spaces to delimiters. Note that pathnames which
-        * contain blanks get trounced here. Use 8.3 format as a workaround.
-        */
-       for (etok = Path; etok && *etok; etok++)
-               if (isblank ((unsigned char) *etok))
-                       *etok = to_delim;
+        /*
+         * Convert all spaces to delimiters. Note that pathnames which
+         * contain blanks get trounced here. Use 8.3 format as a workaround.
+         */
+        for (etok = Path; etok && *etok; etok++)
+                if (isblank ((unsigned char) *etok))
+                        *etok = to_delim;
 
-       return (convert_Path_to_windows32(Path, to_delim));
+        return (convert_Path_to_windows32(Path, to_delim));
 }
 
 /*
@@ -79,7 +79,7 @@ convert_Path_to_windows32(char *Path, char to_delim)
             if (etok) {
                 *etok = to_delim;
                 p = ++etok;
-           } else
+            } else
                 p += strlen(p);
         } else {
             /* found another one, no drive letter */
@@ -114,14 +114,14 @@ w32ify(const char *filename, int resolve)
 char *
 getcwd_fs(char* buf, int len)
 {
-       char *p = getcwd(buf, len);
+        char *p = getcwd(buf, len);
 
-       if (p) {
-               char *q = w32ify(buf, 0);
-               strncpy(buf, q, len);
-       }
+        if (p) {
+                char *q = w32ify(buf, 0);
+                strncpy(buf, q, len);
+        }
 
-       return p;
+        return p;
 }
 
 #ifdef unused
index 5258fa392b1915ad435b45635693b7d713c982ca..ebf516d5f3ff526856a72ccbef82835003e3add8 100644 (file)
@@ -1,7 +1,7 @@
 # NOTE: If you have no 'make' program at all to process this makefile, run
 # 'build.bat' instead.
 #
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 # This file is part of GNU Make.
 #
 # GNU Make is free software; you can redistribute it and/or modify it under
index ecd2ab7c08514f69cb78630e1698a551b0ead3f3..f8604ce2e32320c9e545d1783cd51a3218fd41fa 100644 (file)
@@ -17,7 +17,7 @@ gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I.. -I. -I../include -I../.. -DWINDOWS3
 :BuildEnd\r
 \r
 @echo off\r
-rem Copyright (C) 1996-2013 Free Software Foundation, Inc.\r
+rem Copyright (C) 1996-2014 Free Software Foundation, Inc.\r
 rem This file is part of GNU Make.\r
 rem\r
 rem GNU Make is free software; you can redistribute it and/or modify it under\r
index 1e3f3a1f6ebe273670a880e61cd0571981491411..3f3bdf83400208248c4c6d732ce666638cc9e5a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Process handling for Windows
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -24,59 +24,60 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /*
  * Description:  Convert a NULL string terminated UNIX environment block to
- *             an environment block suitable for a windows32 system call
+ *              an environment block suitable for a windows32 system call
  *
  * Returns:  TRUE= success, FALSE=fail
  *
  * Notes/Dependencies:  the environment block is sorted in case-insensitive
- *     order, is double-null terminated, and is a char *, not a char **
+ *      order, is double-null terminated, and is a char *, not a char **
  */
 int _cdecl compare(const void *a1, const void *a2)
 {
-       return _stricoll(*((char**)a1),*((char**)a2));
+        return _stricoll(*((char**)a1),*((char**)a2));
 }
 bool_t
-arr2envblk(char **arr, char **envblk_out)
+arr2envblk(char **arr, char **envblk_out, int *envsize_needed)
 {
-       char **tmp;
-       int size_needed;
-       int arrcnt;
-       char *ptr;
+        char **tmp;
+        int size_needed;
+        int arrcnt;
+        char *ptr;
 
-       arrcnt = 0;
-       while (arr[arrcnt]) {
-               arrcnt++;
-       }
+        arrcnt = 0;
+        while (arr[arrcnt]) {
+                arrcnt++;
+        }
 
-       tmp = (char**) calloc(arrcnt + 1, sizeof(char *));
-       if (!tmp) {
-               return FALSE;
-       }
+        tmp = (char**) calloc(arrcnt + 1, sizeof(char *));
+        if (!tmp) {
+                return FALSE;
+        }
 
-       arrcnt = 0;
-       size_needed = 0;
-       while (arr[arrcnt]) {
-               tmp[arrcnt] = arr[arrcnt];
-               size_needed += strlen(arr[arrcnt]) + 1;
-               arrcnt++;
-       }
-       size_needed++;
+        arrcnt = 0;
+        size_needed = *envsize_needed = 0;
+        while (arr[arrcnt]) {
+                tmp[arrcnt] = arr[arrcnt];
+                size_needed += strlen(arr[arrcnt]) + 1;
+                arrcnt++;
+        }
+        size_needed++;
+        *envsize_needed = size_needed;
 
-       qsort((void *) tmp, (size_t) arrcnt, sizeof (char*), compare);
+        qsort((void *) tmp, (size_t) arrcnt, sizeof (char*), compare);
 
-       ptr = *envblk_out = calloc(size_needed, 1);
-       if (!ptr) {
-               free(tmp);
-               return FALSE;
-       }
+        ptr = *envblk_out = calloc(size_needed, 1);
+        if (!ptr) {
+                free(tmp);
+                return FALSE;
+        }
 
-       arrcnt = 0;
-       while (tmp[arrcnt]) {
-               strcpy(ptr, tmp[arrcnt]);
-               ptr += strlen(tmp[arrcnt]) + 1;
-               arrcnt++;
-       }
+        arrcnt = 0;
+        while (tmp[arrcnt]) {
+                strcpy(ptr, tmp[arrcnt]);
+                ptr += strlen(tmp[arrcnt]) + 1;
+                arrcnt++;
+        }
 
-       free(tmp);
-       return TRUE;
+        free(tmp);
+        return TRUE;
 }
index 259a1192bdd05c0a185dea3f8fcce875638d0ddd..1e4054c6b7104cb5f06bb32bb8db51959492a6b0 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for Windows
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -19,11 +19,11 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 typedef int bool_t;
 
-#define E_SCALL                101
-#define E_IO           102
-#define E_NO_MEM       103
-#define E_FORK         104
+#define E_SCALL         101
+#define E_IO            102
+#define E_NO_MEM        103
+#define E_FORK          104
 
-extern bool_t arr2envblk(char **arr, char **envblk_out);
+extern bool_t arr2envblk(char **arr, char **envblk_out, int *envsize_needed);
 
 #endif
index f790ca3b213946ab7dfdf245e08ca6f5187f7fcf..5496c7ebcf2b2789849d76bf898df950c8acb77a 100644 (file)
@@ -1,5 +1,5 @@
 /* Process handling for Windows.
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -17,7 +17,7 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include <io.h>                /* for _get_osfhandle */
+#include <io.h>         /* for _get_osfhandle */
 #ifdef _MSC_VER
 # include <stddef.h>    /* for intptr_t */
 #else
@@ -29,6 +29,8 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <windows.h>
 
 #include "makeint.h"
+#include "filedef.h"
+#include "variable.h"
 #include "sub_proc.h"
 #include "proc.h"
 #include "w32err.h"
@@ -37,21 +39,21 @@ this program.  If not, see <http://www.gnu.org/licenses/>.  */
 static char *make_command_line(char *shell_name, char *exec_path, char **argv);
 
 typedef struct sub_process_t {
-       intptr_t sv_stdin[2];
-       intptr_t sv_stdout[2];
-       intptr_t sv_stderr[2];
-       int using_pipes;
-       char *inp;
-       DWORD incnt;
-       char * volatile outp;
-       volatile DWORD outcnt;
-       char * volatile errp;
-       volatile DWORD errcnt;
-       pid_t pid;
-       int exit_code;
-       int signal;
-       long last_err;
-       long lerrno;
+        intptr_t sv_stdin[2];
+        intptr_t sv_stdout[2];
+        intptr_t sv_stderr[2];
+        int using_pipes;
+        char *inp;
+        DWORD incnt;
+        char * volatile outp;
+        volatile DWORD outcnt;
+        char * volatile errp;
+        volatile DWORD errcnt;
+        pid_t pid;
+        int exit_code;
+        int signal;
+        long last_err;
+        long lerrno;
 } sub_process;
 
 /* keep track of children so we can implement a waitpid-like routine */
@@ -67,14 +69,14 @@ static HANDLE jobserver_semaphore = NULL;
 int open_jobserver_semaphore(const char* name)
 {
     jobserver_semaphore = OpenSemaphore(
-        SEMAPHORE_ALL_ACCESS,  // Semaphore access setting
-        FALSE,                 // Child processes DON'T inherit
-        name);                 // Semaphore name
+        SEMAPHORE_ALL_ACCESS,   // Semaphore access setting
+        FALSE,                  // Child processes DON'T inherit
+        name);                  // Semaphore name
 
     if (jobserver_semaphore == NULL)
         return 0;
 
-    return 1;        
+    return 1;
 }
 
 /* Create new jobserver semaphore */
@@ -83,15 +85,15 @@ int create_jobserver_semaphore(int tokens)
     sprintf(jobserver_semaphore_name, "gmake_semaphore_%d", _getpid());
 
     jobserver_semaphore = CreateSemaphore(
-        NULL,                          // Use default security descriptor
-        tokens,                                // Initial count
-        tokens,                        // Maximum count
-        jobserver_semaphore_name);     // Semaphore name
+        NULL,                           // Use default security descriptor
+        tokens,                         // Initial count
+        tokens,                         // Maximum count
+        jobserver_semaphore_name);      // Semaphore name
 
     if (jobserver_semaphore == NULL)
         return 0;
 
-    return 1;        
+    return 1;
 }
 
 /* Close jobserver semaphore */
@@ -108,8 +110,8 @@ void free_jobserver_semaphore()
 int acquire_jobserver_semaphore()
 {
     DWORD dwEvent = WaitForSingleObject(
-        jobserver_semaphore,   // Handle to semaphore
-        0);                    // DON'T wait on semaphore
+        jobserver_semaphore,    // Handle to semaphore
+        0);                     // DON'T wait on semaphore
 
     return (dwEvent == WAIT_OBJECT_0);
 }
@@ -117,10 +119,10 @@ int acquire_jobserver_semaphore()
 /* Increment semaphore count */
 int release_jobserver_semaphore()
 {
-    BOOL bResult = ReleaseSemaphore( 
-        jobserver_semaphore,   // handle to semaphore
-        1,                     // increase count by one
-        NULL);                 // not interested in previous count
+    BOOL bResult = ReleaseSemaphore(
+        jobserver_semaphore,    // handle to semaphore
+        1,                      // increase count by one
+        NULL);                  // not interested in previous count
 
     return (bResult);
 }
@@ -149,7 +151,7 @@ int wait_for_semaphore_or_child_process()
     handles[0] = jobserver_semaphore;
 
     /* Build array of handles to wait for */
-    for (i = 0; i < proc_index; i++) 
+    for (i = 0; i < proc_index; i++)
     {
         /* Don't wait on child processes that have already finished */
         if (fake_exits_pending && proc_array[i]->exit_code)
@@ -158,11 +160,11 @@ int wait_for_semaphore_or_child_process()
         handles[dwHandleCount++] = (HANDLE) proc_array[i]->pid;
     }
 
-    dwEvent = WaitForMultipleObjects( 
-        dwHandleCount, // number of objects in array
-        handles,       // array of objects
-        FALSE,         // wait for any object
-        INFINITE);     // wait until object is signalled
+    dwEvent = WaitForMultipleObjects(
+        dwHandleCount,  // number of objects in array
+        handles,        // array of objects
+        FALSE,          // wait for any object
+        INFINITE);      // wait until object is signalled
 
     switch(dwEvent)
     {
@@ -186,22 +188,22 @@ int wait_for_semaphore_or_child_process()
 static void
 process_adjust_wait_state(sub_process* pproc)
 {
-       int i;
-
-       if (!proc_index)
-               return;
-
-       for (i = 0; i < proc_index; i++)
-               if (proc_array[i]->pid == pproc->pid)
-                       break;
-
-       if (i < proc_index) {
-               proc_index--;
-               if (i != proc_index)
-                       memmove(&proc_array[i], &proc_array[i+1],
-                               (proc_index-i) * sizeof(sub_process*));
-               proc_array[proc_index] = NULL;
-       }
+        int i;
+
+        if (!proc_index)
+                return;
+
+        for (i = 0; i < proc_index; i++)
+                if (proc_array[i]->pid == pproc->pid)
+                        break;
+
+        if (i < proc_index) {
+                proc_index--;
+                if (i != proc_index)
+                        memmove(&proc_array[i], &proc_array[i+1],
+                                (proc_index-i) * sizeof(sub_process*));
+                proc_array[proc_index] = NULL;
+        }
 }
 
 /*
@@ -210,44 +212,44 @@ process_adjust_wait_state(sub_process* pproc)
 static sub_process *
 process_wait_for_any_private(int block, DWORD* pdwWaitStatus)
 {
-       HANDLE handles[MAXIMUM_WAIT_OBJECTS];
-       DWORD retval, which;
-       int i;
-
-       if (!proc_index)
-               return NULL;
-
-       /* build array of handles to wait for */
-       for (i = 0; i < proc_index; i++) {
-               handles[i] = (HANDLE) proc_array[i]->pid;
-
-               if (fake_exits_pending && proc_array[i]->exit_code)
-                       break;
-       }
-
-       /* wait for someone to exit */
-       if (!fake_exits_pending) {
-               retval = WaitForMultipleObjects(proc_index, handles, FALSE, (block ? INFINITE : 0));
-               which = retval - WAIT_OBJECT_0;
-       } else {
-               fake_exits_pending--;
-               retval = !WAIT_FAILED;
-               which = i;
-       }
+        HANDLE handles[MAXIMUM_WAIT_OBJECTS];
+        DWORD retval, which;
+        int i;
+
+        if (!proc_index)
+                return NULL;
+
+        /* build array of handles to wait for */
+        for (i = 0; i < proc_index; i++) {
+                handles[i] = (HANDLE) proc_array[i]->pid;
+
+                if (fake_exits_pending && proc_array[i]->exit_code)
+                        break;
+        }
+
+        /* wait for someone to exit */
+        if (!fake_exits_pending) {
+                retval = WaitForMultipleObjects(proc_index, handles, FALSE, (block ? INFINITE : 0));
+                which = retval - WAIT_OBJECT_0;
+        } else {
+                fake_exits_pending--;
+                retval = !WAIT_FAILED;
+                which = i;
+        }
 
         /* If the pointer is not NULL, set the wait status result variable. */
         if (pdwWaitStatus)
             *pdwWaitStatus = retval;
 
-       /* return pointer to process */
+        /* return pointer to process */
         if ((retval == WAIT_TIMEOUT) || (retval == WAIT_FAILED)) {
-               return NULL;
+                return NULL;
+        }
+        else {
+                sub_process* pproc = proc_array[which];
+                process_adjust_wait_state(pproc);
+                return pproc;
         }
-       else {
-               sub_process* pproc = proc_array[which];
-               process_adjust_wait_state(pproc);
-               return pproc;
-       } 
 }
 
 /*
@@ -256,9 +258,9 @@ process_wait_for_any_private(int block, DWORD* pdwWaitStatus)
 BOOL
 process_kill(HANDLE proc, int signal)
 {
-       sub_process* pproc = (sub_process*) proc;
-       pproc->signal = signal;
-       return (TerminateProcess((HANDLE) pproc->pid, signal));
+        sub_process* pproc = (sub_process*) proc;
+        pproc->signal = signal;
+        return (TerminateProcess((HANDLE) pproc->pid, signal));
 }
 
 /*
@@ -270,8 +272,8 @@ process_kill(HANDLE proc, int signal)
 void
 process_register(HANDLE proc)
 {
-       if (proc_index < MAXIMUM_WAIT_OBJECTS)
-               proc_array[proc_index++] = (sub_process *) proc;
+        if (proc_index < MAXIMUM_WAIT_OBJECTS)
+                proc_array[proc_index++] = (sub_process *) proc;
 }
 
 /*
@@ -280,7 +282,7 @@ process_register(HANDLE proc)
 int
 process_used_slots(void)
 {
-       return proc_index;
+        return proc_index;
 }
 
 /*
@@ -288,17 +290,17 @@ process_used_slots(void)
  * of the children to die and return results. To call this function,
  * you must do 1 of things:
  *
- *     x = process_easy(...);
+ *      x = process_easy(...);
  *
  * or
  *
- *     x = process_init_fd();
- *     process_register(x);
+ *      x = process_init_fd();
+ *      process_register(x);
  *
  * or
  *
- *     x = process_init();
- *     process_register(x);
+ *      x = process_init();
+ *      process_register(x);
  *
  * You must NOT then call process_pipe_io() because this function is
  * not capable of handling automatic notification of any child
@@ -308,18 +310,18 @@ process_used_slots(void)
 HANDLE
 process_wait_for_any(int block, DWORD* pdwWaitStatus)
 {
-       sub_process* pproc = process_wait_for_any_private(block, pdwWaitStatus);
-
-       if (!pproc)
-               return NULL;
-       else {
-               /*
-                * Ouch! can't tell caller if this fails directly. Caller
-                * will have to use process_last_err()
+        sub_process* pproc = process_wait_for_any_private(block, pdwWaitStatus);
+
+        if (!pproc)
+                return NULL;
+        else {
+                /*
+                 * Ouch! can't tell caller if this fails directly. Caller
+                 * will have to use process_last_err()
                  */
-               (void) process_file_io(pproc);
-               return ((HANDLE) pproc);
-       }
+                (void) process_file_io(pproc);
+                return ((HANDLE) pproc);
+        }
 }
 
 long
@@ -333,14 +335,14 @@ long
 process_last_err(HANDLE proc)
 {
         if (proc == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE;
-       return (((sub_process *)proc)->last_err);
+        return (((sub_process *)proc)->last_err);
 }
 
 long
 process_exit_code(HANDLE proc)
 {
         if (proc == INVALID_HANDLE_VALUE) return EXIT_FAILURE;
-       return (((sub_process *)proc)->exit_code);
+        return (((sub_process *)proc)->exit_code);
 }
 
 void
@@ -349,7 +351,7 @@ process_noinherit(int fd)
   HANDLE fh = (HANDLE)_get_osfhandle(fd);
 
   if (fh && fh != INVALID_HANDLE_VALUE)
-       SetHandleInformation(fh, HANDLE_FLAG_INHERIT, 0);
+        SetHandleInformation(fh, HANDLE_FLAG_INHERIT, 0);
 }
 
 /*
@@ -362,183 +364,183 @@ a reasonable error handling for this function.
 char *
 process_outbuf(HANDLE proc)
 {
-       return (((sub_process *)proc)->outp);
+        return (((sub_process *)proc)->outp);
 }
 
 char *
 process_errbuf(HANDLE proc)
 {
-       return (((sub_process *)proc)->errp);
+        return (((sub_process *)proc)->errp);
 }
 
 int
 process_outcnt(HANDLE proc)
 {
-       return (((sub_process *)proc)->outcnt);
+        return (((sub_process *)proc)->outcnt);
 }
 
 int
 process_errcnt(HANDLE proc)
 {
-       return (((sub_process *)proc)->errcnt);
+        return (((sub_process *)proc)->errcnt);
 }
 
 void
 process_pipes(HANDLE proc, int pipes[3])
 {
-       pipes[0] = ((sub_process *)proc)->sv_stdin[0];
-       pipes[1] = ((sub_process *)proc)->sv_stdout[0];
-       pipes[2] = ((sub_process *)proc)->sv_stderr[0];
-       return;
+        pipes[0] = ((sub_process *)proc)->sv_stdin[0];
+        pipes[1] = ((sub_process *)proc)->sv_stdout[0];
+        pipes[2] = ((sub_process *)proc)->sv_stderr[0];
+        return;
 }
 */
 
-       HANDLE
+        HANDLE
 process_init()
 {
-       sub_process *pproc;
-       /*
-        * open file descriptors for attaching stdin/stdout/sterr
-        */
-       HANDLE stdin_pipes[2];
-       HANDLE stdout_pipes[2];
-       HANDLE stderr_pipes[2];
-       SECURITY_ATTRIBUTES inherit;
-       BYTE sd[SECURITY_DESCRIPTOR_MIN_LENGTH];
-
-       pproc = malloc(sizeof(*pproc));
-       memset(pproc, 0, sizeof(*pproc));
-
-       /* We can't use NULL for lpSecurityDescriptor because that
-          uses the default security descriptor of the calling process.
-          Instead we use a security descriptor with no DACL.  This
-          allows nonrestricted access to the associated objects. */
-
-       if (!InitializeSecurityDescriptor((PSECURITY_DESCRIPTOR)(&sd),
-                                         SECURITY_DESCRIPTOR_REVISION)) {
-               pproc->last_err = GetLastError();
-               pproc->lerrno = E_SCALL;
-               return((HANDLE)pproc);
-       }
-
-       inherit.nLength = sizeof(inherit);
-       inherit.lpSecurityDescriptor = (PSECURITY_DESCRIPTOR)(&sd);
-       inherit.bInheritHandle = TRUE;
-
-       // By convention, parent gets pipe[0], and child gets pipe[1]
-       // This means the READ side of stdin pipe goes into pipe[1]
-       // and the WRITE side of the stdout and stderr pipes go into pipe[1]
-       if (CreatePipe( &stdin_pipes[1], &stdin_pipes[0], &inherit, 0) == FALSE ||
-       CreatePipe( &stdout_pipes[0], &stdout_pipes[1], &inherit, 0) == FALSE ||
-       CreatePipe( &stderr_pipes[0], &stderr_pipes[1], &inherit, 0) == FALSE) {
-
-               pproc->last_err = GetLastError();
-               pproc->lerrno = E_SCALL;
-               return((HANDLE)pproc);
-       }
-
-       //
-       // Mark the parent sides of the pipes as non-inheritable
-       //
-       if (SetHandleInformation(stdin_pipes[0],
-                               HANDLE_FLAG_INHERIT, 0) == FALSE ||
-               SetHandleInformation(stdout_pipes[0],
-                               HANDLE_FLAG_INHERIT, 0) == FALSE ||
-               SetHandleInformation(stderr_pipes[0],
-                               HANDLE_FLAG_INHERIT, 0) == FALSE) {
-
-               pproc->last_err = GetLastError();
-               pproc->lerrno = E_SCALL;
-               return((HANDLE)pproc);
-       }
-       pproc->sv_stdin[0]  = (intptr_t) stdin_pipes[0];
-       pproc->sv_stdin[1]  = (intptr_t) stdin_pipes[1];
-       pproc->sv_stdout[0] = (intptr_t) stdout_pipes[0];
-       pproc->sv_stdout[1] = (intptr_t) stdout_pipes[1];
-       pproc->sv_stderr[0] = (intptr_t) stderr_pipes[0];
-       pproc->sv_stderr[1] = (intptr_t) stderr_pipes[1];
-
-       pproc->using_pipes = 1;
-
-       pproc->lerrno = 0;
-
-       return((HANDLE)pproc);
+        sub_process *pproc;
+        /*
+         * open file descriptors for attaching stdin/stdout/sterr
+         */
+        HANDLE stdin_pipes[2];
+        HANDLE stdout_pipes[2];
+        HANDLE stderr_pipes[2];
+        SECURITY_ATTRIBUTES inherit;
+        BYTE sd[SECURITY_DESCRIPTOR_MIN_LENGTH];
+
+        pproc = malloc(sizeof(*pproc));
+        memset(pproc, 0, sizeof(*pproc));
+
+        /* We can't use NULL for lpSecurityDescriptor because that
+           uses the default security descriptor of the calling process.
+           Instead we use a security descriptor with no DACL.  This
+           allows nonrestricted access to the associated objects. */
+
+        if (!InitializeSecurityDescriptor((PSECURITY_DESCRIPTOR)(&sd),
+                                          SECURITY_DESCRIPTOR_REVISION)) {
+                pproc->last_err = GetLastError();
+                pproc->lerrno = E_SCALL;
+                return((HANDLE)pproc);
+        }
+
+        inherit.nLength = sizeof(inherit);
+        inherit.lpSecurityDescriptor = (PSECURITY_DESCRIPTOR)(&sd);
+        inherit.bInheritHandle = TRUE;
+
+        // By convention, parent gets pipe[0], and child gets pipe[1]
+        // This means the READ side of stdin pipe goes into pipe[1]
+        // and the WRITE side of the stdout and stderr pipes go into pipe[1]
+        if (CreatePipe( &stdin_pipes[1], &stdin_pipes[0], &inherit, 0) == FALSE ||
+        CreatePipe( &stdout_pipes[0], &stdout_pipes[1], &inherit, 0) == FALSE ||
+        CreatePipe( &stderr_pipes[0], &stderr_pipes[1], &inherit, 0) == FALSE) {
+
+                pproc->last_err = GetLastError();
+                pproc->lerrno = E_SCALL;
+                return((HANDLE)pproc);
+        }
+
+        //
+        // Mark the parent sides of the pipes as non-inheritable
+        //
+        if (SetHandleInformation(stdin_pipes[0],
+                                HANDLE_FLAG_INHERIT, 0) == FALSE ||
+                SetHandleInformation(stdout_pipes[0],
+                                HANDLE_FLAG_INHERIT, 0) == FALSE ||
+                SetHandleInformation(stderr_pipes[0],
+                                HANDLE_FLAG_INHERIT, 0) == FALSE) {
+
+                pproc->last_err = GetLastError();
+                pproc->lerrno = E_SCALL;
+                return((HANDLE)pproc);
+        }
+        pproc->sv_stdin[0]  = (intptr_t) stdin_pipes[0];
+        pproc->sv_stdin[1]  = (intptr_t) stdin_pipes[1];
+        pproc->sv_stdout[0] = (intptr_t) stdout_pipes[0];
+        pproc->sv_stdout[1] = (intptr_t) stdout_pipes[1];
+        pproc->sv_stderr[0] = (intptr_t) stderr_pipes[0];
+        pproc->sv_stderr[1] = (intptr_t) stderr_pipes[1];
+
+        pproc->using_pipes = 1;
+
+        pproc->lerrno = 0;
+
+        return((HANDLE)pproc);
 }
 
 
-       HANDLE
+        HANDLE
 process_init_fd(HANDLE stdinh, HANDLE stdouth, HANDLE stderrh)
 {
-       sub_process *pproc;
+        sub_process *pproc;
 
-       pproc = malloc(sizeof(*pproc));
-       if (pproc) {
-               memset(pproc, 0, sizeof(*pproc));
+        pproc = malloc(sizeof(*pproc));
+        if (pproc) {
+                memset(pproc, 0, sizeof(*pproc));
 
-               /*
-                * Just pass the provided file handles to the 'child
-                * side' of the pipe, bypassing pipes altogether.
-                */
-               pproc->sv_stdin[1]  = (intptr_t) stdinh;
-               pproc->sv_stdout[1] = (intptr_t) stdouth;
-               pproc->sv_stderr[1] = (intptr_t) stderrh;
+                /*
+                 * Just pass the provided file handles to the 'child
+                 * side' of the pipe, bypassing pipes altogether.
+                 */
+                pproc->sv_stdin[1]  = (intptr_t) stdinh;
+                pproc->sv_stdout[1] = (intptr_t) stdouth;
+                pproc->sv_stderr[1] = (intptr_t) stderrh;
 
-               pproc->last_err = pproc->lerrno = 0;
-       }
+                pproc->last_err = pproc->lerrno = 0;
+        }
 
-       return((HANDLE)pproc);
+        return((HANDLE)pproc);
 }
 
 
 static HANDLE
 find_file(const char *exec_path, const char *path_var,
-         char *full_fname, DWORD full_len)
+          char *full_fname, DWORD full_len)
 {
-       HANDLE exec_handle;
-       char *fname;
-       char *ext;
-       DWORD req_len;
-       int i;
-       static const char *extensions[] =
-         /* Should .com come before no-extension case?  */
-         { ".exe", ".cmd", ".bat", "", ".com", NULL };
-
-       fname = xmalloc(strlen(exec_path) + 5);
-       strcpy(fname, exec_path);
-       ext = fname + strlen(fname);
-
-       for (i = 0; extensions[i]; i++) {
-               strcpy(ext, extensions[i]);
-               if (((req_len = SearchPath (path_var, fname, NULL, full_len,
-                                           full_fname, NULL)) > 0
-                    /* For compatibility with previous code, which
-                       used OpenFile, and with Windows operation in
-                       general, also look in various default
-                       locations, such as Windows directory and
-                       Windows System directory.  Warning: this also
-                       searches PATH in the Make's environment, which
-                       might not be what the Makefile wants, but it
-                       seems to be OK as a fallback, after the
-                       previous SearchPath failed to find on child's
-                       PATH.  */
-                    || (req_len = SearchPath (NULL, fname, NULL, full_len,
-                                              full_fname, NULL)) > 0)
-                   && req_len <= full_len
-                   && (exec_handle =
-                               CreateFile(full_fname,
-                                          GENERIC_READ,
-                                          FILE_SHARE_READ | FILE_SHARE_WRITE,
-                                          NULL,
-                                          OPEN_EXISTING,
-                                          FILE_ATTRIBUTE_NORMAL,
-                                          NULL)) != INVALID_HANDLE_VALUE) {
-                       free(fname);
-                       return(exec_handle);
-               }
-       }
-
-       free(fname);
-       return INVALID_HANDLE_VALUE;
+        HANDLE exec_handle;
+        char *fname;
+        char *ext;
+        DWORD req_len;
+        int i;
+        static const char *extensions[] =
+          /* Should .com come before no-extension case?  */
+          { ".exe", ".cmd", ".bat", "", ".com", NULL };
+
+        fname = xmalloc(strlen(exec_path) + 5);
+        strcpy(fname, exec_path);
+        ext = fname + strlen(fname);
+
+        for (i = 0; extensions[i]; i++) {
+                strcpy(ext, extensions[i]);
+                if (((req_len = SearchPath (path_var, fname, NULL, full_len,
+                                            full_fname, NULL)) > 0
+                     /* For compatibility with previous code, which
+                        used OpenFile, and with Windows operation in
+                        general, also look in various default
+                        locations, such as Windows directory and
+                        Windows System directory.  Warning: this also
+                        searches PATH in the Make's environment, which
+                        might not be what the Makefile wants, but it
+                        seems to be OK as a fallback, after the
+                        previous SearchPath failed to find on child's
+                        PATH.  */
+                     || (req_len = SearchPath (NULL, fname, NULL, full_len,
+                                               full_fname, NULL)) > 0)
+                    && req_len <= full_len
+                    && (exec_handle =
+                                CreateFile(full_fname,
+                                           GENERIC_READ,
+                                           FILE_SHARE_READ | FILE_SHARE_WRITE,
+                                           NULL,
+                                           OPEN_EXISTING,
+                                           FILE_ATTRIBUTE_NORMAL,
+                                           NULL)) != INVALID_HANDLE_VALUE) {
+                        free(fname);
+                        return(exec_handle);
+                }
+        }
+
+        free(fname);
+        return INVALID_HANDLE_VALUE;
 }
 
 /*
@@ -549,16 +551,16 @@ find_file(const char *exec_path, const char *path_var,
 static int
 batch_file_with_spaces(const char *fname)
 {
-       size_t fnlen = strlen(fname);
-
-       return (fnlen > 4
-               && (_strnicmp(fname + fnlen - 4, ".bat", 4) == 0
-                   || _strnicmp(fname + fnlen - 4, ".cmd", 4) == 0)
-               /* The set of characters in the 2nd arg to strpbrk
-                  should be the same one used by make_command_line
-                  below to decide whether an argv[] element needs
-                  quoting.  */
-               && strpbrk(fname, " \t") != NULL);
+        size_t fnlen = strlen(fname);
+
+        return (fnlen > 4
+                && (_strnicmp(fname + fnlen - 4, ".bat", 4) == 0
+                    || _strnicmp(fname + fnlen - 4, ".cmd", 4) == 0)
+                /* The set of characters in the 2nd arg to strpbrk
+                   should be the same one used by make_command_line
+                   below to decide whether an argv[] element needs
+                   quoting.  */
+                && strpbrk(fname, " \t") != NULL);
 }
 
 
@@ -571,299 +573,333 @@ batch_file_with_spaces(const char *fname)
  */
 long
 process_begin(
-       HANDLE proc,
-       char **argv,
-       char **envp,
-       char *exec_path,
-       char *as_user)
+        HANDLE proc,
+        char **argv,
+        char **envp,
+        char *exec_path,
+        char *as_user)
 {
-       sub_process *pproc = (sub_process *)proc;
-       char *shell_name = 0;
-       int file_not_found=0;
-       HANDLE exec_handle;
-       char exec_fname[MAX_PATH];
-       const char *path_var = NULL;
-       char **ep;
-       char buf[256];
-       DWORD bytes_returned;
-       DWORD flags;
-       char *command_line;
-       STARTUPINFO startInfo;
-       PROCESS_INFORMATION procInfo;
-       char *envblk=NULL;
-       int pass_null_exec_path = 0;
-
-       /*
-        *  Shell script detection...  if the exec_path starts with #! then
-        *  we want to exec shell-script-name exec-path, not just exec-path
-        *  NT doesn't recognize #!/bin/sh or #!/etc/Tivoli/bin/perl.  We do not
-        *  hard-code the path to the shell or perl or whatever:  Instead, we
-        *  assume it's in the path somewhere (generally, the NT tools
-        *  bin directory)
-        */
-
-       /* Use the Makefile's value of PATH to look for the program to
-          execute, because it could be different from Make's PATH
-          (e.g., if the target sets its own value.  */
-       if (envp)
-               for (ep = envp; *ep; ep++) {
-                       if (strncmp (*ep, "PATH=", 5) == 0
-                           || strncmp (*ep, "Path=", 5) == 0) {
-                               path_var = *ep + 5;
-                               break;
-                       }
-               }
-       exec_handle = find_file(exec_path, path_var,
-                               exec_fname, sizeof(exec_fname));
-
-       /*
-        * If we couldn't open the file, just assume that Windows will be
-        * somehow able to find and execute it.
-        */
-       if (exec_handle == INVALID_HANDLE_VALUE) {
-               file_not_found++;
-       }
-       else {
-               /* Attempt to read the first line of the file */
-               if (ReadFile( exec_handle,
-                               buf, sizeof(buf) - 1, /* leave room for trailing NULL */
-                               &bytes_returned, 0) == FALSE || bytes_returned < 2) {
-
-                       pproc->last_err = GetLastError();
-                       pproc->lerrno = E_IO;
-                       CloseHandle(exec_handle);
-                       return(-1);
-               }
-               if (buf[0] == '#' && buf[1] == '!') {
-                       /*
-                        *  This is a shell script...  Change the command line from
-                        *      exec_path args to shell_name exec_path args
-                        */
-                       char *p;
-
-                       /*  Make sure buf is NULL terminated */
-                       buf[bytes_returned] = 0;
-                       /*
-                        * Depending on the file system type, etc. the first line
-                        * of the shell script may end with newline or newline-carriage-return
-                        * Whatever it ends with, cut it off.
-                        */
-                       p= strchr(buf, '\n');
-                       if (p)
-                               *p = 0;
-                       p = strchr(buf, '\r');
-                       if (p)
-                               *p = 0;
-
-                       /*
-                        *  Find base name of shell
-                        */
-                       shell_name = strrchr( buf, '/');
-                       if (shell_name) {
-                               shell_name++;
-                       } else {
-                               shell_name = &buf[2];/* skipping "#!" */
-                       }
-
-               }
-               CloseHandle(exec_handle);
-       }
-
-       flags = 0;
-
-       if (file_not_found)
-               command_line = make_command_line( shell_name, exec_path, argv);
-       else {
-               /* If exec_fname includes whitespace, CreateProcess
-                  behaves erratically and unreliably, and often fails
-                  if argv[0] also includes whitespace (and thus will
-                  be quoted by make_command_line below).  So in that
-                  case, we don't pass exec_fname as the 1st arg to
-                  CreateProcess, but instead replace argv[0] with
-                  exec_fname (to keep its leading directories and
-                  extension as found by find_file), and pass NULL to
-                  CreateProcess as its 1st arg.  This works around
-                  the bugs in CreateProcess, which are probably
-                  caused by its passing the command to cmd.exe with
-                  some incorrect quoting.  */
-               if (!shell_name
-                   && batch_file_with_spaces(exec_fname)
-                   && _stricmp(exec_path, argv[0]) == 0) {
-                       pass_null_exec_path = 1;
-                       free (argv[0]);
-                       argv[0] = xstrdup(exec_fname);
-               }
-               command_line = make_command_line( shell_name, exec_fname, argv);
-       }
-
-       if ( command_line == NULL ) {
-               pproc->last_err = 0;
-               pproc->lerrno = E_NO_MEM;
-               return(-1);
-       }
-
-       if (envp) {
-               if (arr2envblk(envp, &envblk) ==FALSE) {
-                       pproc->last_err = 0;
-                       pproc->lerrno = E_NO_MEM;
-                       free( command_line );
-                       return(-1);
-               }
-       }
-
-       if (shell_name || file_not_found || pass_null_exec_path) {
-               exec_path = 0;  /* Search for the program in %Path% */
-       } else {
-               exec_path = exec_fname;
-       }
-
-       /*
-        *  Set up inherited stdin, stdout, stderr for child
-        */
-       GetStartupInfo(&startInfo);
-       startInfo.dwFlags = STARTF_USESTDHANDLES;
-       startInfo.lpReserved = 0;
-       startInfo.cbReserved2 = 0;
-       startInfo.lpReserved2 = 0;
-       startInfo.lpTitle = shell_name ? shell_name : exec_path;
-       startInfo.hStdInput = (HANDLE)pproc->sv_stdin[1];
-       startInfo.hStdOutput = (HANDLE)pproc->sv_stdout[1];
-       startInfo.hStdError = (HANDLE)pproc->sv_stderr[1];
-
-       if (as_user) {
-               if (envblk) free(envblk);
-               return -1;
-       } else {
-               DB (DB_JOBS, ("CreateProcess(%s,%s,...)\n",
-                       exec_path ? exec_path : "NULL",
-                       command_line ? command_line : "NULL"));
-               if (CreateProcess(
-                       exec_path,
-                       command_line,
-                       NULL,
-                       0, /* default security attributes for thread */
-                       TRUE, /* inherit handles (e.g. helper pipes, oserv socket) */
-                       flags,
-                       envblk,
-                       0, /* default starting directory */
-                       &startInfo,
-                       &procInfo) == FALSE) {
-
-                       pproc->last_err = GetLastError();
-                       pproc->lerrno = E_FORK;
-                       fprintf(stderr, "process_begin: CreateProcess(%s, %s, ...) failed.\n",
+        sub_process *pproc = (sub_process *)proc;
+        char *shell_name = 0;
+        int file_not_found=0;
+        HANDLE exec_handle;
+        char exec_fname[MAX_PATH];
+        const char *path_var = NULL;
+        char **ep;
+        char buf[MAX_PATH];
+        DWORD bytes_returned;
+        DWORD flags;
+        char *command_line;
+        STARTUPINFO startInfo;
+        PROCESS_INFORMATION procInfo;
+        char *envblk=NULL;
+        int envsize_needed = 0;
+        int pass_null_exec_path = 0;
+
+        /*
+         *  Shell script detection...  if the exec_path starts with #! then
+         *  we want to exec shell-script-name exec-path, not just exec-path
+         *  NT doesn't recognize #!/bin/sh or #!/etc/Tivoli/bin/perl.  We do not
+         *  hard-code the path to the shell or perl or whatever:  Instead, we
+         *  assume it's in the path somewhere (generally, the NT tools
+         *  bin directory)
+         */
+
+        /* Use the Makefile's value of PATH to look for the program to
+           execute, because it could be different from Make's PATH
+           (e.g., if the target sets its own value.  */
+        if (envp)
+                for (ep = envp; *ep; ep++) {
+                        if (strncmp (*ep, "PATH=", 5) == 0
+                            || strncmp (*ep, "Path=", 5) == 0) {
+                                path_var = *ep + 5;
+                                break;
+                        }
+                }
+        exec_handle = find_file(exec_path, path_var,
+                                exec_fname, sizeof(exec_fname));
+
+        /*
+         * If we couldn't open the file, just assume that Windows will be
+         * somehow able to find and execute it.  If the first character
+         * of the command is '/', assume they set SHELL to a Unixy shell
+         * that have some magic mounts known only to it, and run the whole
+         * command via $SHELL -c "COMMAND" instead.
+         */
+        if (exec_handle == INVALID_HANDLE_VALUE) {
+                if (exec_path[0] == '/') {
+                        char *new_argv0;
+                        char **argvi = argv;
+                        int arglen = 0;
+
+                        strcpy(buf, variable_expand ("$(SHELL)"));
+                        shell_name = &buf[0];
+                        strcpy(exec_fname, "-c");
+                        /* Construct a single command string in argv[0].  */
+                        while (*argvi) {
+                                arglen += strlen(*argvi) + 1;
+                                argvi++;
+                        }
+                        new_argv0 = xmalloc(arglen + 1);
+                        new_argv0[0] = '\0';
+                        for (argvi = argv; *argvi; argvi++) {
+                                strcat(new_argv0, *argvi);
+                                strcat(new_argv0, " ");
+                        }
+                        /* Remove the extra blank at the end.  */
+                        new_argv0[arglen-1] = '\0';
+                        free(argv[0]);
+                        argv[0] = new_argv0;
+                        argv[1] = NULL;
+                }
+                else
+                        file_not_found++;
+        }
+        else {
+                /* Attempt to read the first line of the file */
+                if (ReadFile( exec_handle,
+                                buf, sizeof(buf) - 1, /* leave room for trailing NULL */
+                                &bytes_returned, 0) == FALSE || bytes_returned < 2) {
+
+                        pproc->last_err = GetLastError();
+                        pproc->lerrno = E_IO;
+                        CloseHandle(exec_handle);
+                        return(-1);
+                }
+                if (buf[0] == '#' && buf[1] == '!') {
+                        /*
+                         *  This is a shell script...  Change the command line from
+                         *      exec_path args to shell_name exec_path args
+                         */
+                        char *p;
+
+                        /*  Make sure buf is NULL terminated */
+                        buf[bytes_returned] = 0;
+                        /*
+                         * Depending on the file system type, etc. the first line
+                         * of the shell script may end with newline or newline-carriage-return
+                         * Whatever it ends with, cut it off.
+                         */
+                        p= strchr(buf, '\n');
+                        if (p)
+                                *p = 0;
+                        p = strchr(buf, '\r');
+                        if (p)
+                                *p = 0;
+
+                        /*
+                         *  Find base name of shell
+                         */
+                        shell_name = strrchr( buf, '/');
+                        if (shell_name) {
+                                shell_name++;
+                        } else {
+                                shell_name = &buf[2];/* skipping "#!" */
+                        }
+
+                }
+                CloseHandle(exec_handle);
+        }
+
+        flags = 0;
+
+        if (file_not_found)
+                command_line = make_command_line( shell_name, exec_path, argv);
+        else {
+                /* If exec_fname includes whitespace, CreateProcess
+                   behaves erratically and unreliably, and often fails
+                   if argv[0] also includes whitespace (and thus will
+                   be quoted by make_command_line below).  So in that
+                   case, we don't pass exec_fname as the 1st arg to
+                   CreateProcess, but instead replace argv[0] with
+                   exec_fname (to keep its leading directories and
+                   extension as found by find_file), and pass NULL to
+                   CreateProcess as its 1st arg.  This works around
+                   the bugs in CreateProcess, which are probably
+                   caused by its passing the command to cmd.exe with
+                   some incorrect quoting.  */
+                if (!shell_name
+                    && batch_file_with_spaces(exec_fname)
+                    && _stricmp(exec_path, argv[0]) == 0) {
+                        pass_null_exec_path = 1;
+                        free (argv[0]);
+                        argv[0] = xstrdup(exec_fname);
+                }
+                command_line = make_command_line( shell_name, exec_fname, argv);
+        }
+
+        if ( command_line == NULL ) {
+                pproc->last_err = 0;
+                pproc->lerrno = E_NO_MEM;
+                return(-1);
+        }
+
+        if (envp) {
+                if (arr2envblk(envp, &envblk, &envsize_needed) == FALSE) {
+                        pproc->last_err = 0;
+                        pproc->lerrno = E_NO_MEM;
+                        free( command_line );
+                        if (pproc->last_err == ERROR_INVALID_PARAMETER
+                            && envsize_needed > 32*1024) {
+                                fprintf (stderr, "CreateProcess failed, probably because environment is too large (%d bytes).\n",
+                                         envsize_needed);
+                        }
+                        return(-1);
+                }
+        }
+
+        if (shell_name || file_not_found || pass_null_exec_path) {
+                exec_path = 0;  /* Search for the program in %Path% */
+        } else {
+                exec_path = exec_fname;
+        }
+
+        /*
+         *  Set up inherited stdin, stdout, stderr for child
+         */
+        GetStartupInfo(&startInfo);
+        startInfo.dwFlags = STARTF_USESTDHANDLES;
+        startInfo.lpReserved = 0;
+        startInfo.cbReserved2 = 0;
+        startInfo.lpReserved2 = 0;
+        startInfo.hStdInput = (HANDLE)pproc->sv_stdin[1];
+        startInfo.hStdOutput = (HANDLE)pproc->sv_stdout[1];
+        startInfo.hStdError = (HANDLE)pproc->sv_stderr[1];
+
+        if (as_user) {
+                free(envblk);
+                return -1;
+        } else {
+                DB (DB_JOBS, ("CreateProcess(%s,%s,...)\n",
+                        exec_path ? exec_path : "NULL",
+                        command_line ? command_line : "NULL"));
+                if (CreateProcess(
+                        exec_path,
+                        command_line,
+                        NULL,
+                        0, /* default security attributes for thread */
+                        TRUE, /* inherit handles (e.g. helper pipes, oserv socket) */
+                        flags,
+                        envblk,
+                        0, /* default starting directory */
+                        &startInfo,
+                        &procInfo) == FALSE) {
+
+                        pproc->last_err = GetLastError();
+                        pproc->lerrno = E_FORK;
+                        fprintf(stderr, "process_begin: CreateProcess(%s, %s, ...) failed.\n",
                                 exec_path ? exec_path : "NULL", command_line);
-                       if (envblk) free(envblk);
-                       free( command_line );
-                       return(-1);
-               }
-       }
-
-       pproc->pid = (pid_t)procInfo.hProcess;
-       /* Close the thread handle -- we'll just watch the process */
-       CloseHandle(procInfo.hThread);
-
-       /* Close the halves of the pipes we don't need */
-       if ((HANDLE)pproc->sv_stdin[1] != INVALID_HANDLE_VALUE)
-         CloseHandle((HANDLE)pproc->sv_stdin[1]);
-       if ((HANDLE)pproc->sv_stdout[1] != INVALID_HANDLE_VALUE)
-         CloseHandle((HANDLE)pproc->sv_stdout[1]);
-       if ((HANDLE)pproc->sv_stderr[1] != INVALID_HANDLE_VALUE)
-         CloseHandle((HANDLE)pproc->sv_stderr[1]);
+                        free(envblk);
+                        free( command_line );
+                        return(-1);
+                }
+        }
+
+        pproc->pid = (pid_t)procInfo.hProcess;
+        /* Close the thread handle -- we'll just watch the process */
+        CloseHandle(procInfo.hThread);
+
+        /* Close the halves of the pipes we don't need */
+        if ((HANDLE)pproc->sv_stdin[1] != INVALID_HANDLE_VALUE)
+          CloseHandle((HANDLE)pproc->sv_stdin[1]);
+        if ((HANDLE)pproc->sv_stdout[1] != INVALID_HANDLE_VALUE)
+          CloseHandle((HANDLE)pproc->sv_stdout[1]);
+        if ((HANDLE)pproc->sv_stderr[1] != INVALID_HANDLE_VALUE)
+          CloseHandle((HANDLE)pproc->sv_stderr[1]);
         pproc->sv_stdin[1] = 0;
         pproc->sv_stdout[1] = 0;
         pproc->sv_stderr[1] = 0;
 
-       free( command_line );
-       if (envblk) free(envblk);
-       pproc->lerrno=0;
-       return 0;
+        free( command_line );
+        free(envblk);
+        pproc->lerrno=0;
+        return 0;
 }
 
 
 
-#if 0  /* unused */
+#if 0   /* unused */
 static DWORD
 proc_stdin_thread(sub_process *pproc)
 {
-       DWORD in_done;
-       for (;;) {
-               if (WriteFile( (HANDLE) pproc->sv_stdin[0], pproc->inp, pproc->incnt,
-                                        &in_done, NULL) == FALSE)
-                       _endthreadex(0);
-               // This if should never be true for anonymous pipes, but gives
-               // us a chance to change I/O mechanisms later
-               if (in_done < pproc->incnt) {
-                       pproc->incnt -= in_done;
-                       pproc->inp += in_done;
-               } else {
-                       _endthreadex(0);
-               }
-       }
-       return 0; // for compiler warnings only.. not reached
+        DWORD in_done;
+        for (;;) {
+                if (WriteFile( (HANDLE) pproc->sv_stdin[0], pproc->inp, pproc->incnt,
+                                         &in_done, NULL) == FALSE)
+                        _endthreadex(0);
+                // This if should never be true for anonymous pipes, but gives
+                // us a chance to change I/O mechanisms later
+                if (in_done < pproc->incnt) {
+                        pproc->incnt -= in_done;
+                        pproc->inp += in_done;
+                } else {
+                        _endthreadex(0);
+                }
+        }
+        return 0; // for compiler warnings only.. not reached
 }
 
 static DWORD
 proc_stdout_thread(sub_process *pproc)
 {
-       DWORD bufsize = 1024;
-       char c;
-       DWORD nread;
-       pproc->outp = malloc(bufsize);
-       if (pproc->outp == NULL)
-               _endthreadex(0);
-       pproc->outcnt = 0;
-
-       for (;;) {
-               if (ReadFile( (HANDLE)pproc->sv_stdout[0], &c, 1, &nread, NULL)
-                                       == FALSE) {
-/*                     map_windows32_error_to_string(GetLastError());*/
-                       _endthreadex(0);
-               }
-               if (nread == 0)
-                       _endthreadex(0);
-               if (pproc->outcnt + nread > bufsize) {
-                       bufsize += nread + 512;
-                       pproc->outp = realloc(pproc->outp, bufsize);
-                       if (pproc->outp == NULL) {
-                               pproc->outcnt = 0;
-                               _endthreadex(0);
-                       }
-               }
-               pproc->outp[pproc->outcnt++] = c;
-       }
-       return 0;
+        DWORD bufsize = 1024;
+        char c;
+        DWORD nread;
+        pproc->outp = malloc(bufsize);
+        if (pproc->outp == NULL)
+                _endthreadex(0);
+        pproc->outcnt = 0;
+
+        for (;;) {
+                if (ReadFile( (HANDLE)pproc->sv_stdout[0], &c, 1, &nread, NULL)
+                                        == FALSE) {
+/*                      map_windows32_error_to_string(GetLastError());*/
+                        _endthreadex(0);
+                }
+                if (nread == 0)
+                        _endthreadex(0);
+                if (pproc->outcnt + nread > bufsize) {
+                        bufsize += nread + 512;
+                        pproc->outp = realloc(pproc->outp, bufsize);
+                        if (pproc->outp == NULL) {
+                                pproc->outcnt = 0;
+                                _endthreadex(0);
+                        }
+                }
+                pproc->outp[pproc->outcnt++] = c;
+        }
+        return 0;
 }
 
 static DWORD
 proc_stderr_thread(sub_process *pproc)
 {
-       DWORD bufsize = 1024;
-       char c;
-       DWORD nread;
-       pproc->errp = malloc(bufsize);
-       if (pproc->errp == NULL)
-               _endthreadex(0);
-       pproc->errcnt = 0;
-
-       for (;;) {
-               if (ReadFile( (HANDLE)pproc->sv_stderr[0], &c, 1, &nread, NULL) == FALSE) {
-                       map_windows32_error_to_string(GetLastError());
-                       _endthreadex(0);
-               }
-               if (nread == 0)
-                       _endthreadex(0);
-               if (pproc->errcnt + nread > bufsize) {
-                       bufsize += nread + 512;
-                       pproc->errp = realloc(pproc->errp, bufsize);
-                       if (pproc->errp == NULL) {
-                               pproc->errcnt = 0;
-                               _endthreadex(0);
-                       }
-               }
-               pproc->errp[pproc->errcnt++] = c;
-       }
-       return 0;
+        DWORD bufsize = 1024;
+        char c;
+        DWORD nread;
+        pproc->errp = malloc(bufsize);
+        if (pproc->errp == NULL)
+                _endthreadex(0);
+        pproc->errcnt = 0;
+
+        for (;;) {
+                if (ReadFile( (HANDLE)pproc->sv_stderr[0], &c, 1, &nread, NULL) == FALSE) {
+                        map_windows32_error_to_string(GetLastError());
+                        _endthreadex(0);
+                }
+                if (nread == 0)
+                        _endthreadex(0);
+                if (pproc->errcnt + nread > bufsize) {
+                        bufsize += nread + 512;
+                        pproc->errp = realloc(pproc->errp, bufsize);
+                        if (pproc->errp == NULL) {
+                                pproc->errcnt = 0;
+                                _endthreadex(0);
+                        }
+                }
+                pproc->errp[pproc->errcnt++] = c;
+        }
+        return 0;
 }
 
 
@@ -876,158 +912,158 @@ proc_stderr_thread(sub_process *pproc)
  *
  * Notes/Dependencies:
  */
-       long
+        long
 process_pipe_io(
-       HANDLE proc,
-       char *stdin_data,
-       int stdin_data_len)
+        HANDLE proc,
+        char *stdin_data,
+        int stdin_data_len)
 {
-       sub_process *pproc = (sub_process *)proc;
-       bool_t stdin_eof = FALSE, stdout_eof = FALSE, stderr_eof = FALSE;
-       HANDLE childhand = (HANDLE) pproc->pid;
-       HANDLE tStdin = NULL, tStdout = NULL, tStderr = NULL;
-       unsigned int dwStdin, dwStdout, dwStderr;
-       HANDLE wait_list[4];
-       DWORD wait_count;
-       DWORD wait_return;
-       HANDLE ready_hand;
-       bool_t child_dead = FALSE;
-       BOOL GetExitCodeResult;
-
-       /*
-        *  Create stdin thread, if needed
-        */
-       pproc->inp = stdin_data;
-       pproc->incnt = stdin_data_len;
-       if (!pproc->inp) {
-               stdin_eof = TRUE;
-               CloseHandle((HANDLE)pproc->sv_stdin[0]);
-               pproc->sv_stdin[0] = 0;
-       } else {
-               tStdin = (HANDLE) _beginthreadex( 0, 1024,
-                       (unsigned (__stdcall *) (void *))proc_stdin_thread,
-                                                 pproc, 0, &dwStdin);
-               if (tStdin == 0) {
-                       pproc->last_err = GetLastError();
-                       pproc->lerrno = E_SCALL;
-                       goto done;
-               }
-       }
-
-       /*
-        *   Assume child will produce stdout and stderr
-        */
-       tStdout = (HANDLE) _beginthreadex( 0, 1024,
-               (unsigned (__stdcall *) (void *))proc_stdout_thread, pproc, 0,
-               &dwStdout);
-       tStderr = (HANDLE) _beginthreadex( 0, 1024,
-               (unsigned (__stdcall *) (void *))proc_stderr_thread, pproc, 0,
-               &dwStderr);
-
-       if (tStdout == 0 || tStderr == 0) {
-
-               pproc->last_err = GetLastError();
-               pproc->lerrno = E_SCALL;
-               goto done;
-       }
-
-
-       /*
-        *  Wait for all I/O to finish and for the child process to exit
-        */
-
-       while (!stdin_eof || !stdout_eof || !stderr_eof || !child_dead) {
-               wait_count = 0;
-               if (!stdin_eof) {
-                       wait_list[wait_count++] = tStdin;
-               }
-               if (!stdout_eof) {
-                       wait_list[wait_count++] = tStdout;
-               }
-               if (!stderr_eof) {
-                       wait_list[wait_count++] = tStderr;
-               }
-               if (!child_dead) {
-                       wait_list[wait_count++] = childhand;
-               }
-
-               wait_return = WaitForMultipleObjects(wait_count, wait_list,
-                        FALSE, /* don't wait for all: one ready will do */
-                        child_dead? 1000 :INFINITE); /* after the child dies, subthreads have
-                               one second to collect all remaining output */
-
-               if (wait_return == WAIT_FAILED) {
-/*                     map_windows32_error_to_string(GetLastError());*/
-                       pproc->last_err = GetLastError();
-                       pproc->lerrno = E_SCALL;
-                       goto done;
-               }
-
-               ready_hand = wait_list[wait_return - WAIT_OBJECT_0];
-
-               if (ready_hand == tStdin) {
-                       CloseHandle((HANDLE)pproc->sv_stdin[0]);
-                       pproc->sv_stdin[0] = 0;
-                       CloseHandle(tStdin);
-                       tStdin = 0;
-                       stdin_eof = TRUE;
-
-               } else if (ready_hand == tStdout) {
-
-                       CloseHandle((HANDLE)pproc->sv_stdout[0]);
-                       pproc->sv_stdout[0] = 0;
-                       CloseHandle(tStdout);
-                       tStdout = 0;
-                       stdout_eof = TRUE;
-
-               } else if (ready_hand == tStderr) {
-
-                       CloseHandle((HANDLE)pproc->sv_stderr[0]);
-                       pproc->sv_stderr[0] = 0;
-                       CloseHandle(tStderr);
-                       tStderr = 0;
-                       stderr_eof = TRUE;
-
-               } else if (ready_hand == childhand) {
-
-                       DWORD ierr;
-                       GetExitCodeResult = GetExitCodeProcess(childhand, &ierr);
-                       if (ierr == CONTROL_C_EXIT) {
-                               pproc->signal = SIGINT;
-                       } else {
-                               pproc->exit_code = ierr;
-                       }
-                       if (GetExitCodeResult == FALSE) {
-                               pproc->last_err = GetLastError();
-                               pproc->lerrno = E_SCALL;
-                               goto done;
-                       }
-                       child_dead = TRUE;
-
-               } else {
-
-                       /* ?? Got back a handle we didn't query ?? */
-                       pproc->last_err = 0;
-                       pproc->lerrno = E_FAIL;
-                       goto done;
-               }
-       }
+        sub_process *pproc = (sub_process *)proc;
+        bool_t stdin_eof = FALSE, stdout_eof = FALSE, stderr_eof = FALSE;
+        HANDLE childhand = (HANDLE) pproc->pid;
+        HANDLE tStdin = NULL, tStdout = NULL, tStderr = NULL;
+        unsigned int dwStdin, dwStdout, dwStderr;
+        HANDLE wait_list[4];
+        DWORD wait_count;
+        DWORD wait_return;
+        HANDLE ready_hand;
+        bool_t child_dead = FALSE;
+        BOOL GetExitCodeResult;
+
+        /*
+         *  Create stdin thread, if needed
+         */
+        pproc->inp = stdin_data;
+        pproc->incnt = stdin_data_len;
+        if (!pproc->inp) {
+                stdin_eof = TRUE;
+                CloseHandle((HANDLE)pproc->sv_stdin[0]);
+                pproc->sv_stdin[0] = 0;
+        } else {
+                tStdin = (HANDLE) _beginthreadex( 0, 1024,
+                        (unsigned (__stdcall *) (void *))proc_stdin_thread,
+                                                  pproc, 0, &dwStdin);
+                if (tStdin == 0) {
+                        pproc->last_err = GetLastError();
+                        pproc->lerrno = E_SCALL;
+                        goto done;
+                }
+        }
+
+        /*
+         *   Assume child will produce stdout and stderr
+         */
+        tStdout = (HANDLE) _beginthreadex( 0, 1024,
+                (unsigned (__stdcall *) (void *))proc_stdout_thread, pproc, 0,
+                &dwStdout);
+        tStderr = (HANDLE) _beginthreadex( 0, 1024,
+                (unsigned (__stdcall *) (void *))proc_stderr_thread, pproc, 0,
+                &dwStderr);
+
+        if (tStdout == 0 || tStderr == 0) {
+
+                pproc->last_err = GetLastError();
+                pproc->lerrno = E_SCALL;
+                goto done;
+        }
+
+
+        /*
+         *  Wait for all I/O to finish and for the child process to exit
+         */
+
+        while (!stdin_eof || !stdout_eof || !stderr_eof || !child_dead) {
+                wait_count = 0;
+                if (!stdin_eof) {
+                        wait_list[wait_count++] = tStdin;
+                }
+                if (!stdout_eof) {
+                        wait_list[wait_count++] = tStdout;
+                }
+                if (!stderr_eof) {
+                        wait_list[wait_count++] = tStderr;
+                }
+                if (!child_dead) {
+                        wait_list[wait_count++] = childhand;
+                }
+
+                wait_return = WaitForMultipleObjects(wait_count, wait_list,
+                         FALSE, /* don't wait for all: one ready will do */
+                         child_dead? 1000 :INFINITE); /* after the child dies, subthreads have
+                                one second to collect all remaining output */
+
+                if (wait_return == WAIT_FAILED) {
+/*                      map_windows32_error_to_string(GetLastError());*/
+                        pproc->last_err = GetLastError();
+                        pproc->lerrno = E_SCALL;
+                        goto done;
+                }
+
+                ready_hand = wait_list[wait_return - WAIT_OBJECT_0];
+
+                if (ready_hand == tStdin) {
+                        CloseHandle((HANDLE)pproc->sv_stdin[0]);
+                        pproc->sv_stdin[0] = 0;
+                        CloseHandle(tStdin);
+                        tStdin = 0;
+                        stdin_eof = TRUE;
+
+                } else if (ready_hand == tStdout) {
+
+                        CloseHandle((HANDLE)pproc->sv_stdout[0]);
+                        pproc->sv_stdout[0] = 0;
+                        CloseHandle(tStdout);
+                        tStdout = 0;
+                        stdout_eof = TRUE;
+
+                } else if (ready_hand == tStderr) {
+
+                        CloseHandle((HANDLE)pproc->sv_stderr[0]);
+                        pproc->sv_stderr[0] = 0;
+                        CloseHandle(tStderr);
+                        tStderr = 0;
+                        stderr_eof = TRUE;
+
+                } else if (ready_hand == childhand) {
+
+                        DWORD ierr;
+                        GetExitCodeResult = GetExitCodeProcess(childhand, &ierr);
+                        if (ierr == CONTROL_C_EXIT) {
+                                pproc->signal = SIGINT;
+                        } else {
+                                pproc->exit_code = ierr;
+                        }
+                        if (GetExitCodeResult == FALSE) {
+                                pproc->last_err = GetLastError();
+                                pproc->lerrno = E_SCALL;
+                                goto done;
+                        }
+                        child_dead = TRUE;
+
+                } else {
+
+                        /* ?? Got back a handle we didn't query ?? */
+                        pproc->last_err = 0;
+                        pproc->lerrno = E_FAIL;
+                        goto done;
+                }
+        }
 
  done:
-       if (tStdin != 0)
-               CloseHandle(tStdin);
-       if (tStdout != 0)
-               CloseHandle(tStdout);
-       if (tStderr != 0)
-               CloseHandle(tStderr);
-
-       if (pproc->lerrno)
-               return(-1);
-       else
-               return(0);
+        if (tStdin != 0)
+                CloseHandle(tStdin);
+        if (tStdout != 0)
+                CloseHandle(tStdout);
+        if (tStderr != 0)
+                CloseHandle(tStderr);
+
+        if (pproc->lerrno)
+                return(-1);
+        else
+                return(0);
 
 }
-#endif /* unused */
+#endif  /* unused */
 
 /*
  * Purpose: collects output from child process and returns results
@@ -1038,74 +1074,74 @@ process_pipe_io(
  *
  * Notes/Dependencies:
  */
-       long
+        long
 process_file_io(
-       HANDLE proc)
+        HANDLE proc)
 {
-       sub_process *pproc;
-       HANDLE childhand;
-       DWORD wait_return;
-       BOOL GetExitCodeResult;
+        sub_process *pproc;
+        HANDLE childhand;
+        DWORD wait_return;
+        BOOL GetExitCodeResult;
         DWORD ierr;
 
-       if (proc == NULL)
-               pproc = process_wait_for_any_private(1, 0);
-       else
-               pproc = (sub_process *)proc;
-
-       /* some sort of internal error */
-       if (!pproc)
-               return -1;
-
-       childhand = (HANDLE) pproc->pid;
-
-       /*
-        * This function is poorly named, and could also be used just to wait
-        * for child death if you're doing your own pipe I/O.  If that is
-        * the case, close the pipe handles here.
-        */
-       if (pproc->sv_stdin[0]) {
-               CloseHandle((HANDLE)pproc->sv_stdin[0]);
-               pproc->sv_stdin[0] = 0;
-       }
-       if (pproc->sv_stdout[0]) {
-               CloseHandle((HANDLE)pproc->sv_stdout[0]);
-               pproc->sv_stdout[0] = 0;
-       }
-       if (pproc->sv_stderr[0]) {
-               CloseHandle((HANDLE)pproc->sv_stderr[0]);
-               pproc->sv_stderr[0] = 0;
-       }
-
-       /*
-        *  Wait for the child process to exit
-        */
-
-       wait_return = WaitForSingleObject(childhand, INFINITE);
-
-       if (wait_return != WAIT_OBJECT_0) {
-/*             map_windows32_error_to_string(GetLastError());*/
-               pproc->last_err = GetLastError();
-               pproc->lerrno = E_SCALL;
-               goto done2;
-       }
-
-       GetExitCodeResult = GetExitCodeProcess(childhand, &ierr);
-       if (ierr == CONTROL_C_EXIT) {
-               pproc->signal = SIGINT;
-       } else {
-               pproc->exit_code = ierr;
-       }
-       if (GetExitCodeResult == FALSE) {
-               pproc->last_err = GetLastError();
-               pproc->lerrno = E_SCALL;
-       }
+        if (proc == NULL)
+                pproc = process_wait_for_any_private(1, 0);
+        else
+                pproc = (sub_process *)proc;
+
+        /* some sort of internal error */
+        if (!pproc)
+                return -1;
+
+        childhand = (HANDLE) pproc->pid;
+
+        /*
+         * This function is poorly named, and could also be used just to wait
+         * for child death if you're doing your own pipe I/O.  If that is
+         * the case, close the pipe handles here.
+         */
+        if (pproc->sv_stdin[0]) {
+                CloseHandle((HANDLE)pproc->sv_stdin[0]);
+                pproc->sv_stdin[0] = 0;
+        }
+        if (pproc->sv_stdout[0]) {
+                CloseHandle((HANDLE)pproc->sv_stdout[0]);
+                pproc->sv_stdout[0] = 0;
+        }
+        if (pproc->sv_stderr[0]) {
+                CloseHandle((HANDLE)pproc->sv_stderr[0]);
+                pproc->sv_stderr[0] = 0;
+        }
+
+        /*
+         *  Wait for the child process to exit
+         */
+
+        wait_return = WaitForSingleObject(childhand, INFINITE);
+
+        if (wait_return != WAIT_OBJECT_0) {
+/*              map_windows32_error_to_string(GetLastError());*/
+                pproc->last_err = GetLastError();
+                pproc->lerrno = E_SCALL;
+                goto done2;
+        }
+
+        GetExitCodeResult = GetExitCodeProcess(childhand, &ierr);
+        if (ierr == CONTROL_C_EXIT) {
+                pproc->signal = SIGINT;
+        } else {
+                pproc->exit_code = ierr;
+        }
+        if (GetExitCodeResult == FALSE) {
+                pproc->last_err = GetLastError();
+                pproc->lerrno = E_SCALL;
+        }
 
 done2:
-       if (pproc->lerrno)
-               return(-1);
-       else
-               return(0);
+        if (pproc->lerrno)
+                return(-1);
+        else
+                return(0);
 
 }
 
@@ -1113,39 +1149,39 @@ done2:
  * Description:  Clean up any leftover handles, etc.  It is up to the
  * caller to manage and free the input, output, and stderr buffers.
  */
-       void
+        void
 process_cleanup(
-       HANDLE proc)
+        HANDLE proc)
 {
-       sub_process *pproc = (sub_process *)proc;
-       int i;
-
-       if (pproc->using_pipes) {
-               for (i= 0; i <= 1; i++) {
-                       if ((HANDLE)pproc->sv_stdin[i]
-                           && (HANDLE)pproc->sv_stdin[i] != INVALID_HANDLE_VALUE)
-                               CloseHandle((HANDLE)pproc->sv_stdin[i]);
-                       if ((HANDLE)pproc->sv_stdout[i]
-                           && (HANDLE)pproc->sv_stdout[i] != INVALID_HANDLE_VALUE)
-                               CloseHandle((HANDLE)pproc->sv_stdout[i]);
-                       if ((HANDLE)pproc->sv_stderr[i]
-                           && (HANDLE)pproc->sv_stderr[i] != INVALID_HANDLE_VALUE)
-                               CloseHandle((HANDLE)pproc->sv_stderr[i]);
-               }
-       }
-       if ((HANDLE)pproc->pid)
-               CloseHandle((HANDLE)pproc->pid);
-
-       free(pproc);
+        sub_process *pproc = (sub_process *)proc;
+        int i;
+
+        if (pproc->using_pipes) {
+                for (i= 0; i <= 1; i++) {
+                        if ((HANDLE)pproc->sv_stdin[i]
+                            && (HANDLE)pproc->sv_stdin[i] != INVALID_HANDLE_VALUE)
+                                CloseHandle((HANDLE)pproc->sv_stdin[i]);
+                        if ((HANDLE)pproc->sv_stdout[i]
+                            && (HANDLE)pproc->sv_stdout[i] != INVALID_HANDLE_VALUE)
+                                CloseHandle((HANDLE)pproc->sv_stdout[i]);
+                        if ((HANDLE)pproc->sv_stderr[i]
+                            && (HANDLE)pproc->sv_stderr[i] != INVALID_HANDLE_VALUE)
+                                CloseHandle((HANDLE)pproc->sv_stderr[i]);
+                }
+        }
+        if ((HANDLE)pproc->pid)
+                CloseHandle((HANDLE)pproc->pid);
+
+        free(pproc);
 }
 
 
 /*
  * Description:
- *      Create a command line buffer to pass to CreateProcess
+ *       Create a command line buffer to pass to CreateProcess
  *
  * Returns:  the buffer or NULL for failure
- *     Shell case:  sh_name a:/full/path/to/script argv[1] argv[2] ...
+ *      Shell case:  sh_name a:/full/path/to/script argv[1] argv[2] ...
  *  Otherwise:   argv[0] argv[1] argv[2] ...
  *
  * Notes/Dependencies:
@@ -1156,234 +1192,237 @@ process_cleanup(
 static char *
 make_command_line( char *shell_name, char *full_exec_path, char **argv)
 {
-       int             argc = 0;
-       char**          argvi;
-       int*            enclose_in_quotes = NULL;
-       int*            enclose_in_quotes_i;
-       unsigned int    bytes_required = 0;
-       char*           command_line;
-       char*           command_line_i;
-       int  cygwin_mode = 0; /* HAVE_CYGWIN_SHELL */
-       int have_sh = 0; /* HAVE_CYGWIN_SHELL */
+        int             argc = 0;
+        char**          argvi;
+        int*            enclose_in_quotes = NULL;
+        int*            enclose_in_quotes_i;
+        unsigned int    bytes_required = 0;
+        char*           command_line;
+        char*           command_line_i;
+        int  cygwin_mode = 0; /* HAVE_CYGWIN_SHELL */
+        int have_sh = 0; /* HAVE_CYGWIN_SHELL */
 
 #ifdef HAVE_CYGWIN_SHELL
-       have_sh = (shell_name != NULL || strstr(full_exec_path, "sh.exe"));
-       cygwin_mode = 1;
+        have_sh = (shell_name != NULL || strstr(full_exec_path, "sh.exe"));
+        cygwin_mode = 1;
 #endif
 
-       if (shell_name && full_exec_path) {
-               bytes_required
-                 = strlen(shell_name) + 1 + strlen(full_exec_path);
-               /*
-                * Skip argv[0] if any, when shell_name is given.
-                */
-               if (*argv) argv++;
-               /*
-                * Add one for the intervening space.
-                */
-               if (*argv) bytes_required++;
-       }
-
-       argvi = argv;
-       while (*(argvi++)) argc++;
-
-       if (argc) {
-               enclose_in_quotes = (int*) calloc(1, argc * sizeof(int));
-
-               if (!enclose_in_quotes) {
-                       return NULL;
-               }
-       }
-
-       /* We have to make one pass through each argv[i] to see if we need
-        * to enclose it in ", so we might as well figure out how much
-        * memory we'll need on the same pass.
-        */
-
-       argvi = argv;
-       enclose_in_quotes_i = enclose_in_quotes;
-       while(*argvi) {
-               char* p = *argvi;
-               unsigned int backslash_count = 0;
-
-               /*
-                * We have to enclose empty arguments in ".
-                */
-               if (!(*p)) *enclose_in_quotes_i = 1;
-
-               while(*p) {
-                       switch (*p) {
-                       case '\"':
-                               /*
-                                * We have to insert a backslash for each "
-                                * and each \ that precedes the ".
-                                */
-                               bytes_required += (backslash_count + 1);
-                               backslash_count = 0;
-                               break;
+        if (shell_name && full_exec_path) {
+                bytes_required
+                  = strlen(shell_name) + 1 + strlen(full_exec_path);
+                /*
+                 * Skip argv[0] if any, when shell_name is given.
+                 * The special case of "-c" in full_exec_path means
+                 * argv[0] is not the shell name, but the command string
+                 * to pass to the shell.
+                 */
+                if (*argv && strcmp(full_exec_path, "-c")) argv++;
+                /*
+                 * Add one for the intervening space.
+                 */
+                if (*argv) bytes_required++;
+        }
+
+        argvi = argv;
+        while (*(argvi++)) argc++;
+
+        if (argc) {
+                enclose_in_quotes = (int*) calloc(1, argc * sizeof(int));
+
+                if (!enclose_in_quotes) {
+                        return NULL;
+                }
+        }
+
+        /* We have to make one pass through each argv[i] to see if we need
+         * to enclose it in ", so we might as well figure out how much
+         * memory we'll need on the same pass.
+         */
+
+        argvi = argv;
+        enclose_in_quotes_i = enclose_in_quotes;
+        while(*argvi) {
+                char* p = *argvi;
+                unsigned int backslash_count = 0;
+
+                /*
+                 * We have to enclose empty arguments in ".
+                 */
+                if (!(*p)) *enclose_in_quotes_i = 1;
+
+                while(*p) {
+                        switch (*p) {
+                        case '\"':
+                                /*
+                                 * We have to insert a backslash for each "
+                                 * and each \ that precedes the ".
+                                 */
+                                bytes_required += (backslash_count + 1);
+                                backslash_count = 0;
+                                break;
 
 #if !defined(HAVE_MKS_SHELL) && !defined(HAVE_CYGWIN_SHELL)
-                       case '\\':
-                               backslash_count++;
-                               break;
+                        case '\\':
+                                backslash_count++;
+                                break;
 #endif
-       /*
-        * At one time we set *enclose_in_quotes_i for '*' or '?' to suppress
-        * wildcard expansion in programs linked with MSVC's SETARGV.OBJ so
-        * that argv in always equals argv out. This was removed.  Say you have
-        * such a program named glob.exe.  You enter
-        * glob '*'
-        * at the sh command prompt.  Obviously the intent is to make glob do the
-        * wildcarding instead of sh.  If we set *enclose_in_quotes_i for '*' or '?',
-        * then the command line that glob would see would be
-        * glob "*"
-        * and the _setargv in SETARGV.OBJ would _not_ expand the *.
-        */
-                       case ' ':
-                       case '\t':
-                               *enclose_in_quotes_i = 1;
-                               /* fall through */
-
-                       default:
-                               backslash_count = 0;
-                               break;
-                       }
-
-                       /*
-                        * Add one for each character in argv[i].
-                        */
-                       bytes_required++;
-
-                       p++;
-               }
-
-               if (*enclose_in_quotes_i) {
-                       /*
-                        * Add one for each enclosing ",
-                        * and one for each \ that precedes the
-                        * closing ".
-                        */
-                       bytes_required += (backslash_count + 2);
-               }
-
-               /*
-                * Add one for the intervening space.
-                */
-               if (*(++argvi)) bytes_required++;
-               enclose_in_quotes_i++;
-       }
-
-       /*
-        * Add one for the terminating NULL.
-        */
-       bytes_required++;
-
-       command_line = (char*) malloc(bytes_required);
-
-       if (!command_line) {
-               if (enclose_in_quotes) free(enclose_in_quotes);
-               return NULL;
-       }
-
-       command_line_i = command_line;
-
-       if (shell_name && full_exec_path) {
-               while(*shell_name) {
-                       *(command_line_i++) = *(shell_name++);
-               }
-
-               *(command_line_i++) = ' ';
-
-               while(*full_exec_path) {
-                       *(command_line_i++) = *(full_exec_path++);
-               }
-
-               if (*argv) {
-                       *(command_line_i++) = ' ';
-               }
-       }
-
-       argvi = argv;
-       enclose_in_quotes_i = enclose_in_quotes;
-
-       while(*argvi) {
-               char* p = *argvi;
-               unsigned int backslash_count = 0;
-
-               if (*enclose_in_quotes_i) {
-                       *(command_line_i++) = '\"';
-               }
-
-               while(*p) {
-                       if (*p == '\"') {
-                               if (cygwin_mode && have_sh) { /* HAVE_CYGWIN_SHELL */
-                                       /* instead of a \", cygwin likes "" */
-                                       *(command_line_i++) = '\"';
-                               } else {
-
-                               /*
-                                * We have to insert a backslash for the "
-                                * and each \ that precedes the ".
-                                */
-                               backslash_count++;
-
-                               while(backslash_count) {
-                                       *(command_line_i++) = '\\';
-                                       backslash_count--;
-                               };
-                               }
+        /*
+         * At one time we set *enclose_in_quotes_i for '*' or '?' to suppress
+         * wildcard expansion in programs linked with MSVC's SETARGV.OBJ so
+         * that argv in always equals argv out. This was removed.  Say you have
+         * such a program named glob.exe.  You enter
+         * glob '*'
+         * at the sh command prompt.  Obviously the intent is to make glob do the
+         * wildcarding instead of sh.  If we set *enclose_in_quotes_i for '*' or '?',
+         * then the command line that glob would see would be
+         * glob "*"
+         * and the _setargv in SETARGV.OBJ would _not_ expand the *.
+         */
+                        case ' ':
+                        case '\t':
+                                *enclose_in_quotes_i = 1;
+                                /* fall through */
+
+                        default:
+                                backslash_count = 0;
+                                break;
+                        }
+
+                        /*
+                         * Add one for each character in argv[i].
+                         */
+                        bytes_required++;
+
+                        p++;
+                }
+
+                if (*enclose_in_quotes_i) {
+                        /*
+                         * Add one for each enclosing ",
+                         * and one for each \ that precedes the
+                         * closing ".
+                         */
+                        bytes_required += (backslash_count + 2);
+                }
+
+                /*
+                 * Add one for the intervening space.
+                 */
+                if (*(++argvi)) bytes_required++;
+                enclose_in_quotes_i++;
+        }
+
+        /*
+         * Add one for the terminating NULL.
+         */
+        bytes_required++;
+
+        command_line = (char*) malloc(bytes_required);
+
+        if (!command_line) {
+                free(enclose_in_quotes);
+                return NULL;
+        }
+
+        command_line_i = command_line;
+
+        if (shell_name && full_exec_path) {
+                while(*shell_name) {
+                        *(command_line_i++) = *(shell_name++);
+                }
+
+                *(command_line_i++) = ' ';
+
+                while(*full_exec_path) {
+                        *(command_line_i++) = *(full_exec_path++);
+                }
+
+                if (*argv) {
+                        *(command_line_i++) = ' ';
+                }
+        }
+
+        argvi = argv;
+        enclose_in_quotes_i = enclose_in_quotes;
+
+        while(*argvi) {
+                char* p = *argvi;
+                unsigned int backslash_count = 0;
+
+                if (*enclose_in_quotes_i) {
+                        *(command_line_i++) = '\"';
+                }
+
+                while(*p) {
+                        if (*p == '\"') {
+                                if (cygwin_mode && have_sh) { /* HAVE_CYGWIN_SHELL */
+                                        /* instead of a \", cygwin likes "" */
+                                        *(command_line_i++) = '\"';
+                                } else {
+
+                                /*
+                                 * We have to insert a backslash for the "
+                                 * and each \ that precedes the ".
+                                 */
+                                backslash_count++;
+
+                                while(backslash_count) {
+                                        *(command_line_i++) = '\\';
+                                        backslash_count--;
+                                };
+                                }
 #if !defined(HAVE_MKS_SHELL) && !defined(HAVE_CYGWIN_SHELL)
-                       } else if (*p == '\\') {
-                               backslash_count++;
-                       } else {
-                               backslash_count = 0;
+                        } else if (*p == '\\') {
+                                backslash_count++;
+                        } else {
+                                backslash_count = 0;
 #endif
-                       }
+                        }
 
-                       /*
-                        * Copy the character.
-                        */
-                       *(command_line_i++) = *(p++);
-               }
+                        /*
+                         * Copy the character.
+                         */
+                        *(command_line_i++) = *(p++);
+                }
 
-               if (*enclose_in_quotes_i) {
+                if (*enclose_in_quotes_i) {
 #if !defined(HAVE_MKS_SHELL) && !defined(HAVE_CYGWIN_SHELL)
-                       /*
-                        * Add one \ for each \ that precedes the
-                        * closing ".
-                        */
-                       while(backslash_count--) {
-                               *(command_line_i++) = '\\';
-                       };
+                        /*
+                         * Add one \ for each \ that precedes the
+                         * closing ".
+                         */
+                        while(backslash_count--) {
+                                *(command_line_i++) = '\\';
+                        };
 #endif
-                       *(command_line_i++) = '\"';
-               }
-
-               /*
-                * Append an intervening space.
-                */
-               if (*(++argvi)) {
-                       *(command_line_i++) = ' ';
-               }
-
-               enclose_in_quotes_i++;
-       }
-
-       /*
-        * Append the terminating NULL.
-        */
-       *command_line_i = '\0';
-
-       if (enclose_in_quotes) free(enclose_in_quotes);
-       return command_line;
+                        *(command_line_i++) = '\"';
+                }
+
+                /*
+                 * Append an intervening space.
+                 */
+                if (*(++argvi)) {
+                        *(command_line_i++) = ' ';
+                }
+
+                enclose_in_quotes_i++;
+        }
+
+        /*
+         * Append the terminating NULL.
+         */
+        *command_line_i = '\0';
+
+        free(enclose_in_quotes);
+        return command_line;
 }
 
 /*
  * Description: Given an argv and optional envp, launch the process
  *              using the default stdin, stdout, and stderr handles.
  *              Also, register process so that process_wait_for_any_private()
- *             can be used via process_file_io(NULL) or
- *             process_wait_for_any().
+ *              can be used via process_file_io(NULL) or
+ *              process_wait_for_any().
  *
  * Returns:
  *
@@ -1391,10 +1430,10 @@ make_command_line( char *shell_name, char *full_exec_path, char **argv)
  */
 HANDLE
 process_easy(
-       char **argv,
-       char **envp,
-       int outfd,
-       int errfd)
+        char **argv,
+        char **envp,
+        int outfd,
+        int errfd)
 {
   HANDLE hIn = INVALID_HANDLE_VALUE;
   HANDLE hOut = INVALID_HANDLE_VALUE;
@@ -1403,8 +1442,8 @@ process_easy(
   DWORD e;
 
   if (proc_index >= MAXIMUM_WAIT_OBJECTS) {
-       DB (DB_JOBS, ("process_easy: All process slots used up\n"));
-       return INVALID_HANDLE_VALUE;
+        DB (DB_JOBS, ("process_easy: All process slots used up\n"));
+        return INVALID_HANDLE_VALUE;
   }
   /* Standard handles returned by GetStdHandle can be NULL or
      INVALID_HANDLE_VALUE if the parent process closed them.  If that
@@ -1412,25 +1451,25 @@ process_easy(
      CreateProcess as the corresponding handle to inherit.  */
   tmpIn = GetStdHandle(STD_INPUT_HANDLE);
   if (DuplicateHandle(GetCurrentProcess(),
-                     tmpIn,
-                     GetCurrentProcess(),
-                     &hIn,
-                     0,
-                     TRUE,
-                     DUPLICATE_SAME_ACCESS) == FALSE) {
+                      tmpIn,
+                      GetCurrentProcess(),
+                      &hIn,
+                      0,
+                      TRUE,
+                      DUPLICATE_SAME_ACCESS) == FALSE) {
     if ((e = GetLastError()) == ERROR_INVALID_HANDLE) {
       tmpIn = CreateFile("NUL", GENERIC_READ,
-                        FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
-                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+                         FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+                         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
       if (tmpIn != INVALID_HANDLE_VALUE
-         && DuplicateHandle(GetCurrentProcess(),
-                            tmpIn,
-                            GetCurrentProcess(),
-                            &hIn,
-                            0,
-                            TRUE,
-                            DUPLICATE_SAME_ACCESS) == FALSE)
-       CloseHandle(tmpIn);
+          && DuplicateHandle(GetCurrentProcess(),
+                             tmpIn,
+                             GetCurrentProcess(),
+                             &hIn,
+                             0,
+                             TRUE,
+                             DUPLICATE_SAME_ACCESS) == FALSE)
+        CloseHandle(tmpIn);
     }
     if (hIn == INVALID_HANDLE_VALUE) {
       fprintf(stderr, "process_easy: DuplicateHandle(In) failed (e=%ld)\n", e);
@@ -1442,25 +1481,25 @@ process_easy(
   else
     tmpOut = GetStdHandle (STD_OUTPUT_HANDLE);
   if (DuplicateHandle(GetCurrentProcess(),
-                     tmpOut,
-                     GetCurrentProcess(),
-                     &hOut,
-                     0,
-                     TRUE,
-                     DUPLICATE_SAME_ACCESS) == FALSE) {
+                      tmpOut,
+                      GetCurrentProcess(),
+                      &hOut,
+                      0,
+                      TRUE,
+                      DUPLICATE_SAME_ACCESS) == FALSE) {
     if ((e = GetLastError()) == ERROR_INVALID_HANDLE) {
       tmpOut = CreateFile("NUL", GENERIC_WRITE,
-                         FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
-                         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+                          FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+                          OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
       if (tmpOut != INVALID_HANDLE_VALUE
-         && DuplicateHandle(GetCurrentProcess(),
-                            tmpOut,
-                            GetCurrentProcess(),
-                            &hOut,
-                            0,
-                            TRUE,
-                            DUPLICATE_SAME_ACCESS) == FALSE)
-       CloseHandle(tmpOut);
+          && DuplicateHandle(GetCurrentProcess(),
+                             tmpOut,
+                             GetCurrentProcess(),
+                             &hOut,
+                             0,
+                             TRUE,
+                             DUPLICATE_SAME_ACCESS) == FALSE)
+        CloseHandle(tmpOut);
     }
     if (hOut == INVALID_HANDLE_VALUE) {
       fprintf(stderr, "process_easy: DuplicateHandle(Out) failed (e=%ld)\n", e);
@@ -1472,25 +1511,25 @@ process_easy(
   else
     tmpErr = GetStdHandle(STD_ERROR_HANDLE);
   if (DuplicateHandle(GetCurrentProcess(),
-                     tmpErr,
-                     GetCurrentProcess(),
-                     &hErr,
-                     0,
-                     TRUE,
-                     DUPLICATE_SAME_ACCESS) == FALSE) {
+                      tmpErr,
+                      GetCurrentProcess(),
+                      &hErr,
+                      0,
+                      TRUE,
+                      DUPLICATE_SAME_ACCESS) == FALSE) {
     if ((e = GetLastError()) == ERROR_INVALID_HANDLE) {
       tmpErr = CreateFile("NUL", GENERIC_WRITE,
-                         FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
-                         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+                          FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+                          OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
       if (tmpErr != INVALID_HANDLE_VALUE
-         && DuplicateHandle(GetCurrentProcess(),
-                            tmpErr,
-                            GetCurrentProcess(),
-                            &hErr,
-                            0,
-                            TRUE,
-                            DUPLICATE_SAME_ACCESS) == FALSE)
-       CloseHandle(tmpErr);
+          && DuplicateHandle(GetCurrentProcess(),
+                             tmpErr,
+                             GetCurrentProcess(),
+                             &hErr,
+                             0,
+                             TRUE,
+                             DUPLICATE_SAME_ACCESS) == FALSE)
+        CloseHandle(tmpErr);
     }
     if (hErr == INVALID_HANDLE_VALUE) {
       fprintf(stderr, "process_easy: DuplicateHandle(Err) failed (e=%ld)\n", e);
index facfabcfeb97606736edcfcb2cf87f9b1c729ef2..9ff4f4c9ce3325933ce2cfa3b9982ce9d7027caa 100644 (file)
@@ -1,5 +1,5 @@
 /* Error handling for Windows
-Copyright (C) 1996-2013 Free Software Foundation, Inc.
+Copyright (C) 1996-2014 Free Software Foundation, Inc.
 This file is part of GNU Make.
 
 GNU Make is free software; you can redistribute it and/or modify it under the
@@ -45,41 +45,41 @@ map_windows32_error_to_string (DWORD ercode) {
  * the corresponding GCC qualifier is '__thread'.)
  */
     static char szMessageBuffer[128];
-       /* Fill message buffer with a default message in
-        * case FormatMessage fails
-        */
+        /* Fill message buffer with a default message in
+         * case FormatMessage fails
+         */
     wsprintf (szMessageBuffer, "Error %ld\n", ercode);
 
-       /*
-        *  Special code for winsock error handling.
-        */
-       if (ercode > WSABASEERR) {
+        /*
+         *  Special code for winsock error handling.
+         */
+        if (ercode > WSABASEERR) {
 #if 0
-               HMODULE hModule = GetModuleHandle("wsock32");
-               if (hModule != NULL) {
-                       FormatMessage(FORMAT_MESSAGE_FROM_HMODULE,
-                               hModule,
-                               ercode,
-                               LANG_NEUTRAL,
-                               szMessageBuffer,
-                               sizeof(szMessageBuffer),
-                               NULL);
-                       FreeLibrary(hModule);
-               }
+                HMODULE hModule = GetModuleHandle("wsock32");
+                if (hModule != NULL) {
+                        FormatMessage(FORMAT_MESSAGE_FROM_HMODULE,
+                                hModule,
+                                ercode,
+                                LANG_NEUTRAL,
+                                szMessageBuffer,
+                                sizeof(szMessageBuffer),
+                                NULL);
+                        FreeLibrary(hModule);
+                }
 #else
-               fatal(NILF, szMessageBuffer);
+                O (fatal, NILF, szMessageBuffer);
 #endif
-       } else {
-               /*
-                *  Default system message handling
-                */
-       FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
-                  NULL,
-                  ercode,
-                  LANG_NEUTRAL,
-                  szMessageBuffer,
-                  sizeof(szMessageBuffer),
-                  NULL);
-       }
+        } else {
+                /*
+                 *  Default system message handling
+                 */
+                FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
+                        NULL,
+                        ercode,
+                        LANG_NEUTRAL,
+                        szMessageBuffer,
+                        sizeof(szMessageBuffer),
+                        NULL);
+        }
     return szMessageBuffer;
 }