From 62e818d0e4e064f6da403cbf516dc7a7301ec569 Mon Sep 17 00:00:00 2001 From: JinWang An Date: Tue, 28 Dec 2021 15:15:18 +0900 Subject: [PATCH] Imported Upstream version 4.1 --- AUTHORS | 2 +- ChangeLog | 5633 -------------------------- Makefile.DOS | 14 +- Makefile.am | 17 +- Makefile.ami | 2 +- Makefile.in | 448 +- NEWS | 60 +- NMakefile | 18 +- README | 4 +- README.Amiga | 2 +- README.DOS | 6 +- README.OS2 | 2 +- README.VMS | 2 +- README.W32 | 4 +- README.customs | 2 +- SMakefile | 12 +- acinclude.m4 | 2 +- aclocal.m4 | 752 ++-- amiga.c | 4 +- amiga.h | 2 +- ar.c | 65 +- arscan.c | 283 +- build.sh.in | 12 +- build_w32.bat | 19 +- commands.c | 23 +- commands.h | 2 +- config.ami | 10 +- config.h-vms | 36 +- config.h.W32 | 13 +- config.h.in | 9 +- config/ChangeLog | 49 - config/Makefile.am | 2 +- config/Makefile.in | 110 +- config/ar-lib | 270 ++ config/compile | 10 +- config/config.guess | 192 +- config/config.sub | 32 +- config/depcomp | 455 ++- config/dospaths.m4 | 2 +- config/install-sh | 14 +- config/mdate-sh | 15 +- config/missing | 414 +- config/texinfo.tex | 171 +- configh.dos | 8 +- configure | 2250 +++++++--- configure.ac | 34 +- configure.bat | 2 +- debug.h | 2 +- default.c | 78 +- dep.h | 2 +- dir.c | 13 +- doc/Makefile.am | 13 +- doc/Makefile.in | 189 +- doc/fdl.texi | 2 +- doc/make.info | 341 +- doc/make.info-1 | 4826 +++++++++++----------- doc/make.info-2 | 4680 ++++++++++----------- doc/make.texi | 108 +- doc/stamp-vti | 8 +- doc/version.texi | 8 +- dosbuild.bat | 2 +- expand.c | 14 +- file.c | 35 +- filedef.h | 4 +- function.c | 143 +- getloadavg.c | 2 +- getopt.c | 2 +- getopt.h | 2 +- getopt1.c | 2 +- gettext.h | 2 +- glob/ChangeLog | 6 + glob/Makefile.in | 193 +- glob/glob.c | 5 + gmk-default.scm | 2 +- gnumake.h | 2 +- guile.c | 15 +- hash.c | 2 +- implicit.c | 2 +- job.c | 391 +- job.h | 6 +- load.c | 37 +- loadapi.c | 13 +- main.c | 424 +- make.1 | 2 +- make_msvc_net2003.vcproj | 4 +- makefile.com | 36 +- makefile.vms | 88 +- makeint.h | 76 +- misc.c | 12 +- output.c | 165 +- output.h | 2 +- po/ChangeLog | 93 - po/Makevars | 2 +- po/POTFILES.in | 2 +- po/be.gmo | Bin 7574 -> 7250 bytes po/be.po | 729 ++-- po/cs.gmo | Bin 46061 -> 44904 bytes po/cs.po | 763 ++-- po/da.gmo | Bin 25052 -> 24537 bytes po/da.po | 744 ++-- po/de.gmo | Bin 15562 -> 46111 bytes po/de.po | 1879 ++++----- po/es.gmo | Bin 26931 -> 45174 bytes po/es.po | 2443 +++++------ po/fi.gmo | Bin 20417 -> 19871 bytes po/fi.po | 743 ++-- po/fr.gmo | Bin 26484 -> 44572 bytes po/fr.po | 1256 +++--- po/ga.gmo | Bin 20848 -> 20299 bytes po/ga.po | 744 ++-- po/gl.gmo | Bin 23719 -> 23164 bytes po/gl.po | 744 ++-- po/he.gmo | Bin 11862 -> 11497 bytes po/he.po | 745 ++-- po/hr.gmo | Bin 26062 -> 25498 bytes po/hr.po | 746 ++-- po/id.gmo | Bin 20627 -> 42957 bytes po/id.po | 1480 ++++--- po/it.gmo | Bin 45617 -> 44464 bytes po/it.po | 763 ++-- po/ja.gmo | Bin 25372 -> 48160 bytes po/ja.po | 1953 +++++---- po/ko.gmo | Bin 11938 -> 46044 bytes po/ko.po | 2127 +++++----- po/lt.gmo | Bin 7754 -> 7400 bytes po/lt.po | 728 ++-- po/make.pot | 713 ++-- po/nl.gmo | Bin 44804 -> 43672 bytes po/nl.po | 765 ++-- po/pl.gmo | Bin 44940 -> 43817 bytes po/pl.po | 763 ++-- po/pt_BR.gmo | Bin 25786 -> 25254 bytes po/pt_BR.po | 744 ++-- po/ru.gmo | Bin 57185 -> 55757 bytes po/ru.po | 772 ++-- po/sv.gmo | Bin 43854 -> 42718 bytes po/sv.po | 765 ++-- po/tr.gmo | Bin 21193 -> 20668 bytes po/tr.po | 744 ++-- po/uk.gmo | Bin 56603 -> 55097 bytes po/uk.po | 763 ++-- po/vi.gmo | Bin 47627 -> 46511 bytes po/vi.po | 807 ++-- po/zh_CN.gmo | Bin 19609 -> 19093 bytes po/zh_CN.po | 748 ++-- read.c | 154 +- remake.c | 153 +- remote-cstms.c | 60 +- remote-stub.c | 2 +- rule.c | 13 +- rule.h | 4 +- signame.c | 2 +- strcache.c | 2 +- subproc.bat | 2 +- tests/{ChangeLog => ChangeLog.1} | 2 +- tests/NEWS | 2 +- tests/README | 2 +- tests/config-flags.pm | 19 + tests/config-flags.pm.in | 19 + tests/config_flags_pm.com | 53 + tests/mkshadow | 2 +- tests/run_make_tests.com | 272 ++ tests/run_make_tests.pl | 77 +- tests/scripts/features/archives | 22 +- tests/scripts/features/load | 14 +- tests/scripts/features/loadapi | 12 +- tests/scripts/features/output-sync | 7 + tests/scripts/functions/file | 17 + tests/scripts/misc/utf8 | 14 + tests/scripts/options/dash-q | 44 +- tests/scripts/variables/GNUMAKEFLAGS | 4 +- tests/scripts/variables/special | 24 + tests/test_driver.pl | 268 +- variable.c | 52 +- variable.h | 12 +- version.c | 6 +- vmsdir.h | 2 +- vmsfunctions.c | 207 +- vmsify.c | 25 +- vmsjobs.c | 463 ++- vpath.c | 2 +- w32/Makefile.am | 4 +- w32/Makefile.in | 335 +- w32/compat/dirent.c | 286 +- w32/compat/posixfcn.c | 32 +- w32/include/dirent.h | 14 +- w32/include/dlfcn.h | 2 +- w32/include/pathstuff.h | 2 +- w32/include/sub_proc.h | 10 +- w32/include/w32err.h | 2 +- w32/pathstuff.c | 32 +- w32/subproc/NMakefile | 2 +- w32/subproc/build.bat | 2 +- w32/subproc/misc.c | 79 +- w32/subproc/proc.h | 12 +- w32/subproc/sub_proc.c | 2083 +++++----- w32/subproc/w32err.c | 64 +- 197 files changed, 25829 insertions(+), 28886 deletions(-) delete mode 100644 ChangeLog delete mode 100644 config/ChangeLog create mode 100755 config/ar-lib delete mode 100644 po/ChangeLog rename tests/{ChangeLog => ChangeLog.1} (99%) create mode 100644 tests/config-flags.pm create mode 100644 tests/config-flags.pm.in create mode 100755 tests/config_flags_pm.com create mode 100755 tests/run_make_tests.com create mode 100644 tests/scripts/misc/utf8 diff --git a/AUTHORS b/AUTHORS index 14ae479..6539881 100644 --- 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 index 5fcf273..0000000 --- a/ChangeLog +++ /dev/null @@ -1,5633 +0,0 @@ -2013-10-09 Paul Smith - - 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 - - * w32/compat/posixfcn.c (tmpfile): Move declaration of h before - the first executable statement. Reported by Gisle Vanem - . - -2013-10-05 Paul Smith - - * 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 - - * 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 - - * 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 - - * configure.ac: Update version to 3.99.93. - * NEWS: Ditto. - -2013-09-30 Paul Smith - - * guile.c: Portability fixes for Guile 1.8. - -2013-09-29 Paul Smith - - * 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 . - - * 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 - - * 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 - - * w32/compat/posixfcn.c: Fix the forgotten OUTPUT_SYNC conditional. - - * job.h: Ditto, but in a comment. - -2013-09-22 Paul Smith - - * 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 - - * 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 - - * 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 - - * 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 - - * main.c (main): Set starting_directory before we write any - errors. Fixes Savannah bug #40043. - -2013-09-16 Eli Zaretskii - - * output.c [WINDOWS32]: Include windows.h and sub_proc.h, to avoid - compiler warnings for CLOSE_ON_EXEC. - -2013-09-16 Paul Smith - - * configure.ac: Update version to 3.99.91. - * NEWS: Ditto. - -2013-09-15 Paul Smith - - * 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 - - * 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 . - -2013-09-14 Paul Smith - - * 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 - - 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 - - * function.c (func_shell_base): Get rid of any avoidable limit on - stack size for processes spawned via $(shell). - -2013-07-22 Paul Smith - - * 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 - - 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 . - -2013-07-14 Paul Smith - - * 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 - - * 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 . - -2013-06-28 Paul Smith - - * 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 - - * 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 - - 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 - - * 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 - - * variable.c (define_automatic_variables): Create a new variable - MAKE_HOST. - -2013-05-27 Hartmut Becker - - * 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 - - * 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 - - * 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 (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) - [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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * makeint.h (ftruncate) [_MSC_VER]: Redirect to _chsize. - (_S_ISDIR): If not defined (MinGW64), define to S_ISDIR. - -2013-05-04 Paul Smith - - * 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 - - * 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 . - -2013-05-03 Eli Zaretskii - - * 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 - - * 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 - - * 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 (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 (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 (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 (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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * job.c: Fix compilation error on GNU/Linux due to "label at end - of compound statement". - -2013-04-27 Frank Heckenbach (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 - - 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 : New static variable. - : 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 : Change type to sync_handle_t. - (FD_NOT_EMPTY): Seek to the file's end. Suggested by Frank - Heckenbach . - (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 (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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * main.c (main): Restore all make flags after re-exec is complete. - Fixes Savannah bug #38051. - -2013-01-12 Paul Smith - - 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 - - * 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 - - * 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 - - 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 - - * configure.in: Require a new version of gettext (1.18.1). - Fixes Savannah bug #37307. - -2012-09-09 Paul Smith - - * 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 - - * read.c (unescape_char): Fix a thinko in the last change. - -2012-09-09 Paul Smith - - * 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 - - * 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 - - Update copyright notices to use year ranges, as allowed by - clarifications in the GNU Maintainer's Manual. - -2012-03-04 Paul Smith - - * 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 - - * 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 - - * implicit.c (pattern_search): Check the stem length to avoid - stack overflows in stem_str. Fixes Savannah bug #35525. - -2012-02-03 Eli Zaretskii - - * 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 - - * 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 - - * 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 - - * function.c (define_new_function): Fix format strings in calls to - `fatal'. - -2012-01-17 Paul Smith - - * guile.c (func_guile): Handle NULL returns from Guile. - -2012-01-16 Paul Smith - - * make.h (PATH_SEPARATOR_CHAR): Allow resetting for crosscompiling - for Windows. Patch by Chris Sutcliffe - Fixes Savannah bug #34818. - -2012-01-15 Paul Smith - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for Darwin. - * filedef.h (FILE_TIMESTAMP_STAT_MODTIME): Ditto. - Patch provided by Troy Runkel - -2011-10-11 Troy Runkel - - * 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 - - * 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 - - * maintMakefile (do-po-update): Apparently we have to avoid - certificate checks on the http://translationproject.org site now. - -2011-09-12 Paul Smith - - * read.c (eval): Ensure exported variables are defined in the - global scope. Fixes Savannah bug #32498. - -2011-09-11 Paul Smith - - * 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 - - * remake.c (touch_file): If we have both -n and -t, -n takes - precedence. Patch from Michael Witten - -2011-08-29 Paul Smith - - * 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 - - * 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 - -2011-05-07 Paul Smith - - * 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 - - * 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 - - * 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 - - * 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 - -2011-04-29 Boris Kolpackov - - * read.c (eval_makefile): Delay caching of the file name until after - all the expansions and searches. - -2011-04-17 David A. Wheeler - - * 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 - - * strcache.c (various): Increase performance based on comments - from Ralf Wildenhues . 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 - - * doc/make.texi: Clean up references to "static" variables and - semicolon errors. Patch from Michael Witten . - -2010-12-27 Paul Smith - - * make.1: Update the header/footer info in the man page. - -2010-11-28 Paul Smith - - * 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 - - * 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 - - * commands.h (struct commands): Rearrange to make better use of - memory. Add new recipe_prefix value. - -2010-10-26 Paul Smith - - * 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 - - * 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 - - * variable.c (define_automatic_variables) [__MSDOS__ || WINDOWS32]: - Remove trailing backslashes in $(@D), $( - - * 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 - - * main.c (main): Expand MAKEFLAGS before adding it to the - environment when re-exec'ing. Fixes Savannah bug #30723. - -2010-08-07 Eli Zaretskii - - * 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 - - * configh.dos.template (HAVE_STRNCASECMP): Define. - -2010-07-28 Paul Smith - - 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 - - * job.c (pid2str) [WINDOWS32]: Fix CPP conditionals for using %Id - format. - -2010-07-18 Paul Smith - - * 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 : - - * 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 - - * misc.c (concat): Fix buffer overrun. - -2010-07-12 Paul Smith - - 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 - - * 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 - - Integrated new .ONESHELL feature. - Patch by David Boyce . 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 - - * 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 - - * 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 - -2010-07-07 Paul Smith - - * configure.in: Bump to a new prerelease version 3.81.91. - -2010-07-06 Paul Smith - - * 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 - - * 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 - -2010-07-03 Paul Smith - - * 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 - - * 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 - - * 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 - - * job.c (construct_command_argv_internal) - [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 - - Patches for VMS provided by Hartmut Becker - - * 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 - - * 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 - - * 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 - - * 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 - - * read.c (read_all_makefiles): Mark the default makefile dependency - dontcare. - -2009-10-07 Boris Kolpackov - - * 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 - - * 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 - - * 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 - - * 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 - - * make.h: Include even on systems where __GNUC__ is - defined. Not sure why it was done the other way. - Requested by David Boyce . - -2009-09-30 Boris Kolpackov - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configh.dos.template: Remove unconditional definition of - SYS_SIGLIST_DECLARED. - Include 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 - - * 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 - - * implicit.c (pattern_search): Terminate early if we haven't - found any rules to try (performance improvement). - -2009-09-25 Boris Kolpackov - - * 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 - - * 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 - - 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 - - * 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 - - * 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 (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 - - * function.c (windows32_openpipe): Update envp after calling - sync_Path_environment. - -2009-08-02 Paul Smith - - * 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 - - * 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 - - * job.c (construct_command_argv_internal): Add "ulimit" and - "unset" to the sh_cmds for Unixy shells. - -2009-07-29 Ralf Wildenhues - - * 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 - - * function.c (func_realpath) [!HAVE_REALPATH]: Require the file to - exist, as realpath(3) does where it's supported. - -2006-07-04 Eli Zaretskii - - * 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 - - * 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 . - -2009-06-13 Paul Smith - - * 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 - - * 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 - - * read.c (eval): Collapse continuations post-semicolon on target- - specific variables. Fixes Savannah bug #17521. - -2009-06-07 Paul Smith - - * 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 - - * 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 - - * 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 - -2009-06-02 Paul Smith - - * 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 - - * 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 - - * 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 - -2009-05-30 Paul Smith - - * 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 - - 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 - - * doc/make.texi: Fix the ISBN for the GNU make manual. Incorrect - value noticed by Hans Stol . - -2009-03-14 Eli Zaretskii - - * w32/pathstuff.c (convert_Path_to_windows32): Fix last change. - Fixes Savannah bug #25412. - - * w32/subproc/sub_proc.c : 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 - - * function.c (func_shell): Don't close pipedes[1] if it is -1. - Fixes Savannah bug #20495. - -2009-02-28 Ralf Wildenhues - - * doc/make.texi (Instead of Execution): Document interaction of - -t with phony targets. - -2009-02-23 Ramon Garcia - - 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 - - * 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 - - * build_w32.bat (GCCBuild): Use "-gdwarf-2 -g3" instead of - "-gstabs+ -ggdb3". - - * w32/subproc/build.bat (GCCBuild): Likewise. - -2008-09-30 David Russo (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 - - * 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 - - * doc/make.texi (Empty Targets): Fix typo. - -2008-03-27 Paul Smith - - Fix Savannah bug #22379: - * ar.c (ar_glob_match): Zero the allocated structure. - * read.c (parse_file_seq): Ditto. - -2008-03-08 Brian Dessent - - * maintMakefile: Update Translation Project location. - -2008-01-26 Eli Zaretskii - - * variable.c (target_environment): Don't use shell_var if its - `value' field is NULL. - -2007-12-22 Eli Zaretskii - - Suggested by Juan Manuel Guerrero : - - * 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 (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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * make.h: Add a prototype for w32_kill() (change suggested by - Yongwei Wu ). - -2007-09-21 Eli Zaretskii - - * w32/pathstuff.c (convert_Path_to_windows32): Handle quoted - directories in Path. - -2007-09-12 Paul Smith - - * doc/make.texi: Applied wording cleanups from Savannah patch #6195. - Provided by Diego Biurrun - (Complex Makefile): Remove .PHONY setting for tar: patch #6196. - Provided by Diego Biurrun - -2007-09-11 Paul Smith - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 . - Fixes Savannah bug #20452. - -2007-07-04 Paul Smith - - * (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 - - * maintMakefile: Update Translation Project location. - -2007-06-13 Paul Smith - - * 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 - - * 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 . - - * function.c (func_lastword): Initialize p. - - * doc/make.texi (Eval Function, Implicit Variables, Special Targets): - Doc fixes noticed by Bob . Patch from - Dave Korn - -2007-05-08 Paul Smith - - 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 - - * configure.in: Don't turn on case-insensitive file system support - if --disable-... is given. Fixes Savannah bug #19348. - -2007-03-19 Paul Smith - - * 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 - - * 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 - - * 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 - - * main.c (main) [HAVE_DOS_PATHS]: Treat DOS style argv[0] with - backslashes and drive letters as absolute. - -2006-10-22 Paul Smith - - * main.c (struct command_switch): Use const and void*. - -2006-10-21 Paul Smith - - * ar.c: Constified. - * arscan.c: Constified. - -2006-09-30 Paul Smith - - * 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 : - (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 - - * configure.in: Include sys/types.h when checking for sys/wait.h. - -2006-08-18 Eli Zaretskii - - * 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 : 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 - - * README.OS2.template: Updates provided by Andreas Buening - . - -2006-04-30 Paul D. Smith - - * make.h: Include if HAVE_DIRECT_H. - * config.h.W32.template (HAVE_DIRECT_H): Set it if it's available. - -2006-04-26 Paul D. Smith - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - -2006-03-17 Paul D. Smith - - * maintMakefile (do-po-update): Rewrite this rule to clean up and - allow multiple concurrent runs. - Patch from Joseph Myers - -2006-03-17 Boris Kolpackov - - * 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 - - * 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 - - * 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 - -2006-03-04 Eli Zaretskii - - * 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 - - * 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 - - * 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 . - -2006-02-24 Eli Zaretskii - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * (ALL FILES): Updated copyright and license notices. - -2006-02-10 Paul D. Smith - - 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 - - * 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 . - -2006-02-09 Paul D. Smith - - * 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 - - * 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 - - * 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 : - - * 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 - - * 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 - - * dir.c (dir_contents_file_exists_p) [WINDOWS32]: Make sure - variable st is not used when it's not initialized. - Patch from Eli Zaretskii . - -2006-01-31 Paul D. Smith - - * README.W32.template: Applied patch #4785 from - Markus Mauhart . - * README.cvs: Applied patch #4786 from - Markus Mauhart . - * make_msvc_net2003.vcproj [WINDOWS32]: New version from - J. Grant . - - * main.c: Update the copyright year in the version output. - * prepare_w32.bat: Remove this file from the distribution. - -2006-01-21 Eli Zaretskii - - * 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 - - * 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 - - * readme.vms: Updates for case-insensitive VMS file systems from - Hartmut Becker . - * 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 - - * 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 - - * config.h.W32.template [WINDOWS32]: Add in some pragmas to - disable warnings for MSC. - Patch by Rob Tulloh . - -2005-12-17 Eli Zaretskii - - * 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 - - * 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 - - * 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 - - * make.1: Fix some display errors and document all existing options. - Patch by Mike Frysinger . - -2005-12-11 Paul D. Smith - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * job.c (start_job_command): The noerror flag is a boolean (single - bit); set it appropriately. - Reported by Mark Eichin - -2005-08-29 Paul D. Smith - - * 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 - - * 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 - - * 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 - - * 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 : 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config.h.W32.template: Reorder to match the standard config.h, - for easier comparisons. - From J. Grant - - * 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 - - * 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 - -2005-07-04 Paul D. Smith - - * config.h-vms.template [VMS]: Latest VMS has its own glob() and - globfree(); set up to use the GNU versions. - From Martin Zinser - -2005-07-03 Paul D. Smith - - From J. Grant : - - * 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 - - * 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 - - * 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 - - * make.h: Fix bug in ANSI_STRING/strerror() handling; only define - it if ANSI_STRING is not set. - -2005-06-25 Paul D. Smith - - * 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 . - 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 - - * default.c: Change VMS implicit rules to use $$$$ instead of $$ - in the prerequisites list. - -2005-06-12 Paul D. Smith - - 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 - - VMS build updates from Hartmut Becker : - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - 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 - - * 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 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 - - Grant Taylor 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 - - * 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 . - -2005-04-12 Paul D. Smith - - 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 - - * 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 - - * 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 - - * main.c (main) [MSDOS]: Export SHELL in MSDOS. Requested by Eli - Zaretskii. - -2005-03-11 Paul D. Smith - - * signame.c (strsignal): HAVE_DECL_SYS_SIGLIST is 0 when not - available, not undefined (from Earnie Boyd). - -2005-03-10 Boris Kolpackov - - * 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 - - * read.c (eval_makefile): Add alloca(0). - (eval_buffer): Ditto. - -2005-03-09 Boris Kolpackov - - * 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 - - * 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 - - * AUTHORS: Update. - * doc/make.texi (Automatic Variables): Document $|. - -2005-03-03 Boris Kolpackov - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 : - - * 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 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 - - * maintMakefile (po_repo): Update the GNU translation site URL. - -2004-12-01 Paul D. Smith - - * 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 - - * 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 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 - - 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 - - * 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 - - * 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 - - * 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 - -2004-10-21 Boris Kolpackov - - * 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 - - 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 - - * 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 - - * remake.c (update_file_1): When rebuilding makefiles inherit - dontcare flag from a target that triggered update. - -2004-09-27 Boris Kolpackov - - * variable.c (initialize_file_variables): Mark pattern-specific - variable as a per-target and copy export status. - -2004-09-21 Boris Kolpackov - - * 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 - - * 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 . - - * 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 . - - * 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 - - * 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 . - -2004-09-19 Paul D. Smith - - * 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 . - -2004-05-16 Paul D. Smith - - * 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 - - * job.c (construct_command_argv_internal): OS/2 patches from - Andreas Buening . - -2004-05-10 Paul D. Smith - - * remake.c (update_file): Don't walk the double-colon chain unless - this is a double-colon rule. Fix suggested by Boris Kolpackov - . - - * 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 - -2004-04-25 Paul D. Smith - - * commands.c (set_file_variables): Set $< properly in the face of - order-only prerequisites. - Patch from Boris Kolpackov - -2004-04-21 Bob Byrnes - - * main.c (main): Notice failures to remake makefiles. - -2004-03-28 Paul D. Smith - - Patches for Acorn RISC OS by Peter Naulls - - * 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 - - * 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 - (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 - (with fix) and also by Maksim A. Nikulin - . - - * 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 : - - * 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 : - - * 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 - - * 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 . - -2004-03-06 Paul D. Smith - - * 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 - - * 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 - - * config.h.W32.template: Add HAVE_STDARG_H - * config.h-vms.template: Ditto. - * config.ami.template: Ditto. - -2004-02-23 Jonathan Grant - - * README.W32.template: Add a notation about -j with BATCH_MODE_ONLY. - * build_w32.bat: Remove extra "+". - -2004-02-23 Paul D. Smith - - * 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 - - * 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 - : - - * 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 - - * w32/subproc/sub_proc.c (process_easy) [W32]: Christoph Schulz - 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 - - * job.c (vms_handle_apos) [VMS]: Fix various string handling - situations in VMS DCL. Fixes Savannah bug #5533. Fix provided by - Hartmut Becker . - -2004-01-21 Paul D. Smith - - * 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 . - 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 - - * file.c (print_file): Recurse to print all targets in - double-colon rules. Fixes bug #4518, reported (with patch) by - Andrew Chatham . - -2004-01-07 Paul D. Smith - - * 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 . - -2003-11-22 Paul D. Smith - - * README.W32.template (Outputs): Clarification on -j with - BATCH_MODE_ONLY_SEHLL suggested by Jonathan R. Grant - . - -2003-11-02 Paul D. Smith - - * 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 - - * 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 - - * main.c (main): Avoid potential subscript error if environ has - short strings. - -2003-08-22 Paul D. Smith - - * 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 - - * dir.c (directory_contents_hash_1, directory_contents_hash_1) - [WINDOWS32]: Initialize hash. - -2003-06-19 Earnie Boyd - - * dir.c (read_dirstream): Provide a workaround for broken versions of - the MinGW dirent structure. - -2003-05-30 Earnie Boyd - - * w32/include/dirent.h: Add __MINGW32__ filter. - -2003-05-30 Earnie Boyd - - * 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 - - * doc/make.texi: Change "ifinfo" to "ifnottex" as suggested by the - execution of "makeinfo --html make.texi". - -2003-04-30 Paul D. Smith - - * 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 - - 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 - - * dir.c (file_exists_p) [VMS]: Patch provided with Bug #3018 by - Jean-Pierre Portier . 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 - - * 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 - - * 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 - - * 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 - - Port to OS/2 (__EMX__) by Andreas Buening . - - * 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 - - * 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 . - - * 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 - - * 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 . - - * 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 - - 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 - - * 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 - - * 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 - - * README.cvs, configure.in: Upgrade to require autoconf 2.56. - - -2002-11-16 Paul D. Smith - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * makefile.com: Updates for GNU make 3.80. - * makefile.vms: Ditto. - -2002-09-23 Paul D. Smith - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in: Check for memmove(). - -2002-09-07 Paul D. Smith - - * configure.in (HAVE_BROKEN_RESTART): Define this on PTX systems; - Michael Sterrett 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 - - * implicit.c (pattern_search): Daniel - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * hash.h (ISTRING_COMPARE, return_ISTRING_COMPARE): Add missing - backslashes to the HAVE_CASE_INSENSITIVE_FS case. - Reported by . - -2002-07-10 Paul D. Smith - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 . - -2002-07-07 Paul D. Smith - - * 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 . - - * remake.c (notice_finished_file): Fix handling of -t flag. - Patch provided by Henning Makholm . - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.am (make_LDADD): Add GETLOADAVG_LIBS. - (loadavg_LDADD): Ditto. - -2002-04-29 Paul D. Smith - - * 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 - - 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 - - * 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 - - 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 - - * 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 . - - * remake.c (notice_finished_file): Walk through double-colon - entries via the prev field, not the next field! - Reported by Greg McGary . - - * 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 - - * i18n/es.po, i18n/ru.po: Installed an updated translation. - -2001-12-04 Paul D. Smith - - * i18n/ja.po: Installed an updated translation. - -2001-09-06 Paul Eggert - - * configure.in (AC_CHECK_HEADERS): Add sys/resource.h. - (AC_CHECK_FUNCS): Add getrlimit, setrlimit. - - * main.c: Include if it, getrlimit, and setrlimit - are available. - (main): Get rid of any avoidable limit on stack size. - -2001-09-04 Paul D. Smith - - * i18n/da.po: Installed an updated translation. - -2001-08-03 Paul D. Smith - - * i18n/fr.po: Installed an updated translation. - Resolves Debian bug #106720. - -2001-06-13 Paul D. Smith - - * i18n/da.po, configure.in (ALL_LINGUAS): Installed a new - translation. - -2001-06-11 Paul D. Smith - - * i18n/ko.po: Installed a new translation. - -2001-05-06 Paul D. Smith - - 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 - - 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 - - * 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 - - * 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 . - - -2001-03-14 Paul D. Smith - - * variable.c (lookup_variable) [VMS]: Null-terminate the variable - value before invoking define_variable(). - Reported by John Fowler . - -2001-02-07 Paul D. Smith - - * 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 - - * 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 . - - * 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 . - - - 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 - - * 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 - - * 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 . - -2000-10-24 Paul D. Smith - - * 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 . - -2000-10-05 Paul D. Smith - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 . - -2000-07-25 Paul D. Smith - - * 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 - - * 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 - - * configure.in (enable_nsec_timestamps): Renamed from - make_cv_nsec_timestamps, since enable/disable options - shouldn't be cached. - -2000-07-23 Bruno Haible - and Paul Eggert - - * 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 - - * i18n/ja.po: New version of the translation file. - -2000-07-07 Paul D. Smith - - * 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 - - 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 - - * variable.c (lookup_variable) [VMS]: Remove vestigial references - to listp. Fixes PR/1793. - -2000-06-26 Paul Eggert - - * 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 - - * make.texinfo, NEWS, TODO.private: Minor spelling corrections. - Ran spell-check on make.texinfo. - -2000-06-23 Paul D. Smith - - * 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. - - - -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 . diff --git a/Makefile.DOS b/Makefile.DOS index 42cd487..43753e4 100644 --- a/Makefile.DOS +++ b/Makefile.DOS @@ -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 \ diff --git a/Makefile.am b/Makefile.am index 5156f47..204ab32 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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`) : ;; \ diff --git a/Makefile.ami b/Makefile.ami index efbab01..7c561a3 100644 --- a/Makefile.ami +++ b/Makefile.ami @@ -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 diff --git a/Makefile.in b/Makefile.in index 9814180..e2310fe 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 @@ -35,23 +34,51 @@ 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 2227a35..7e11787 100644 --- 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. + +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 + 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.) ------------------------------------------------------------------------------- -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/NMakefile b/NMakefile index 176535a..6ed11a7 100644 --- 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 8b10c42..9ed662a 100644 --- 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! ------------------------------------------------------------------------------- -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/README.Amiga b/README.Amiga index 1fabe07..f9be348 100644 --- a/README.Amiga +++ b/README.Amiga @@ -61,7 +61,7 @@ If you plan to use recursive makes, install make resident: ------------------------------------------------------------------------------- -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/README.DOS b/README.DOS index 158560d..335661c 100644 --- a/README.DOS +++ b/README.DOS @@ -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: ------------------------------------------------------------------------------- -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 diff --git a/README.OS2 b/README.OS2 index 792c4bb..9e2045e 100644 --- a/README.OS2 +++ b/README.OS2 @@ -160,7 +160,7 @@ from the make source tree. ------------------------------------------------------------------------------- -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 diff --git a/README.VMS b/README.VMS index f7b064d..2ff553c 100644 --- a/README.VMS +++ b/README.VMS @@ -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 diff --git a/README.W32 b/README.W32 index e311170..e52e406 100644 --- a/README.W32 +++ b/README.W32 @@ -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. ------------------------------------------------------------------------------- -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 diff --git a/README.customs b/README.customs index 8b3fa74..30d98ac 100644 --- a/README.customs +++ b/README.customs @@ -96,7 +96,7 @@ SunOS 4.1.x: ------------------------------------------------------------------------------- -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 diff --git a/SMakefile b/SMakefile index 766a5c6..2b55f22 100644 --- 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 \ diff --git a/acinclude.m4 b/acinclude.m4 index b7d8efd..53d7ef1 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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 diff --git a/aclocal.m4 b/aclocal.m4 index 833ec7d..98f09b6 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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. @@ -12,13 +11,14 @@ # 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: +# +# +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: + +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: . + +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 /dev/null 2>&1 && break + fi + done rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /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 73ed59a..1ef949c 100644 --- 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 a11a128..00bca4f 100644 --- 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 afed591..675572a 100644 --- 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) /* 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; diff --git a/arscan.c b/arscan.c index 2b3cd5d..24286fd 100644 --- 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 . */ #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 #else @@ -30,99 +35,139 @@ this program. If not, see . */ #include #include #include +#include +#include +#include +globalvalue unsigned int LBR$_HDRTRUNC; + #if __DECC #include #include #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 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 # else - /* BeOS 5 doesn't have but has archives in the same format + /* These platforms don't have but have archives in the same format * as many other Unices. This was taken from GNU binutils for BeOS. */ # define ARMAG "!\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 */ } #ifndef VMS diff --git a/build.sh.in b/build.sh.in index 92957bd..ea5865d 100755 --- a/build.sh.in +++ b/build.sh.in @@ -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 @@ -22,11 +22,11 @@ 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}" diff --git a/build_w32.bat b/build_w32.bat index 148dfac..00632a7 100644 --- a/build_w32.bat +++ b/build_w32.bat @@ -1,5 +1,5 @@ @echo off -rem Copyright (C) 1996-2013 Free Software Foundation, Inc. +rem Copyright (C) 1996-2014 Free Software Foundation, Inc. rem This file is part of GNU Make. rem rem GNU Make is free software; you can redistribute it and/or modify it under @@ -30,7 +30,6 @@ copy config.h.W32 config.h rem Guile configuration set GUILECFLAGS= set GUILELIBS= -set GUILESRC= set NOGUILE= set OPT=-O2 set COMPILER= @@ -79,7 +78,6 @@ GoTo GuileDone echo "pkg-config not found, building without Guile" :GuileDone if not "%GUILECFLAGS%" == "" echo "Guile found, building with Guile" -if not "%GUILECFLAGS%" == "" set GUILESRC=guile.c if not "%GUILECFLAGS%" == "" set GUILECFLAGS=%GUILECFLAGS% -DHAVE_GUILE if "%COMPILER%" == "gcc" if "%OPT%" == "-O0" echo "Building without compiler optimizations" cd w32\subproc @@ -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 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 echo WinDebug\pathstuff.obj >>link.dbg -if "%GUILESRC%" == "" GoTo LinkDbg -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 +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 echo WinDebug\guile.obj >>link.dbg :LinkDbg echo off @@ -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 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 echo WinRel\pathstuff.obj >>link.rel -if "%GUILESRC%" == "" GoTo LinkRel -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 +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 echo WinRel\guile.obj >>link.rel :LinkRel echo off @@ -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 gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o 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 -@echo off -set GUILEOBJ= -if "%GUILESRC%" == "" GoTo LinkGCC -set GUILEOBJ=guile.o -echo on gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% %GUILECFLAGS% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c guile.c :LinkGCC @echo off Rem The version NN of libgnumake-NN.dll.a should be bumped whenever Rem the API changes in binary-incompatible manner. @echo on -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 +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 @GoTo BuildEnd :Usage echo Usage: %0 [options] [gcc] @@ -310,8 +301,6 @@ echo. --without-guile Do not compile Guile support even if found echo. --help Display these instructions and exit :BuildEnd @echo off -set GUILEOBJ= -set GUILESRC= set GUILELIBS= set GUILECFLAGS= set PKGMSC= diff --git a/commands.c b/commands.c index f910358..7123021 100644 --- a/commands.c +++ b/commands.c @@ -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 . */ -#include - #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); diff --git a/commands.h b/commands.h index 7829e40..0d58f22 100644 --- a/commands.h +++ b/commands.h @@ -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 diff --git a/config.ami b/config.ami index 126a0e5..e3d6ee8 100644 --- a/config.ami +++ b/config.ami @@ -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 . */ #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 . */ /* 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 */ diff --git a/config.h-vms b/config.h-vms index 8d307ee..d20953e 100644 --- a/config.h-vms +++ b/config.h-vms @@ -1,6 +1,6 @@ /* config.h-vms. Generated by hand by Klaus Kämpf -*-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 . */ /* 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 +#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 . */ #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 . */ /* 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 . */ /* #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 . */ /* 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" diff --git a/config.h.W32 b/config.h.W32 index 664816d..a525520 100644 --- a/config.h.W32 +++ b/config.h.W32 @@ -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 . */ /* 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 . */ #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 . */ /* #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 */ diff --git a/config.h.in b/config.h.in index bd6843f..664fbc2 100644 --- a/config.h.in +++ b/config.h.in @@ -139,6 +139,9 @@ /* Define to 1 if you have the 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 @@ -298,6 +301,9 @@ /* Define to 1 if you have the 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 . */ #undef HAVE_UNION_WAIT @@ -329,9 +335,6 @@ /* 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 index 4e3155b..0000000 --- a/config/ChangeLog +++ /dev/null @@ -1,49 +0,0 @@ -2012-01-15 Paul Smith - - * dospaths.m4: Use AC_LANG_PROGRAM to encapsulate the test code. - Fixes Savannah bug #35256. Patch from Sebastian Pipping. - -2006-03-09 Paul Smith - - * dospaths.m4: Add MSYS to the list of targets allowing DOS-style - pathnames. Reported by David Ergo . - -2005-07-01 Paul D. Smith - - * Makefile.am (EXTRA_DIST): Added more M4 files to EXTRA_DIST, so - users can re-run aclocal. - -2003-04-30 Paul D. Smith - - * dospaths.m4: New macro to test for DOS-style pathnames, based on - coreutils 5.0 "dos.m4" by Jim Meyering. - -2002-04-21 gettextize - - * 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. - - -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 . diff --git a/config/Makefile.am b/config/Makefile.am index f770e64..396c234 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -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 diff --git a/config/Makefile.in b/config/Makefile.in index 3a05524..8ebc4fd 100644 --- a/config/Makefile.in +++ b/config/Makefile.in @@ -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 @@ -32,23 +31,51 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see . 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 index 0000000..fe2301e --- /dev/null +++ b/config/ar-lib @@ -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 . +# +# 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 . + +# 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 or send patches to +# . + + +# 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 <. # # 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 diff --git a/config/config.guess b/config/config.guess index b79252d..1f5c50c 100644 --- a/config/config.guess +++ b/config/config.guess @@ -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 < -# include -#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 - 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 -# 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 <." 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 ;; diff --git a/config/depcomp b/config/depcomp index 25a39e6..4ebd5b3 100755 --- a/config/depcomp +++ b/config/depcomp @@ -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 | diff --git a/config/dospaths.m4 b/config/dospaths.m4 index 3686377..92fb540 100644 --- a/config/dospaths.m4 +++ b/config/dospaths.m4 @@ -1,7 +1,7 @@ # Test if the system uses DOS-style pathnames (drive specs and backslashes) # By Paul Smith . 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 diff --git a/config/install-sh b/config/install-sh index a9244eb..377bb86 100755 --- a/config/install-sh +++ b/config/install-sh @@ -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 diff --git a/config/mdate-sh b/config/mdate-sh index 60dc485..b3719cf 100755 --- a/config/mdate-sh +++ b/config/mdate-sh @@ -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 , 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\""` diff --git a/config/missing b/config/missing index 86a8fc3..db98974 100755 --- a/config/missing +++ b/config/missing @@ -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 , 1996. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 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 ." exit $? @@ -99,228 +70,141 @@ Send bug reports to ." ;; -*) - 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) diff --git a/config/texinfo.tex b/config/texinfo.tex index bfd765d..6312dad 100644 --- a/config/texinfo.tex +++ b/config/texinfo.tex @@ -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. diff --git a/configh.dos b/configh.dos index 03bf8db..b316214 100644 --- a/configh.dos +++ b/configh.dos @@ -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 . */ #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" diff --git a/configure b/configure index c9229f0..c587e44 100755 --- 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 . # @@ -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: +# +# +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: + +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: . + +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} @@ -3935,141 +4061,49 @@ 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 : +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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 to if __STDC__ is defined, since - # 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 -#else -# include -#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 +#include +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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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 to if __STDC__ is defined, since + # 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 +#else +# include +#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 +_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" || diff --git a/configure.ac b/configure.ac index d73dd8c..fab9a2d 100644 --- a/configure.ac +++ b/configure.ac @@ -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 . -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! diff --git a/configure.bat b/configure.bat index aba3a3b..e54ba84 100644 --- a/configure.bat +++ b/configure.bat @@ -1,5 +1,5 @@ @echo off -rem Copyright (C) 1994-2013 Free Software Foundation, Inc. +rem Copyright (C) 1994-2014 Free Software Foundation, Inc. rem This file is part of GNU Make. rem rem GNU Make is free software; you can redistribute it and/or modify it under diff --git a/debug.h b/debug.h index 9f630d6..9d2ec04 100644 --- 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 diff --git a/default.c b/default.c index 47b7dd3..3b6f7ae 100644 --- 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 . */ 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 13cefdc..b8c0d29 100644 --- 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 d046bd9..7e00b8f 100644 --- 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. */ diff --git a/doc/Makefile.am b/doc/Makefile.am index ed519a1..03977ba 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -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 diff --git a/doc/Makefile.in b/doc/Makefile.in index c7a018f..f930c6a 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -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 @@ -32,23 +31,51 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see . 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. diff --git a/doc/fdl.texi b/doc/fdl.texi index cb71f05..9c3bbe5 100644 --- a/doc/fdl.texi +++ b/doc/fdl.texi @@ -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, diff --git a/doc/make.info b/doc/make.info index c6ad6e6..7a54c1b 100644 --- a/doc/make.info +++ b/doc/make.info @@ -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  Indirect: -make.info-1: 1338 -make.info-2: 291887 +make.info-1: 1342 +make.info-2: 305689  Tag Table: (Indirect) -Node: Top1338 +Node: Top1342 Node: Overview16115 -Node: Preparing17130 -Node: Reading18101 -Node: Bugs19028 -Node: Introduction20857 -Node: Rule Introduction22454 -Node: Simple Makefile24387 -Node: How Make Works28129 -Node: Variables Simplify30784 -Node: make Deduces32990 -Node: Combine By Prerequisite34723 -Node: Cleanup35752 -Node: Makefiles37170 -Node: Makefile Contents38006 -Node: Splitting Lines41188 -Node: Makefile Names42949 -Node: Include44560 -Ref: Include-Footnote-148308 -Node: MAKEFILES Variable48442 -Node: Remaking Makefiles49983 -Node: Overriding Makefiles54208 -Node: Reading Makefiles56236 -Node: Secondary Expansion59690 -Node: Rules67152 -Node: Rule Example69825 -Node: Rule Syntax70679 -Node: Prerequisite Types73272 -Node: Wildcards76139 -Node: Wildcard Examples77858 -Node: Wildcard Pitfall79207 -Node: Wildcard Function80996 -Node: Directory Search82780 -Node: General Search83915 -Node: Selective Search85622 -Node: Search Algorithm88610 -Node: Recipes/Search91128 -Node: Implicit/Search92451 -Node: Libraries/Search93393 -Node: Phony Targets95364 -Node: Force Targets100440 -Node: Empty Targets101477 -Node: Special Targets102782 -Node: Multiple Targets110640 -Node: Multiple Rules112505 -Node: Static Pattern114723 -Node: Static Usage115375 -Node: Static versus Implicit119095 -Node: Double-Colon120836 -Node: Automatic Prerequisites122596 -Node: Recipes126861 -Node: Recipe Syntax128034 -Node: Splitting Recipe Lines130149 -Node: Variables in Recipes133302 -Node: Echoing134628 -Node: Execution135903 -Ref: Execution-Footnote-1137316 -Node: One Shell137461 -Node: Choosing the Shell140776 -Node: Parallel144922 -Node: Parallel Output147591 -Node: Parallel Input152020 -Node: Errors153141 -Node: Interrupts156809 -Node: Recursion158392 -Node: MAKE Variable160492 -Node: Variables/Recursion162739 -Node: Options/Recursion168185 -Node: -w Option174203 -Node: Canned Recipes175198 -Node: Empty Recipes178183 -Node: Using Variables179331 -Node: Reference182761 -Node: Flavors184319 -Node: Advanced190301 -Node: Substitution Refs190806 -Node: Computed Names192359 -Node: Values196906 -Node: Setting197823 -Node: Appending200730 -Node: Override Directive204674 -Node: Multi-Line206301 -Node: Undefine Directive209125 -Node: Environment210211 -Node: Target-specific212462 -Node: Pattern-specific215489 -Node: Suppressing Inheritance217335 -Node: Special Variables218788 -Node: Conditionals224226 -Node: Conditional Example224939 -Node: Conditional Syntax227502 -Node: Testing Flags233263 -Node: Functions234364 -Node: Syntax of Functions235924 -Node: Text Functions238258 -Node: File Name Functions246829 -Node: Conditional Functions252051 -Node: Foreach Function254425 -Node: File Function257638 -Node: Call Function259639 -Node: Value Function262524 -Node: Eval Function263961 -Node: Origin Function266237 -Node: Flavor Function269455 -Node: Make Control Functions270497 -Node: Shell Function272183 -Node: Guile Function273816 -Node: Running274566 -Node: Makefile Arguments276549 -Node: Goals277265 -Node: Instead of Execution282004 -Node: Avoiding Compilation285717 -Node: Overriding287691 -Node: Testing290003 -Node: Options Summary291887 -Node: Implicit Rules303579 -Node: Using Implicit305725 -Node: Catalogue of Rules309244 -Node: Implicit Variables318592 -Node: Chained Rules323705 -Node: Pattern Rules327716 -Node: Pattern Intro329250 -Node: Pattern Examples331838 -Node: Automatic Variables333645 -Node: Pattern Match341003 -Node: Match-Anything Rules344326 -Node: Canceling Rules348205 -Node: Last Resort348919 -Node: Suffix Rules350748 -Node: Implicit Rule Search354473 -Node: Archives357973 -Node: Archive Members358678 -Node: Archive Update360288 -Node: Archive Symbols362199 -Node: Archive Pitfalls363433 -Node: Archive Suffix Rules364155 -Node: Extending make365702 -Node: Guile Integration366839 -Node: Guile Types368065 -Node: Guile Interface370487 -Node: Guile Example371774 -Node: Loading Objects373965 -Node: load Directive375452 -Node: Remaking Loaded Objects378206 -Node: Loaded Object API378840 -Node: Loaded Object Example385601 -Node: Features387849 -Node: Missing397021 -Node: Makefile Conventions400749 -Node: Makefile Basics401728 -Node: Utilities in Makefiles404895 -Node: Command Variables407393 -Node: DESTDIR410632 -Node: Directory Variables412799 -Node: Standard Targets428164 -Node: Install Command Categories442269 -Node: Quick Reference446795 -Node: Error Messages459490 -Node: Complex Makefile467403 -Node: GNU Free Documentation License476021 -Node: Concept Index501183 -Node: Name Index571815 +Node: Preparing17128 +Node: Reading18096 +Node: Bugs19023 +Node: Introduction20852 +Node: Rule Introduction22445 +Node: Simple Makefile24378 +Node: How Make Works28114 +Node: Variables Simplify30763 +Node: make Deduces32969 +Node: Combine By Prerequisite34702 +Node: Cleanup35731 +Node: Makefiles37149 +Node: Makefile Contents37985 +Node: Splitting Lines41158 +Node: Makefile Names42918 +Node: Include44525 +Ref: Include-Footnote-148269 +Node: MAKEFILES Variable48403 +Node: Remaking Makefiles49944 +Node: Overriding Makefiles54169 +Node: Reading Makefiles56197 +Node: Secondary Expansion59659 +Node: Rules67120 +Node: Rule Example69793 +Node: Rule Syntax70646 +Node: Prerequisite Types73241 +Node: Wildcards76108 +Node: Wildcard Examples77827 +Node: Wildcard Pitfall79177 +Node: Wildcard Function80966 +Node: Directory Search82750 +Node: General Search83885 +Node: Selective Search85592 +Node: Search Algorithm88582 +Node: Recipes/Search91100 +Node: Implicit/Search92423 +Node: Libraries/Search93365 +Node: Phony Targets95336 +Node: Force Targets100173 +Node: Empty Targets101210 +Node: Special Targets102512 +Node: Multiple Targets110385 +Node: Multiple Rules112245 +Node: Static Pattern114463 +Node: Static Usage115115 +Node: Static versus Implicit118834 +Node: Double-Colon120574 +Node: Automatic Prerequisites122334 +Node: Recipes126595 +Node: Recipe Syntax127767 +Node: Splitting Recipe Lines129882 +Node: Variables in Recipes133035 +Node: Echoing134361 +Node: Execution135636 +Ref: Execution-Footnote-1137049 +Node: One Shell137194 +Node: Choosing the Shell140509 +Node: Parallel144653 +Node: Parallel Output147322 +Node: Parallel Input151749 +Node: Errors152868 +Node: Interrupts156532 +Node: Recursion158115 +Node: MAKE Variable160212 +Node: Variables/Recursion162455 +Node: Options/Recursion167900 +Node: -w Option173918 +Node: Canned Recipes174913 +Node: Empty Recipes177896 +Node: Using Variables179044 +Node: Reference182472 +Node: Flavors184030 +Node: Advanced190009 +Node: Substitution Refs190514 +Node: Computed Names192067 +Node: Values196615 +Node: Setting197532 +Node: Appending200441 +Node: Override Directive204383 +Node: Multi-Line206010 +Node: Undefine Directive208834 +Node: Environment209923 +Node: Target-specific212175 +Node: Pattern-specific215202 +Node: Suppressing Inheritance217049 +Node: Special Variables218502 +Node: Conditionals224911 +Node: Conditional Example225624 +Node: Conditional Syntax228187 +Node: Testing Flags233944 +Node: Functions235045 +Node: Syntax of Functions236605 +Node: Text Functions238939 +Node: File Name Functions247504 +Node: Conditional Functions252730 +Node: Foreach Function255105 +Node: File Function258318 +Node: Call Function260396 +Node: Value Function263281 +Node: Eval Function264718 +Node: Origin Function266994 +Node: Flavor Function270220 +Node: Make Control Functions271264 +Node: Shell Function272950 +Node: Guile Function274583 +Node: Running275333 +Node: Makefile Arguments277314 +Node: Goals278030 +Node: Instead of Execution282769 +Node: Avoiding Compilation286484 +Node: Overriding288459 +Node: Testing290771 +Node: Options Summary292655 +Node: Implicit Rules305689 +Node: Using Implicit307826 +Node: Catalogue of Rules311345 +Node: Implicit Variables320689 +Node: Chained Rules325762 +Node: Pattern Rules329772 +Node: Pattern Intro331306 +Node: Pattern Examples333888 +Node: Automatic Variables335695 +Node: Pattern Match343045 +Node: Match-Anything Rules346368 +Node: Canceling Rules350247 +Node: Last Resort350961 +Node: Suffix Rules352790 +Node: Implicit Rule Search356515 +Node: Archives360014 +Node: Archive Members360719 +Node: Archive Update362329 +Node: Archive Symbols364240 +Node: Archive Pitfalls365473 +Node: Archive Suffix Rules366195 +Node: Extending make367743 +Node: Guile Integration368880 +Node: Guile Types370108 +Node: Guile Interface372528 +Node: Guile Example373814 +Node: Loading Objects376005 +Node: load Directive377495 +Node: Remaking Loaded Objects380249 +Node: Loaded Object API380883 +Node: Loaded Object Example387645 +Node: Features389892 +Node: Missing399059 +Node: Makefile Conventions402784 +Node: Makefile Basics403763 +Node: Utilities in Makefiles406930 +Node: Command Variables409429 +Node: DESTDIR412669 +Node: Directory Variables414836 +Node: Standard Targets430192 +Node: Install Command Categories444298 +Node: Quick Reference448824 +Node: Error Messages461529 +Node: Complex Makefile469425 +Node: GNU Free Documentation License478043 +Node: Concept Index503185 +Node: Name Index573971  End Tag Table diff --git a/doc/make.info-1 b/doc/make.info-1 index 4025d3e..2a1a922 100644 --- a/doc/make.info-1 +++ b/doc/make.info-1 @@ -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  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 +  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.  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'.  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.  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.  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'.  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:  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.  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'.  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.  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.  @@ -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'.  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!  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.  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.  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.).  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.  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.  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 '='.)  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.  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'.  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'.  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::.  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::).  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.  @@ -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.  @@ -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'.  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.  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::.  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.  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.  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'.  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'.  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 -a 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.  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.  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.  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.  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.  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.  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'.  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.  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 '@'.)  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.  @@ -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'.  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.  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.  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::.  @@ -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.  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.  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.). -  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.  @@ -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.  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.  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 - a 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.).  @@ -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.  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.  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.  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  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'.  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::).  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.  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_ -a 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.  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.  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.  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).  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.  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.  @@ -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.).  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'.  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.).  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. + + +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. diff --git a/doc/make.info-2 b/doc/make.info-2 index af881aa..c6229ff 100644 --- a/doc/make.info-2 +++ b/doc/make.info-2 @@ -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 - -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. -  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.).  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 $@'.  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.  @@ -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.  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.  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.)  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.) -`$( #include @@ -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):  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 - a 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.  @@ -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.  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.  @@ -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'.  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:  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.  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 `$%'. +'$( 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 - a 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/'. + . 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.  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)  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) - diff --git a/doc/make.texi b/doc/make.texi index 8fbdb61..b0f5af7 100644 --- a/doc/make.texi +++ b/doc/make.texi @@ -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. diff --git a/doc/stamp-vti b/doc/stamp-vti index 047ad02..c46333e 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -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 diff --git a/doc/version.texi b/doc/version.texi index 047ad02..c46333e 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -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 diff --git a/dosbuild.bat b/dosbuild.bat index 4091463..fac2e88 100644 --- a/dosbuild.bat +++ b/dosbuild.bat @@ -1,5 +1,5 @@ @echo off -rem Copyright (C) 1998-2013 Free Software Foundation, Inc. +rem Copyright (C) 1998-2014 Free Software Foundation, Inc. rem This file is part of GNU Make. rem rem GNU Make is free software; you can redistribute it and/or modify it under diff --git a/expand.c b/expand.c index ba04e48..1c87db1 100644 --- 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 b209d88..e1a8e80 100644 --- 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 diff --git a/filedef.h b/filedef.h index f458551..b8973db 100644 --- 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; diff --git a/function.c b/function.c index ecce627..169c3a1 100644 --- a/function.c +++ b/function.c @@ -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; diff --git a/getloadavg.c b/getloadavg.c index 0f5d400..a755b6d 100644 --- a/getloadavg.c +++ b/getloadavg.c @@ -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 diff --git a/getopt.c b/getopt.c index 5a40b6c..a8051fc 100644 --- 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. diff --git a/getopt.h b/getopt.h index cb8865e..adef9a5 100644 --- 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. diff --git a/getopt1.c b/getopt1.c index 51bea51..42dea22 100644 --- 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. diff --git a/gettext.h b/gettext.h index f1156b9..c2030ff 100644 --- a/gettext.h +++ b/gettext.h @@ -1,5 +1,5 @@ /* Convenience header for conditional use of GNU . -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/glob/ChangeLog b/glob/ChangeLog index 8f0739c..c543c85 100644 --- a/glob/ChangeLog +++ b/glob/ChangeLog @@ -1,3 +1,9 @@ +2013-10-20 Paul Smith + + * 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 * glob.c (my_realloc) [__DJGPP__]: Don't define, and don't diff --git a/glob/Makefile.in b/glob/Makefile.in index 3f79418..7a63861 100644 --- a/glob/Makefile.in +++ b/glob/Makefile.in @@ -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. @@ -34,23 +33,51 @@ # this program. If not, see . 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 diff --git a/glob/glob.c b/glob/glob.c index 1a19205..f3911bc 100644 --- a/glob/glob.c +++ b/glob/glob.c @@ -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, '{'); diff --git a/gmk-default.scm b/gmk-default.scm index 89db652..fa19d3c 100644 --- a/gmk-default.scm +++ b/gmk-default.scm @@ -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 diff --git a/gnumake.h b/gnumake.h index 94d725e..fd0b3a4 100644 --- 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 499585c..7c9a015 100644 --- 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 . */ #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 ca2d02d..7b4b271 100644 --- 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 */ diff --git a/implicit.c b/implicit.c index 5fedec0..8e1d541 100644 --- a/implicit.c +++ b/implicit.c @@ -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 febfac0..2989249 100644 --- 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 . */ #ifdef WINDOWS32 #include -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 -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 8a20177..3c921ba 100644 --- 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 . */ #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 a2cbc25..79294b3 100644 --- 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 . */ #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 */ diff --git a/loadapi.c b/loadapi.c index 0568cbd..fb275dd 100644 --- 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 f60e6be..7f14cba 100644 --- 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; /* 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); } /* 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 \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; } } @@ -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 94536fe..ed04db9 100644 --- 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 diff --git a/make_msvc_net2003.vcproj b/make_msvc_net2003.vcproj index be620ad..01b1f0d 100644 --- a/make_msvc_net2003.vcproj +++ b/make_msvc_net2003.vcproj @@ -154,11 +154,11 @@ - + diff --git a/makefile.com b/makefile.com index 6359c47..fe37c05 100644 --- a/makefile.com +++ b/makefile.com @@ -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 diff --git a/makefile.vms b/makefile.vms index e5950b7..ad5ded7 100644 --- a/makefile.vms +++ b/makefile.vms @@ -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) $< $@ diff --git a/makeint.h b/makeint.h index 3e22296..fdcae75 100644 --- 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 # 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 + 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 bc54ce6..00a3210 100644 --- 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) diff --git a/output.c b/output.c index fa757b0..e537f3a 100644 --- 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); } } @@ -606,141 +586,120 @@ outputs (int is_err, const char *msg) } -/* 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; -} - /* 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 */ } diff --git a/output.h b/output.h index e0d5daa..7c5332c 100644 --- 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 index cd7de0c..0000000 --- a/po/ChangeLog +++ /dev/null @@ -1,93 +0,0 @@ -2013-01-06 Paul Smith - - * POTFILES.in: Add new load.c file. - -2012-01-12 Paul Smith - - * POTFILES.in: Add new guile.c file. - -2011-09-26 Paul Smith - - * LINGUAS: Added new translation file for Czech (cs). - -2009-09-16 Paul Smith - - * LINGUAS: Added new translation for Italian (it). - -2008-05-17 Paul Smith - - * LINGUAS: Added new translation for Lithuanian (lt). - -2007-08-15 Paul Smith - - * LINGUAS: The Kinyarwanda (rw) translation has disappeared from - the translation site, so remove it. - -2006-01-28 Paul D. Smith - - * LINGUAS: Added new translation for Vietnamese (vi). - -2005-07-14 Paul D. Smith - - * LINGUAS: Added new translation for Indonesian (id). - -2005-05-09 Paul D. Smith - - * POTFILES.in: Add new file vmsjobs.c. - -2005-04-06 Paul D. Smith - - * LINGUAS: Added a new translation for Kinywarwanda (rw). - -2005-02-09 Paul D. Smith - - * LINGUAS: Added a new translation for Irish (ga). - -2005-02-01 Paul D. Smith - - * LINGUAS: Added a new translation for Finnish (fi). - -2003-10-18 Paul D. Smith - - * LINGUAS: Added a new translation for Belarusian (be). - -2002-12-19 Paul D. Smith - - * LINGUAS: Added a new translation for Ukrainian (uk). - -2002-10-05 Paul D. Smith - - * POTFILES.in: Add variable.h as it has a translatable string. - -2002-08-08 Paul D. Smith - - * LINGUAS: Add a new translation for Chinese (simplified) (zh_CN). - -2002-08-02 Paul D. Smith - - * LINGUAS: Add a new translation for Swedish (sv). - -2002-04-21 Paul D. Smith - - * 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. - -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 . diff --git a/po/Makevars b/po/Makevars index 900e794..b69192e 100644 --- a/po/Makevars +++ b/po/Makevars @@ -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 diff --git a/po/POTFILES.in b/po/POTFILES.in index ba156ee..4287c5d 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -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 diff --git a/po/be.gmo b/po/be.gmo index 93a72bc86662c81f33dc01929652bac3e7a4b1b8..6c4ecf0a1aa2ec88b9c4e465d9c99a46d14c35cf 100644 GIT binary patch delta 1821 zcmYk+U1*kN7zglM-O@FuIkivCxz@C{*|s)yvzlpETQi*}kp>n7Mw#?=P;@XnsPwED z8$yOuqmqis5n@zy5O`uk!h>K`N*;wo9R&lS-~a73x_Phn_k6tX{c+vb^Gs~|apUMO zjWy#%8xbqS=aA7H<ALM&UAc^^}I-bEq~HV z%Pf<*`EI8Fg|(&k_(H&z{HCh|BtxQ}+Fj8h-w2-ETVT+dHgnJ_cKS!SinjJk>) zOv<;@Zj|SE4PWMH20rW{DSL+*-~^M(ZFsZ)8)vU3MY(XnCkzTr02AC}zW(L~J z{C*$JsT}6D9B2Cbq(T0Z`tM!H3V&cb&oTpCW>&P&$@6mz$Xq`n&u*0unU#LYeok|M zb!NSbgM5ldxren&6d<2q{(pRl{I7Lz(uK_IJbU;zZ)LmXWPn}NcX@_M^{ezLZ~01U zCz+?`G*cTF*~WV5ZQ%yq&c}E^-(c=fC;v(DEIU|lACi$irUte!9Sm|m53q|fOa~2S z)6G8a<$m79Gt7W>R+WYHFe%?nLzNep$9ME~2kGcNnsk|F2DreiY^i@`Z`X4dx3Y#4 zOh(>jw&Y`Gf?qKcUL$SU%3-eKE6f&s#0U8s^*dVHZE%XMkD1XU%)l=)6PjQzk24+r z%1pS%OXF^K(xq~M=3EX{&yTUk`6*_Ce=rNU%=~Vr!B*z^-{;_F7hYqEVvf zk+f_<(w^cR7HQeX6kA%hz}8n<-useN)`%4GTA>~*^>7Dwh-!PfY;}~1R1B3u*~vRa zs<%&ME7G#pwPK#QPyD~FuAb!4+9I;Q-PLQMQ#4Plod3a`sY?rnYR85aJv#RFqCE{g g9bKIroxM$6-TmFYQ!R`4&zt(G@l@T|cPozl0}>IJmH+?% delta 2141 zcmYk+e@xVM9LMnw>X9N~pa@FkhYC>a=r|Gi;Yli*0$2W^HPg-AxHE47huqfNc07eG=-?L2 z=OvwY;1V3eNAWGpHzsMWP+7}`>$n7_&)B#-|;B=ih5OK<>r#KcfjK7#tXK0xi6uW&uyOj3EAN(u8`gUz@T zBd7;1BgvYd(2F-wGgV42+8Y-2el_-BC)VK?sQ3RyKbA6z!`P0S@e@>k$-k&*B*mmfYXc#r3%cu_KP$RpITJsf5!#=FQMVLU%$Pj92PNNch7nQJwb!2Ii zriMx_7oJD0)hO=5>!^nF_*2j(EJY=>5!LZtR6+^dh-0XR)2M|1!~hoZ5>1&-WUS^$ z_WT6a>-)bzMH${ejo=s5gS9M}I^KbgU^i-SjGz*J6E)H~Jc!?*p0^w_TRLDB%{OhW<0_t+iFrh^#6UAHi(>U-XG7u`Z&OXd?W?y|RtU{_Kf1FB6dYL)w6w z3C3lDgl4ycP_pXZ>?Slajpkm_RI2bnn5~4?TtzdXS<)_6X(Tio`p&i9+Di)wZBqUJ z*AsgP{hz34N$)F}{>=`qXbDs_WdWj%SVL?gRM;$;qR((U!EBqo#5077Hm%luolfp6 z9_rNuAC7s7SU{*eODxU2K}DZfGoeqaozRBSCaWM+I*BKzf6e_crz#u`+o9N??Tv)` zY}eLpHrf|YL_%R3J7ODcyg$?(iMOts9$p;uEbooRVEx)+QnR3V7VRytmskU71(q3x*wOKdij=E

\n" "Language-Team: Belarusian \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 "" 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 \n" msgstr "Паведамляйце пра памылкі на .\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 %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\"" diff --git a/po/cs.gmo b/po/cs.gmo index babe63b890d1304195e7c5716c73499dba10ed44..e8cbeaf90c6cdf7ba09832424e5e83bb5bd53bca 100644 GIT binary patch delta 9384 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 delta 10329 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 diff --git a/po/cs.po b/po/cs.po index c679df9..9e6fa8b 100644 --- a/po/cs.po +++ b/po/cs.po @@ -25,10 +25,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 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 \n" "Language-Team: Czech \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 "" msgstr "" -#: 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 \n" msgstr "" "Chyby v programu hlaste anglicky na . Nedostatky\n" "v překladu hlaste česky na .\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 %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“!" diff --git a/po/da.gmo b/po/da.gmo index 3c6d27e9c3e1b1f932cdd08d5c2579a8e86f5eed..02fa3106934deb6869c48767e88fc9700132dcab 100644 GIT binary patch delta 5702 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 delta 6137 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\n" "Language-Team: Danish \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 "" 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 \n" msgstr "Send fejlmeldinger (pÃ¥ engelsk) til .\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 %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" diff --git a/po/de.gmo b/po/de.gmo index e6455d18c864a8d02da35b90174bffdaba009960..d3250e29050429fb42a6c23e3e3d6c511864fc74 100644 GIT binary patch literal 46111 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≠`%ZKn^+jMlG$mR^ zOleLY(S5u?nLSZMnkO?Ugmwyuu+GC?(tLclSDc!R}_z;q=RktNoUx%NbZZ{d8V{+I&<8M~)n0Z*)Nh1pr zj1Z!RGclGmEG?Sc;aQ#H;Ul0eXgOWUX1Q=e-;#8x)3W=BK6G1|fLQ@}EISL(uy2pU zG#$-qv>Sp%ZZFO+S*}~Uhil3B-JOmhEd-{=`f2uSs|u97m^vOeerEns#&Z4tSh-B|_ghWTU`sbUKV@Ho`jpeO_W z`6TP?ZsSsQvVVF2%$S|C0AwydwFrZr{~(Z zuLuoWiafo-Kbw)M#7fED(!J1iplFI5q}zsb=!TRI2RSFYowF;Ig3jhk?W zVopS84I&+yo)JuJp%dA0iV8fl0H-#AO^Ml+97#AundyU7C2fAv_*(GkEJV$1maj>| zR|7Ab6xvEp4?V|3h`BOzGTC+<=3H7mzO#Qr$&Of5Sz3oUlG+!v&ra=;PfvP^Qx0j` zR*QWOg;4FI7eyraOz|<2aIE%9q-2Mwlh!TlMK&m;t4umcNS0kHOqO~ZP*_pS6qT>> zA8Ke;LFm6;9uKWKYCVI0)A3-9P#wx17H9ej9!88ku}7${O;pv{#QYVZ9=2#{8A!w^ zaeqJGn+=)Y5a10$!pIX9gr_k@p@*6%izem!uADf$QPk_qC_B0l2OJCP`*fs1M;;u^ z$c|LvU43%{ho*#`v{c$F!*X=C!OygFEzxTuwd5ibTi23sH9c)H>nn{vBSE_5LQT+# zk!ec5GYa{Jht5r)X|ncY&U|w8vFUj+Ii` zV0)_rYWLwqC$;;;IiVQSsK&`{6r-V)ebmmrL3FPDqiCJyN#-eJxqI?GFP zo0!~KQgv4ejm2!14M!^s%l#&>zeFGMY)v%KGe=$r%-x_rS76VsTvK58k#h;DLq)HESI+>qwj0? z9&FF_xx6{2a+@McWv->GWPZ{D&Tem&t=zcpAzNo^S8fDB%}8iZ`RDP)o&T8?_arC<35fCY3%ofcV{Ab%q+D$|iOQ*oD6(sjKMoW*S?0x=a5dSXssqggC4{3q1W3S^d)w*03?FdV< iI`N!1AM=9mJC<5dROe(cD7P0 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 B4*LKA diff --git a/po/de.po b/po/de.po index 29e285a..1e3b1b3 100644 --- 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 2013 # Karl Eichwalder , 2002, 2005. # Alexander Mader , 2000. # Alexander Mader , 1997. @@ -12,130 +14,129 @@ # 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 \n" -"Language-Team: German \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 \n" +"Language-Team: German \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 "" -msgstr " (eingebaut):" +msgstr "" -#: 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 \n" msgstr "Fehlermeldungen (auf Englisch) an 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 \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 .\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" diff --git a/po/es.gmo b/po/es.gmo index 83cbb5799cdb414480a6f482a25fc62c3c971833..b671030ae09e365c8b1875fe6d4917c75748f72c 100644 GIT binary patch literal 45174 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 delta 9231 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 Id?4e$0UUe28~^|S diff --git a/po/es.po b/po/es.po index 18a1ee2..904e1d3 100644 --- a/po/es.po +++ b/po/es.po @@ -1,145 +1,146 @@ -# 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 , 1996, 2011. +# Max de Mendizábal , 1996, 2011. +# Antonio Ceballos , 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 \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 \n" "Language-Team: Spanish \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 "" -msgstr " (interconstruido):" +msgstr "" -# 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 \n" msgstr "Informe sobre los errores a \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 \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" diff --git a/po/fi.gmo b/po/fi.gmo index f950a1c234e7984daa05d9cc8bb37a1abf063265..4967e238bcf0913fb0de19956a861a8537e37a3c 100644 GIT binary patch delta 4691 zcmZA43sjc%0mtz_$hZjvicS#W1to}^0uqTR3VCB9%1kXSWr{$Ogp%SQUnaP`U&5|d zl*=hBDnrf6OmuEY3Tm}xrN^zEt&^kHiL-Vp*S^2^{nPR6IsN$jpXYg>=YM}+>uC09 z-s|DKI>_rW!|^_eAjiFp8SY`sqCj0WrZdEtVR#mA#lPY$=r_n1Ukt-&j6rUhJJEsj za0sr&INXjS@dysZ%SaVY^Dhb`xbR<$!HB^$0CUiR3vnja;cPsM1sEP`%p@$sN^G%) zQL8?;8K>e$n2*uaT8|Yt4tp_=`c2$Vjaklx6}T8L;do4=+l9Ci^@0=lF#3fVvmPJ8 ziRc}!7a21JRpDlwffrEk38y!HI1kmqB^ZDW7)1SM7X^)WGxCgSLk(po>cNjN2>*r} z@~<%%zsFb%WZrZ=9WyZ-_4#Vl)HNV|GS47wHiuCo-i^+93jd_Q=$Rp0)f^{a0?t8Q zuS3nqPee5|lRp~zdr(tYj@m7?sLyRhz2^zkl)T`i zKxfPws6}zv`gc@=zP9(nXpM$;9I8k6p01s=81*1kX z64^+`8Am}wIo>)4^}q-@5pn8~xn(LXUp3SxArKoLKi5h`=)Na{>nt~Qo zM?OF`=o+$N%)e33g~rnX>Nl|z^xy>4oE4#3SdDtH-uk%pCDbZEg<5P^Q6toAuYZHu zZiAUWP1Q7XH5`37FGY5|sYIuGx{ZP=ej3%2KG=`r@Ke-_ zM(~ifS0Pq;udS+mw6HOf-d{P zFHj@pIodt9!I;B&Hjc$QRKpJ8G`xO!xa*F^_ZS ze<)0)kbQ?SS=fLGBc3+jMW(VX0zA1kb+UT44FRDh~an`S#PEXBk(&Mh{KprRWJ%QH3g^_H=%aJ zA@s&KF$_D9^=Uq~`trjPsX5A^z$}=#=)i5(HdGJ0F&F!g^M3MrnuAz~ zmrxCendEMGBC5gjQHyvfY9y=Bsg^xSK|Om7qp$}xXJ4Y`@(0vN1Wa~U6o>lU9MlV| zP;=`ci)b~XMH#IUvsJUH^>gh(Dj|Y&t%nzs$&gZ3S;IGjG z*OND>-&`PkefL8i-fv{_lDt_Aik-e#}$b3X-bzZb~~@)J@`bgUuWu97it zq1MXHM>;3NRsSE!A$#Wut9Xd~mb4SC++3m~kNn-ka^@8;z#WSn@X6K_-$CvXh)7IyR6l z@+8S8wM0ja>W`wJA0d73k0Cl{7EA5C7VbF(eWFykSr$8ktJjfxtH901lg07SVXpw7519A*naPzD}L=u zBYM2sCyzYi)0CN*++LHI>(TUH(yL9)$z_3KlT*hekI8VPre&pNw1=kL9njvIwa=%0 yd2XzK)5)2)xBC`s@@P6Z>uOl_y3Ta&mRCQt+WZf|F7QYI delta 5170 zcmZA32~yqdghVWQsU}iwkn6Wk*XiT+I z(?*R;;}Tw>73Sy08x}$5yx#Bk>5v<0))|e?$xK zU3kK!2AUA!>X z@d)a3@!VxR`fxJ7jjJ%clQC(y2D7-od5=mi7an7pi!dKY;02tH5nVzZ%*BaKF1TNfz>&`zlB=jD1K;W15y1)Y5N5?cr%;mCc_}H)zTuq8YZsX4nliv))cS74S@YBZ9zF|BD+xoI*i@9zd1)mU%ZJL;TNbc#<1Snv!18{jzfKMhGVYdv#8U) z5p~!OVieXm*FV6awEv9Ss!l9p!@x19nWR$TU12g%GhK+faXxA$>reyOfg0GG$lKJ^ zq6T~w^|^bPjNwd|SBFW#NSuZG{X*3Dicx3kh5oF+_IL*u^u^b3FxI1H5-}k3cy>Vk znQ{Ek^%B$`u0n0uW>kl#Q16S&n1*dQQ0gxmqj4qb@vC%vC5iPf3F9&2f|f9LP-xFn zQ8!wEEifNBUuG$4CfiUebQCp^dgL6NJE$|$p4sSg!!ZV@AagSFF$34)FgzEeqLKaw zCtwQ0oq;QH8D2uoXu=R7w1tzBIp)_U>R$!muEIS@Tb@%|YFq2V_$F-P_7f~w~Nkc2u2|MCw z)R~!sBQYOa<6dONgXSa^Emb}0F#Z*_JNDC3@28?Ys>klwH6!%c495uCW3dZPL=LuD z;cbb?9tVzt5q*w+=PHO{l|pbX+hr(hs?y8{9(O zxGDS51_z^7C<`@{nW&DIpblXHYGy&yR;biU$5At`K~3~3rsG4@fQJUhhyKdt zqn5Y`d6Z2#s^bI5u`s8c_P7zJ;2onHc&{ zYOos>EqN}s#Y&9Ct=J5Aqh@*lHNaX_M;B2yyonZuPYV5SHvyZ|cA;)mh+5GKR6oa1 z13Hg9Z9#L7N*^vnO%9#@WYhO~ShE!06eYHz2ZW?qDya6SG2_ac)v z-{1(G%(L4P*P^y^6Y7QbI)>q+gB=}=~j3JHXC8wgpbCu{YHkRK|SxWS*zfV3R zDwSj>(Y9$NN{EX7kf~@@wQ`N+kW+a<`|qNW>s*MzrbMgqBf?W+o*{Zv7L!NIH5#iQ zy+FO1G$WezL8789xlERmH_2cUP6m;wx|2;sMN8M4EF@cqN)hpr?c|rFu{=*jPr+J} zN!S7N7*Y8x+1yYw=7)}rJWk~pIZSkhA~e(KL}d?2B>Fqfd+6J;g4(ai6Xavkid-Tp zFOw@|n;Min@)3E8#FI_rMN&u_OB9t@vX2B8@M9x6N>pmeXrhCsQ@oz|$!p~Ia@?} zNV1HaCF9A5q@L_1C&_;D0Z~~QqT%NWr(TZ1KKz(Oc93pl5qX0=NuDMur$`ogholgd zBP56PBCnI?M5TX-hX0(Np`J`UBtTk_PNcE;8eWXmXWLwl>TTy(<=#@O$nEl2v&Uvy zw#OfEyK*dVt~K297rUNz`!lLvjjfMpGIMHmPR~!84Gg$_9#^5|_W8WNbgQVeFklxK zx~-(7eD4y!+gIlHCFSP$EpKta_ImtPLlcvu{qACy&lT|c68zQk6SKoQm)X8RDV-F# zi@d&a%e^emRmy#Hs&@51(xIVev(#q?+>Lih@K;S6;EfrYG&ngaIn7EQl0JAy^@RcR zS`5!CsM}=)T)qOY9k2tIpPI||1YDNe)^7@2c{%O^zsqHn)$J;@3(MGpX8 zwufnT%-$H*v0+wxps3XL2W+d*TU_e*yQ=m~`Fuoy?aOC~rT&H+nE!94TM2#>U~I*% O!ZJ7CXCU8x!u$`9*@I*N diff --git a/po/fi.po b/po/fi.po index efd8db2..ab3df02 100644 --- 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 \n" "Language-Team: Finnish \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 "" 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 \n" msgstr "" "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen .\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 %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" diff --git a/po/fr.gmo b/po/fr.gmo index 89271db8843ec5d7113045b6154446e52b17dda9..095850cfe4910c97daa7c9295870d745109b19e6 100644 GIT binary patch literal 44572 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 delta 7205 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 Y@LW9`E7=GEukr6^7&A}3vN!pE0I@8ZmjD0& diff --git a/po/fr.po b/po/fr.po index a652fcc..287bb62 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,14 +6,14 @@ # Marc Baudoin , Frédéric Liné , 1996. # Michel Robitaille , 1996-2006 # Christophe Combelles , 2009, 2010 -# Kevin Raymond , 2012 +# Kevin Raymond , 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 \n" "Language-Team: French \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 "" -msgstr " (commande interne) :" +msgstr "" -#: 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 \n" msgstr "Signaler les anomalies à .\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 %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 » !" diff --git a/po/ga.gmo b/po/ga.gmo index aaf3e74fdcfca01753a0f58d86c63d417e9098ad..39e658ea27f4e2de62719a8eb7c0f6e31d44d4d3 100644 GIT binary patch delta 4852 zcmYk=30Rd?9>?(mDuRg0qTmW5u81rnAmYN}hzk-pGL4!ssJMlpfRjpe6(@1jEaz(3 z25rJ*Md`(HX-q|OcPw+NF&*uhYMdH+G;MU|sb;=E-a}94@yF-9=id9i@A;qe-rLiS zm%Pr@c)9)-)PB36T_%0VcRt1p^x`-`qsA-?GA0a{;~?CKU2!-1;!*66r!f%!g%S7z zcE|8wV+La)4!}9s1J@##aG4!+`Z7?5k=TsA@gEq0?Lv&n#wg6i|Sa5bjlCA0i>Vomy{bXE;I!_b&;SZ<@`cmf37>!-Hz8OVF)y_iBVe*mcnPsSwu0x$* zJ9fcZROuVA8}7q_c+!r4jh#5YgURSkdG)!`sHL2Y%-PIE7n3oo>G02NgH+di zf?D$%I1EGkIpZ0qwY=9_fkQd2#TYz=y3ier!fxSC$rF(wQ-VLkE#cH(H_*hu2)v9` z$@oV&n`|&@b0yY3YL?1kc+H9v$uU|ubt{s1LzJVBx>8R^1wO03cIWv5b z0o}k!)Qs<-O4^UJ`QrrCjB{}umZO%$gF5jc?1=wFz5gci&wS4xl|F(GYbj$sL{w{U2&ZQ5@(z<4~oagc>hI-CzZ>9ZWqk zH`9zdzv~M+dgCqBCJf*zDs6A%2{cit(vGs`pe`^UwdR%fxE{3>M^Gm|fjZAc)OoI0 zZ=yDL2g=M1yG$4zeJ~Prp`obKj7M#zsn%8K&2c?ycke=N%Dt$WU&AE)5;c+jeCw#9 zvDhB7P)m@Fy3YNrue1K;bX0-OsF~HFZs0I#DbAqQ@++j;rVEdVE|7qlVH$SC$*7s- z+2i@B$Fmq!flAa^AZ(Yy6m=Za4zZ=7=3{K`rTbsPp$=BkB7i2~)5fb-soe>aXYV8UqzxeAA&mSRCtY zzV)cr8?h5MV*;K>mE4=VW6~xJRnkmUMGNe>+m643{)}Hj-Ov}Piuky=4Q;9@WZBIm z%){lFgU4_-265F1_#l>|2Up@CuC@_tF%5@}H0I~{0B*`rhK%AQ96yg!@N>+?IO?hKwWtf7LTxg?(av58M$J4CJ7YSk zk~zqJbeWlSRDpHa4eL=S*pDIDWRE{WZK_XECI1iVgi)!E@tDE!I1I$Ks7>ZZZQ5Pf z8_!|{UdMQ@Z~VqMze=gdJ~OkBZD7`;Zm1DiZu2hcM!!XEx}NMPt@R|-uiC??*Pli1 z%^b$Q_+O+bCX64BJ~$oqxe^TL`sQUi+RevMcX|OQ;%#I#Oe%HNV^fMgSb>^J73zj- zkW!k{s4uG9$i_FJY0gY1pe|g5Y$sENx`9S?X=c~yXvSgb&W%h&jpw6oI8&%>eR3+*#65p`n@1bUP8~fo9cDBx+g#ow}Rf!7J((ahxa_;C=2ErL=#O`EU?*HC*Rc#?CXbkvT@^j_+6y3 zE)y`>dE+otsmG%poBL2FT8+A~Cs38}pk{R3dKER(yY|>`inBzKsHI84Avh6L*%H)w z_F^wR|0n5aCVxlm`dju51ExBaNJ7nIG3tbmpiZy}bt5&XlI}z8q4zNgZ=x^u$aY>2 zM=eZTrr{an2{WCiIUmSDZMtgI9;m?>{1{boAATsbw!KihJ_*?t zCLh_i<~f{>pQ6q)@*ZQnP)*lwZB)-3A&(MW{4JupeVnKbB%csHUTy6xorj2Ke~kQ< zsBI!Ilfgt4SWeXP99n-5R4JOvT;T5>5=VYV=8}a(Er4h@uO;h}% z{I+et`bX5J(=zS0W7_N=kqXkF`Nz{~Peu?bWDXOxE=21%hdfWzmXZ?kB6)_iwe@sV z+6^R=P~p}k1#^)+rw(nV!;gQ5s{Z?khv@nDA-SZI{DBN3zaZMVZS7$??-H%)dD4}< zPt(?}KBNS-7I z$vm=*v^8(rnbkI6jYNJ(&F_CQzMcM4BwO>}LTCR^UVM{&5P6miCvI|_oFPw>Y2+wT z%O`cDNe8rKvPKL+wkTj^Onh8STw+9g!svuV&z{)3{+G5-h3s0-8p delta 5362 zcmZYD33OD|0mkv0G=#(u0s$l-gcl$zfk47yAP6MvOAxWqf=F>lCd}X@6W>f&3OFti z5Ghmw6^wfotl$DcD<~)~7{zKSxKKf%mR8R(qMk$DPD}sayqj}8^&P+b?!EKozIT`R zhU3u(625vQA@*@*(pJOqDd|B*v^8dUf-z<7)oM&uCxYFu9}dF|oQEkG#2j?7BW^(l zcVHKM1N-A??1ODO8*?cR#B^g~ri4OI8m`3N7{beN6FRsH%kXWy3cJzkEL?&m_&kR3 zdux#1b>2ywf_YtynSnRqE%+ji#<7fQBG)&|C{)q#0xrbf-HaK7x8ZC&gzBJucVkxL zJiHk{z;SpjcRLZcqAqw6r=!Dks-Gp8iaSsPdVSvR{;YkwH?@H5-qsh78=1FU5@kk4x|AMZu&oo4KdXK^$pJI2t3DRG$p;S?6q zpc`nwA^0RRi{=z+vwer!WGVa^i+QN244`J#)Zf2x5N7ga zU2k0Pm{*ufgGT70ZeY8uH>0NXJf>k6wy<__4u8hsWYm(>qdMM*JV53E>ik!bubOvI zQ~$M9)1f8Jh*8i8b5LI>M0Ge8wKP+aSu+b!n?~o$4H#c*`}s@Af94bZXk9sD5{%`q_u-=b&fI9HXFJehziV-(fN)^48FWQc*M03$>{RS?6IQ^|h#7z8_9wgz3m3H6wkp=MwKcINu#CJI`UHK>v7McvRr)Z=&@^~JAI?}bE$ zsgd+VJ)R>`OE?2{qaoDyms>YlA4NR{2T+^weT=12IA=dNk9r)_xErn6c+?2WP$OE1 z+BAz%Bd$kXcr$85`!EfgQ8#u1^{)RMb;D+`cU~42s5+SW*9aHTps8DFPpC(IaT{vN zpGKC^yo*|rZ&7RCfeoRKI$7e?3)IN6hkB1|p0yZPCNTA=4v%m*T*I8f3~bMrFVXjK7!E`&&GpD+8#hKl zYjQto>i63ZT5Nk3-_nIgpl-ATHDfoRHs8(2{xgr@96X9wVoy4ok0G3d&FEtK2=)cu zg6lE%J%thq^&@$k;p?~+(|C5qeB>LN>ZNjoJgL{6KWTB4m4*X{Z}rj%+7$9}egG<|u`1yofp>o9SRu%mnO-t5KV= z5qsc!sJ-$H_QHN8-fo|Qy3uQJ3NAxd%^X5KT^CSq*8idg(x#O8*B$3j&{WPsz1fzb z9+!L3!8cGB{tPwZHcXRlpa?ax8&M-}#P;~6ZT}E;BPkQTC7F#ne;#TH@6^A)w6{U>TEE}+(~Ejv!<_d<0r81>i{A-_*%j{STYYU%1xYu$+b@QAeq`%v#Z zIp$5tD7JWS8pfkOScDqk8r0Gpz+60u>39(}Bk2rJYn+F=p)sf>nSx!g3NvvP>ikWp zO}ra*gYU&C=!;*VM)s|(C-H3PgbdUS^s|ma-M|dgn$AV-a-VHqiagP#9=S)eAKT(Z z)Qz;A=Iy2KsO!ecDe$P8g{Tv@p)R-!+u%Xe2w%l4Jb~IgEvTtao$lEO^}VsEnVgNo z&_(Ty$58zo#}xbra$_;mLP4*}3toe1GsF9lNJmX!4r+u&s6A4K8qsaGeLZSwAGGxs zZT%SP>G=}XPrI4kjrB$ibTVe?`JWpv@H33M!}Ye_h+2YusHHiI1MoxC)Fza99ZkjV z)UQJgqz<*q@35agi<*gM)Ifg3cGzJS-{<!X9`9UW0mCHsdew2`s^2j8tGF*`f7cPC>Tewz2}>vgI&phP9lo+O+9B(Rj)GQ)$ajp!ZGh*)O90CRs_Q6Nd~Uqsct-63HcJh>m*lJ}GJK z~cJeYWzd zMp4uH2`(c8eo}8O9-?qBxslAYjkn`Yl40v7u)Qsd+sMbZUX6dY<-?d}%kf!!fy%XH zBI!-WkvGW88S@ z&8?1CzgzKDYzputAFP-27Ya&s(e)7NYwAv_(G1~b;EA4Q(YH|25UopCqI8lcu~afF7> zk@;M1& diff --git a/po/ga.po b/po/ga.po index ef86f28..7e865a5 100644 --- 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 \n" "Language-Team: Irish \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 "" 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 \n" msgstr "Seol tuairiscí fabhtanna chuig \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 %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" diff --git a/po/gl.gmo b/po/gl.gmo index 793358c829fa84c84303638677f9811bf87bd537..209a1a4a1016e5bfebcf342909e2cdf108db059c 100644 GIT binary patch delta 5149 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 LyS&rK#=8Cs^&B#4 delta 5662 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 diff --git a/po/gl.po b/po/gl.po index 335dd64..254e2a5 100644 --- 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 \n" "Language-Team: Galician \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 "" 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 \n" msgstr "" "Envíe informes de fallo no programa a .\n" "Envíe informes de fallo na tradución a .\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 %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" diff --git a/po/he.gmo b/po/he.gmo index 64f36030fcd8f7c9cf339434d455361ec883b054..06035098ce5783e6aeb6f7d49cb99b1e394e1396 100644 GIT binary patch delta 3586 zcmYk;4NR3)9LMnk!UYvX5kv*$qKKkg7!wZ1>@p>gK_e$IJ#UjFBQ&hyldB{!!! zzeI=B8rohWK@n=q71@R#T3w_uov|KM@GwTnJ*c%mf?CrrkYvqS^QGaFhJ_mHcQPkQU$6&mL+B~;WYySXsehSmg z#SB!UrKk$5;3ot(qY~Y2j~_%$>;x*oOQ@x|>(J2+;y9`dd!d#h9a&zJYsZDizA_U~ zGnk81)vQD%Sc7`tPShrT7j^z=)Z23zd6fARbzM8MQRSVUbadfJ>vZc9)aF``+5`Jh zGe2yPAH!_M7f>aR;3-PD3u*#ssPBmvHNgp}2hKuGpc2_bj;W=ijP@bbHAhgHo<*H_ z9W|r-s0ziAmCkdcHrD{uho%^roN-V~SBFY`H>Tk`cKj2Pv-u4Z_5LeOyrlJ>G!_T3W~c{b@$%}m8jJe-QdDAVQ8TPTH@=6e>^W3|zoHV4AZt~mC%X0gOgbv< zMAU0nf-0$lTw^w&E;xh~!F+-$^?B55c>|TeebkJD-GOlj)E?++$Nf-y#fv&`7&@BK zI65kMDXKIMs^s<92R}wF(N)yU8&PjV0@Ky;(Wu>AVy(bb#&4nr&!L|459&J*%Pdvt zydKnFGhEIAZ6+Tofm4`{*N|m0?YX;3orZ-t1XapvREZl<5Ab6yorYt-)j0riEujJnYcRLNTLSyRcQQ8!9Po##beUx2FQ7}OHZ zMO|NpTDltR0o3^?9XcxYH}(%VQEL=Joi)QK)Y_+@*4T@xP(CV=V$@!kkE*~bOvPF| zK8`NN7f=aZLEYyM)Z67W+D>b>s50t?F6@o^MyF#iPP2cXfm~uraR6?yIT&qjyo_68&ETR%Z`ttZg2v1!|zd>@H(n; zf1~z9C}rS{HSwtP2cpg|L?t)_WAy&7praXWL|yoy^_2Bz)C2CK_CPpWzct38);0;* zZzdmA;yI{<7o#Rni8_A+YJxs=<35bw`Q~#v+C<-?9&{O1vfHRk!&nDpo`||}HiqLU zR6<3l1ZE5+2(^cZam((j3}z8~h)Uu$Vlgp_P#Y28|KDfnEh3)Q5zSv8hBq{z)e@r#t=sE_8p~yN z6Pt-dLTw(QHD5`vFPmP)-Z+$K**3KpOtt+D*45}dZU@`2j@WL;qMFb~O4fj;JlwDT7dYl&E*Wh)HKpZ{a!Xj@{3{c9BtwEcQqPb3gyiFBg5 zEuoW13?tlx+Kd2Azj{6A5_*f8o4&RS>|mqn|007nL@VM^Vkt3)m`D^5YRdvNeJAqh zM-utOAbUI)^-4}Bo+sK78AK70M5wJJUT*3IeqMp`I!Ub~@g%X6c!E$HNw|pT2=X+0 ziAVg`BbNsGE27FnecqJG{zEiOONlVy&AT7vu%(Lr1blg2i delta 3947 zcmZY9dvH|M0mt#PF(ibT#9~q+kK_;%Ai{=(NFcF>M}q-{s1XWSYz<@skt7>-69S^F zlwuWHEsaoxRt15vcEnDX(st^o)AoAWfKeu>kuq&6to$r!`gN;Pto&`JY*ivvCdT!AEd19>j@w8b5PWKYUu&5`K^0R`o21BHSD-f2V$^+iphmU< zwIl)5OdUW5ZBF8B{5fg~2T(Jh-s)?ag{rSdZT2k%%)bf;sVK%*(ThE(7p3w~jmV;= zd^u{QAuPw|P#t&&OK=cbb~A;CH029%CDx*5^bl&MUqZG2dSNK>-TsvdJ($VQl*OBo z**ABh8rp^o#_Yxl{4Q!K{)F1y@1ZvDhp2W&Q8Sjw@Z~hr)Xzn=SB<*AE<`~M-G`de zM%0=A)PznpI&oIk51J$90sQZ_qe#%#15_Y)%cOiW>dvPJYl(-I= zUJB}IDsR^eiHLNJf6W+{4r{TZ@BAsP|v@MYHt9u z_5FWJK~tB_7S-m+M?Q740QEpU>VeIu4tAk-@l&V~okTtNmh-&x3hKTLrbBz60MoDx zwY0b54Bl_nQP33cM)mk{)Ci8D9(WNo!dKAZ&rtXO1Jf~zdeO(I8JjRS(b4Isj#pwS zu12-L2Q^cNFr)^KQcw?1BVUmD5wa?#2lYUbH?fvEsQYs97M$g-H=;JzHng}OH6y2S z0ltR(nNd!B7{-<)zJl9Jn12ry&k>DyH&IX3ID;{_lK|oVctc;pW}@R8LO`~|Xy=rcY+bZj7Z5q(kLCNs7EIy7qacsX19W`VJxt=^i%8B-c4sF!0 zkZq)b=+HqLHz421wv<$jbbnlPXekXo5=3Cf6ULgC(G15*}5FN`C{P)~O z$xpVr8f~tVuKX;nBuV5&SI4TF=gCtfWI5^BLJG-F!p1d=i1xr@a_#ZtH5XrW<%3QQ zX00nfirwTed79{WoM=O859r{R@PFe!l&FjU2z`^XHq?KPCJNe!4-$P5t>mjjyZzeZ zPA-mool<4RrN60LV|5lPgs!0{mv5<@>_mhW6CMhHLkOHD(KY1)( zN}LWry}QmvA2~|yb9J?tLUxh8cDjJtmzq&i4XjAyN+4E9LI(&h)h8F7!1pI+2 z+uGUE(cIqRvtI9m{!Kw&V23Z@ZE6f!e|tx>zb)7un_QY6^tCqx8an)eqF^|GipP_? zqdCygNh7VkR)1iZ_3hl+(8>E7!}(KlJsIWRvQlqpr7fLbRW?6dGi^&!;q1jj(TkBt zjLr>3t_+`7pS^>2Y$OsH80)h`y?w\n" "Language-Team: Hebrew \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 "" 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 \n" msgstr "" "\n" ".-ì äì÷ú éçååéã çåìùì àð\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 %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'" diff --git a/po/hr.gmo b/po/hr.gmo index 33ffdae19c7bd35b6bcbc3b4934787b063227251..6340916738d41dfcd42d1a5ae66f441ac1407d42 100644 GIT binary patch delta 5686 zcmZA530PHS9>?()BH2MfTtEeJLl6`M7u;6@R0x;M4Q*63orqF$KW@#GI+~G|j;ToI zWHRcIFGTF?&m%4z4x5={NMMS%j3~W24W@hQR7|9n1&dHH82q)us8A% zlY`B0CN{$L$UjrYi@!0Jxj>^n9TgafezlDW!o4fn%`_<;X@0JK%Xt#xO>kfrC&7 z`VeR0ZJdm`4UCzESFkgV4z~wbggX9hOu(cF24v9~MidULpFf3~sw=2jt-vPu1TDSMgtPcy9Ja;ws4wOr)i$%S zCBBDL*&K5EFCx`7mB_`LU?w;UKa2ItU9+c?_ z*0pHpgV&HjnE=Y*i;1YpbVb)9LT~nqP$w)#PdttBcoDUzf~m8<-y2oAEYt}npe|%K z^3N3UqA9kH($JzgiyGlA)RjF!9Vm>md1EuwT8Kv$ut`NN%JGi*s0*0qy#Enus>)E6 zsX!gai+R<+f{=d8#L(b9(+l+g%0rcSG5X;a)B*OOR{b}qsk(x}Sb>@C&Rs1aX6t?nDB1NbnZ+OL5+VN3MIUdTtx zvyK+JvtNupxCJSy*@c>ltLUx!-rlCqb7U$64slT3JzARmhyeaAcol$F`KWgNYQ3sgg z_^x9yYO(Ia06dSHvI=aE51jWCcsTIS^y5WyKNo{=No(q_D_cj07T-qHl^;Y6;3Nj) zebhjF6YT-k#&+ztK#FC?AirN`IqE`+QQs>?UGZtuV!V%fjx!Yim!HsW%1qT$FoGfOZKKgaWK+%2dp-ONv<26hDX{$o_-0=R5d zG!#RyBl5hkOco85ehN}$vkWz|GSp(chnkYmj`o40Py=}$HQ%WxA; z!|vVfx!r?|!Bpa0Y}3O&@ebU?zAs;1h1+qPMPpzue)051Z~aAL%m7TmlgI)#_1V!C zWnwC>L5gCoqi(Mzd|9P!g{o8*YVnOkP3*QmL=i8@dv zMxrNY)om4x`g|g409{ZAnvVMZTc|1Ah`PPbVQsvPq3BIn>tSQmal55C_y1@*V(G9j z4vVoCp1~OW38OJQ-M$;rP>bvpRE3IACpv{1NCoORUd*4Ssx3z03}m*=dTfrD`%r() zX#gulBkG5Kn1|dkW)@Oqvkg_^N9cv&%!hspqEMx6iF!XB^}XL?Q~bc`FGp^Da}yh2 zWQJXdZWfKkbc{gmATtkDy4|QNI)=ya8tUiuGnTR{aTYaDFP5|h9)ele4*hW<>Izq& z2D}fslg(k&06qAy`mGK$RO+4>ghNp$cnMqJ3Jk;p7=))#b9o&j(4)Woqtpbo=-Of& zrlTq_4fXv(492af3n@k3x6F?;n$Zz7z!?6tYWW0`=GSBDu(;jPL9OpM_G(2%C>O^ypM}k?1y7J?w1Kvfg zkw>U2ZZp_EK?=sOpMy_h0oKA5sHxh5S_|cFG&MqS_t)EdhhM*VqKm>G0v zP7Wb=mU)a?wHd?hInPGT@f6gew4DAzR7rQD26_oqf%_PMPmssH2^e8NsIoAO{nxP` z7Fsl7Y3xN^;SJPn=b6pl{+NhuaWZN^#n=G%Uq5#+uJ-vPLXNk zx7+)4Tp<+FoF;!JZ`#+-|4Oi4$b8a+tRf$gCgeNv45`|}oyN~q z9gcJGpHBPljz4MszhS2lNhDgS&yndQlthsyB#1O4zur>VIplQc)_aFMaQ6R%tDW{x z>`VCJGrNf%Xy?cX;#z-gTn+oB6BLoZ5q~m^Y$w`uo9P+A)6=zm$m=HJMTU?-(wZzF z|0Yw2wvWjxf@fu!m+Bv9)&pKzn1do!Lqz2hcd`UNwKuU?W zyEd*r+n3W$Co4!pvV(j}T9WhRN8+0Q0NCc*v0vVTU=l*&$@63n`I`63mtQv&JVEnNM6p8Gelb^$t8av!-+Nz@~Nw3|J7U9Y0t*d zWF=Wjsy3~uTjV5pxny9i!@ebHk)yp!_Qc%tF1Va@spPvhQSJp{?JpG6P9Ec*7#rUz xwpCI@d_r?w)q>lF~nJ~cLuVClM2PG#*z2ROmeRK`Cf~{lf{{l)jg_r;U delta 6176 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\n" "Language-Team: Croatian \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 "" 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 \n" msgstr "Prijavite greÅ¡ke na \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 %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" diff --git a/po/id.gmo b/po/id.gmo index d052d6cf9c3e040feeb7f989a776ce2dd6f04056..44d6423b46f02aa953e5dc73a6e8e3e0431a4d63 100644 GIT binary patch literal 42957 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 P&*pt&m~r+dn-u>qi6^A4 delta 6314 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 I=k_!I3og?Di2wiq diff --git a/po/id.po b/po/id.po index 7adf238..ef0dd99 100644 --- 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 , 2006, 2009. +# Arif E. Nugroho , 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 \n" "Language-Team: Indonesian \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 "" -msgstr " (bawaan):" +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] 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 \n" msgstr "Laporkan bugs kepada \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 \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' !" diff --git a/po/it.gmo b/po/it.gmo index 3430cc8af77a84a164e5d89df13420be5a209de1..dd76258c4b5191907f30cc83d80e58106a6e4f18 100644 GIT binary patch delta 9379 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 delta 10284 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 diff --git a/po/it.po b/po/it.po index 9e21bd4..6502255 100644 --- 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 \n" "Language-Team: Italian \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 "" msgstr "" -#: 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 \n" msgstr "Segnalare i bug a \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 %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\"!" diff --git a/po/ja.gmo b/po/ja.gmo index 7d94d2012fe9297abc3d3b353c084a46d04761d8..f79bcbd70bc46ed9847014c6ba6298f6cfa55f50 100644 GIT binary patch literal 48160 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 diff --git a/po/ja.po b/po/ja.po index 5e98fa6..355e30d 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,129 +1,130 @@ -# 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 , 2003-2004. # Daisuke Yamashita , 2001. # Thanks to NISHIJIMA Takanori -# Takeshi Hamasaki , 2011 +# GOTO Masanori , 2003-2004. +# Takeshi Hamasaki , 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 \n" "Language-Team: Japanese \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 "" -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 "生存子プロセス %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" +"例外フラグ = %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" +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 \n" -msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï ¤Þ¤Ç.\n" +msgstr "バグレポートは まで.\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 \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 "ユーザアクセス" #: misc.c:670 msgid "Make access" -msgstr "make ¥¢¥¯¥»¥¹" +msgstr "make アクセス" #: misc.c:704 msgid "Child access" -msgstr "»Ò¥×¥í¥»¥¹¥¢¥¯¥»¥¹" +msgstr "子プロセスアクセス" -#: 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 " (探索パス)" -#: 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 "バスエラー" #: 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 "¶ÛµÞ I/O ¾ò·ï" +msgstr "緊急 I/O 条件" #: signame.c:199 signame.c:208 msgid "I/O possible" -msgstr "Æþ½ÐÎϲÄǽ" +msgstr "入出力可能" #: 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 "浮動小数点コプロセッサが利用不能" #: 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 のエラー, %d\n" #: vpath.c:583 msgid "" @@ -2220,59 +2199,71 @@ 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" +"# %u つの 'vpath' 探索パス.\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 "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 バッファ %d のうち: (* %d B/バッファ = %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 が発生; %u 個の未回収子プロセス.\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' 関数は非負のインデックス引数をとります" diff --git a/po/ko.gmo b/po/ko.gmo index bf0cf9cc66ec9d0020b95b5031f102007596334e..420b24948b4bad384c7467e09904fc59c8be20ac 100644 GIT binary patch literal 46044 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 literal 11938 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, 1996. +# Changwoo Ryu , 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 \n" -"Language-Team: Korean \n" +"Language-Team: Korean \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 "" -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 \n" -msgstr "" -"\n" -"¹®Á¦Á¡À» ·Î ¾Ë·Á ÁֽʽÿÀ.\n" +msgstr "문제점을 로 알려 주십시오.\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 \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 .\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¹®Á¦Á¡Àº ·Î ¾Ë·ÁÁֽʽÿÀ.\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" diff --git a/po/lt.gmo b/po/lt.gmo index aa293e51c86a0cb448bf4cb458ee9babae37c8e7..5277a0ef85d191280d23f30d2a726191d3cc3780 100644 GIT binary patch delta 2167 zcmYM!Z)lZO9Ki9Tv+Jg9bF*zZQ}0rjGw<5w<~G}OY0fpR)S8)V%~dR-H;W>InD>Q+ zqEWGnh2Tg8MWUiuSVT^U8KxDzOccSO39qZUGCXPA;V}*+_%xQ`FwVma&czQfiC zUd3DS8s3O=X)FvO9hOk3q+tb?;%4;0Phb%~kK7Yp###6(F2=WF`zdVZ{A=|3#Ejg4 z%dmp;TAYKO=m2-%O}G=Q=|5zsET!R-_{aCSkn`)&`7?75T!Xc=_o6f0i)Q2~I>6&- z(oUio`5c|`1+2n<(EF;G{_WU~bLc-jWd(O(HIAYkO~mtG&>2^fFD4l}kY|N%bO2jp z`ye{wp?JOr?PvsfL>NbY;VcISd=AsD?RQja@GtayF?sZcRX7_rMElVJJd4hB7^mV( zNV39iT#6&eqrwTChG)@?e1i+{2Q)K@V)E~WHB7@1HRE*bK=(pdJnu!<{&93b&!KC$ zC$^8Gd+0qh17Dyizl8J^^0?XaQuO{tbT4$xBLC%725E5S!|06OKyN&Nj`$c}of5)n zbcsG08G-JQwZTL6(eW_*^CBFYHR2+FXx`x}( z8NYyB8;+n~#&Kj4;e7OGbN~gclO2?!dnbuLZz0}+^=PUG(9NAjmu$Dve>h6Tl%GP^ z>`yd>MNG#VD$w=?=xf%9tV&poTpD_iUl`)x%wIv077n3H^D(*^&m;RcB$$oglL|~b z<8~@Z>_ca~6YbzlbVl!@4}Ks0GEN{bL)b#J5IuzD9-@s{LAa^w2vcooC(K3{;hdu-+CCTWOm&VC@)??cn>Uf4>kCM*ur!FLk&949Y zc;aU3B{mSQ*ABv2yXKR{b+c?F8i_{;cll)T4ay@-`(2Zbm?WwQv(2{oztDenv)zqN zvDvk6Dt+Ky>H+S(?70_+t#)U* zHkV7v8gA9*kF9@NbH-+AZT-U?*KQ~|AkodkR^9@7kBbE{!8O9vN=jL#soXRm~5uU~ZyoCIj%UtH;HC%{4;@$W! zF2S-~V;o$A{F&WcR^TDL3tz-4V-jYZN!CyEJv**rsT!MwP%W)M3 z?ET%?MEfA>_YW1LhnG+T`V_PADrzs> zuRT=7jEf?*fR#XP|p;GQ6V>Ykb_F2^X$wKn4&2YosxP>LO^VoUH z$O_cV)}ubK2{rQV_IVh!1TP_DGOyvUX~vvEE#a&5q6~hB%2*Qh{uR{o-x5@msuHHb zaWHLIgZ-!%PNFh&1~q^ruEnoV9p{lxeW(;Q^G&D;>_t9phEU%*f?A4Ka2dX3?tPeSQsvn(C#@f#QvNk+$>!3VGFXoKeHH3{0CgO< zAggP-kg=FP7$v=wJl({&CdI&!Rf| z7YFxDbDw_$Vdc7Q4&?ZyaPV6Mwh~XUlltM zD(r0>@%;F(JIK4?s6Xa}o_)q0=H;Ln^}Tq=3Hg51zq8)r@Zxmgf&7M=xQ7DdM|pF|4NgtOz0`POUbrVZICah$@j~%ve~3}VU4JM!**bZ9 z!SS5Au>p-@Aj+qoUpla{$Mv3`nuvM)JT*AaapPex68B=pcax{b!ck{n(Dj1u|C$<` F`46~53@88q diff --git a/po/lt.po b/po/lt.po index 02e43f3..e9fa7d2 100644 --- 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 \n" "Language-Team: Lithuanian \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 "" 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 \n" msgstr "PraneÅ¡kite apie klaidas adresu \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 %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“" diff --git a/po/make.pot b/po/make.pot index d2ff216..0faab64 100644 --- a/po/make.pot +++ b/po/make.pot @@ -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 \n" "Language-Team: LANGUAGE \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 "" 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 \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 %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 "" diff --git a/po/nl.gmo b/po/nl.gmo index 3961e7973236f99f80e38331352c0f1f34dc3e63..74e638162420962d364630b52e9063ced6e49fe8 100644 GIT binary patch delta 9383 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 delta 10233 zcma*scYIYv-pBC?Ef5GLKnOJlLVzR$2%#j@(0lKK$PKv(7m{4ODbg=hktP~CNEJa4 z5Q75Bs#vk@Dxj{4fV&pd1$@*6T}Aivy>n2X=dWj8`^)<`bIzGFXJ*a`aW}nJX6eN; z!HZGl)*H(4Fk>3v`AB01l`&>jeYF~MqN!~^i80jQ$7XmPt6_A!F%_{HHpbSNj3clH z2GPL>-S#K3HucNcoWte@NgNH0=rtO9B4aQUup#E4ZoCYK<96(f*RcsE(Tm196djz7 zg}4$2qiJDGKNy0#em$n+7dV9b8z;e-3>xy$k4Ic%6YT{LU@q;Ku`douGG-vI!-aSW z)!~$u#`MB1n2i_lF6_f}Xux~16Ml-rut6*O;r=FITQLE&hxeP^%PU24E5DM$cm<9Y-x`c}~_$HNh&_2dm;p3^EJGLlTKAP)o20HRVSz z0?%MQJcm(u4QpUns=ZN7REG_*BDTcp*dAG3)7Nd!MfF#N9dThQ^REj}&`=Fu!#el@ z^6=(5Y9O)gYRT=U^&*pqsX=}uOh2uuDbP@_Uset-BIVwK<&AO?U{ci zkI=xfn={DrnD3C~GfoFPfFY<0vyqK&=AzboCpN;5kg=MdPyOl`-H2x(>qSxj;s^c5j73-%N(;p|G)^0ay7r%nKaU?%9)%~yn4#(O!4t0JWYVFse zX6g`XZ@h`RUpPBa0}Cd&Ngvb{c~EP-8tdXt*Jn^Oavs%T7`U;!5TCJNOXb^HDxPNQ}hgK%HP1Z@e=C7LrjnM#@nb(dkeK0EAy(< z#D=IFr=Wx5Q3IWgx_$@hyyvl&-v4tXyeZ}iR>peW?btHx1>v$}N2T2l0G=LQ3%`#I_1KEHvxEnPS&!X1$ z9aM+kqu!oIJ*~;8ndpL=!J+8jWYj=|sD8Ji2Cxr<8qrabSbQC;;8(6UP*Ycyua1r< zpq^*|YO@xh_Q)1&gvU@FpL5$kK|R1tw_d%sy*?2e&_1>|^WT`HfCk-oJ*vaqsI@(X z+U0McZg38@cHg0PdxbvM2H2E(Th!W*Lk)NV#^H9Xhc99i`~)>H)0g?z?ycL`?&`jn zKs^g}!Wz^7_hB=99W|BTqHa)ycd`PuL_I(%YQPz&feyfUywj~OLA_lYQ8RTQNTQJ) z!*=*L*K)l4ddD)rTNE^}l7!x4)D0^Swx*-riX7L?sLlE&YHI(9I{zk?!}uX~_a~xeq>JlF z)QzX1_QFck_u~k5)%$;mgs-k?IMlA`7}OILVKSDW-uKg}0sM%XiR#1b9!bQ?)O(=@ zJPdW+BGiqKpl0waYR~+~ZLc?+0darRl_U~9SP}ggj+QOv(Oev=0Ise8grRL6Bk+xB$S zCLM;IaR!E-0IO2Jh%N9cYI8-8u}k4#I`xs5imO~-K=t>-80KFGs*knrZ*PpEJ_5Cd zS*WRf2(^p1pqA=5>PcR~n)oH^iGIdf7(UK^f*YWgt|e-KBT#!`4yNJmAW0jNkKKkU zK3IqLNv?%%`zq88_h1J+j@o3`P!CdLg6*#l>H&(8Pl9;_L$4`n$t&MsXENBH zL>JzT+I)LaYkL^0;d@vQKS$lzOtb^6g<7H{)DsQD7%adtxC&G70n`JYcI)4v2G(>^ z=y=eKBxy^-QdEb>u?l{G+I*j(I;eK1UF!_gln%p|Scp2l3$=;QVgn4DY>ziW4P+3i zzxk;9?8gpz|Id)Lr{OnLhwbmOQ<~|z3^hahQB!vT)nSDx_DRxEGnS1FaW!gF9>lu% z3~GSqF&4{v>`cXD*B}kuNYZg0s^h0o1G$1)yV{v{O*bX*?1_-nEOxzYwzX#uTL_Jqy^5v2waC+f*q)-ejN4Tco((1Z=u#aD%;LL zC)6I9hMM9f7>|chd*(c9My{axxrth$xE$u6jc+n?_y;6z!q5i^HK2;q>I-;KBy2Viu7WyC2# zlD;Hgqt-B`z~0b@8PuObt?>L-SL)|cdx?nz5#}(+{R=52W>b%!+Af87JD7M(HeKKkf^}rsO zjT*>)YtWn~(Qf<*8{rSA%~kUrJD|?kn)*m=hl^29cpOvkA6N%#u@MrmCAPw`*cg|& z^?lfe`unK+h0oS?tbb#YW;CRu)^rLwxD(UyH0t=zsN+rM*d@rsy43H*YPb_MuqQAL zKgJ}iHP`;xo`K`3FU2PK2@d1_p&iu^hO@IY^_#E)?!tPwAN6D}p@UaZ9aNpquUbq& zy>7+W0Jou@{3Le4kFgfUEU^70yY|P>@BgVJx?nYGt&X5>cpmjczq;)Sj8-=qiaM_l zHNeeSACI}dgIdCWVJg;IX#4ArTABd9kGmE!|GL4fMfSJR9@OT!gxYLZF$#ahWUR5+ z-nctzfLZ9^8mx&&TwlUY)IUJ=6Sc&i7l$pW_eQ-%cQ0Xt6G+z6&>gR%p0M>&`&}4= zW2o;#y#=>WPZqJv4xlYM)F)wOoR1NBKX$}*sDZqNTGH@)?MzoihkBbJiJoKxrsG`H zd;65@Yp5st5Vgy%Vmy|=&vuZ6nz6wcj(1>l%*3X+0=4!>P)qbO>aDqqx^FOQxxH~0 zR6{Yw;7)9UCs9vy!9D&Zs^c2>+ktdIEzKl!aE04`5H(}(y6qQH1N{xFV&sa@`9afw zM4PB9YNX?_8RlUku0y^5&!b+a>u$aNO8Z2EFqZZlOu+k4o9rmIz{_sE(klCXNkh%x zIBc%>e?Ez(W-sakaT+7=JJgilLXEigYCFKDm`FVxYhxB_#^zvUEI|!u2Wm;5cl`;I zsi&^7Gv&b++}|uFiNu5098aQV_ELMreY!L zOSd0;;pc8WVZD9bvQcZk95sN$*c~seXZ|&S*bVmIZoN=b=Rr;BBJ6-`P#3;}nwcA@ z_d0%~eUd2{puQ4Y;;&c(lQ!9z>5Adh`(ia5it1-_kVGA?#=7_%YCwNS&A=~M3&S_t zP1*pp7t&DIjlqF`Zn+^;3)*@FLV(athT?@Cy>{fwEie+9qLR>Jw1| znU8vsT^NI=sFIyXYRp7+=sgUEH>o+<{HUR8mc^Ocke{h z6K_XNeJN`5eT`l42I~CO?RKpfyS|G0Fh%TOUtnw0Cd|V+I2SczC0Gex#uUB(e=KN{y42TVJv`w03fAZT z<}yiR`~}-#quut?I|?(X7o$2nj@mR|VSkL-W7pDyda{)`1W(}rjCjO8z-ZLe--$JG zIcmV$FsLUvMG}o4qF$44Q8$X-Yrk-PupIS?I0~nrmf#o;!?KUs0gOUDz*5(fsJG!7 zR>k`J>|a`ms68=dAM>xZUQ0tG+>3hBmr)(vK<(QgZu3sD2u zg3a(9bnqsQ#hAzK-w%H5P5lMzh~*ElkFYCt!yQ2qP4z|8jUx}cPk^B(z{<2ghx%~5 zf!a(Tx%D3~jJnF##BeH)xea_e%;V(wL@s$27UF&GaZ(e^)K3cim}iL!L;(>&sPwah z-hf_i&SyOIXIB>f5Ai-xN1YRs2tFylmp#iYTm%>L=W0jw3&twwW({ih7u~RsCUA5LN)t6Sw)-nf-S6nDh+d} zWugjuBvj(5Yfp5>53mEq5P9TJgw8O=OI@W2err<`RGZuGHko`9_NXZ($`B(tUXzH^ z$=dlJ5^3&5Zz`7DO9jDs{aXx67|2 z4-oA*HVuPS+#}jt?-6@B(3n_HzJTaUuFvjY2<>#0e-Z_>kHbh*=|Mc@=FgCax%s0w zP$y76vzS`6wIJUTrthy?^m?cavY6(aRGlcH{*~KS-BtM9d@|}A@(S@cq8!&eh3$z= zI5I1uL%Di2{zOegg5QOPC_5?$SM zE|Yh6^8v{BCRCnq+s5E=S{`-VMKTer=ALjD?x10#j!+(?J{oJ_UHF?CDIOv&l-VEp zT&t|Ggg#D<$=@Z)a%~?%|1#?99xqRQ6!})91Vi8Ny=47pXsIAyY7d$e*XBBv@(nSa zwmqR5|2V;^)T4=t1)Np8Ix z^=0I%v66eN7xi)O@td^e5Y4DpB@Pm))Ysr(%*KDlFH`pKTbRc-jOn*-g5UG52s zY3of)B<`hcE%7i>hNxTeX``AG{>~AVb{6w*e4X&R^>ofuIp#VPXAv>B*=)t5?y;Wa z9})V8K%ROJ?&Qb;Vlh!n>%)YfSWc+CNHlVOQl%p`x=J@zlxIkd$R8>rty zOd-F8BZzh6QK+(=s6zcpsAm7es?sRhRDu~KGf7So_Y&m@6(8-3Z2G@`UZhr=7(mP> z=5tO=TW&M8CZ6B#EGLB=*KT+!OAj{-m3ehDxOC z30%RkX~bFbw}=KhxAailk;taLEN8aA$jS41@}1E=dOE)RfgR&s1+g z_tJ4GhpLqsIi&Pv#>sN^`WEF+E%f>GoqSK8*D3V-om_u@PA4b6pyY6$SAqlbi#@sY zn&+A2%PY!rJb|2|Ja2xXGu2hCi9w?=?#>;cIWpo#lApc5qG4?&xzhy(>z7Ybyn%g$>S-L_)@j?e zQ=5*Z#h$g*n`e5n{NCIwuT$i%r86_v<0&j~ido&zau)iuo@D~R)hO4;VMV`R@@{!| zMZNhRPoCo|a2P?Z$FAs}7w-?NJ}f_nPJKDIm$c;M_7+hQ=8tB(Xlf3NC_TMmeXVMF zUT+}F8}No^&|6TFx+AXP|7mlYCnx_g)up|691W{cFm;;Om*vaPVP0l<^O@+ccAhTZ zeFme?^kwGy{DsrJ-Whg|^L^gJ(9|>e{yfK@&;7Ez-duasKU0q}$FFWmAA2-5tmNA* ejZ4q$d%R5T>}-Egq2X2m-}F!(+PZlMlKu;E(5Y1b diff --git a/po/nl.po b/po/nl.po index 44e81e0..56bcb1c 100644 --- 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 , 2004. # Benno Schulenberg , 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 \n" "Language-Team: Dutch \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 "" msgstr "" -#: 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 \n" msgstr "" "Rapporteer programmafouten aan ,\n" "meld gebreken in de vertaling aan .\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 %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!" diff --git a/po/pl.gmo b/po/pl.gmo index b0a83e86286817ff8c04e749ad51470b719d11a9..f7eb848f6dcee5480c54752c14302a986b99517e 100644 GIT binary patch delta 9379 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 delta 10281 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 Pa=)vl\n" "Language-Team: Polish \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 "" msgstr "" -#: 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 \n" msgstr "Błędy proszę zgłaszać na adres \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 %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" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index c19c8c548200895bd9568671ed36af4c1095a313..8dc66efb791033d4b9672b1f5f9a53a6868ce387 100644 GIT binary patch delta 5700 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 Al>h($ diff --git a/po/pt_BR.po b/po/pt_BR.po index 95f25c9..9013dec 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -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 \n" "Language-Team: Brazilian Portuguese " 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 \n" msgstr "Informe os problemas para .\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 %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" diff --git a/po/ru.gmo b/po/ru.gmo index 6aaf94befd879285171b01ac8fd5bc7324c8dae4..19546133dd288aa92dc6667f311bc1a9a1a22cc6 100644 GIT binary patch delta 9542 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 diff --git a/po/ru.po b/po/ru.po index 790c4e9..624c68e 100644 --- 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 2001 # # Oleg S. Tihonov , 1998. +# Alexey Mahotkin , 2001. # Denis Perchine , 2001, 2002. -# Yuri Kozlov , 2009, 2010, 2013. # Pavel Maryanov , 2009. +# Yuri Kozlov , 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 \n" "Language-Team: Russian \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 "Некорректная операция с файлом: %s" +msgid "Invalid function name: %s" +msgstr "Некорректное имя функции: %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 "" 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 \n" msgstr "Сообщайте об ошибках по адресу \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 %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»!" diff --git a/po/sv.gmo b/po/sv.gmo index 5dccff308ab7b02451cda646a00c4db1e38ea6e9..4f9b30568dca18fd9f7471264dd4dce841c51f9c 100644 GIT binary patch delta 9378 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 delta 10293 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 RpXbY+78)wEbYw^K{{p?Hz}El( diff --git a/po/sv.po b/po/sv.po index 8386679..4545ab3 100644 --- a/po/sv.po +++ b/po/sv.po @@ -5,13 +5,13 @@ # Christer Andersson , 2007. # Göran Uddeborg , 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 \n" "Language-Team: Swedish \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 "" msgstr "" -#: 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 \n" msgstr "" "Anmäl fel till .\n" "Skicka synpunkter på översättningen till .\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 %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" diff --git a/po/tr.gmo b/po/tr.gmo index 1646492e64b995662ba49925f895996ea571ddc1..6a3ede868b4200121a216912362b33b5430387ad 100644 GIT binary patch delta 4851 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

T!(YZnS3OQ6nfojc5^S z(>#nC@p@Fp+fgH`$2e?4-Pk9ncl|Zg4Vz)^b;+2m>M-VCBV5P{P2FmH!FtpepFvIe z0c07?S=5sJ6Sel8*$`@|3+CVyTVIYEVGZhWeiQkMxoXcRaZ*d1lEwV1gE5>?!wXO^ zm@tmUL#T%TiW*tJ+ug@C!8ryR za5B!%cYmAiwtj^(>EGnj3g0nLUg4E)A%4>M|C`h zFS89yG3MY7?1%3o+s9l*?SZc2-TG9#gZ@pJf<~|(wU&*@?3!;-9Sxe`HaG({Q>#%+ zQjdB{{*AhUE)(51lxIZ`xN#2#C%PGx31|t$$g$jBFkfn z(7_$p7vDgQuo)SQxs8R@4NpRC&JxtpJdN7Kui#ufhk6F143j1K{w21qn z7(dM&$=#^Uw*uARiU;-{gbzF*CidCo^+=Bga4-UZNs3rN6 zt;a|1a@Qsob;n~+4b8x0oNvzuY<&&3=KRyBseTT%mIqMZZ$xdjW*m&MGu#`_KrKNI z>hm$E>m$o3Xt%CJjpS8(!C_QK*DwXIqc&+G53Qbxq1X?nqei#{wUirBOR^oqco4Oh z(q_3GK8Wq8mtk8y|0^hH%_G8bE|~i5A$!n861g)Mnd^8hH)sj!&W*{1~-~zQcITxZCY`Gb{=bNYtJI{9Cd}*l7_yB6;5lp~ssF~V> zTI+h$3|&AiRl*#%qammp&PFZ8QskXwUc~6%|CcFfroAzLY^ekdanCInuVRHS79RVMO|NqF{tALd4Q-Nj)>XA&&y;j`3ZT3v>czd6s&vk zF!A4Vo=s#9k)?$9Qgjck!MjK^IYV9{zaSd*ZR8>HEO}Y$zmkFut?jC4$=$i-lot>^ zw;z#FWCYPv|AyR88pzKHTfuB0Er(_y%T_A!lr0BPGpXea>YUcUmi(S9COTLJ^Hj9N z(}3G;S@a^?$mb-N%p?_L19_Ba1OAf4k{8HkqGKL;ge+0zmLu|ODsPdwGBUL!GITw;??)cr!ca{?mlZ)hs zM8`R@FIsYc6x;HvsF~BD_xMP1lB^~(h(m^w(WHpHL-Yt)NFO=UirOj5}>@&P$c z4v_yn8tsWO*pGB4_tP_|6xg?yo_{fS;hCMRND)l$Ajd@dnFf)Af0!^oTV+{bv@mP7bQTW*Cr$yBnDd_m5W_ek_l*q^~x@>9~6^d>r_| z({Vf*M0$`n>PnNoXg|{JFSoKml+%$YZFlH)52g}t6)C$PjB<%G&T4|zl5>!$Yk zu1)OR!n%wB1KVYVy}>e%-|+^6fndHNU66p5Ug~(E0=mI=(o6PL}qQbXv=0r z&=>Z$^pX~;x|r$jl$V*4otZt_${W~id9;-QLAg~P`UwUvRO`7hlgiy#01 diff --git a/po/tr.po b/po/tr.po index 6f7f32a..79aa807 100644 --- 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 \n" "Language-Team: Turkish \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 "" 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 \n" msgstr "" "Yazılım hatalarını adresine,\n" "çeviri hatalarını 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 %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" diff --git a/po/uk.gmo b/po/uk.gmo index 212214b9d9f16f1b1e3e8d7c66489bd6081e16a6..bfdbf8b46e696402eee010787918254bf6a9b4e9 100644 GIT binary patch delta 9388 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 jT3|;7I|4aYt+ll`Ia>5b< diff --git a/po/uk.po b/po/uk.po index 7bb31f0..4eefbe0 100644 --- a/po/uk.po +++ b/po/uk.po @@ -6,10 +6,10 @@ # Yuri Chornoivan , 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 \n" "Language-Team: Ukrainian \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 "Некоректна дія над файлом: %s" +msgid "Invalid function name: %s" +msgstr "Некоректна назва функції: %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 "" 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 \n" msgstr "Повідомлюйте про помилки до \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 %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\"!" diff --git a/po/vi.gmo b/po/vi.gmo index ad334ae374519968aa5d76b91158a3ace7879428..ee98bb26dc4e58b454fe3a1e47d3b739455a79ce 100644 GIT binary patch delta 9765 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 delta 10733 zcma*t30zfW{>SkHqM*3%J4X=}6-5yhQ^5^aTyQT-uW*H{a3Q#;n0Yld%`FwpTtm%p z-1TZMR90kZHZzUpwA)ZkV^dkVJpl+J$MCf5KEu z>ugygaWgK#4^R!x>|$AiaXZe&8#n`pG9Bvhe(Z~tI2K!Wr5&Dc<&ZpxXRrtpyIIy^ zJcI+VQ@na=Ssv5_&R`Gx5!Iot-7RYb7NH(=0jujgYDuedv1Y0**2JM$8`IIxELbj* zTDTgu1dpSp{2122OV}K*VST)X^)MvCJg5Px!B!Z7U9c`DBCBhqI`uiI_KL7KE=gei zb>mqo>fkHb1m8pkZ+(gCNK{W#-v^sf9*5c+b5H|Vg$?lpvMsEak=3%kaLP>+*(a2f zQP<5y?YSk1%)gQ+sbJZyOUUwAw~^(u>|Uk=X{Z}#BOBj(0JY|&*c#tK`f7cT>R=qh zV>PW|sLeSKHG`W_13iL`@mW8KUYj>i4S$RMu|*%t8jjOYYquA*i!Y)cT#Fx?>S0(7 z$6+I!g1SBzwe}lOGj#;DH?E+b7tT&p$NaHQG88pMF4P*Y!)93Ocpfz)Z=f0sp*5{- z6smqGYUT>i#!}Q$ynuS(P1H=)=*K-6YxG+qNOXY*HDzm1Q*<6R<*(vz@dMP2N0=V% zjo+d+?Y~f)F_KrM0k%RtxI5Z771hyV)csGOuDgH@_5NQY;Z3n_Vk95_Or-3CdyH3`#P$@zoXus)`N_3sF~=8n!zz><9(=(`cdufKy{!D{p!&Pk|?~4 zHStr&Z&6cMg|Cjz$D&3w0<~F-Pu_dcnhk*y{NT)2DQsyMLpmeYVB^Lc6+s<#+KNQau3wnPeFBfF-GHVY>qEtTYMkY zF)Nk%*Y0hWYIb!h#!}8iU9cY2!7^-*mr+ys73u*sc_*u37t{a}P#sP|b#w&A;Jr?H z8S3rYikhi|eiHTU6!yg5JBIP{>orS48>gUVU;*lZTb=W}Q8V!j^3AfYqS}iXVOjio zu%fX8PQ(OUgxUkgQA_E6hD0N}iF$v-Mw%Y?K$WMW8h9ABG)FNMFQI1U3aX=DAfE;+ za+LYTr(!3{<56q92sQQFusS}2yhVQNWs=}~jCx??Xk!xUt;llRhT5!GP*eL6>iX|6 z3}e#F?(c+}k$#Tps0U}G_QD#}_v0A$*Zcng313~S)fls;lTafn!Z<8Jz3(reI`9wF zOw=7~_DCm;q&yha;jyUumZBbf3^jvSQG4bGr@r|(I>hs>{v@@~g%OyC;kW>`S(c!7 zcL}z~v#5@IfLiPCP}kQVZ+`7IN6k=Y)ORBpb>Bqnj1Qm®Xok{cvlF(TcpU2oKk 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\n" "Language-Team: Vietnamese \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 "" msgstr "" -#: 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 và 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 rõ đặ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 \n" msgstr "" "Hãy thông báo lỗi cho \n" "Hãy thông báo lỗi dịch cho .\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 \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 có 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”!" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index 2046413af12092a3aedce43b915c86d10facdef8..54b7430ffedf84b53456c6216d8e4ea34a5173df 100644 GIT binary patch delta 4848 zcmYk=dwfp!0mt!QBytsUBPt>nNys9NWFir_Txf(8S*vOrsm`sT!y0Xc>HCRCV<~)^IoCs%_rC5PO@e)qJ9uGJ-n1z)b@5NtZS}$Wp zU?UdbZB&El^u7q6N8P6t1MoZ40R5TfE|`K{Y2Rd1(QFqY_b`)?*)t1JQ@R3mgBt9L z^{AGfG6;$|RHt<(}+=tAr`3$w@ zU*V51vX65-jTJdWCIXHlPDLw(PizjVJuOu;-@(pN{I_5@b7=24rmJ z1nT~-n^bh+UDPHFrWH+X6!HX`1k}`KTgRgsn1NdJN_*UZT8g8n8=pem=OXGpSFCqX zo4Yg9Oov^jCl!4$9@S7XYHCKJHq$ukV(i3m18R5gL~Y7u)X1;lVEiX)AaT5PG^1(g zgN3LiC`Pq2&GR|yUrt3cuo^Y8?WhhMK`q4xsI|O>%(m&uBccW}P$SGmKP*Cxti&GA zKs}!GP%}`8daBl=mSj5y(!Ob5_-m)fu;i<#1sOz#(11m;O4-zFxFAuE5{<-gNyJU@)a|Gkn{OgoWt>DoQbZ{ zna&5hP&c}X#W-fLF-x%qD=;j}`MF(#YUo2$Ljl>&uiqocJk#z z_c4m&-uyzbA5AuDU~{a?khi>f9qFSvf-ar7Z$F3~>8#Oc)Y?6YEVEf+&%5pUR@4%G zj_S}|RL8$Yt#M?o^QuikO?@_MDaWJMej4hjn48P|YlO==p|#wMn#y-D29H{=A-@}J z66c0VsD_83zF%OSikgAvP#vm9-KPoF@JIIZEB5$ap3B)(zWGkWp{O-aKrKl&Y6>S} zAAAZml9y2(s6}ncdh1S9L(SG!)b;04*Iz}=+)dQ|zj9I0?)EQme(fSqOOlV?I2-ka zxu{LK2-V;gOu}8L2HQ|GcNNvpzcCc=VJ{3C20TiY}}|P1&p17x!Qs zUO+YQU(_b-G}`%X2tsu%+!~GQKtI&l=2%Nm4bDMb{}O73*C8|NGTW$VijJc?askz| z8}?ZLrjF-04AqfL)b7u>PDV96549IusQcBSFTRc16HUn5-JC;p&V#wq}|2UDTR?i5g+ABIh3tshG_16x2vppgL4--HlA1If*$KG}d|HJcR0~3%yW9 z?RyH>nxo`J!qZ`zNH+N`QAs495xvPe$~h{}5l#DX@+ndI4f#FkNBqe`qEh1E+3+z= z-DTRS>?8c}nODe@WHwO=CY{MLvVyQ=o?kD`(sa^ME>O8lUg$Vs{UiDj&CXtXPJ8TQ zvV=5h{OMGDi2fllo*W@6dXs6Lrjj>^%F|>%*-Bm~9pxn|+VwA!0y2Sk6P1f(v!}+A zSv&B&|Mzp`CWDAJ*hErEb`Y)qBSh=jQI=9UNq$1klWyeCM5UHoB3p>cQ{+QZO5#Wb zSwrR#6~^y84%)H1$j`|J(o9rNkdZ_?H=L{|&ycr>N%E015!sGCdY`%B(j~f>VT3(s#KwbkYS#h zF+amMZ9M}Q*}AD-92!(z73$;4;ml-vw!c+xqgY%2t5u96>+JDa98R7mr%54E`Gho( z7V-``LsUEq?o`ct*2OxV#KBndJJOpxL3WdAWCl?=L`IRrB$KH8fy^X*$xaeTR8kx~ z|5b8|dK&p9DJNY>BvJVj`IYBkad!{D65x)CzU}LdOo;TaE*+5S-ZG%YtGfKbrs~|Z zIl+Tc(+8#w%#2OX$jQibH>b4*x*Kvr{oJSWj{8;bFG_TOS=8iJy>HyX@Eb3_b-ktK R#;UD1H?QIE8+AL({{gx}2*dyY delta 5309 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 diff --git a/po/zh_CN.po b/po/zh_CN.po index 35a1dba..2282094 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -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 \n" "Language-Team: Chinese (simplified) \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 "" 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 \n" msgstr "报告错误到 \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 %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 15d1b13..6ff4bcc 100644 --- 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); } @@ -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")); } } @@ -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; diff --git a/remake.c b/remake.c index 138cdc6..299a2aa 100644 --- 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; } diff --git a/remote-cstms.c b/remote-cstms.c index 8d6c635..867ee8d 100644 --- a/remote-cstms.c +++ b/remote-cstms.c @@ -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) diff --git a/remote-stub.c b/remote-stub.c index 45c3a7c..aeb335c 100644 --- a/remote-stub.c +++ b/remote-stub.c @@ -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 cb35537..9abf5b0 100644 --- 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); } /* 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 3982639..df9fba2 100644 --- 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; }; diff --git a/signame.c b/signame.c index 59dc949..7db2439 100644 --- 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 diff --git a/strcache.c b/strcache.c index ff6a2d1..1ade5e7 100644 --- a/strcache.c +++ b/strcache.c @@ -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 diff --git a/subproc.bat b/subproc.bat index 9a90487..e3b8d3c 100644 --- a/subproc.bat +++ b/subproc.bat @@ -1,5 +1,5 @@ @echo off -rem Copyright (C) 1996-2013 Free Software Foundation, Inc. +rem Copyright (C) 1996-2014 Free Software Foundation, Inc. rem This file is part of GNU Make. rem rem GNU Make is free software; you can redistribute it and/or modify it under diff --git a/tests/ChangeLog b/tests/ChangeLog.1 similarity index 99% rename from tests/ChangeLog rename to tests/ChangeLog.1 index 653c5a7..9abe731 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog.1 @@ -1413,7 +1413,7 @@ ChangeLog file for the test suite created. -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/NEWS b/tests/NEWS index 7fb864c..584f4a4 100644 --- a/tests/NEWS +++ b/tests/NEWS @@ -162,7 +162,7 @@ Changes from 0.1 to 0.2 (5-4-92): ------------------------------------------------------------------------------- -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/README b/tests/README index 0663082..3b699ee 100644 --- a/tests/README +++ b/tests/README @@ -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 index 0000000..903c468 --- /dev/null +++ b/tests/config-flags.pm @@ -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 index 0000000..29ba146 --- /dev/null +++ b/tests/config-flags.pm.in @@ -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 index 0000000..3f5adff --- /dev/null +++ b/tests/config_flags_pm.com @@ -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 . +$! +$! +$ 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 +$! diff --git a/tests/mkshadow b/tests/mkshadow index 5e0a402..aa9b3bc 100755 --- a/tests/mkshadow +++ b/tests/mkshadow @@ -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 index 0000000..2f17f7f --- /dev/null +++ b/tests/run_make_tests.com @@ -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 . +$! +$! +$! 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' +$! diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl index 54c2892..9468fab 100644 --- a/tests/run_make_tests.pl +++ b/tests/run_make_tests.pl @@ -11,7 +11,7 @@ # [-make ] # (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; } diff --git a/tests/scripts/features/archives b/tests/scripts/features/archives index a7ec881..b0acfec 100644 --- a/tests/scripts/features/archives +++ b/tests/scripts/features/archives @@ -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)); diff --git a/tests/scripts/features/load b/tests/scripts/features/load index 2e3f263..1f8cdc2 100644 --- a/tests/scripts/features/load +++ b/tests/scripts/features/load @@ -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! diff --git a/tests/scripts/features/loadapi b/tests/scripts/features/loadapi index 6d3b03f..8c824c0 100644 --- a/tests/scripts/features/loadapi +++ b/tests/scripts/features/loadapi @@ -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 diff --git a/tests/scripts/features/output-sync b/tests/scripts/features/output-sync index 75d7e81..a7534cb 100644 --- a/tests/scripts/features/output-sync +++ b/tests/scripts/features/output-sync @@ -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; diff --git a/tests/scripts/functions/file b/tests/scripts/functions/file index 9a4cd02..55eb58a 100644 --- a/tests/scripts/functions/file +++ b/tests/scripts/functions/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 index 0000000..2adcd07 --- /dev/null +++ b/tests/scripts/misc/utf8 @@ -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; diff --git a/tests/scripts/options/dash-q b/tests/scripts/options/dash-q index 56f04a1..194588d 100644 --- a/tests/scripts/options/dash-q +++ b/tests/scripts/options/dash-q @@ -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; diff --git a/tests/scripts/variables/GNUMAKEFLAGS b/tests/scripts/variables/GNUMAKEFLAGS index e9c0d55..6e50794 100644 --- a/tests/scripts/variables/GNUMAKEFLAGS +++ b/tests/scripts/variables/GNUMAKEFLAGS @@ -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'); diff --git a/tests/scripts/variables/special b/tests/scripts/variables/special index 4637b2a..a5ab93a 100644 --- a/tests/scripts/variables/special +++ b/tests/scripts/variables/special @@ -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: diff --git a/tests/test_driver.pl b/tests/test_driver.pl index 2f83270..91141eb 100644 --- a/tests/test_driver.pl +++ b/tests/test_driver.pl @@ -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); diff --git a/variable.c b/variable.c index 2ff14b6..01b6d89 100644 --- a/variable.c +++ b/variable.c @@ -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); diff --git a/variable.h b/variable.h index dec75b1..fa2dbbd 100644 --- a/variable.h +++ b/variable.h @@ -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); diff --git a/version.c b/version.c index af461f7..d94ecec 100644 --- 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 . */ # 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; /* Local variables: diff --git a/vmsdir.h b/vmsdir.h index ef53acc..3be3f0c 100644 --- 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 diff --git a/vmsfunctions.c b/vmsfunctions.c index 1907e3a..6ed136c 100644 --- a/vmsfunctions.c +++ b/vmsfunctions.c @@ -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 . */ #include "debug.h" #include "job.h" +#include +#include + #ifdef __DECC #include #endif -#include + #include -#include -#include -#include #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; } diff --git a/vmsify.c b/vmsify.c index c87d68c..02bdbf5 100644 --- 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 . */ #include #include +#include "makeint.h" + #if VMS #include #include @@ -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'; diff --git a/vmsjobs.c b/vmsjobs.c index 8bacc86..b11bca1 100644 --- 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 94956fa..1bcba04 100644 --- 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 diff --git a/w32/Makefile.am b/w32/Makefile.am index be757fe..a2c4063 100644 --- a/w32/Makefile.am +++ b/w32/Makefile.am @@ -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 . +AUTOMAKE_OPTIONS = subdir-objects + noinst_LIBRARIES = libw32.a libw32_a_SOURCES = subproc/misc.c subproc/sub_proc.c subproc/w32err.c \ diff --git a/w32/Makefile.in b/w32/Makefile.in index 9683105..4760541 100644 --- a/w32/Makefile.in +++ b/w32/Makefile.in @@ -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 @@ -33,23 +32,51 @@ # this program. If not, see . 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 diff --git a/w32/compat/dirent.c b/w32/compat/dirent.c index bc776dd..56407dd 100644 --- a/w32/compat/dirent.c +++ b/w32/compat/dirent.c @@ -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 . */ 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; } diff --git a/w32/compat/posixfcn.c b/w32/compat/posixfcn.c index 1d852f5..b366399 100644 --- a/w32/compat/posixfcn.c +++ b/w32/compat/posixfcn.c @@ -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$"; +} diff --git a/w32/include/dirent.h b/w32/include/dirent.h index e75a1b1..13308de 100644 --- a/w32/include/dirent.h +++ b/w32/include/dirent.h @@ -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 . */ 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 *); diff --git a/w32/include/dlfcn.h b/w32/include/dlfcn.h index e920703..c64ac7b 100644 --- a/w32/include/dlfcn.h +++ b/w32/include/dlfcn.h @@ -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 diff --git a/w32/include/pathstuff.h b/w32/include/pathstuff.h index 4e34a13..fb03f12 100644 --- a/w32/include/pathstuff.h +++ b/w32/include/pathstuff.h @@ -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 diff --git a/w32/include/sub_proc.h b/w32/include/sub_proc.h index c7d9fee..1e1b213 100644 --- a/w32/include/sub_proc.h +++ b/w32/include/sub_proc.h @@ -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 . */ 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)); diff --git a/w32/include/w32err.h b/w32/include/w32err.h index 938a119..7d72226 100644 --- a/w32/include/w32err.h +++ b/w32/include/w32err.h @@ -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 diff --git a/w32/pathstuff.c b/w32/pathstuff.c index 0e33821..55332ab 100644 --- a/w32/pathstuff.c +++ b/w32/pathstuff.c @@ -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 diff --git a/w32/subproc/NMakefile b/w32/subproc/NMakefile index 5258fa3..ebf516d 100644 --- a/w32/subproc/NMakefile +++ b/w32/subproc/NMakefile @@ -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 diff --git a/w32/subproc/build.bat b/w32/subproc/build.bat index ecd2ab7..f8604ce 100644 --- a/w32/subproc/build.bat +++ b/w32/subproc/build.bat @@ -17,7 +17,7 @@ gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I.. -I. -I../include -I../.. -DWINDOWS3 :BuildEnd @echo off -rem Copyright (C) 1996-2013 Free Software Foundation, Inc. +rem Copyright (C) 1996-2014 Free Software Foundation, Inc. rem This file is part of GNU Make. rem rem GNU Make is free software; you can redistribute it and/or modify it under diff --git a/w32/subproc/misc.c b/w32/subproc/misc.c index 1e3f3a1..3f3bdf8 100644 --- a/w32/subproc/misc.c +++ b/w32/subproc/misc.c @@ -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 . */ /* * 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; } diff --git a/w32/subproc/proc.h b/w32/subproc/proc.h index 259a119..1e4054c 100644 --- a/w32/subproc/proc.h +++ b/w32/subproc/proc.h @@ -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 . */ 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 diff --git a/w32/subproc/sub_proc.c b/w32/subproc/sub_proc.c index f790ca3..5496c7e 100644 --- a/w32/subproc/sub_proc.c +++ b/w32/subproc/sub_proc.c @@ -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 . */ #include #include #include -#include /* for _get_osfhandle */ +#include /* for _get_osfhandle */ #ifdef _MSC_VER # include /* for intptr_t */ #else @@ -29,6 +29,8 @@ this program. If not, see . */ #include #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 . */ 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); diff --git a/w32/subproc/w32err.c b/w32/subproc/w32err.c index facfabc..9ff4f4c 100644 --- a/w32/subproc/w32err.c +++ b/w32/subproc/w32err.c @@ -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; } -- 2.34.1