From ce2c6eadf1a7f49465a51a4377f2705ce637715c Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Fri, 1 Jun 2001 03:56:50 +0000 Subject: Fix for EINTR problems when using jobserver. New translation files. Fix for @+ inside define macros being applied too widely. Various other bug fixes. --- ChangeLog | 55 ++ NEWS | 9 +- arscan.c | 4 +- configure.in | 26 +- dir.c | 10 +- function.c | 9 +- i18n/gl.po | 458 +++++++------- i18n/ru.po | 1913 ++++++++++++++++++++++++++++++++++------------------------ job.c | 104 +++- main.c | 56 +- make.h | 12 +- make.texinfo | 2 +- read.c | 7 +- remake.c | 20 +- variable.c | 1 + 15 files changed, 1572 insertions(+), 1114 deletions(-) diff --git a/ChangeLog b/ChangeLog index 377d480..541da39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,45 @@ +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 @@ -11,6 +53,19 @@ (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 diff --git a/NEWS b/NEWS index 38a6d5b..7f5f9c3 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,8 @@ GNU make NEWS -*-indented-text-*- History of user-visible changes. - 23 Jun 2000 + 30 May 2001 -Copyright (C) 1992,93,94,95,96,97,98,99,2000 Free Software Foundation, Inc. +Copyright (C) 1992,93,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. See the end for copying conditions. All changes mentioned here are more fully described in the GNU make @@ -12,12 +12,17 @@ Please send GNU make bug reports to . See the README file and the GNU make manual for details on sending bug reports. +Version 3.79.2 + * New pseudo-target .LOW_RESOLUTION_TIME, superseding the configure option --disable-nsec-timestamps. You might need this if your build process depends on tools like "cp -p" preserving time stamps, since "cp -p" (right now) doesn't preserve the subsecond portion of a time stamp. +* Updated translations for Galician, Japanese, and Russian, and a new + Turkish translation. + Version 3.79.1 * .SECONDARY with no prerequisites now prevents any target from being diff --git a/arscan.c b/arscan.c index 03ecb7c..fc003e9 100644 --- a/arscan.c +++ b/arscan.c @@ -797,8 +797,8 @@ ar_member_touch (arname, memname) if (AR_HDR_SIZE != write (fd, (char *) &ar_hdr, AR_HDR_SIZE)) goto lose; /* The file's mtime is the time we we want. */ - while (fstat (fd, &statbuf) < 0 && EINTR_SET) - ; + if (fstat (fd, &statbuf) < 0) + goto lose; #if defined(ARFMAG) || defined(ARFZMAG) || defined(AIAMAG) || defined(WINDOWS32) /* Advance member's time to that time */ for (i = 0; i < sizeof ar_hdr.ar_date; i++) diff --git a/configure.in b/configure.in index b5d109d..fc5a477 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ AC_REVISION([$Id$]) AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required. AC_INIT(vpath.c)dnl dnl A distinctive file to look for in srcdir. -AM_INIT_AUTOMAKE(make, 3.79.1.0) +AM_INIT_AUTOMAKE(make, 3.79.1.90) AM_CONFIG_HEADER(config.h) dnl Regular configure stuff @@ -42,7 +42,7 @@ AC_HEADER_TIME dnl Handle internationalization -ALL_LINGUAS="de es fr gl ja ko nl pl pt_BR ru" +ALL_LINGUAS="de es fr gl ja ko nl pl pt_BR ru tr" pds_WITH_GETTEXT jm_AC_TYPE_UINTMAX_T @@ -113,8 +113,9 @@ if test $ac_cv_func_gettimeofday = yes; then fi AC_CHECK_FUNCS( memmove memcpy strchr strdup psignal mkstemp mktemp fdopen \ - dup2 getcwd sigsetmask sigaction getgroups setlinebuf \ - seteuid setegid setreuid setregid pipe strerror strsignal) + bsd_signal dup2 getcwd sigsetmask sigaction getgroups \ + setlinebuf seteuid setegid setreuid setregid pipe \ + strerror strsignal) AC_CHECK_SYMBOL(sys_siglist) AC_FUNC_ALLOCA @@ -196,9 +197,20 @@ case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in no/no) has_wait_nohang=no ;; esac -case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$has_wait_nohang/$make_cv_job_server" in - yes/yes/yes/yes) AC_DEFINE(MAKE_JOBSERVER, 1, - [Define this to enable job server support in GNU make.]);; +AC_CACHE_CHECK(for SA_RESTART, make_cv_sa_restart, [ + AC_TRY_COMPILE([#include ], + [return SA_RESTART;], + make_cv_sa_restart=yes, + make_cv_sa_restart=no)]) +if test "$make_cv_sa_restart" != no; then + AC_DEFINE(HAVE_SA_RESTART, 1, + [Define if defines the SA_RESTART constant.]) +fi + +case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in + yes/yes/yes/yes/yes) + AC_DEFINE(MAKE_JOBSERVER, 1, + [Define this to enable job server support in GNU make.]);; esac dnl Allow building with dmalloc diff --git a/dir.c b/dir.c index c6c542c..bc926b9 100644 --- a/dir.c +++ b/dir.c @@ -725,7 +725,7 @@ file_impossible (filename) dir = find_directory ("[]"); #else dirend = strrchr (p, '/'); -#if defined (WINDOWS32) || defined (__MSDOS__) +# if defined (WINDOWS32) || defined (__MSDOS__) /* Forward and backslashes might be mixed. We need the rightmost one. */ { char *bslash = strrchr(p, '\\'); @@ -735,13 +735,13 @@ file_impossible (filename) if (!dirend && p[0] && p[1] == ':') dirend = p + 1; } -#endif /* WINDOWS32 or __MSDOS__ */ +# endif /* WINDOWS32 or __MSDOS__ */ if (dirend == 0) -#ifdef _AMIGA +# ifdef _AMIGA dir = find_directory (""); -#else /* !VMS && !AMIGA */ +# else /* !VMS && !AMIGA */ dir = find_directory ("."); -#endif /* AMIGA */ +# endif /* AMIGA */ #endif /* VMS */ else { diff --git a/function.c b/function.c index 295d84b..2c049ce 100644 --- a/function.c +++ b/function.c @@ -1435,8 +1435,7 @@ func_shell (o, argv, funcname) buffer = (char *) xmalloc (maxlen + 1); /* Read from the pipe until it gets EOF. */ - i = 0; - do + for (i = 0; ; i += cc) { if (i == maxlen) { @@ -1444,12 +1443,10 @@ func_shell (o, argv, funcname) buffer = (char *) xrealloc (buffer, maxlen + 1); } - errno = 0; cc = read (pipedes[0], &buffer[i], maxlen - i); - if (cc > 0) - i += cc; + if (cc <= 0) + break; } - while (cc > 0 || EINTR_SET); buffer[i] = '\0'; /* Close the read side of the pipe. */ diff --git a/i18n/gl.po b/i18n/gl.po index ab4f56e..bb60f6c 100644 --- a/i18n/gl.po +++ b/i18n/gl.po @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: make 3.79\n" -"POT-Creation-Date: 2000-04-05 10:09-0400\n" -"PO-Revision-Date: 2000-10-01 19:14+02:00\n" +"Project-Id-Version: make 3.79.1\n" +"POT-Creation-Date: 2000-06-23 12:21-0400\n" +"PO-Revision-Date: 2001-05-13 01:51+02:00\n" "Last-Translator: Jacobo Tarrio \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" @@ -57,21 +57,21 @@ msgstr "a chamada a lbr$ini_control fallou con status = %d" msgid "unable to open library `%s' to lookup member `%s'" msgstr "non se pode abri-la biblioteca `%s' para busca-lo membro `%s'" -#: arscan.c:820 +#: arscan.c:838 #, c-format msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n" msgstr "Membro `%s'%s: %ld bytes en %ld (%ld).\n" -#: arscan.c:821 +#: arscan.c:839 msgid " (name might be truncated)" msgstr " (o nome pode quedar truncado)" -#: arscan.c:823 +#: arscan.c:841 #, c-format msgid " Date %s" msgstr " Data %s" -#: arscan.c:824 +#: arscan.c:842 #, c-format msgid " uid = %d, gid = %d, mode = 0%o.\n" msgstr " uid = %d, gid = %d, modo = 0%o.\n" @@ -80,257 +80,270 @@ msgstr " uid = %d, gid = %d, modo = 0%o.\n" msgid "*** Break.\n" msgstr "*** Interrompido.\n" -#: commands.c:483 +#: commands.c:486 #, c-format msgid "*** [%s] Archive member `%s' may be bogus; not deleted" msgstr "*** [%s] O membro do arquivo `%s' pode non ser correcto; non borrado" -#: commands.c:486 +#: commands.c:489 #, c-format msgid "*** Archive member `%s' may be bogus; not deleted" msgstr "*** O membro do arquivo `%s' pode non ser correcto; non borrado" -#: commands.c:498 +#: commands.c:501 #, c-format msgid "*** [%s] Deleting file `%s'" msgstr "*** [%s] Borrando o ficheiro `%s'" -#: commands.c:500 +#: commands.c:503 #, c-format msgid "*** Deleting file `%s'" msgstr "*** Borrando o ficheiro `%s'" -#: commands.c:538 +#: commands.c:541 msgid "# commands to execute" msgstr "# comandos para executar" -#: commands.c:541 +#: commands.c:544 msgid " (built-in):" msgstr " (incluidas):" -#: commands.c:543 +#: commands.c:546 #, c-format msgid " (from `%s', line %lu):\n" msgstr " (de `%s', liЯa %lu):\n" -#: dir.c:902 +#: dir.c:912 msgid "\n# Directories\n" msgstr "\n# Directorios\n" -#: dir.c:910 +#: dir.c:920 #, c-format msgid "# %s: could not be stat'd.\n" msgstr "# %s: non se puido face-la operaciСn de stat.\n" -#: dir.c:913 +#: dir.c:923 #, c-format msgid "# %s (key %s, mtime %d): could not be opened.\n" msgstr "# %s (clave %s, mtime %d): non se puido abrir.\n" -#: dir.c:917 +#: dir.c:927 #, c-format msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n" msgstr "# %s (dispositivo %d, inode [%d,%d,%d]): non se puido abrir.\n" -#: dir.c:922 +#: dir.c:932 #, c-format msgid "# %s (device %ld, inode %ld): could not be opened.\n" msgstr "# %s (dispositivo %ld, inode %ld): non se puido abrir.\n" -#: dir.c:939 +#: dir.c:949 #, c-format msgid "# %s (key %s, mtime %d): " msgstr "# %s (clave %s, mtime %d): " -#: dir.c:943 +#: dir.c:953 #, c-format msgid "# %s (device %d, inode [%d,%d,%d]): " msgstr "# %s (dispositivo %d, inode [%d,%d,%d]): " -#: dir.c:948 +#: dir.c:958 #, c-format msgid "# %s (device %ld, inode %ld): " msgstr "# %s (dispositivo %ld, inode %ld): " -#: dir.c:954 dir.c:974 +#: dir.c:964 dir.c:984 msgid "No" msgstr "Non" -#: dir.c:957 dir.c:977 +#: dir.c:967 dir.c:987 msgid " files, " msgstr " ficheiros, " -#: dir.c:959 dir.c:979 +#: dir.c:969 dir.c:989 msgid "no" msgstr "non" -#: dir.c:962 +#: dir.c:972 msgid " impossibilities" msgstr " imposibles" -#: dir.c:966 +#: dir.c:976 msgid " so far." msgstr " ata aquМ." -#: dir.c:982 +#: dir.c:992 #, c-format msgid " impossibilities in %u directories.\n" msgstr " imposibles en %u directorios.\n" -#: expand.c:105 +#: expand.c:106 #, c-format msgid "Recursive variable `%s' references itself (eventually)" msgstr "A variable recursiva `%s' fai referencia a si mesma (ao final)" -#: expand.c:130 +#: expand.c:131 #, c-format msgid "warning: undefined variable `%.*s'" msgstr "aviso: variable non definida `%.*s'" #. Unterminated variable reference. -#: expand.c:247 +#: expand.c:248 msgid "unterminated variable reference" msgstr "referencia a variable non rematada" -#: file.c:307 +#: file.c:303 #, c-format msgid "Commands were specified for file `%s' at %s:%lu," msgstr "EspecificАronse comandos do ficheiro `%s' en %s:%lu," -#: file.c:313 +#: file.c:309 #, c-format msgid "Commands for file `%s' were found by implicit rule search," msgstr "AtopАronse os comandos do ficheiro `%s' por busca de regras implМcitas," -#: file.c:317 +#: file.c:313 #, 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:321 +#: file.c:317 #, c-format msgid "Commands for `%s' will be ignored in favor of those for `%s'." msgstr "Os comandos de `%s' serАn ignorados en favor dos de `%s'." -#: file.c:342 +#: file.c:338 #, c-format msgid "can't rename single-colon `%s' to double-colon `%s'" msgstr "non se pode renomear `%s' con dous puntos a `%s' con catro puntos" -#: file.c:347 +#: file.c:343 #, c-format msgid "can't rename double-colon `%s' to single-colon `%s'" msgstr "non se pode renomear `%s' con catro puntos a `%s' con dous puntos" -#: file.c:414 +#: file.c:412 #, c-format msgid "*** Deleting intermediate file `%s'" msgstr "*** Borrando o ficheiro intermedio `%s'" -#: file.c:622 +#: file.c:576 +#, c-format +msgid "%s: Timestamp out of range; substituting %s" +msgstr "%s: Marca de tempo fСra de rango; substituМndo %s" + +#: file.c:577 +msgid "Current time" +msgstr "Hora actual" + +#: file.c:669 msgid "# Not a target:" msgstr "# Non И un obxectivo:" -#: file.c:630 +#: file.c:677 msgid "# Precious file (prerequisite of .PRECIOUS)." msgstr "# Ficheiro precioso (prerrequisito de .PRECIOUS)." -#: file.c:632 +#: file.c:679 msgid "# Phony target (prerequisite of .PHONY)." msgstr "# Obxectivo falso (prerrequisito de .PHONY)." -#: file.c:634 +#: file.c:681 msgid "# Command-line target." msgstr "# Obxectivo da liЯa de comando." -#: file.c:636 +#: file.c:683 msgid "# A default or MAKEFILES makefile." msgstr "# Un ficheiro de make por defecto ou de MAKEFILES." -#: file.c:638 +#: file.c:685 msgid "# Implicit rule search has been done." msgstr "# FМxose a busca de regras implМcitas." -#: file.c:639 +#: file.c:686 msgid "# Implicit rule search has not been done." msgstr "# Non se fixo a busca de regras implМcitas." -#: file.c:641 +#: file.c:688 #, c-format msgid "# Implicit/static pattern stem: `%s'\n" msgstr "# Raiz do patrСn implМcito/estАtico: `%s'\n" -#: file.c:643 +#: file.c:690 msgid "# File is an intermediate prerequisite." msgstr "# O ficheiro И un prerrequisito intermedio." -#: file.c:646 +#: file.c:693 msgid "# Also makes:" msgstr "# TamИn se fai:" -#: file.c:652 +#: file.c:699 msgid "# Modification time never checked." msgstr "# Nunca se comprobou o tempo de modificaciСn." -#: file.c:654 +#: file.c:701 msgid "# File does not exist." msgstr "# O ficheiro non existe." -#: file.c:659 +#: file.c:703 +msgid "# File is very old." +msgstr "# O ficheiro И moi antigo." + +#: file.c:708 #, c-format msgid "# Last modified %s\n" msgstr "# зltima modificaciСn: %s\n" -#: file.c:662 +#: file.c:711 msgid "# File has been updated." msgstr "# O ficheiro foi actualizado." -#: file.c:662 +#: file.c:711 msgid "# File has not been updated." msgstr "# O ficheiro non foi actualizado." -#: file.c:666 +#: file.c:715 msgid "# Commands currently running (THIS IS A BUG)." msgstr "# Comandos que se estАn a executar agora (ISTO и UN ERRO)." -#: file.c:669 +#: file.c:718 msgid "# Dependencies commands running (THIS IS A BUG)." msgstr "# Comandos de dependencias que se estАn a executar (ISTO и UN ERRO)." -#: file.c:678 +#: file.c:727 msgid "# Successfully updated." msgstr "# Actualizado con Иxito." -#: file.c:682 +#: file.c:731 msgid "# Needs to be updated (-q is set)." msgstr "# Ten que ser actualizado (-q estА estabrecido)." -#: file.c:685 +#: file.c:734 msgid "# Failed to be updated." msgstr "# Non se puido actualizar." -#: file.c:688 +#: file.c:737 msgid "# Invalid value in `update_status' member!" msgstr "# ║Valor non vАlido no membro `update_status'!" -#: file.c:695 +#: file.c:744 msgid "# Invalid value in `command_state' member!" msgstr "# ║Valor non vАlido no membro `command_state'!" -#: file.c:714 +#: file.c:763 msgid "\n# Files" msgstr "\n# Ficheiros" -#: file.c:737 +#: file.c:786 msgid "\n# No files." msgstr "\n# Non hai ficheiros." -#: file.c:740 +#: file.c:789 #, c-format msgid "\n# %u files in %u hash buckets.\n" msgstr "\n# %u ficheiros en %u baldes hash.\n" -#: file.c:742 +#: file.c:791 #, c-format msgid "# average %.3f files per bucket, max %u files in one bucket.\n" msgstr "# %.3f ficheiros de media por balde, mАximo de %u ficheiros nun balde.\n" @@ -341,8 +354,8 @@ msgid "non-numeric first argument to `word' function" msgstr "primeiro argumento da funciСn `word' non numИrico" #: function.c:741 -msgid "the `word' function takes a positive index argument" -msgstr "a funciСn `word' toma un argumento Мndice positivo" +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:765 msgid "non-numeric first argument to `wordlist' function" @@ -381,12 +394,12 @@ msgstr "Limpando o ficheiro de lotes temporal %s\n" msgid "Insufficient number of arguments (%d) to function `%s'" msgstr "NЗmero de argumentos insuficiente (%d) na chamada А funciСn `%s'" -#: function.c:1692 +#: function.c:1699 #, c-format msgid "Unimplemented on this platform: function `%s'" msgstr "Non implementada nesta plataforma: funciСn `%s'" -#: function.c:1745 +#: function.c:1752 #, c-format msgid "unterminated call to function `%s': missing `%c'" msgstr "chamada А funciСn `%s' non rematada: falla `%c'" @@ -460,41 +473,41 @@ msgstr "Buscando unha regra impl msgid "Looking for archive-member implicit rule for `%s'.\n" msgstr "Buscando unha regra implМcita membro do arquivo para `%s'.\n" -#: implicit.c:201 +#: implicit.c:202 msgid "Avoiding implicit rule recursion.\n" msgstr "Evitando a recursiСn de regras implМcitas.\n" -#: implicit.c:339 +#: implicit.c:340 #, c-format msgid "Trying pattern rule with stem `%.*s'.\n" msgstr "Probando a regra de patrСn con raiz `%.*s'.\n" -#: implicit.c:380 +#: implicit.c:381 #, c-format msgid "Rejecting impossible implicit prerequisite `%s'.\n" msgstr "Rexeitando o prerrequisito implМcito imposible `%s'.\n" -#: implicit.c:381 +#: implicit.c:382 #, c-format msgid "Rejecting impossible rule prerequisite `%s'.\n" msgstr "Rexeitando o prerrequisito imposible `%s'.\n" -#: implicit.c:391 +#: implicit.c:392 #, c-format msgid "Trying implicit prerequisite `%s'.\n" msgstr "Probando o prerrequisito implМcito `%s'.\n" -#: implicit.c:392 +#: implicit.c:393 #, c-format msgid "Trying rule prerequisite `%s'.\n" msgstr "Probando o prerrequisito `%s'.\n" -#: implicit.c:413 +#: implicit.c:414 #, c-format msgid "Found prerequisite `%s' as VPATH `%s'\n" msgstr "Atopouse a o prerrequisito `%s' coma VPATH `%s'\n" -#: implicit.c:430 +#: implicit.c:431 #, c-format msgid "Looking for a rule with intermediate file `%s'.\n" msgstr "Buscando unha regra co ficheiro intermedio `%s'.\n" @@ -545,7 +558,7 @@ msgstr "*** Agardando por traballos non rematados...." msgid "Live child 0x%08lx (%s) PID %ld %s\n" msgstr "Proceso fillo vivo 0x%08lx (%s) PID %ld %s\n" -#: job.c:484 job.c:644 job.c:742 job.c:1295 +#: job.c:484 job.c:644 job.c:742 job.c:1302 msgid " (remote)" msgstr " (remoto)" @@ -578,130 +591,130 @@ msgstr "write jobserver" msgid "Released token for child 0x%08lx (%s).\n" msgstr "Liberouse un elemento para o proceso fillo 0x%08lx (%s).\n" -#: job.c:1229 job.c:2218 +#: job.c:1236 job.c:2226 #, c-format msgid "process_easy() failed failed to launch process (e=%d)\n" msgstr "process_easy() non puido lanza-lo proceso (e=%d)\n" -#: job.c:1233 job.c:2222 +#: job.c:1240 job.c:2230 #, c-format msgid "\nCounted %d args in failed launch\n" msgstr "\nContАronse %d argumentos no lanzamento que fallou\n" -#: job.c:1293 +#: job.c:1300 #, c-format msgid "Putting child 0x%08lx (%s) PID %ld%s on the chain.\n" msgstr "PoЯendo o proceso fillo 0x%08lx (%s) PID %ld%s na cadea.\n" -#: job.c:1490 +#: job.c:1498 #, c-format msgid "Obtained token for child 0x%08lx (%s).\n" msgstr "ObtМvose un elemento para o proceso fillo 0x%08lx (%s).\n" -#: job.c:1496 +#: job.c:1504 msgid "read jobs pipe" msgstr "lectura do cano de traballos" -#: job.c:1566 +#: job.c:1574 msgid "cannot enforce load limits on this operating system" msgstr "non se poden impoЯer lМmites de carga neste sistema operativo" -#: job.c:1568 +#: job.c:1576 msgid "cannot enforce load limit: " msgstr "non se pode impoЯer un lМmite de carga: " -#: job.c:1671 +#: job.c:1679 #, c-format msgid "internal error: `%s' command_state" msgstr "erro interno: `%s' command_state" -#: job.c:1756 +#: job.c:1764 msgid "-warning, CTRL-Y will leave sub-process(es) around.\n" msgstr "-aviso, CTRL-Y deixarА subprocesos ceibos.\n" -#: job.c:1773 +#: job.c:1781 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n" msgstr "-aviso, pode que teЯa que reactiva-lo manexo de CTRL-Y dende o DCL.\n" -#: job.c:1886 +#: job.c:1894 #, c-format msgid "BUILTIN [%s][%s]\n" msgstr "BUILTIN [%s][%s]\n" -#: job.c:1897 +#: job.c:1905 #, c-format msgid "BUILTIN CD %s\n" msgstr "BUILTIN CD %s\n" -#: job.c:1915 +#: job.c:1923 #, c-format msgid "BUILTIN RM %s\n" msgstr "BUILTIN RM %s\n" -#: job.c:1936 +#: job.c:1944 #, c-format msgid "Unknown builtin command '%s'\n" msgstr "Comando incluido descoЯecido '%s'\n" -#: job.c:1958 +#: job.c:1966 msgid "Error, empty command\n" msgstr "Erro, comando baleiro\n" -#: job.c:1965 main.c:1270 +#: job.c:1973 main.c:1307 msgid "fopen (temporary file)" msgstr "fopen (ficheiro temporal)" -#: job.c:1970 +#: job.c:1978 #, c-format msgid "Redirected input from %s\n" msgstr "Entrada redirixida de %s\n" -#: job.c:1977 +#: job.c:1985 #, c-format msgid "Redirected error to %s\n" msgstr "Erros redirixidos a %s\n" -#: job.c:1984 +#: job.c:1992 #, c-format msgid "Redirected output to %s\n" msgstr "SaМda redirixida a %s\n" -#: job.c:2047 +#: job.c:2055 #, c-format msgid "Executing %s instead\n" msgstr "Executando %s no canto\n" -#: job.c:2144 +#: job.c:2152 #, c-format msgid "Error spawning, %d\n" msgstr "Erro ao lanzar, %d\n" -#: job.c:2247 +#: job.c:2255 #, c-format msgid "make reaped child pid %d, still waiting for pid %d\n" msgstr "make colleitou un proceso fillo de pid %d, ainda se agarda polo pid %d\n" -#: job.c:2266 +#: job.c:2274 #, c-format msgid "%s: Command not found" msgstr "%s: Comando non atopado" -#: job.c:2295 +#: job.c:2303 #, c-format msgid "%s: Shell program not found" msgstr "%s: IntИrprete de comandos non atopado" -#: job.c:2476 +#: job.c:2484 #, c-format msgid "$SHELL changed (was `%s', now `%s')" msgstr "O valor de $SHELL cambiou (antes era `%s', agora `%s')" -#: job.c:2882 +#: job.c:2890 #, c-format msgid "Creating temporary batch file %s\n" msgstr "Creando un ficheiro por lotes temporal %s\n" -#: job.c:2924 +#: job.c:2932 #, c-format msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n" msgstr "%s (liЯa %d) Contexto do intИrprete de comandos incorrecto (!unixy && !batch_mode_shell)\n" @@ -875,148 +888,148 @@ msgstr "find_and_set_shell estabrecendo default_shell = %s\n" msgid "find_and_set_shell path search set default_shell = %s\n" msgstr "find_and_set_shell busca de camiЯos estabrece default_shell = %s\n" -#: main.c:1051 +#: main.c:1058 #, c-format msgid "%s is suspending for 30 seconds..." msgstr "%s estА suspendido durante 30 segundos..." -#: main.c:1053 +#: main.c:1060 msgid "done sleep(30). Continuing.\n" msgstr "rematouse sleep(30). Continuando.\n" -#: main.c:1260 +#: main.c:1268 msgid "Makefile from standard input specified twice." msgstr "O ficheiro de make da entrada estАndar foi especificado dЗas veces." -#: main.c:1276 +#: main.c:1313 msgid "fwrite (temporary file)" msgstr "fwrite (ficheiro temporal)" -#: main.c:1378 +#: main.c:1415 msgid "Do not specify -j or --jobs if sh.exe is not available." msgstr "Non especifique -j ou --jobs se sh.exe non estА dispoЯible." -#: main.c:1379 +#: main.c:1416 msgid "Resetting make for single job mode." msgstr "Reiniciando make para entrar no modo de un traballo." -#: main.c:1416 +#: main.c:1453 msgid "Parallel jobs (-j) are not supported on this platform." msgstr "Os traballos en paralelo (-j) non estАn soportados nesta plataforma." -#: main.c:1417 +#: main.c:1454 msgid "Resetting to single job (-j1) mode." msgstr "Reiniciando para entrar no modo de un traballo (-j1)." -#: main.c:1431 +#: main.c:1468 msgid "internal error: multiple --jobserver-fds options" msgstr "erro interno: opciСns --jobserver-fds mЗltiples" -#: main.c:1439 +#: main.c:1476 #, c-format msgid "internal error: invalid --jobserver-fds string `%s'" msgstr "erro interno: cadea --jobserver-fds non vАlida `%s'" -#: main.c:1449 +#: main.c:1486 msgid "warning: -jN forced in submake: disabling jobserver mode." msgstr "aviso: -jN forzado no submake: desactivando o modo de servidor de traballos." -#: main.c:1459 +#: main.c:1496 msgid "dup jobserver" msgstr "dup jobserver" -#: main.c:1462 +#: main.c:1499 msgid "warning: jobserver unavailable: using -j1. Add `+' to parent make rule." msgstr "aviso: o servidor de traballos non estА dispoЯible: usando -j1. Engada `+' А regra do make pai." -#: main.c:1485 +#: main.c:1522 msgid "creating jobs pipe" msgstr "creando o cano de traballos" -#: main.c:1495 +#: main.c:1532 msgid "init jobserver pipe" msgstr "inicializa-lo cano do servidor de traballos" -#: main.c:1580 +#: main.c:1617 msgid "Updating makefiles....\n" msgstr "Actualizando os ficheiros de make....\n" -#: main.c:1605 +#: main.c:1642 #, c-format msgid "Makefile `%s' might loop; not remaking it.\n" msgstr "O ficheiro de make `%s' poderМa causar un lazo; non se refai.\n" #. The update failed and this makefile was not #. from the MAKEFILES variable, so we care. -#: main.c:1679 +#: main.c:1716 #, c-format msgid "Failed to remake makefile `%s'." msgstr "Non se puido reface-lo ficheiro de make `%s'." -#: main.c:1695 +#: main.c:1732 #, c-format msgid "Included makefile `%s' was not found." msgstr "Non se atopou o ficheiro de make incluido `%s'." #. A normal makefile. We must die later. -#: main.c:1700 +#: main.c:1737 #, c-format msgid "Makefile `%s' was not found" msgstr "Non se atopou o ficheiro de make `%s'" -#: main.c:1768 +#: main.c:1805 msgid "Couldn't change back to original directory." msgstr "Non se puido voltar ao directorio orixinal." -#: main.c:1802 +#: main.c:1839 msgid "Re-executing:" msgstr "Re-executando:" -#: main.c:1833 +#: main.c:1870 msgid "unlink (temporary file): " msgstr "unlink (ficheiro temporal)" -#: main.c:1855 +#: main.c:1892 msgid "No targets specified and no makefile found" msgstr "Non se especificaron obxectivos e non se atopou un ficheiro de make" -#: main.c:1857 +#: main.c:1894 msgid "No targets" msgstr "Non hai obxectivos" #. Update the goals. -#: main.c:1862 +#: main.c:1899 msgid "Updating goal targets....\n" msgstr "Actualizando os obxectivos meta....\n" -#: main.c:1888 +#: main.c:1925 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:2043 +#: main.c:2080 #, c-format msgid "Usage: %s [options] [target] ...\n" msgstr "Uso: %s [opciСns] [obxectivo] ...\n" -#: main.c:2045 +#: main.c:2082 msgid "Options:\n" msgstr "OpciСns:\n" -#: main.c:2126 +#: main.c:2163 msgid "\nReport bugs to .\n" msgstr "\nInforme dos erros a .\n" -#: main.c:2235 +#: main.c:2284 #, c-format msgid "the `-%c' option requires a positive integral argument" msgstr "a opciСn `-%c' precisa dun argumento integral positivo" -#: main.c:2659 +#: main.c:2708 #, c-format 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\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" @@ -1027,7 +1040,7 @@ msgid "" msgstr "" ", por Richard Stallman e Roland McGrath.\n" "%sCompilado para %s\n" -"%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99\n" +"%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000\n" "%s\tFree Software Foundation, Inc.\n" "%sIsto И software libre; vexa o cСdigo fonte polas condiciСns de copia.\n" "%sNON hai garantМa; nin sequera de COMERCIABILIDADE ou APTITUDE PARA\n" @@ -1036,55 +1049,55 @@ msgstr "" "%sInforme dos erros a .\n" "\n" -#: main.c:2685 +#: main.c:2734 #, c-format msgid "\n# Make data base, printed on %s" msgstr "\n# Base de datos de Make, imprimida en %s" -#: main.c:2694 +#: main.c:2743 #, c-format msgid "\n# Finished Make data base on %s\n" msgstr "\n# Base de datos de Make rematada en %s\n" -#: main.c:2749 +#: main.c:2798 msgid "Entering" msgstr "Entrando" -#: main.c:2749 +#: main.c:2798 msgid "Leaving" msgstr "Saindo" -#: main.c:2768 +#: main.c:2817 msgid "an unknown directory" msgstr "un directorio descoЯecido" -#: main.c:2770 +#: main.c:2819 #, c-format msgid "directory `%s'\n" msgstr "directorio `%s'\n" -#: misc.c:307 +#: misc.c:308 msgid ". Stop.\n" msgstr ". Detido.\n" -#: misc.c:329 +#: misc.c:330 #, c-format msgid "Unknown error %d" msgstr "Erro %d descoЯecido" -#: misc.c:369 misc.c:384 misc.c:402 read.c:2708 +#: misc.c:370 misc.c:385 misc.c:403 read.c:2717 msgid "virtual memory exhausted" msgstr "memoria virtual esgotada" #. All the other debugging messages go to stdout, #. but we write this one to stderr because it might be #. run in a child fork whose stdout is piped. -#: misc.c:653 +#: misc.c:655 #, c-format msgid "%s access: user %lu (real %lu), group %lu (real %lu)\n" msgstr "Acceso %s: usuario %lu (real %lu), grupo %lu (real %lu)\n" -#: misc.c:674 +#: misc.c:676 msgid "Initialized" msgstr "Inicializado" @@ -1092,48 +1105,48 @@ msgstr "Inicializado" msgid "Reading makefiles...\n" msgstr "Lendo os ficheiros de make...\n" -#: read.c:337 +#: read.c:335 #, c-format msgid "Reading makefile `%s'" msgstr "Lendo o ficheiro de make `%s'" -#: read.c:339 +#: read.c:337 msgid " (no default goal)" msgstr " (non hai un obxectivo por defecto)" -#: read.c:341 +#: read.c:339 msgid " (search path)" msgstr " (camiЯo de busca)" -#: read.c:343 +#: read.c:341 msgid " (don't care)" msgstr " (non importa)" -#: read.c:345 +#: read.c:343 msgid " (no ~ expansion)" msgstr " (non hai expansiСn de ~)" -#: read.c:525 +#: read.c:523 msgid "invalid syntax in conditional" msgstr "sintaxe non vАlida no condicional" -#: read.c:534 +#: read.c:532 msgid "extraneous `endef'" msgstr "`endef' superfluo" -#: read.c:546 read.c:573 variable.c:873 +#: read.c:544 read.c:572 variable.c:873 msgid "empty variable name" msgstr "nome de variable baleiro" -#: read.c:564 +#: read.c:562 msgid "empty `override' directive" msgstr "directiva `override' baleira" -#: read.c:587 +#: read.c:586 msgid "invalid `override' directive" msgstr "directiva `override' non vАlida" -#: read.c:671 +#: read.c:670 #, c-format msgid "no file name for `%sinclude'" msgstr "non hai un home de ficheiro en `%sinclude'" @@ -1146,98 +1159,98 @@ msgstr "non hai un home de ficheiro en `%sinclude'" msgid "commands commence before first target" msgstr "os comandos comezan antes do primeiro obxectivo" -#: read.c:787 +#: read.c:788 msgid "missing rule before commands" msgstr "falla unha regra antes dos comandos" #. There's no need to be ivory-tower about this: check for #. one of the most common bugs found in makefiles... -#: read.c:873 +#: read.c:874 #, c-format msgid "missing separator%s" msgstr "falla un separador%s" -#: read.c:875 +#: read.c:876 msgid " (did you mean TAB instead of 8 spaces?)" msgstr " (©se cadra unha tabulaciСn no canto de oito espacios?)" -#: read.c:1011 +#: read.c:1020 msgid "missing target pattern" msgstr "falla un patrСn obxectivo" -#: read.c:1013 +#: read.c:1022 msgid "multiple target patterns" msgstr "patrСns de obxectivo mЗltiples" -#: read.c:1017 +#: read.c:1026 msgid "target pattern contains no `%%'" msgstr "o patrСn obxectivo non contИn `%%'" -#: read.c:1058 +#: read.c:1067 msgid "missing `endif'" msgstr "falla `endif'" -#: read.c:1117 +#: read.c:1126 msgid "Extraneous text after `endef' directive" msgstr "Texto superfluo trala directiva `endef'" #. No `endef'!! -#: read.c:1147 +#: read.c:1156 msgid "missing `endef', unterminated `define'" msgstr "falla `endef', `define' sen rematar" -#: read.c:1201 read.c:1357 +#: read.c:1210 read.c:1366 #, c-format msgid "Extraneous text after `%s' directive" msgstr "Texto superfluo trala directiva `%s'" -#: read.c:1204 +#: read.c:1213 #, c-format msgid "extraneous `%s'" msgstr "`%s' superfluo" -#: read.c:1209 +#: read.c:1218 msgid "only one `else' per conditional" msgstr "sС un `else' por condicional" -#: read.c:1471 +#: read.c:1480 msgid "Malformed per-target variable definition" msgstr "DefiniciСn dunha variable por obxectivo mal formada" -#: read.c:1553 +#: read.c:1562 msgid "mixed implicit and static pattern rules" msgstr "regrАs de patrСn implМcitas e estАticas mesturadas" -#: read.c:1556 +#: read.c:1565 msgid "mixed implicit and normal rules" msgstr "regras implМcitas e normais mesturadas" -#: read.c:1597 +#: read.c:1606 #, c-format msgid "target `%s' doesn't match the target pattern" msgstr "o obxectivo `%s' non coincide co patrСn do obxectivo" -#: read.c:1619 +#: read.c:1628 #, c-format msgid "target `%s' leaves prerequisite pattern empty" msgstr "o obxectivo `%s' deixa o patrСn prerrequisito baleiro" -#: read.c:1635 read.c:1735 +#: read.c:1644 read.c:1744 #, c-format msgid "target file `%s' has both : and :: entries" msgstr "o ficheiro obxectivo `%s' ten entradas : e ::" -#: read.c:1641 +#: read.c:1650 #, c-format msgid "target `%s' given more than once in the same rule." msgstr "o obxectivo `%s' aparece mАis dunha vez na mesma regra." -#: read.c:1650 +#: read.c:1659 #, c-format msgid "warning: overriding commands for target `%s'" msgstr "aviso: ignorando os comandos do obxectivo `%s'" -#: read.c:1653 +#: read.c:1662 #, c-format msgid "warning: ignoring old commands for target `%s'" msgstr "aviso: ignСranse os comandos antigos do obxectivo `%s'" @@ -1247,178 +1260,178 @@ msgstr "aviso: ign #. 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. -#: read.c:2153 +#: read.c:2162 msgid "warning: NUL character seen; rest of line ignored" msgstr "aviso: viuse un carАcter NUL; ignСrase o resto da liЯa" -#: remake.c:227 +#: remake.c:230 #, c-format msgid "Nothing to be done for `%s'." msgstr "Non hai nada que facer para `%s'" -#: remake.c:228 +#: remake.c:231 #, c-format msgid "`%s' is up to date." msgstr "`%s' estА actualizado." -#: remake.c:296 +#: remake.c:299 #, c-format msgid "Pruning file `%s'.\n" msgstr "Podando o ficheiro `%s'.\n" -#: remake.c:350 +#: remake.c:353 #, c-format msgid "Considering target file `%s'.\n" msgstr "Considerando o ficheiro obxectivo `%s'.\n" -#: remake.c:357 +#: remake.c:360 #, c-format msgid "Recently tried and failed to update file `%s'.\n" msgstr "Hai pouco probouse a actualiza-lo ficheiro `%s' e non se puido.\n" -#: remake.c:361 +#: remake.c:364 #, c-format msgid "File `%s' was considered already.\n" msgstr "O ficheiro `%s' xa fora considerado.\n" -#: remake.c:371 +#: remake.c:374 #, c-format msgid "Still updating file `%s'.\n" msgstr "Ainda se estА actualizando o ficheiro `%s'.\n" -#: remake.c:374 +#: remake.c:377 #, c-format msgid "Finished updating file `%s'.\n" msgstr "Rematouse de actualiza-lo ficheiro `%s'.\n" -#: remake.c:395 +#: remake.c:398 #, c-format msgid "File `%s' does not exist.\n" msgstr "O ficheiro `%s' non existe.\n" -#: remake.c:405 remake.c:825 +#: remake.c:408 remake.c:828 #, c-format msgid "Found an implicit rule for `%s'.\n" msgstr "Atopouse unha regra implМcita de `%s'.\n" -#: remake.c:407 remake.c:827 +#: remake.c:410 remake.c:830 #, c-format msgid "No implicit rule found for `%s'.\n" msgstr "Non se atopou unha regra implМcita para `%s'.\n" -#: remake.c:413 remake.c:833 +#: remake.c:416 remake.c:836 #, c-format msgid "Using default commands for `%s'.\n" msgstr "Usando os comandos por defecto para `%s'.\n" -#: remake.c:433 remake.c:857 +#: remake.c:436 remake.c:860 #, c-format msgid "Circular %s <- %s dependency dropped." msgstr "A dependencia circular %s <- %s foi eliminada." -#: remake.c:511 +#: remake.c:514 #, c-format msgid "Finished prerequisites of target file `%s'.\n" msgstr "RematАronse os prerrequisitos do ficheiro obxectivo `%s'.\n" -#: remake.c:517 +#: remake.c:520 #, c-format msgid "The prerequisites of `%s' are being made.\n" msgstr "Estan a se face-los prerrequisitos de `%s'.\n" -#: remake.c:530 +#: remake.c:533 #, c-format msgid "Giving up on target file `%s'.\n" msgstr "Abandonando no ficheiro obxectivo `%s'.\n" -#: remake.c:535 +#: remake.c:538 #, c-format msgid "Target `%s' not remade because of errors." msgstr "Non se refai o obxectivo `%s' a causa dos erros." -#: remake.c:583 +#: remake.c:586 #, c-format msgid "Prerequisite `%s' of target `%s' does not exist.\n" msgstr "O prerrequisito `%s' do obxectivo `%s' non existe.\n" -#: remake.c:588 +#: remake.c:591 #, c-format msgid "Prerequisite `%s' is newer than target `%s'.\n" msgstr "O prerrequisito `%s' И mАis novo cС obxectivo `%s'.\n" -#: remake.c:591 +#: remake.c:594 #, c-format msgid "Prerequisite `%s' is older than target `%s'.\n" msgstr "O prerrequisito `%s' И mАis vello cС obxectivo `%s'.\n" -#: remake.c:609 +#: remake.c:612 #, c-format msgid "Target `%s' is double-colon and has no prerequisites.\n" msgstr "O obxectivo `%s' ten catro puntos e non ten prerrequisitos.\n" -#: remake.c:615 +#: remake.c:618 #, c-format msgid "No commands for `%s' and no prerequisites actually changed.\n" msgstr "Non hai comandos de `%s', e non cambiaron os prerrequisitos.\n" -#: remake.c:623 +#: remake.c:626 #, c-format msgid "No need to remake target `%s'" msgstr "Non И preciso reface-lo obxectivo `%s'" -#: remake.c:625 +#: remake.c:628 #, c-format msgid "; using VPATH name `%s'" msgstr "; usando o nome de VPATH `%s'" -#: remake.c:645 +#: remake.c:648 #, c-format msgid "Must remake target `%s'.\n" msgstr "Debe refacerse o obxectivo `%s'.\n" -#: remake.c:651 +#: remake.c:654 #, c-format msgid " Ignoring VPATH name `%s'.\n" msgstr " Ignorando o nome VPATH `%s'.\n" -#: remake.c:660 +#: remake.c:663 #, c-format msgid "Commands of `%s' are being run.\n" msgstr "Estanse a executa-los comandos de `%s'.\n" -#: remake.c:667 +#: remake.c:670 #, c-format msgid "Failed to remake target file `%s'.\n" msgstr "Non se puido reface-lo ficheiro obxectivo `%s'.\n" -#: remake.c:670 +#: remake.c:673 #, c-format msgid "Successfully remade target file `%s'.\n" msgstr "O ficheiro obxectivo `%s' foi feito de novo con Иxito.\n" -#: remake.c:673 +#: remake.c:676 #, c-format msgid "Target file `%s' needs remade under -q.\n" msgstr "O ficheiro obxectivo `%s' precisa refacerse con -q.\n" -#: remake.c:974 +#: remake.c:977 #, c-format msgid "%sNo rule to make target `%s'%s" msgstr "%sNon hai unha regra para face-lo obxectivo `%s'%s" -#: remake.c:976 +#: remake.c:979 #, c-format msgid "%sNo rule to make target `%s', needed by `%s'%s" msgstr "%sNon hai unha regra para face-lo obxectivo `%s', que precisa `%s'%s" -#: remake.c:1177 +#: remake.c:1191 #, c-format msgid "*** Warning: File `%s' has modification time in the future (%s > %s)" msgstr "*** Aviso: O ficheiro `%s' ten unha data de modificaciСn no futuro (%s > %s)" #. Give a warning if there is no pattern, then remove the #. pattern so it's ignored next time. -#: remake.c:1291 +#: remake.c:1311 #, c-format msgid ".LIBPATTERNS element `%s' is not a pattern" msgstr "O elemento de .LIBPATTERNS `%s' non И un patrСn" @@ -1668,24 +1681,24 @@ msgstr "# %d.%d variables de media por balde, m msgid "\n# Variables\n" msgstr "\n# Variables\n" -#: vpath.c:552 +#: vpath.c:553 msgid "\n# VPATH Search Paths\n" msgstr "\n# CamiЯos de Busca VPATH\n" -#: vpath.c:569 +#: vpath.c:570 msgid "# No `vpath' search paths." msgstr "# Non hai camiЯos de busca `vpath'" -#: vpath.c:571 +#: vpath.c:572 #, c-format msgid "\n# %u `vpath' search paths.\n" msgstr "\n# %u camiЯos de busca `vpath'.\n" -#: vpath.c:574 +#: vpath.c:575 msgid "\n# No general (`VPATH' variable) search path." msgstr "\n# Non hai un camiЯo de busca xeral (variable `VPATH')." -#: vpath.c:580 +#: vpath.c:581 msgid "" "\n" "# General (`VPATH' variable) search path:\n" @@ -1705,6 +1718,9 @@ msgstr "A Aduana non exporta: %s\n" msgid "sys$search failed with %d\n" msgstr "a chamada a sys$search fallou con %d\n" +#~ msgid "the `word' function takes a positive index argument" +#~ msgstr "a funciСn `word' toma un argumento Мndice positivo" + #~ msgid "\n# Implicit Rules" #~ msgstr "\n# Regras ImplМcitas" diff --git a/i18n/ru.po b/i18n/ru.po index 93af904..369bd26 100644 --- a/i18n/ru.po +++ b/i18n/ru.po @@ -1,1424 +1,1749 @@ # Локализация make -# Copyright (C) 1998 Free Software Foundation, Inc. +# Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. # Oleg S. Tihonov , 1998 +# Alexey Mahotkin 2001 +# Denis Perchine , 2001 # msgid "" msgstr "" -"Project-Id-Version: make 3.74.4\n" -"POT-Creation-Date: 1996-05-22 09:11-0400\n" -"PO-Revision-Date: 1998-12-02 23:00+03:00\n" -"Last-Translator: Oleg S. Tihonov \n" +"Project-Id-Version: make 3.79\n" +"POT-Creation-Date: 2000-04-05 10:09-0400\n" +"PO-Revision-Date: 2001-05-10 12:00+06:00\n" +"Last-Translator: Denis Perchine \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8bit\n" -#: ar.c:48 -#, possible-c-format +#: ar.c:50 +#, c-format msgid "attempt to use unsupported feature: `%s'" msgstr "попытка использования неподдерживаемого средства: `%s'" -#: ar.c:142 -#, possible-c-format -msgid "Error in lbr$ini_control, %d\n" -msgstr "Ошибка в lbr$ini_control, %d\n" - -#: ar.c:147 -#, possible-c-format -msgid "Error opening library %s to lookup member %s, %d\n" -msgstr "Ошибка открытия библиотеки %s для поиска члена %s; %d\n" - -#: ar.c:153 -#, possible-c-format -msgid "Error looking up module %s in library %s, %d\n" -msgstr "Ошибка поиска модуля %s в библиотеке %s, %d\n" - -#: ar.c:159 -#, possible-c-format -msgid "Error getting module info, %d\n" -msgstr "Ошибка получения сведений о модуле, %d\n" - -#: ar.c:244 +#: ar.c:141 msgid "touch archive member is not available on VMS" msgstr "обновление времени изменения члена архива невозможно в системе VMS" -#: ar.c:276 -#, possible-c-format +#: ar.c:173 +#, c-format msgid "touch: Archive `%s' does not exist" msgstr "обновление времени изменения: Архив `%s' не существует" -#: ar.c:279 -#, possible-c-format +#: ar.c:176 +#, c-format msgid "touch: `%s' is not a valid archive" msgstr "обновление времени изменения: Неверный архив: `%s'" -#: ar.c:282 -msgid "touch: " -msgstr "обновление времени изменения: " - -#: ar.c:285 -#, possible-c-format +#: ar.c:183 +#, c-format msgid "touch: Member `%s' does not exist in `%s'" -msgstr "обновление времени изменения: Член `%s' не содержится в `%s'" +msgstr "обновление времени изменения: Элемент `%s' не содержится в `%s'" -#: ar.c:291 -#, possible-c-format +#: ar.c:190 +#, c-format msgid "touch: Bad return code from ar_member_touch on `%s'" msgstr "" "обновление времени изменения: Функция ar_member_touch вернула\n" "ошибочное значение для `%s'" -#: arscan.c:550 +#: arscan.c:71 +#, c-format +msgid "lbr$set_module failed to extract module info, status = %d" +msgstr "lbr$set_module не смогла извлечь информацию о модуле, статус = %d" + +#: arscan.c:155 +#, c-format +msgid "lbr$ini_control failed with status = %d" +msgstr "lbr$init_control вернула код ошибки %d" + +#: arscan.c:166 +#, c-format +msgid "unable to open library `%s' to lookup member `%s'" +msgstr "Ошибка открытия библиотеки `%s' для поиска элемента `%s'" + +#: arscan.c:820 +#, c-format +msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n" +msgstr "Элемент `%s'%s: %ld байт по адресу %ld (%ld).\n" + +#: arscan.c:821 msgid " (name might be truncated)" msgstr " (имя может быть усечено)" -#: arscan.c:552 -#, possible-c-format +#: arscan.c:823 +#, c-format msgid " Date %s" msgstr " Дата %s" -#~ #: arscan.c:553 -#~ #, possible-c-format -#~ msgid " uid = %d, gid = %d, mode = 0%o.\n" -#~ msgstr "" +#: arscan.c:824 +#, c-format +msgid " uid = %d, gid = %d, mode = 0%o.\n" +msgstr "" + +#: commands.c:391 +msgid "*** Break.\n" +msgstr "*** Останов.\n" + +#: commands.c:483 +#, c-format +msgid "*** [%s] Archive member `%s' may be bogus; not deleted" +msgstr "*** [%s] Элемент архива `%s', кажется, недействителен; не удален" + +#: commands.c:486 +#, c-format +msgid "*** Archive member `%s' may be bogus; not deleted" +msgstr "*** Элемент архива `%s', кажется, недействителен; не удален" + +#: commands.c:498 +#, c-format +msgid "*** [%s] Deleting file `%s'" +msgstr "*** [%s] Удаляется файл `%s'" + +#: commands.c:500 +#, c-format +msgid "*** Deleting file `%s'" +msgstr "*** Удаляется файл `%s'" + +#: commands.c:538 +msgid "# commands to execute" +msgstr "# команды, которые следует выполнить" + +#: commands.c:541 +msgid " (built-in):" +msgstr " (встроенные):" -#: dir.c:678 +#: commands.c:543 +#, c-format +msgid " (from `%s', line %lu):\n" +msgstr " (из `%s', строка %lu):\n" + +#: dir.c:902 msgid "\n# Directories\n" msgstr "\n# Каталоги\n" -#: dir.c:686 -#, possible-c-format +#: dir.c:910 +#, c-format msgid "# %s: could not be stat'd.\n" msgstr "# %s: невозможно получить сведения вызовом stat.\n" -#: dir.c:689 -#, possible-c-format +#: dir.c:913 +#, c-format +msgid "# %s (key %s, mtime %d): could not be opened.\n" +msgstr "# %s (ключ %s, время модификации %d): невозможно открыть.\n" + +#: dir.c:917 +#, 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 (устройство %d, inode [%d,%d,%d]): невозможно открыть.\n" + +#: dir.c:922 +#, c-format +msgid "# %s (device %ld, inode %ld): could not be opened.\n" +msgstr "# %s (устройство %ld, inode %ld): невозможно открыть.\n" -#: dir.c:694 -#, possible-c-format -msgid "# %s (device %d, inode %d): could not be opened.\n" -msgstr "# %s (device %d, inode %d): невозможно открыть.\n" +#: dir.c:939 +#, c-format +msgid "# %s (key %s, mtime %d): " +msgstr "# %s (ключ %s, время модификации %d): " -#~ #: dir.c:709 -#~ #, possible-c-format -#~ msgid "# %s (device %d, inode [%d,%d,%d]): " -#~ msgstr "" +#: dir.c:943 +#, c-format +msgid "# %s (device %d, inode [%d,%d,%d]): " +msgstr "# %s (устройство %d, inode [%d,%d,%d]): " -#~ #: dir.c:714 -#~ #, possible-c-format -#~ msgid "# %s (device %d, inode %d): " -#~ msgstr "" +#: dir.c:948 +#, c-format +msgid "# %s (device %ld, inode %ld): " +msgstr "# %s (устройство %ld, inode %ld): " -#: dir.c:718 dir.c:738 +#: dir.c:954 dir.c:974 msgid "No" msgstr "Нет" -#: dir.c:721 dir.c:741 +#: dir.c:957 dir.c:977 msgid " files, " msgstr " файлов," -#: dir.c:723 dir.c:743 +#: dir.c:959 dir.c:979 msgid "no" msgstr "нет" -#: dir.c:726 +#: dir.c:962 msgid " impossibilities" msgstr " недостижимых целей" -#: dir.c:730 +#: dir.c:966 msgid " so far." msgstr " на текущий момент." -#: dir.c:746 -#, possible-c-format +#: dir.c:982 +#, c-format msgid " impossibilities in %u directories.\n" msgstr " недостижимых целей в %u каталогах.\n" -#: expand.c:92 expand.c:97 -#, possible-c-format +#: expand.c:105 +#, c-format msgid "Recursive variable `%s' references itself (eventually)" msgstr "Рекурсивная переменная `%s' ссылается сама на себя (в результате)" -#: expand.c:120 -#, possible-c-format +#: expand.c:130 +#, c-format msgid "warning: undefined variable `%.*s'" msgstr "предупреждение: неопределенная переменная `%.*s'" -#: expand.c:223 expand.c:225 +#. Unterminated variable reference. +#: expand.c:247 msgid "unterminated variable reference" msgstr "незавершенная ссылка на переменную" -#: file.c:264 -#, possible-c-format -msgid "Commands were specified for file `%s' at %s:%u," -msgstr "Команды для файла `%s' были заданы %s:%u," +#: file.c:307 +#, c-format +msgid "Commands were specified for file `%s' at %s:%lu," +msgstr "Команды для файла `%s' были заданы в %s:%lu," -#: file.c:270 -#, possible-c-format +#: file.c:313 +#, c-format msgid "Commands for file `%s' were found by implicit rule search," msgstr "Команды для файла `%s' были найдены из неявного правила," -#: file.c:274 -#, possible-c-format +#: file.c:317 +#, c-format msgid "but `%s' is now considered the same file as `%s'." msgstr "но `%s' и `%s' теперь считаются одним и тем же файлом. " -#: file.c:278 -#, possible-c-format +#: file.c:321 +#, c-format msgid "Commands for `%s' will be ignored in favor of those for `%s'." -msgstr "Команды для `%s' игнорированы, будут Использованы команды для `%s'." +msgstr "Команды для `%s' игнорируются, вместо них будут использованы команды для `%s'." -#: file.c:299 -#, possible-c-format +#: file.c:342 +#, c-format msgid "can't rename single-colon `%s' to double-colon `%s'" msgstr "невозможно переименовать `%s' с одним двоеточием в `%s' с двумя двоеточиями" -#: file.c:302 -#, possible-c-format +#: file.c:347 +#, c-format msgid "can't rename double-colon `%s' to single-colon `%s'" msgstr "невозможно переименовать `%s' с двумя двоеточиями в `%s' с одним двоеточием" -#: file.c:363 -#, possible-c-format +#: file.c:414 +#, c-format msgid "*** Deleting intermediate file `%s'" msgstr "*** Удаление промежуточного файла `%s'" -#: file.c:523 +#: file.c:622 msgid "# Not a target:" msgstr "# Не является целью:" -#: file.c:531 -msgid "# Precious file (dependency of .PRECIOUS)." +#: file.c:630 +msgid "# Precious file (prerequisite of .PRECIOUS)." msgstr "# Ценный файл (зависимость .PRECIOUS)." -#: file.c:533 -msgid "# Phony target (dependency of .PHONY)." +#: file.c:632 +msgid "# Phony target (prerequisite of .PHONY)." msgstr "# Псевдоцель (зависимость от .PHONY)." -#: file.c:535 +#: file.c:634 msgid "# Command-line target." msgstr "# Цель, вызываемая из командной строки." -#: file.c:537 +#: file.c:636 msgid "# A default or MAKEFILES makefile." msgstr "# makefile по умолчанию или из MAKEFILES." -#: file.c:538 -#, possible-c-format -msgid "# Implicit rule search has%s been done.\n" -msgstr "# Поиск неявных правил%s производился.\n" +#: file.c:638 +msgid "# Implicit rule search has been done." +msgstr "# Производился поиск неявных правил" -#: file.c:539 file.c:564 -msgid " not" -msgstr " не" +#: file.c:639 +msgid "# Implicit rule search has not been done." +msgstr "# Поиск неявных правил не производился." -#: file.c:541 -#, possible-c-format +#: file.c:641 +#, c-format msgid "# Implicit/static pattern stem: `%s'\n" msgstr "# Основа неявного или статического образца: `%s'\n" -#: file.c:543 -msgid "# File is an intermediate dependency." -msgstr "# Файл -- промежуточная зависимось." +#: file.c:643 +msgid "# File is an intermediate prerequisite." +msgstr "# Файл -- промежуточная зависимость." -#: file.c:546 +#: file.c:646 msgid "# Also makes:" msgstr "# Собирает также:" -#: file.c:552 +#: file.c:652 msgid "# Modification time never checked." -msgstr "# Время изменения никогда не проверялось." +msgstr "# Время изменения ни разу не проверялось." -#: file.c:554 +#: file.c:654 msgid "# File does not exist." msgstr "# Файл не существует." -#: file.c:557 -#, possible-c-format -msgid "# Last modified %.24s (%0lx)\n" -msgstr "# Время последнего изменения %.24s (%0lx)\n" +#: file.c:659 +#, c-format +msgid "# Last modified %s\n" +msgstr "# Время последнего изменения %s\n" -#: file.c:560 -#, possible-c-format -msgid "# Last modified %.24s (%ld)\n" -msgstr "# Время последнего изменения %.24s (%ld)\n" +#: file.c:662 +msgid "# File has been updated." +msgstr "# Файл был обновлен." -#: file.c:563 -#, possible-c-format -msgid "# File has%s been updated.\n" -msgstr "# Файл%s был обновлен.\n" +#: file.c:662 +msgid "# File has not been updated." +msgstr "# Файл не был обновлен." -#: file.c:568 +#: file.c:666 msgid "# Commands currently running (THIS IS A BUG)." msgstr "# В данный момент выполняются некоторые команды (ЭТО ОШИБКА)." -#: file.c:571 +#: file.c:669 msgid "# Dependencies commands running (THIS IS A BUG)." msgstr "# В данный момент выполняются команды некоторой зависимости (ЭТО ОШИБКА)." -#: file.c:580 +#: file.c:678 msgid "# Successfully updated." msgstr "# Успешно обновлено." -#: file.c:584 +#: file.c:682 msgid "# Needs to be updated (-q is set)." -msgstr "# Должно быть обновлено (установлен ключ -q)." +msgstr "# Должно быть обновлено (задан ключ -q)." -#: file.c:587 +#: file.c:685 msgid "# Failed to be updated." msgstr "# Попытка обновления безуспешна." -#: file.c:590 +#: file.c:688 msgid "# Invalid value in `update_status' member!" msgstr "# Неверное значение члена `update_status'!" -#: file.c:597 +#: file.c:695 msgid "# Invalid value in `command_state' member!" msgstr "# Неверное значение члена `command_state'!" -#: file.c:616 +#: file.c:714 msgid "\n# Files" msgstr "\n# Файлы" -#: file.c:639 +#: file.c:737 msgid "\n# No files." msgstr "\n# Файлов нет." -#: file.c:642 -#, possible-c-format +#: file.c:740 +#, c-format msgid "\n# %u files in %u hash buckets.\n" -msgstr "\n# %u файлов in %u ячейках хеш-таблицы..\n" +msgstr "\n# %u файлов in %u ячейках хеш-таблицы.\n" -#: file.c:644 -#, possible-c-format -msgid "# average %.1f files per bucket, max %u files in one bucket.\n" -msgstr "# в среднем %.1f файлов в ячейке, макс. %u файлов в одной ячейке.\n" +#: file.c:742 +#, c-format +msgid "# average %.3f files per bucket, max %u files in one bucket.\n" +msgstr "# в среднем %.3f файлов в ячейке, макс. %u файлов в одной ячейке.\n" -#: function.c:648 -msgid "undefined" -msgstr "не определена" +#. Check the first argument. +#: function.c:737 +msgid "non-numeric first argument to `word' function" +msgstr "нечисловой первый аргумент функции `word'" -#: function.c:657 variable.c:736 -msgid "default" -msgstr "по умолчанию" +#: function.c:741 +#, fuzzy +msgid "the `word' function takes a positive index argument" +msgstr "ключ `-%c' должен использоваться с целым положительным аргументом" -#: function.c:660 variable.c:739 -msgid "environment" -msgstr "определена в среде" +#: function.c:765 +msgid "non-numeric first argument to `wordlist' function" +msgstr "нечисловой первый аргумент функции `wordlist'" + +#: function.c:767 +msgid "non-numeric second argument to `wordlist' function" +msgstr "нечисловой второй аргумент функции `wordlist'" + +#: function.c:1208 +#, c-format +msgid "create_child_process: DuplicateHandle(In) failed (e=%d)\n" +msgstr "create_child_process: DuplicateHandle(In) вернула код ошибки (e=%d)\n" + +#: function.c:1219 +#, c-format +msgid "create_child_process: DuplicateHandle(Err) failed (e=%d)\n" +msgstr "create_child_process: DuplicateHandle(Err) вернула код ошибки (e=%d)\n" + +#: function.c:1224 +#, c-format +msgid "CreatePipe() failed (e=%d)\n" +msgstr "CreatePipe() вернула код ошибки (e=%d)\n" + +#: function.c:1229 +msgid "windows32_openpipe (): process_init_fd() failed\n" +msgstr "windows32_openpipe(): process_init_fd() вернула код ошибки\n" + +#: function.c:1468 +#, c-format +msgid "Cleaning up temporary batch file %s\n" +msgstr "Очищаю временный пакетный файл %s\n" + +#: function.c:1688 +#, c-format +msgid "Insufficient number of arguments (%d) to function `%s'" +msgstr "Недостаточно аргументов (всего %d) функции `%s'" + +#: function.c:1692 +#, c-format +msgid "Unimplemented on this platform: function `%s'" +msgstr "Не реализовано на этой платформе: функция `%s'" + +#: function.c:1745 +#, c-format +msgid "unterminated call to function `%s': missing `%c'" +msgstr "незавершенный вызов функции `%s': пропущено `%c'" -#: function.c:663 -msgid "file" -msgstr "файл" +# Сообщения getopt исключены, т.к. они относятся к уже +# устаревшей версии этой библиотеки, и исчезнут в следующей версии make +# +#: getopt.c:675 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "" -#: function.c:666 -msgid "environment override" -msgstr "перекрыта переменной среды" +#: getopt.c:699 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "" -#: function.c:669 variable.c:748 -msgid "command line" -msgstr "определена в командной строке" +#: getopt.c:704 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "" -#: function.c:672 -msgid "override" -msgstr "перекрыта" +#: getopt.c:721 getopt.c:894 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "" -#: function.c:675 variable.c:754 -msgid "automatic" -msgstr "автоматическая" +#. --option +#: getopt.c:750 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "" -#: function.c:1087 function.c:1089 -msgid "non-numeric first argument to `word' function" -msgstr "нечисловой первый аргумент для функции `word'" +#. +option or -option +#: getopt.c:754 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "" -#: function.c:1097 function.c:1100 -msgid "the `word' function takes a one-origin index argument" -msgstr "индексы, которые функция `word' принимает как аргументы, начинаются с 1" +#. 1003.2 specifies the format of this message. +#: getopt.c:780 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "" -#: function.c:1341 -#, possible-c-format -msgid "unterminated call to function `%s': missing `%c'" -msgstr "незавершенный вызов функции `%s'; пропущено `%c'" +#: getopt.c:783 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "" + +#. 1003.2 specifies the format of this message. +#: getopt.c:813 getopt.c:943 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "" + +#: getopt.c:860 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "" + +#: getopt.c:878 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "" -#: implicit.c:38 -#, possible-c-format +#: implicit.c:40 +#, c-format msgid "Looking for an implicit rule for `%s'.\n" msgstr "Поиск неявного правила для `%s'.\n" -#: implicit.c:53 -#, possible-c-format +#: implicit.c:56 +#, c-format msgid "Looking for archive-member implicit rule for `%s'.\n" -msgstr "Поиск неявного правила для члена архива `%s'.\n" +msgstr "Поиск неявного правила для элемента архива `%s'.\n" -#: implicit.c:190 -#, possible-c-format -msgid "Avoiding implicit rule recursion.%s%s\n" -msgstr "Избежание рекурсивного вызова неявного правила.%s%s\n" +#: implicit.c:201 +msgid "Avoiding implicit rule recursion.\n" +msgstr "Избежание рекурсивного вызова неявного правила.\n" -#: implicit.c:326 -#, possible-c-format +#: implicit.c:339 +#, c-format msgid "Trying pattern rule with stem `%.*s'.\n" -msgstr "Попытка применения правило с образцом, основа `%.*s'.\n" - -#: implicit.c:365 -#, possible-c-format -msgid "Rejecting impossible %s dependency `%s'.\n" -msgstr "Отвержение невозможной %s зависимости `%s'.\n" - -#: implicit.c:366 implicit.c:374 -msgid "implicit" -msgstr "неявной" - -#: implicit.c:366 implicit.c:374 -msgid "rule" -msgstr "заданной правилом" - -#: implicit.c:373 -#, possible-c-format -msgid "Trying %s dependency `%s'.\n" -msgstr "Попытка применения %s зависимости `%s'.\n" - -#: implicit.c:393 -#, possible-c-format -msgid "Found dependency as `%s'.%s\n" -msgstr "Зависимость найдена как `%s'.%s\n" - -#: implicit.c:408 -#, possible-c-format -msgid "Looking for a rule with %s file `%s'.\n" -msgstr "Поиск правила с %s файлом `%s'.\n" - -#: implicit.c:409 -msgid "intermediate" -msgstr "промежуточным" - -#: job.c:190 -#, possible-c-format -msgid "*** [%s] Error 0x%x%s" -msgstr "*** [%s] Ошибка 0x%x%s" - -#: job.c:190 -msgid " (ignored)" -msgstr " (игнорирована) " - -#: job.c:193 -#, possible-c-format +msgstr "Попытка применения правила с образцом, основа `%.*s'.\n" + +#: implicit.c:380 +#, c-format +msgid "Rejecting impossible implicit prerequisite `%s'.\n" +msgstr "Отвержение невозможной неявной зависимости `%s'.\n" + +#: implicit.c:381 +#, c-format +msgid "Rejecting impossible rule prerequisite `%s'.\n" +msgstr "Отвержение невозможной зависимости правила `%s'.\n" + +#: implicit.c:391 +#, c-format +msgid "Trying implicit prerequisite `%s'.\n" +msgstr "Попытка применения неявной зависимости `%s'.\n" + +#: implicit.c:392 +#, c-format +msgid "Trying rule prerequisite `%s'.\n" +msgstr "Попытка применения правила зависимости `%s'.\n" + +#: implicit.c:413 +#, c-format +msgid "Found prerequisite `%s' as VPATH `%s'\n" +msgstr "Обнаружена зависимость `%s' в виде VPATH `%s'\n" + +#: implicit.c:430 +#, c-format +msgid "Looking for a rule with intermediate file `%s'.\n" +msgstr "Поиск правила с промежуточным файлом `%s'.\n" + +#: job.c:253 +#, c-format +msgid "*** [%s] Error 0x%x (ignored)" +msgstr "*** [%s] Ошибка 0x%x (игнорирована)" + +#: job.c:254 +#, c-format +msgid "*** [%s] Error 0x%x" +msgstr "*** [%s] Ошибка 0x%x" + +#: job.c:258 +#, c-format msgid "[%s] Error %d (ignored)" msgstr "[%s] Ошибка %d (игнорирована)" -#: job.c:194 -#, possible-c-format +#: job.c:259 +#, c-format msgid "*** [%s] Error %d" msgstr "*** [%s] Ошибка %d" -#: job.c:199 +#: job.c:264 msgid " (core dumped)" msgstr " (сделан дамп памяти)" -#: job.c:234 -#, possible-c-format -msgid "Got a SIGCHLD; %d unreaped children.\n" -msgstr "Получен сигнал SIGCHLD; потомков с необработанными результатами %d.\n" +#: job.c:316 +msgid "Warning: Empty redirection\n" +msgstr "Предупреждение: Пустое перенаправление\n" + +#: job.c:352 +msgid "Syntax error, still inside '\"'\n" +msgstr "Синтаксическая ошибка, все еще внутри '\"'\n" -#: job.c:265 +#: job.c:404 +#, c-format +msgid "Got a SIGCHLD; %u unreaped children.\n" +msgstr "Получен сигнал SIGCHLD; %u потомков с необработанными результатами.\n" + +#: job.c:453 msgid "*** Waiting for unfinished jobs...." msgstr "*** Ожидание завершения заданий..." -#: job.c:290 -#, possible-c-format -msgid "Live child 0x%08lx PID %d%s\n" -msgstr "Незавершенный потомок 0x%08lx PID %d%s\n" +#: job.c:482 +#, c-format +msgid "Live child 0x%08lx (%s) PID %ld %s\n" +msgstr "Незавершенный потомок 0x%08lx (%s) PID %ld %s\n" -#: job.c:292 job.c:427 job.c:514 job.c:919 +#: job.c:484 job.c:644 job.c:742 job.c:1295 msgid " (remote)" msgstr " (удаленный)" -#: job.c:414 -#, possible-c-format -msgid "Unknown%s job %d" -msgstr "Неизвестное%s задание %d" - -#: job.c:414 -msgid " remote" -msgstr " удаленное" +#: job.c:641 +#, c-format +msgid "Reaping losing child 0x%08lx PID %ld %s\n" +msgstr "Подбираю неудачно завершившегося потомка 0x%08lx PID %ld %s\n" -#: job.c:419 -#, possible-c-format -msgid "%s finished." -msgstr "%s завершено." +#: job.c:642 +#, c-format +msgid "Reaping winning child 0x%08lx PID %ld %s\n" +msgstr "Подбираю удачно завершившегося потомка 0x%08lx PID %ld %s\n" -#: job.c:424 -#, possible-c-format -msgid "Reaping %s child 0x%08lx PID %d%s\n" -msgstr "Обработка результатов %s работы потомка 0x%08lx PID %d%s\n" +#: job.c:647 +#, c-format +msgid "Cleaning up temp batch file %s\n" +msgstr "Подчищаю временный пакетный файл %s\n" -#: job.c:425 -msgid "losing" -msgstr "успешной" +#: job.c:740 +#, c-format +msgid "Removing child 0x%08lx PID %ld %s from chain.\n" +msgstr "Удаление потомка 0x%08lx PID %ld %s из цепочки активных потомков.\n" -#: job.c:425 -msgid "winning" -msgstr "неуспешной" - -#: job.c:512 -#, possible-c-format -msgid "Removing child 0x%08lx PID %d%s from chain.\n" -msgstr "Удаление потомка 0x%08lx PID %d%s из цепочки активных потомков.\n" +#: job.c:797 +msgid "write jobserver" +msgstr "" -#: job.c:917 -#, possible-c-format -msgid "Putting child 0x%08lx PID %05d%s on the chain.\n" -msgstr "Помещение потомка 0x%08lx PID %d%s в цепочку активных потомков.\n" +#: job.c:799 +#, c-format +msgid "Released token for child 0x%08lx (%s).\n" +msgstr "Освобождается токен для потомка 0x%08lx (%s).\n" + +#: job.c:1229 job.c:2218 +#, c-format +msgid "process_easy() failed failed to launch process (e=%d)\n" +msgstr "process_easy() не смогла запустить процесс (e=%d)\n" + +#: job.c:1233 job.c:2222 +#, c-format +msgid "\nCounted %d args in failed launch\n" +msgstr "\nПри неуспешном запуске сосчитано %d аргументов\n" + +#: job.c:1293 +#, c-format +msgid "Putting child 0x%08lx (%s) PID %ld%s on the chain.\n" +msgstr "Помещение потомка 0x%08lx (%s) PID %ld%s в цепочку активных потомков.\n" + +#: job.c:1490 +#, c-format +msgid "Obtained token for child 0x%08lx (%s).\n" +msgstr "Получен токен для потомка 0x%08lx (%s).\n" + +#: job.c:1496 +msgid "read jobs pipe" +msgstr "" -#: job.c:1140 +#: job.c:1566 msgid "cannot enforce load limits on this operating system" msgstr "эта операционная система не позволяет устанавливать пределы загрузки" -#: job.c:1142 +#: job.c:1568 msgid "cannot enforce load limit: " msgstr "невозможно установить пределы загрузки: " -#: job.c:1244 -#, possible-c-format -msgid "internal error: `%s' command_state %d in child_handler" -msgstr "внутренняя ошибка: `%s' command_state %d в child_handler" +#: job.c:1671 +#, c-format +msgid "internal error: `%s' command_state" +msgstr "внутренняя ошибка: `%s' command_state" + +#: job.c:1756 +msgid "-warning, CTRL-Y will leave sub-process(es) around.\n" +msgstr "-предупреждение, после CTRL-Y останутся суб-процессы.\n" + +#: job.c:1773 +msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n" +msgstr "" +"-предупреждение, возможно вам потребуется повторно разрешить\n" +"обработку CTRL-Y из DCL.\n" + +#: job.c:1886 +#, c-format +msgid "BUILTIN [%s][%s]\n" +msgstr "ВСТРОЕННЫЙ [%s][%s]\n" + +#: job.c:1897 +#, c-format +msgid "BUILTIN CD %s\n" +msgstr "ВСТРОЕННЫЙ CD %s\n" + +#: job.c:1915 +#, c-format +msgid "BUILTIN RM %s\n" +msgstr "ВСТРОЕННЫЙ RM %s\n" + +#: job.c:1936 +#, c-format +msgid "Unknown builtin command '%s'\n" +msgstr "Неизвестная встроенная команда '%s'\n" + +#: job.c:1958 +msgid "Error, empty command\n" +msgstr "Ошибка, пустая команда\n" + +#: job.c:1965 main.c:1270 +msgid "fopen (temporary file)" +msgstr "fopen (временный файл)" + +#: job.c:1970 +#, c-format +msgid "Redirected input from %s\n" +msgstr "Стандартный ввод перенаправлен из %s\n" + +#: job.c:1977 +#, c-format +msgid "Redirected error to %s\n" +msgstr "Поток ошибок перенаправлен в %s\n" -#: job.c:1350 -#, possible-c-format +#: job.c:1984 +#, c-format +msgid "Redirected output to %s\n" +msgstr "Стандартный вывод перенаправлен в %s\n" + +#: job.c:2047 +#, c-format msgid "Executing %s instead\n" msgstr "Вместо заданного выполняется %s\n" -#: job.c:1381 -#, possible-c-format +#: job.c:2144 +#, c-format msgid "Error spawning, %d\n" msgstr "Ошибка порождения процесса, %d\n" -#: job.c:1442 -#, possible-c-format +#: job.c:2247 +#, c-format +msgid "make reaped child pid %d, still waiting for pid %d\n" +msgstr "make нашла завершившегося потомка pid %d, все еще ожидает pid %d\n" + +#: job.c:2266 +#, c-format msgid "%s: Command not found" msgstr "%s: Команда не найдена" -#: job.c:1471 -#, possible-c-format +#: job.c:2295 +#, c-format msgid "%s: Shell program not found" msgstr "%s: Командный процессор не найден" -#: main.c:224 +#: job.c:2476 +#, c-format +msgid "$SHELL changed (was `%s', now `%s')" +msgstr "Переменная $SHELL изменилась (было '%s', теперь '%s')" + +#: job.c:2882 +#, c-format +msgid "Creating temporary batch file %s\n" +msgstr "Создается временный пакетный файл %s\n" + +#: job.c:2924 +#, c-format +msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n" +msgstr "%s (строка %d) Плохой контекст командного процессора (!unixy && !batch_mode_shell)\n" + +#: main.c:259 msgid "Ignored for compatibility" -msgstr "Игнорировано для совместимости" +msgstr "Игнорируется для совместимости" + +#: main.c:261 main.c:288 +msgid "DIRECTORY" +msgstr "КАТАЛОГ" -#: main.c:227 +#: main.c:262 msgid "Change to DIRECTORY before doing anything" msgstr "Перейти в КАТАЛОГ перед началом работы" -#: main.c:230 +#: main.c:265 msgid "Print lots of debugging information" -msgstr "Выводить отладочные сообщения" +msgstr "Выводить массу отладочных сообщений" + +#: main.c:268 +msgid "FLAGS" +msgstr "ФЛАГИ" -#: main.c:233 +#: main.c:269 +msgid "Print various types of debugging information" +msgstr "Выводить различные типы отладочной информации" + +#: main.c:273 +msgid "Suspend process to allow a debugger to attach" +msgstr "Приостановить процесс, чтобы позволить прицепиться отладчику" + +#: main.c:277 msgid "Environment variables override makefiles" -msgstr "Переменные среды перекрывают переменные, определенные в make-файле" +msgstr "" +"Переменные среды перекрывают переменные, \n" +"определенные в make-файле" -#: main.c:236 +#: main.c:279 main.c:320 main.c:354 +msgid "FILE" +msgstr "ФАЙЛ" + +#: main.c:280 msgid "Read FILE as a makefile" -msgstr "Считать ФАЙЛ как make-файл" +msgstr "Использовать ФАЙЛ в качестве make-файла" -#: main.c:239 +#: main.c:283 msgid "Print this message and exit" msgstr "Показать эту справку и выйти" -#: main.c:242 +#: main.c:286 msgid "Ignore errors from commands" msgstr "Игнорировать ошибки команд" -#: main.c:245 +#: main.c:289 msgid "Search DIRECTORY for included makefiles" msgstr "Искать включаемые make-файлы в КАТАЛОГЕ" -#: main.c:249 +#: main.c:294 msgid "Allow N jobs at once; infinite jobs with no arg" msgstr "" -"Запускать одновременно до Н заданий; если аргумент не задан,\n" -" число заданий неограничено" +"Запускать одновременно до N заданий; \n" +"если аргумент не задан, число заданий неограничено" -#: main.c:253 +#: main.c:301 msgid "Keep going when some targets can't be made" -msgstr "Продолжать работу, даже если некоторые цели не достигнуты" +msgstr "" +"Продолжать работу, даже если некоторые цели\n" +"не могут быть достигнуты" -#: main.c:258 main.c:263 +#: main.c:306 main.c:311 msgid "Don't start multiple jobs unless load is below N" -msgstr "Не запускать параллеьные задания пока загрузка не снизится до Н" +msgstr "" +"Не запускать параллельные задачи,\n" +"пока загрузка не снизится до N" -#: main.c:270 +#: main.c:318 msgid "Don't actually run any commands; just print them" msgstr "Не выполнять команды, просто напечатать их" -#: main.c:273 +#: main.c:321 msgid "Consider FILE to be very old and don't remake it" msgstr "Считать ФАЙЛ очень старым и не пересобирать его" -#: main.c:276 +#: main.c:324 msgid "Print make's internal database" msgstr "Напечатать внутреннюю базу данных make" -#: main.c:279 +#: main.c:327 msgid "Run no commands; exit status says if up to date" -msgstr "Не выполнять команды, возвращаемое значение показывает статус обновленности" +msgstr "" +"Не выполнять команды;\n" +"код завершения показывает, все ли уже сделано" -#: main.c:282 +#: main.c:330 msgid "Disable the built-in implicit rules" msgstr "Не использовать встроенные неявные правила" -#: main.c:285 +# Что такое "variable settings"? +#: main.c:333 +msgid "Disable the built-in variable settings" +msgstr "" + +#: main.c:336 msgid "Don't echo commands" -msgstr "Не печатать выполныемые команды" +msgstr "Не печатать выполняемые команды" -#: main.c:289 +#: main.c:340 msgid "Turns off -k" msgstr "Отменить ключ -k" -#: main.c:292 +#: main.c:343 msgid "Touch targets instead of remaking them" -msgstr "Установить время доступа целей, а не пересобирать их" +msgstr "" +"Установить время доступа целей в текущее,\n" +"а не пересобирать их" -#: main.c:295 +#: main.c:346 msgid "Print the version number of make and exit" msgstr "Показать информацию о версии и выйти" -#: main.c:298 +#: main.c:349 msgid "Print the current directory" msgstr "Напечатать текущий каталог" -#: main.c:301 +#: main.c:352 msgid "Turn off -w, even if it was turned on implicitly" msgstr "Отменить ключ -w, даже если он был явно указан" -#: main.c:304 +#: main.c:355 msgid "Consider FILE to be infinitely new" msgstr "Считать ФАЙЛ неограниченно новым" -#: main.c:307 +#: main.c:358 msgid "Warn when an undefined variable is referenced" -msgstr "Выдавать предупреждение при ссылке на неопределенную переменную" +msgstr "" +"Выдавать предупреждение при ссылке\n" +"на неопределенную переменную" -#: main.c:394 +#: main.c:456 msgid "empty string invalid as file name" msgstr "пустая строка недопустима в качестве имени файла" -#: main.c:781 -msgid "fopen (temporary file)" -msgstr "fopen (временный файл)" +#: main.c:536 +#, c-format +msgid "unknown debug level specification `%s'" +msgstr "неизвестный способ задания уровня отладки `%s'" + +#: main.c:576 +#, c-format +msgid "%s: Interrupt/Exception caught (code = 0x%x, addr = 0x%x)\n" +msgstr "%s: поймано прерывание или исключение (код = 0x%x, адрес = 0x%x)\n" + +#: main.c:583 +#, c-format +msgid "" +"\n" +"Unhandled exception filter called from program %s\n" +"ExceptionCode = %x\n" +"ExceptionFlags = %x\n" +"ExceptionAddress = %x\n" +msgstr "" + +#: main.c:591 +#, c-format +msgid "Access violation: write operation at address %x\n" +msgstr "Нарушение доступа: операция записи по адресу %x\n" + +#: main.c:592 +#, c-format +msgid "Access violation: read operation at address %x\n" +msgstr "Нарушение доступа: операция чтения адреса %x\n" + +#: main.c:657 +#, c-format +msgid "find_and_set_shell setting default_shell = %s\n" +msgstr "find_and_set_shell устанавливает default_shell = %s\n" + +#: main.c:700 +#, 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:1051 +#, c-format +msgid "%s is suspending for 30 seconds..." +msgstr "%s приостанавливается на 30 секунд..." + +#: main.c:1053 +msgid "done sleep(30). Continuing.\n" +msgstr "sleep(30) завершен. Продолжаем.\n" -#: main.c:787 +#: main.c:1260 +msgid "Makefile from standard input specified twice." +msgstr "Makefile из стандартного ввода указан дважды." + +#: main.c:1276 msgid "fwrite (temporary file)" msgstr "fwrite (временный файл)" -#: main.c:930 -msgid "Updating makefiles...." -msgstr "Обновление make-файлов..." +#: main.c:1378 +msgid "Do not specify -j or --jobs if sh.exe is not available." +msgstr "Не указывайте -j или --jobs, если нету sh.exe." + +#: main.c:1379 +msgid "Resetting make for single job mode." +msgstr "make будет выполняться в режиме одиночной задачи." + +#: main.c:1416 +msgid "Parallel jobs (-j) are not supported on this platform." +msgstr "Параллельные задачи (-j) не поддерживаются на этой платформе." + +#: main.c:1417 +msgid "Resetting to single job (-j1) mode." +msgstr "Возвращается режим одиночной задачи (-j1)." + +#: main.c:1431 +msgid "internal error: multiple --jobserver-fds options" +msgstr "внутренняя ошибка: несколько ключей --jobserver-fds" + +#: main.c:1439 +#, c-format +msgid "internal error: invalid --jobserver-fds string `%s'" +msgstr "внутренняя ошибка: неправильная строка --jobserver-fds: `%s'" + +#: main.c:1449 +msgid "warning: -jN forced in submake: disabling jobserver mode." +msgstr "предупреждение: в суб-Makefile принудительно задан -jN; режим сервера задач запрещен" + +#: main.c:1459 +msgid "dup jobserver" +msgstr "" + +#: main.c:1462 +msgid "warning: jobserver unavailable: using -j1. Add `+' to parent make rule." +msgstr "" +"предупреждение: сервер задач недоступен: используется -j1.\n" +"Добавьте `+' к правилу в родительском make." + +#: main.c:1485 +msgid "creating jobs pipe" +msgstr "" + +#: main.c:1495 +msgid "init jobserver pipe" +msgstr "" + +#: main.c:1580 +msgid "Updating makefiles....\n" +msgstr "Обновление make-файлов....\n" -#: main.c:955 -#, possible-c-format +#: main.c:1605 +#, c-format msgid "Makefile `%s' might loop; not remaking it.\n" msgstr "Make-файл `%s', возможно, зациклен, он не будет пересобираться.\n" -#: main.c:1029 -#, possible-c-format +#. The update failed and this makefile was not +#. from the MAKEFILES variable, so we care. +#: main.c:1679 +#, c-format msgid "Failed to remake makefile `%s'." msgstr "Попытка пересобрать make-файл `%s' неуспешна." -#: main.c:1044 -#, possible-c-format +#: main.c:1695 +#, c-format msgid "Included makefile `%s' was not found." msgstr "Включаемый make-файл `%s' не найден." -#: main.c:1049 -#, possible-c-format +#. A normal makefile. We must die later. +#: main.c:1700 +#, c-format msgid "Makefile `%s' was not found" msgstr "Make-файл `%s' не найден" -#: main.c:1108 +#: main.c:1768 msgid "Couldn't change back to original directory." msgstr "Невозможно перейти в первоначальный каталог." -#: main.c:1142 +#: main.c:1802 msgid "Re-executing:" msgstr "Повторное выполнение:" -#: main.c:1186 -msgid "Updating goal targets...." -msgstr "Обновление целей..." +#: main.c:1833 +msgid "unlink (temporary file): " +msgstr "unlink (временный файл)" -#: main.c:1211 +#: main.c:1855 msgid "No targets specified and no makefile found" msgstr "Не заданы цели и не найден make-файл" -#: main.c:1213 +#: main.c:1857 msgid "No targets" msgstr "Нет целей" -#: main.c:1439 -#, possible-c-format -msgid "the `-%c' option requires a positive integral argument" -msgstr "ключ `-%c' должен использоваться с целым положительным аргументом" +#. Update the goals. +#: main.c:1862 +msgid "Updating goal targets....\n" +msgstr "Обновление целей результата...\n" + +#: main.c:1888 +msgid "warning: Clock skew detected. Your build may be incomplete." +msgstr "предупреждение: Неправильный ход часов. Сборка может быть неполной." -#: main.c:1490 -#, possible-c-format +#: main.c:2043 +#, c-format msgid "Usage: %s [options] [target] ...\n" msgstr "Использование: %s [КЛЮЧ]... [ЦЕЛЬ]...\n" -#: main.c:1492 +#: main.c:2045 msgid "Options:\n" msgstr "Ключи:\n" -#: main.c:1967 -#, possible-c-format -msgid "%sGNU Make version %s" -msgstr "%sGNU Make версии %s" +#: main.c:2126 +msgid "\nReport bugs to .\n" +msgstr "\nСообщайте об ошибках по адресу .\n" -#: main.c:1971 -#, possible-c-format +#: main.c:2235 +#, c-format +msgid "the `-%c' option requires a positive integral argument" +msgstr "ключ `-%c' должен использоваться с целым положительным аргументом" + +#: main.c:2659 +#, fuzzy, c-format msgid "" ", by Richard Stallman and Roland McGrath.\n" -"%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95 Free Software Foundation, Inc.\n" +"%sBuilt for %s\n" +"%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99\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" -"%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95 Free Software Foundation, Inc.\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" +"%sКОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КАКОЙ-ЛИБО ЦЕЛИ.\n" +"\n" +"%sСообщайте об ошибках по адресу .\n" "\n" -#: main.c:1993 -#, possible-c-format +#: main.c:2685 +#, c-format msgid "\n# Make data base, printed on %s" msgstr "\n# База данных Make, напечатана %s" -#: main.c:2002 -#, possible-c-format +#: main.c:2694 +#, c-format msgid "\n# Finished Make data base on %s\n" msgstr "\n# Печать базы данных Make завершена %s\n" -#: main.c:2053 +#: main.c:2749 msgid "Entering" -msgstr "Вход в" +msgstr "" -#: main.c:2053 +#: main.c:2749 msgid "Leaving" -msgstr "Выход из" +msgstr "" -#: main.c:2072 +#: main.c:2768 +#, fuzzy msgid "an unknown directory" -msgstr "неизвестный каталог" +msgstr "Выход из неизвестного каталога" -#: main.c:2074 -#, possible-c-format +#: main.c:2770 +#, fuzzy, c-format msgid "directory `%s'\n" -msgstr "каталог `%s'\n" +msgstr "Выход из каталога `%s'\n" -#: misc.c:212 misc.c:260 +#: misc.c:307 msgid ". Stop.\n" msgstr ". Останов.\n" -#: misc.c:277 -msgid "Unknown error 12345678901234567890" -msgstr "Неизвестная ошибка 12345678901234567890" - -#: misc.c:282 -#, possible-c-format +#: misc.c:329 +#, c-format msgid "Unknown error %d" msgstr "Неизвестная ошибка %d" -#: misc.c:318 misc.c:330 read.c:2151 +#: misc.c:369 misc.c:384 misc.c:402 read.c:2708 msgid "virtual memory exhausted" msgstr "виртуальная память исчерпана" -#: misc.c:536 -#, possible-c-format -msgid "%s access: user %d (real %d), group %d (real %d)\n" +#. All the other debugging messages go to stdout, +#. but we write this one to stderr because it might be +#. run in a child fork whose stdout is piped. +#: misc.c:653 +#, c-format +msgid "%s access: user %lu (real %lu), group %lu (real %lu)\n" msgstr "" -"Права доступа к %s: пользователь %d (действительный %d),\n" -"группа %d (действительная %d)\n" +"Права доступа к %s: пользователь %lu (действительный %lu),\n" +"группа %lu (действительная %lu)\n" -#: misc.c:556 +#: misc.c:674 msgid "Initialized" msgstr "Инициализирован" -#: misc.c:635 -msgid "User" -msgstr "Пользователь" +#: read.c:153 +msgid "Reading makefiles...\n" +msgstr "Чтение make-файлов...\n" -#~ #: misc.c:683 -#~ msgid "Make" -#~ msgstr "" - -#: misc.c:717 -msgid "Child" -msgstr "Потомок" - -#: read.c:129 -msgid "Reading makefiles..." -msgstr "Чтение make-файлов..." - -#: read.c:298 -#, possible-c-format +#: read.c:337 +#, c-format msgid "Reading makefile `%s'" msgstr "Чтение make-файла `%s'" -#: read.c:300 +#: read.c:339 msgid " (no default goal)" msgstr " (нет цели по умолчанию)" -#: read.c:302 +#: read.c:341 msgid " (search path)" msgstr " (путь поиска)" -#: read.c:304 +#: read.c:343 msgid " (don't care)" msgstr " (игнорировать ошибки)" -#: read.c:306 +#: read.c:345 msgid " (no ~ expansion)" msgstr " (не раскрывать символ `~') " -#: read.c:466 +#: read.c:525 msgid "invalid syntax in conditional" msgstr "неверный синтаксис в условном выражении" -#: read.c:474 +#: read.c:534 msgid "extraneous `endef'" msgstr "излишний `endef'" -#: read.c:500 read.c:522 +#: read.c:546 read.c:573 variable.c:873 +msgid "empty variable name" +msgstr "пустое имя переменной" + +#: read.c:564 msgid "empty `override' directive" msgstr "пустая директива `override'" -#: read.c:584 -#, possible-c-format +#: read.c:587 +msgid "invalid `override' directive" +msgstr "неправильная директива `override'" + +#: read.c:671 +#, c-format msgid "no file name for `%sinclude'" msgstr "не задано имя файла для `%sinclude'" -#: read.c:670 +#. This line starts with a tab but was not caught above +#. because there was no preceding target, and the line +#. might have been usable as a variable definition. +#. But now it is definitely lossage. +#: read.c:738 msgid "commands commence before first target" msgstr "команды встречены до первого определения цели" -#: read.c:714 +#: read.c:787 msgid "missing rule before commands" msgstr "перед командами пропущено правило" -#: read.c:733 -msgid "missing separator" -msgstr "пропущен разделитель" +#. There's no need to be ivory-tower about this: check for +#. one of the most common bugs found in makefiles... +#: read.c:873 +#, c-format +msgid "missing separator%s" +msgstr "пропущен разделитель%s" -#: read.c:782 +#: read.c:875 +msgid " (did you mean TAB instead of 8 spaces?)" +msgstr "(не имели ли вы в виду TAB вместо восьми пробелов?)" + +#: read.c:1011 msgid "missing target pattern" msgstr "пропущен образец цели" -#: read.c:784 +#: read.c:1013 msgid "multiple target patterns" -msgstr "не один образец цели" +msgstr "несколько образцов цели" -#: read.c:789 +#: read.c:1017 msgid "target pattern contains no `%%'" msgstr "образец цели не содержит `%%'" -#: read.c:829 +#: read.c:1058 msgid "missing `endif'" msgstr "пропущена `endif'" -#: read.c:887 +#: read.c:1117 msgid "Extraneous text after `endef' directive" msgstr "Излишний текст после директивы `endef'" -#: read.c:917 +#. No `endef'!! +#: read.c:1147 msgid "missing `endef', unterminated `define'" msgstr "пропущена `endif', незавершенная `define'" -#: read.c:973 read.c:1120 -#, possible-c-format +#: read.c:1201 read.c:1357 +#, c-format msgid "Extraneous text after `%s' directive" msgstr "Излишний текст после директивы `%s'" -#: read.c:977 -#, possible-c-format +#: read.c:1204 +#, c-format msgid "extraneous `%s'" msgstr "излишняя `%s'" -#: read.c:982 +#: read.c:1209 msgid "only one `else' per conditional" msgstr "в условном выражении возможна только одна `else'" -#: read.c:1230 +#: read.c:1471 +msgid "Malformed per-target variable definition" +msgstr "Неправильный формат задания переменной для цели" + +#: read.c:1553 msgid "mixed implicit and static pattern rules" msgstr "смешаны неявные правила и правила со статическими образцами" -#: read.c:1233 +#: read.c:1556 msgid "mixed implicit and normal rules" msgstr "смешаны неявные и обычные правила" -#: read.c:1273 -#, possible-c-format +#: read.c:1597 +#, c-format msgid "target `%s' doesn't match the target pattern" msgstr "цель `%s' не соответствует образцу целей" -#: read.c:1305 read.c:1407 -#, possible-c-format +#: read.c:1619 +#, c-format +msgid "target `%s' leaves prerequisite pattern empty" +msgstr "цель `%s' оставляет пустой шаблон зависимости" + +#: read.c:1635 read.c:1735 +#, c-format msgid "target file `%s' has both : and :: entries" msgstr "целевой файл `%s' имеет вхождения и с `:', и с `::' " -#: read.c:1313 -#, possible-c-format +#: read.c:1641 +#, c-format msgid "target `%s' given more than once in the same rule." msgstr "цель `%s' указана несколько раз в одном правиле" -#: read.c:1322 -#, possible-c-format +#: read.c:1650 +#, c-format msgid "warning: overriding commands for target `%s'" -msgstr "предупреждение: перекрытие команд для цели `%s'" +msgstr "предупреждение: переопределение команд для цели `%s'" -#: read.c:1325 -#, possible-c-format +#: read.c:1653 +#, c-format msgid "warning: ignoring old commands for target `%s'" -msgstr "предупреждение: игнорирование старых команд для цели `%s'" - -#: read.c:1815 +msgstr "предупреждение: старые команды для цели `%s' игнорируются" + +#. This only happens when the first thing on the line is a '\0'. +#. It is a pretty hopeless case, but (wonder of wonders) Athena +#. 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. +#: read.c:2153 msgid "warning: NUL character seen; rest of line ignored" msgstr "предупреждение: встречен символ NUL; игнорируется до конца строки" -#: remake.c:212 -#, possible-c-format +#: remake.c:227 +#, c-format msgid "Nothing to be done for `%s'." msgstr "Цель `%s' не требует выполнения команд." -#: remake.c:213 -#, possible-c-format +#: remake.c:228 +#, c-format msgid "`%s' is up to date." msgstr "`%s' не требует обновления." -#: remake.c:310 -#, possible-c-format +#: remake.c:296 +#, c-format +msgid "Pruning file `%s'.\n" +msgstr "Обрезается файл `%s'.\n" + +#: remake.c:350 +#, c-format msgid "Considering target file `%s'.\n" msgstr "Обработка целевого файла `%s'.\n" -#: remake.c:316 -#, possible-c-format +#: remake.c:357 +#, c-format msgid "Recently tried and failed to update file `%s'.\n" msgstr "Предыдущая попытка обновить файл `%s' завершилась неуспешно.\n" -#: remake.c:320 -#, possible-c-format +#: remake.c:361 +#, c-format msgid "File `%s' was considered already.\n" msgstr "Файл `%s' уже был обработан.\n" -#: remake.c:330 -#, possible-c-format +#: remake.c:371 +#, c-format msgid "Still updating file `%s'.\n" msgstr "Файл `%s' обновляется в данный момент.\n" -#: remake.c:333 -#, possible-c-format +#: remake.c:374 +#, c-format msgid "Finished updating file `%s'.\n" msgstr "Обновление файла `%s' завершено.\n" -#: remake.c:354 -#, possible-c-format +#: remake.c:395 +#, c-format msgid "File `%s' does not exist.\n" msgstr "Файл `%s' не существует.\n" -#: remake.c:364 remake.c:728 -#, possible-c-format +#: remake.c:405 remake.c:825 +#, c-format msgid "Found an implicit rule for `%s'.\n" msgstr "Найдено неявное правило для `%s'.\n" -#: remake.c:366 remake.c:730 -#, possible-c-format +#: remake.c:407 remake.c:827 +#, c-format msgid "No implicit rule found for `%s'.\n" -msgstr "Не найдено неявных правил для `%s'.\n" +msgstr "Не найдено неявного правила для `%s'.\n" -#: remake.c:372 remake.c:736 -#, possible-c-format +#: remake.c:413 remake.c:833 +#, c-format msgid "Using default commands for `%s'.\n" msgstr "Использование команд по умолчанию для `%s'.\n" -#: remake.c:392 remake.c:760 -#, possible-c-format +#: remake.c:433 remake.c:857 +#, c-format msgid "Circular %s <- %s dependency dropped." msgstr "Циклическая зависимость %s <- %s пропущена." -#: remake.c:474 -#, possible-c-format -msgid "Finished dependencies of target file `%s'.\n" +#: remake.c:511 +#, c-format +msgid "Finished prerequisites of target file `%s'.\n" msgstr "Обновление целей, от которых зависит целевой файл `%s', завершено.\n" -#: remake.c:480 -#, possible-c-format -msgid "The dependencies of `%s' are being made.\n" -msgstr "Цели, от которых зависит `%s', были собраны.\n" +#: remake.c:517 +#, c-format +msgid "The prerequisites of `%s' are being made.\n" +msgstr "Цели, от которых зависит `%s', в настоящий момент собираются.\n" -#: remake.c:493 -#, possible-c-format +#: remake.c:530 +#, c-format msgid "Giving up on target file `%s'.\n" msgstr "Аварийный останов на целевом файле `%s'.\n" -#: remake.c:497 -#, possible-c-format +#: remake.c:535 +#, c-format msgid "Target `%s' not remade because of errors." msgstr "Цель `%s' не была пересобрана из-за ошибок." -#: remake.c:542 -#, possible-c-format -msgid "Dependency `%s' does not exist.\n" -msgstr "Зависимость `%s' не существует.\n" - -#: remake.c:544 -#, possible-c-format -msgid "Dependency `%s' is %s than dependent `%s'.\n" -msgstr "Цель `%s' обновлялаясь %s чем зависящая от нее `%s'.\n" +#: remake.c:583 +#, c-format +msgid "Prerequisite `%s' of target `%s' does not exist.\n" +msgstr "Зависимость `%s' цели `%s' не существует.\n" -#: remake.c:545 -msgid "newer" -msgstr "позже" +#: remake.c:588 +#, c-format +msgid "Prerequisite `%s' is newer than target `%s'.\n" +msgstr "Зависимость `%s' новее, чем цель `%s'.\n" -#: remake.c:545 -msgid "older" -msgstr "раньше" +#: remake.c:591 +#, c-format +msgid "Prerequisite `%s' is older than target `%s'.\n" +msgstr "Зависимость `%s' старее, чем цель `%s'.\n" -#: remake.c:556 -#, possible-c-format -msgid "Target `%s' is double-colon and has no dependencies.\n" +#: remake.c:609 +#, c-format +msgid "Target `%s' is double-colon and has no prerequisites.\n" msgstr "Цель `%s' объявлена с двумя двоеточиями и не имеет зависимостей.\n" -#: remake.c:561 -#, possible-c-format -msgid "No commands for `%s' and no dependencies actually changed.\n" +#: remake.c:615 +#, c-format +msgid "No commands for `%s' and no prerequisites actually changed.\n" msgstr "Команды для `%s' не заданы, и зависимости не были изменены.\n" -#: remake.c:566 -#, possible-c-format -msgid "No need to remake target `%s'.\n" -msgstr "Нет необходимости пересобирать цель `%s'.\n" +#: remake.c:623 +#, c-format +msgid "No need to remake target `%s'" +msgstr "Нет необходимости пересобирать цель `%s'." -#: remake.c:571 -#, possible-c-format +#: remake.c:625 +#, c-format +msgid "; using VPATH name `%s'" +msgstr "; используется VPATH-имя `%s'" + +#: remake.c:645 +#, c-format msgid "Must remake target `%s'.\n" msgstr "Необходимо пересобрать цель `%s'.\n" -#: remake.c:578 -#, possible-c-format +#: remake.c:651 +#, c-format +msgid " Ignoring VPATH name `%s'.\n" +msgstr " Игнорируется VPATH-имя `%s'.\n" + +#: remake.c:660 +#, c-format msgid "Commands of `%s' are being run.\n" msgstr "Команды для `%s' выполняются в настоящее время.\n" -#: remake.c:585 -#, possible-c-format +#: remake.c:667 +#, c-format msgid "Failed to remake target file `%s'.\n" -msgstr "Попытка пересборки целевого файла `%s' безуспешна.\n" +msgstr "Попытка пересоздания целевого файла `%s' безуспешна.\n" -#: remake.c:588 -#, possible-c-format +#: remake.c:670 +#, c-format msgid "Successfully remade target file `%s'.\n" -msgstr "Целевой файл `%s' успешно пересобран.\n" +msgstr "Целевой файл `%s' успешно пересоздан.\n" -#: remake.c:591 -#, possible-c-format +#: remake.c:673 +#, c-format msgid "Target file `%s' needs remade under -q.\n" -msgstr "Целевой файл `%s' требует пересборки с ключом -q.\n" +msgstr "Целевой файл `%s' требует пересоздания с ключом -q.\n" -#: remake.c:880 -#, possible-c-format +#: remake.c:974 +#, c-format msgid "%sNo rule to make target `%s'%s" msgstr "%sНет правила для сборки цели `%s'%s" -#: remake.c:882 -#, possible-c-format +#: remake.c:976 +#, c-format msgid "%sNo rule to make target `%s', needed by `%s'%s" msgstr "%sНет правила для сборки цели `%s', требуемой для `%s'%s" -#: remake.c:1053 -#, possible-c-format -msgid "*** File `%s' has modification time in the future" -msgstr "*** Файл `%s' был изменен в будущем" - -#: remote-cstms.c:94 -#, possible-c-format -msgid "Customs won't export: %s\n" -msgstr "" - -#: remote-cstms.c:129 -msgid "exporting: Couldn't create return socket." -msgstr "экспортирование: Невозможно создать возвращаемый сокет." - -#: remote-cstms.c:138 -msgid "exporting: " -msgstr "экспортирование: " - -#: remote-cstms.c:171 -#, possible-c-format -msgid "exporting: %s" -msgstr "экспортирование: %s" - -#: remote-cstms.c:185 -#, possible-c-format -msgid "Job exported to %s ID %u\n" -msgstr "Задание экспортировано на %s ID %u\n" +#: remake.c:1177 +#, c-format +msgid "*** Warning: File `%s' has modification time in the future (%s > %s)" +msgstr "*** Файл `%s' был изменен в будущем (%s > %s)" -#: rule.c:556 -msgid "\n# Implicit Rules" -msgstr "\n# Неявные правила" +#. Give a warning if there is no pattern, then remove the +#. pattern so it's ignored next time. +#: remake.c:1291 +#, c-format +msgid ".LIBPATTERNS element `%s' is not a pattern" +msgstr "Элемент .LIBPATTERNS `%s' не является образцом" -#: rule.c:571 +#: rule.c:671 msgid "\n# No implicit rules." msgstr "\n# Неявных правил нет." -#: rule.c:574 -#, possible-c-format +#: rule.c:674 +#, c-format msgid "\n# %u implicit rules, %u" msgstr "\n# Неявных правил: %u, терминальных: %u" -#: rule.c:583 +#: rule.c:683 msgid " terminal." msgstr "." -#: rule.c:587 -#, possible-c-format +#: rule.c:691 +#, c-format msgid "BUG: num_pattern_rules wrong! %u != %u" msgstr "ОШИБКА: неверное значение num_pattern_rules! %u != %u" -#: variable.c:658 variable.c:660 -msgid "empty variable name" -msgstr "пустое имя переменной" - -#: variable.c:742 -msgid "makefile" -msgstr "Make-файл" - -#: variable.c:745 -msgid "environment under -e" -msgstr "задан ключ -e" - -#: variable.c:751 -msgid "`override' directive" -msgstr "Директива `override'" - -#: variable.c:822 -msgid "# No variables." -msgstr "# Переменных нет." - -#: variable.c:825 -#, possible-c-format -msgid "# %u variables in %u hash buckets.\n" -msgstr "# %u переменных в %u ячейках хеш-таблицы.\n" - -#: variable.c:828 -#, possible-c-format -msgid "# average of %.1f variables per bucket, max %u in one bucket.\n" -msgstr "# в среднем %.1f переменных в ячейке, макс. %u в одной ячейке.\n" - -#: variable.c:835 -#, possible-c-format -msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n" -msgstr "# в среднем %d.%d переменных в ячейке, макс. %u в одной ячейке.\n" - -#: variable.c:850 -msgid "\n# Variables\n" -msgstr "\n# Переменные\n" - -#: vpath.c:455 -msgid "\n# VPATH Search Paths\n" -msgstr "\n# Пути поиска VPATH\n" - -#: vpath.c:472 -msgid "# No `vpath' search paths." -msgstr "# Не определен путь поиска `vpath'." - -#: vpath.c:474 -#, possible-c-format -msgid "\n# %u `vpath' search paths.\n" -msgstr "\n# %u `vpath' путь поиска.\n" +#: rule.c:695 +msgid "\n# Pattern-specific variable values" +msgstr "" -#: vpath.c:477 -msgid "\n# No general (`VPATH' variable) search path." -msgstr "\n# Не определен общий (переменная `VPATH') путь поиска." +#: rule.c:710 +msgid "\n# No pattern-specific variable values." +msgstr "" -#: vpath.c:483 -msgid "" -"\n" -"# General (`VPATH' variable) search path:\n" -"# " +#: rule.c:713 +#, c-format +msgid "\n# %u pattern-specific variable values" msgstr "" -"\n" -"# Общий (переменная `VPATH') путь поиска:\n" -"# " -#: getloadavg.c:948 -msgid "Error getting load average" -msgstr "Ошибка получения сведений о средней загрузке" - -#: getloadavg.c:952 -#, possible-c-format -msgid "1-minute: %f " -msgstr "1 минута: %f " - -#: getloadavg.c:954 -#, possible-c-format -msgid "5-minute: %f " -msgstr "5 минут: %f " - -#: getloadavg.c:956 -#, possible-c-format -msgid "15-minute: %f " -msgstr "15 минут: %f " - -#~ # Сообщения getopt исключены, т.к. они относятся к уже -#~ # устаревшей версии этой библиотеки, и исчезнут в следующей версии make -#~ # -#~ #: getopt.c:565 -#~ #, possible-c-format -#~ msgid "%s: option `%s' is ambiguous\n" -#~ msgstr "" - -#~ #: getopt.c:589 -#~ #, possible-c-format -#~ msgid "%s: option `--%s' doesn't allow an argument\n" -#~ msgstr "" - -#~ #: getopt.c:594 -#~ #, possible-c-format -#~ msgid "%s: option `%c%s' doesn't allow an argument\n" -#~ msgstr "" - -#~ #: getopt.c:611 -#~ #, possible-c-format -#~ msgid "%s: option `%s' requires an argument\n" -#~ msgstr "" - -#~ #: getopt.c:640 -#~ #, possible-c-format -#~ msgid "%s: unrecognized option `--%s'\n" -#~ msgstr "" - -#~ #: getopt.c:644 -#~ #, possible-c-format -#~ msgid "%s: unrecognized option `%c%s'\n" -#~ msgstr "" - -#~ #: getopt.c:670 -#~ #, possible-c-format -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "" - -#~ #: getopt.c:673 -#~ #, possible-c-format -#~ msgid "%s: invalid option -- %c\n" -#~ msgstr "" - -#~ #: getopt.c:709 -#~ #, possible-c-format -#~ msgid "%s: option requires an argument -- %c\n" -#~ msgstr "" - -#~ #: getopt.c:777 getopt1.c:141 -#~ msgid "digits occur in two different argv-elements.\n" -#~ msgstr "" - -#~ #: getopt.c:779 getopt1.c:143 -#~ #, possible-c-format -#~ msgid "option %c\n" -#~ msgstr "" - -#~ #: getopt.c:783 getopt1.c:147 -#~ msgid "option a\n" -#~ msgstr "" - -#~ #: getopt.c:787 getopt1.c:151 -#~ msgid "option b\n" -#~ msgstr "" - -#~ #: getopt.c:791 getopt1.c:155 -#~ #, possible-c-format -#~ msgid "option c with value `%s'\n" -#~ msgstr "" - -#~ #: getopt.c:798 getopt1.c:166 -#~ #, possible-c-format -#~ msgid "?? getopt returned character code 0%o ??\n" -#~ msgstr "" - -#~ #: getopt.c:804 getopt1.c:172 -#~ msgid "non-option ARGV-elements: " -#~ msgstr "" - -#~ #: getopt1.c:159 -#~ #, possible-c-format -#~ msgid "option d with value `%s'\n" -#~ msgstr "" - -#: signame.c:57 +#: signame.c:97 msgid "unknown signal" msgstr "неизвестный сигнал" -#: signame.c:107 +#: signame.c:108 msgid "Hangup" -msgstr "Обрав терминальной линии" +msgstr "Обрыв терминальной линии" -#: signame.c:110 +#: signame.c:111 msgid "Interrupt" -msgstr "Преравание" +msgstr "Прерывание" -#: signame.c:113 +#: signame.c:114 msgid "Quit" msgstr "Аварийное прерывание" -#: signame.c:116 +#: signame.c:117 msgid "Illegal Instruction" msgstr "Недопустимая инструкция" -#: signame.c:119 +#: signame.c:120 msgid "Trace/breakpoint trap" msgstr "Прерывание на контрольной точке" -#: signame.c:124 +#: signame.c:125 msgid "Aborted" msgstr "Прервано" -#: signame.c:127 +#: signame.c:128 msgid "IOT trap" msgstr "Ошибка IOT" -#: signame.c:130 +#: signame.c:131 msgid "EMT trap" -msgstr "Ошибка эмулирования" +msgstr "Ошибка эмуляции" -#: signame.c:133 +#: signame.c:134 msgid "Floating point exception" msgstr "Ошибка операции с плавающей точкой" -#: signame.c:136 +#: signame.c:137 msgid "Killed" msgstr "Уничтожение" -#: signame.c:139 +#: signame.c:140 msgid "Bus error" -msgstr "Неверное обрашение к памяти" +msgstr "Неверное обращение к памяти" -#: signame.c:142 +#: signame.c:143 msgid "Segmentation fault" -msgstr "Нарущение прав доступа к памяти" +msgstr "Нарушение прав доступа к памяти" -#: signame.c:145 +#: signame.c:146 msgid "Bad system call" msgstr "Неправильный системный вызов" -#: signame.c:148 +#: signame.c:149 msgid "Broken pipe" msgstr "Обрыв канала" -#: signame.c:151 +#: signame.c:152 msgid "Alarm clock" msgstr "Сигнал по таймеру" -#: signame.c:154 +#: signame.c:155 msgid "Terminated" msgstr "Завершение" -#: signame.c:157 +#: signame.c:158 msgid "User defined signal 1" msgstr "Определяемый пользователем сигнал 1" -#: signame.c:160 +#: signame.c:161 msgid "User defined signal 2" msgstr "Определяемый пользователем сигнал 2" -#: signame.c:165 signame.c:168 +#: signame.c:166 signame.c:169 msgid "Child exited" msgstr "Потомок завершил работу" -#: signame.c:171 +#: signame.c:172 msgid "Power failure" msgstr "Отказ питания" -#: signame.c:174 +#: signame.c:175 msgid "Stopped" msgstr "Останов" -#: signame.c:177 +#: signame.c:178 msgid "Stopped (tty input)" msgstr "Останов (ввод с терминала) " -#: signame.c:180 +#: signame.c:181 msgid "Stopped (tty output)" msgstr "Останов (вывод на терминал)" -#: signame.c:183 +#: signame.c:184 msgid "Stopped (signal)" msgstr "Останов (сигнал)" -#: signame.c:186 +#: signame.c:187 msgid "CPU time limit exceeded" msgstr "Превышен предел процессорного времени" -#: signame.c:189 +#: signame.c:190 msgid "File size limit exceeded" msgstr "Превышен предел размера файла" -#: signame.c:192 +#: signame.c:193 msgid "Virtual timer expired" msgstr "Виртуальное время истекло" -#: signame.c:195 +#: signame.c:196 msgid "Profiling timer expired" msgstr "Время профилирования истекло" -#: signame.c:201 +#. "Window size changed" might be more accurate, but even if that +#. is all that it means now, perhaps in the future it will be +#. extended to cover other kinds of window changes. +#: signame.c:202 msgid "Window changed" msgstr "Окно изменено" -#: signame.c:204 +#: signame.c:205 msgid "Continued" msgstr "Возобновление" -#: signame.c:207 +#: signame.c:208 msgid "Urgent I/O condition" -msgstr "Условия экстренного ввод/вывод" +msgstr "Условия экстренного ввода/вывода" -#: signame.c:214 signame.c:223 +#. "I/O pending" has also been suggested. A disadvantage is +#. that signal only happens when the process has +#. asked for it, not everytime I/O is pending. Another disadvantage +#. is the confusion from giving it a different name than under Unix. +#: signame.c:215 signame.c:224 msgid "I/O possible" msgstr "Возможен ввод/вывод" -#~ #: signame.c:217 -#~ msgid "SIGWIND" -#~ msgstr "" +#: signame.c:218 +msgid "SIGWIND" +msgstr "" -#~ #: signame.c:220 -#~ msgid "SIGPHONE" -#~ msgstr "" +#: signame.c:221 +msgid "SIGPHONE" +msgstr "" -#: signame.c:226 +#: signame.c:227 msgid "Resource lost" msgstr "Ресурс потерян" -#: signame.c:229 +#: signame.c:230 msgid "Danger signal" msgstr "Сигнал опасности" -#: signame.c:232 +#: signame.c:233 msgid "Information request" msgstr "Запрос информации" -#: signame.c:286 -#, possible-c-format -msgid "%s: unknown signal" -msgstr "%s: неизвестный сигнал" +#: signame.c:236 +msgid "Floating point co-processor not available" +msgstr "Сопроцессор с плавающей точкой недоступен" + +#: variable.c:1079 +msgid "default" +msgstr "по умолчанию" + +#: variable.c:1082 +msgid "environment" +msgstr "определена в среде" + +#: variable.c:1085 +msgid "makefile" +msgstr "Make-файл" + +#: variable.c:1088 +msgid "environment under -e" +msgstr "задан ключ -e" + +#: variable.c:1091 +msgid "command line" +msgstr "определена в командной строке" + +#: variable.c:1094 +msgid "`override' directive" +msgstr "Директива `override'" + +#: variable.c:1097 +msgid "automatic" +msgstr "автоматическая" + +#: variable.c:1167 +msgid "# No variables." +msgstr "# Переменных нет." + +#: variable.c:1170 +#, c-format +msgid "# %u variables in %u hash buckets.\n" +msgstr "# %u переменных в %u ячейках хеш-таблицы.\n" + +#: variable.c:1173 +#, c-format +msgid "# average of %.1f variables per bucket, max %u in one bucket.\n" +msgstr "# в среднем %.1f переменных в ячейке, макс. %u в одной ячейке.\n" + +#: variable.c:1180 +#, c-format +msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n" +msgstr "# в среднем %d.%d переменных в ячейке, макс. %u в одной ячейке.\n" + +#: variable.c:1195 +msgid "\n# Variables\n" +msgstr "\n# Переменные\n" + +#: vpath.c:552 +msgid "\n# VPATH Search Paths\n" +msgstr "\n# Пути поиска VPATH\n" + +#: vpath.c:569 +msgid "# No `vpath' search paths." +msgstr "# Не определен путь поиска `vpath'." + +#: vpath.c:571 +#, c-format +msgid "\n# %u `vpath' search paths.\n" +msgstr "\n# %u путей поиска по `vpath'\n" + +#: vpath.c:574 +msgid "\n# No general (`VPATH' variable) search path." +msgstr "\n# Не определен общий (переменная `VPATH') путь поиска." + +#: vpath.c:580 +msgid "" +"\n" +"# General (`VPATH' variable) search path:\n" +"# " +msgstr "" +"\n" +"# Общий (переменная `VPATH') путь поиска:\n" +"# " + +#: remote-cstms.c:127 +#, c-format +msgid "Customs won't export: %s\n" +msgstr "" + +#: vmsfunctions.c:80 +#, c-format +msgid "sys$search failed with %d\n" +msgstr "sys$search вернула код ошибки %d\n" + +#~ msgid "%s: Timestamp out of range; substituting %s" +#~ msgstr "%s: Временной штамп выходит за пределы диапазона; подставляем %s" + +#~ msgid "Current time" +#~ msgstr "Текущее время" + +#~ msgid "# File is very old." +#~ msgstr "# Файл очень старый." + +#~ msgid "first argument to `word' function must be greater than 0" +#~ msgstr "первый аргумент функции `word' должен быть больше нуля" -#: signame.c:299 -msgid "Signal 12345678901234567890" -msgstr "Сигнал 12345678901234567890" +#~ msgid "Entering an unknown directory" +#~ msgstr "Вход в неизвестный каталог" -#: signame.c:304 -#, possible-c-format -msgid "Signal %d" -msgstr "Сигнал %d" +#~ msgid "Entering directory `%s'\n" +#~ msgstr "Вход в каталог `%s'\n" diff --git a/job.c b/job.c index 0334290..83ffc33 100644 --- a/job.c +++ b/job.c @@ -436,8 +436,8 @@ reap_children (block, err) we'll keep reaping children. */ - while ((children != 0 || shell_function_pid != 0) && - (block || REAP_MORE)) + while ((children != 0 || shell_function_pid != 0) + && (block || REAP_MORE)) { int remote = 0; register int pid; @@ -500,9 +500,6 @@ reap_children (block, err) { /* A remote status command failed miserably. Punt. */ remote_status_lose: - if (EINTR_SET) - continue; - pfatal_with_name ("remote_status"); } else @@ -511,7 +508,6 @@ reap_children (block, err) #if !defined(__MSDOS__) && !defined(_AMIGA) && !defined(WINDOWS32) if (any_local) { - local_wait: #ifdef VMS vmsWaitForChildren (&status); pid = c->pid; @@ -529,10 +525,6 @@ reap_children (block, err) if (pid < 0) { - /* EINTR? Try again. */ - if (EINTR_SET) - goto local_wait; - /* The wait*() failed miserably. Punt. */ pfatal_with_name ("wait"); } @@ -737,7 +729,7 @@ reap_children (block, err) update_status to its also_make files. */ notice_finished_file (c->file); - DB (DB_JOBS, (_("Removing child 0x%08lx PID %ld %s from chain.\n"), + DB (DB_JOBS, (_("Removing child 0x%08lx PID %ld%s from chain.\n"), (unsigned long int) c, (long) c->pid, c->remote ? _(" (remote)") : "")); @@ -792,9 +784,8 @@ free_child (child) /* Write a job token back to the pipe. */ - while (write (job_fds[1], &token, 1) != 1) - if (!EINTR_SET) - pfatal_with_name (_("write jobserver")); + if (write (job_fds[1], &token, 1) != 1) + pfatal_with_name (_("write jobserver")); DB (DB_JOBS, (_("Released token for child 0x%08lx (%s).\n"), (unsigned long int) child, child->file->name)); @@ -848,6 +839,26 @@ unblock_sigs () } #endif +#ifdef MAKE_JOBSERVER +/* Set the child handler action flags to FLAGS. */ +static void +set_child_handler_action_flags (flags) + int flags; +{ + struct sigaction sa; + bzero ((char *) &sa, sizeof sa); + sa.sa_handler = child_handler; + sa.sa_flags = flags; +#if defined SIGCHLD + sigaction (SIGCHLD, &sa, NULL); +#endif +#if defined SIGCLD && SIGCLD != SIGCHLD + sigaction (SIGCLD, &sa, NULL); +#endif +} +#endif + + /* Start a job to run the commands specified in CHILD. CHILD is updated to reflect the commands and ID of the child process. @@ -1489,34 +1500,73 @@ new_job (file) while (1) { char token; + int got_token; + int saved_errno; + + DB (DB_JOBS, ("Need a job token; we %shave children\n", + children ? "" : "don't ")); /* If we don't already have a job started, use our "free" token. */ if (!children) break; /* Read a token. As long as there's no token available we'll block. - If we get a SIGCHLD we'll return with EINTR. If one happened - before we got here we'll return immediately with EBADF because - the signal handler closes the dup'd file descriptor. */ + We enable interruptible system calls before the read(2) so that if + we get a SIGCHLD while we're waiting, we'll return with EINTR and + we can process the death(s) and return tokens to the free pool. + + Once we return from the read, we immediately reinstate restartable + system calls. This allows us to not worry about checking for + EINTR on all the other system calls in the program. + + There is one other twist: there is a span between the time + reap_children() does its last check for dead children and the time + the read(2) call is entered, below, where if a child dies we won't + notice. This is extremely serious as it could cause us to + deadlock, given the right set of events. + + To avoid this, we do the following: before we reap_children(), we + dup(2) the read FD on the jobserver pipe. The read(2) call below + uses that new FD. In the signal handler, we close that FD. That + way, if a child dies during the section mentioned above, the + read(2) will be invoked with an invalid FD and will return + immediately with EBADF. */ + + /* Make sure we have a dup'd FD. */ + if (job_rfd < 0) + { + DB (DB_JOBS, ("Duplicate the job FD\n")); + job_rfd = dup (job_fds[0]); + } - if (read (job_rfd, &token, 1) == 1) + /* Reap anything that's currently waiting. */ + reap_children (0, 0); + + /* If our "free" token has become available, use it. */ + if (!children) + break; + + /* Set interruptible system calls, and read() for a job token. */ + set_child_handler_action_flags (0); + got_token = read (job_rfd, &token, 1); + saved_errno = errno; + set_child_handler_action_flags (SA_RESTART); + + /* If we got one, we're done here. */ + if (got_token == 1) { DB (DB_JOBS, (_("Obtained token for child 0x%08lx (%s).\n"), (unsigned long int) c, c->file->name)); break; } + /* If the error _wasn't_ expected (EINTR or EBADF), punt. Otherwise, + go back and reap_children(), and try again. */ + errno = saved_errno; if (errno != EINTR && errno != EBADF) pfatal_with_name (_("read jobs pipe")); - - /* Re-dup the read side of the pipe, so the signal handler can - notify us if we miss a child. */ - if (job_rfd < 0) - job_rfd = dup (job_fds[0]); - - /* Something's done. We don't want to block for a whole child, - just reap whatever's there. */ - reap_children (0, 0); + if (errno == EBADF) + DB (DB_JOBS, ("Read returned EBADF.\n")); } #endif diff --git a/main.c b/main.c index 66369a4..6a7e09d 100644 --- a/main.c +++ b/main.c @@ -448,6 +448,27 @@ int fatal_signal_mask; #endif #endif +#if !defined HAVE_BSD_SIGNAL && !defined bsd_signal +# if !defined HAVE_SIGACTION +# define bsd_signal signal +# else +static RETSIGTYPE +(*bsd_signal) PARAMS ((int)) (sig, func) + int sig; + RETSIGTYPE (*func) PARAMS ((int)); +{ + struct sigaction act, oact; + act.sa_handler = func; + act.sa_flags = SA_RESTART; + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, sig); + if (sigaction (sig, &act, &oact) != 0) + return SIG_ERR; + return oact.sa_handler; +} +# endif +#endif + static struct file * enter_command_line_file (name) char *name; @@ -839,8 +860,8 @@ int main (int argc, char ** argv) #endif #define FATAL_SIG(sig) \ - if (signal ((sig), fatal_error_signal) == SIG_IGN) \ - (void) signal ((sig), SIG_IGN); \ + if (bsd_signal (sig, fatal_error_signal) == SIG_IGN) \ + bsd_signal (sig, SIG_IGN); \ else \ ADD_SIG (sig); @@ -879,10 +900,10 @@ int main (int argc, char ** argv) #ifdef HAVE_WAIT_NOHANG # if defined SIGCHLD - (void) signal (SIGCHLD, SIG_DFL); + (void) bsd_signal (SIGCHLD, SIG_DFL); # endif # if defined SIGCLD && SIGCLD != SIGCHLD - (void) signal (SIGCLD, SIG_DFL); + (void) bsd_signal (SIGCLD, SIG_DFL); # endif #endif @@ -1345,34 +1366,18 @@ int main (int argc, char ** argv) If none of these are true, we don't need a signal handler at all. */ { extern RETSIGTYPE child_handler PARAMS ((int sig)); - -# if defined HAVE_SIGACTION - struct sigaction sa; - - bzero ((char *)&sa, sizeof (struct sigaction)); - sa.sa_handler = child_handler; -# if defined SA_INTERRUPT - /* This is supposed to be the default, but what the heck... */ - sa.sa_flags = SA_INTERRUPT; -# endif -# define HANDLESIG(s) sigaction (s, &sa, NULL) -# else -# define HANDLESIG(s) signal (s, child_handler) -# endif - - /* OK, now actually install the handlers. */ # if defined SIGCHLD - (void) HANDLESIG (SIGCHLD); + bsd_signal (SIGCHLD, child_handler); # endif # if defined SIGCLD && SIGCLD != SIGCHLD - (void) HANDLESIG (SIGCLD); + bsd_signal (SIGCLD, child_handler); # endif } #endif /* Let the user send us SIGUSR1 to toggle the -d flag during the run. */ #ifdef SIGUSR1 - (void) signal (SIGUSR1, debug_signal_handler); + bsd_signal (SIGUSR1, debug_signal_handler); #endif /* Define the initial list of suffixes for old-style rules. */ @@ -1527,9 +1532,8 @@ int main (int argc, char ** argv) want job_slots to be 0 to indicate we're using the jobserver. */ while (--job_slots) - while (write (job_fds[1], &c, 1) != 1) - if (!EINTR_SET) - pfatal_with_name (_("init jobserver pipe")); + if (write (job_fds[1], &c, 1) != 1) + pfatal_with_name (_("init jobserver pipe")); /* Fill in the jobserver_fds struct for our children. */ diff --git a/make.h b/make.h index bc4c1d4..6ce11d1 100644 --- a/make.h +++ b/make.h @@ -111,14 +111,6 @@ Boston, MA 02111-1307, USA. */ extern int errno; #endif -/* A shortcut for EINTR checking. Note you should be careful when negating - this! That might not mean what you want if EINTR is not available. */ -#ifdef EINTR -# define EINTR_SET (errno == EINTR) -#else -# define EINTR_SET (0) -#endif - #ifndef isblank # define isblank(c) ((c) == ' ' || (c) == '\t') #endif @@ -149,6 +141,10 @@ extern int errno; # define sigmask(sig) (1 << ((sig) - 1)) #endif +#ifndef HAVE_SA_RESTART +# define SA_RESTART 0 +#endif + #ifdef HAVE_LIMITS_H # include #endif diff --git a/make.texinfo b/make.texinfo index 98a6985..1a4b029 100644 --- a/make.texinfo +++ b/make.texinfo @@ -2223,7 +2223,7 @@ SUBDIRS = foo bar baz subdirs: $(SUBDIRS) $(SUBDIRS): - $(MAKE) -C $@ + $(MAKE) -C $@@ foo: baz @end group diff --git a/read.c b/read.c index ecb5cb4..6b66a81 100644 --- a/read.c +++ b/read.c @@ -1490,8 +1490,11 @@ record_target_var (filenames, defn, two_colon, origin, flocp) current_variable_set_list = global; gv = lookup_variable (v->name, len); if (gv && (gv->origin == o_env_override || gv->origin == o_command)) - define_variable_in_set (v->name, len, gv->value, gv->origin, - gv->recursive, vlist->set, flocp); + { + v = define_variable_in_set (v->name, len, gv->value, gv->origin, + gv->recursive, vlist->set, flocp); + v->append = 0; + } } /* Free name if not needed further. */ diff --git a/remake.c b/remake.c index 06e8d31..029cd91 100644 --- a/remake.c +++ b/remake.c @@ -933,13 +933,8 @@ touch_file (file) { struct stat statbuf; char buf; - int status; - do - status = fstat (fd, &statbuf); - while (status < 0 && EINTR_SET); - - if (status < 0) + if (fstat (fd, &statbuf) < 0) TOUCH_ERROR ("touch: fstat: "); /* Rewrite character 0 same as it already is. */ if (read (fd, &buf, 1) < 0) @@ -1239,13 +1234,12 @@ name_mtime (name) { struct stat st; - while (stat (name, &st) != 0) - if (!EINTR_SET) - { - if (errno != ENOENT && errno != ENOTDIR) - perror_with_name ("stat:", name); - return NONEXISTENT_MTIME; - } + if (stat (name, &st) != 0) + { + if (errno != ENOENT && errno != ENOTDIR) + perror_with_name ("stat:", name); + return NONEXISTENT_MTIME; + } return FILE_TIMESTAMP_STAT_MODTIME (name, st); } diff --git a/variable.c b/variable.c index f28e83c..aec6eda 100644 --- a/variable.c +++ b/variable.c @@ -207,6 +207,7 @@ lookup_variable (name, length) sptr++; } + *nptr = '\0'; return define_variable (vname, length, nvalue, o_env, 1); } -- cgit v1.2.3