summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2000-03-27 06:54:37 +0000
committerPaul Smith <psmith@gnu.org>2000-03-27 06:54:37 +0000
commitc637af71d9398a269c467a132109e0ef853806d4 (patch)
tree5981c27036a67881d36b24f86f041178c601db6d
parenta81013175c2b335c295378b0c826bdbede9fd0c4 (diff)
downloadgunmake-c637af71d9398a269c467a132109e0ef853806d4.tar.gz
* A large number of fixes/enhancements. See the ChangeLog.
* Added a new version of the German translation file.
-rw-r--r--ChangeLog65
-rw-r--r--README.template42
-rw-r--r--configure.in3
-rw-r--r--expand.c23
-rw-r--r--function.c50
-rw-r--r--i18n/de.po2593
-rw-r--r--job.c21
-rw-r--r--main.c75
-rw-r--r--make.h1
-rw-r--r--remake.c26
-rw-r--r--tests/ChangeLog20
-rw-r--r--tests/scripts/features/double_colon9
-rw-r--r--tests/scripts/features/reinvoke3
-rw-r--r--tests/scripts/functions/call18
-rw-r--r--tests/scripts/options/dash-k107
-rw-r--r--variable.c38
-rw-r--r--variable.h12
17 files changed, 1672 insertions, 1434 deletions
diff --git a/ChangeLog b/ChangeLog
index 1a9afd9..f4e1592 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2000-03-27 Paul D. Smith <psmith@gnu.org>
+
+ * remake.c (start_updating, finish_updating, is_updating): Fix
+ PR/1671; circular dependencies in double-colon rules are not
+ diagnosed. These macros set the updating flag in the root
+ double-colon file instead of the current one, if it's part of a
+ double-colon list. This solution provided by Tim Magill
+ <magill@gate.net>; I just changed the macro names :).
+ (update_file_1): Call them.
+ (check_dep): Call them.
+
+ The change to not automatically evaluate the $(call ...)
+ function's arguments breaks recursive use of call. Although using
+ $(if ...) and $(foreach ...) in $(call ...) macros is important,
+ the error conditions generated are simply to obscure for me to
+ feel comfortable with. If a method is devised to get both
+ working, we'll revisit. For now, remove this change.
+
+ * function.c (function_table): Turn on the expand bit for func_call.
+ (func_call): Don't expand arguments for builtin functions; that
+ will have already been done.
+
2000-03-26 Paul D. Smith <psmith@gnu.org>
* file.c (remove_intermediates): Never remove targets explicitly
@@ -23,6 +45,48 @@
* make.h: Ditto.
Reported by Marco Franzen <Marco.Franzen@Thyron.com>.
+2000-03-08 Tim Magill <magill@gate.net>
+
+ * remake.c (update_file): Return the exit status of the pruned
+ file when pruning, not just 0. Fixes PR/1634.
+
+2000-02-24 Paul D. Smith <psmith@gnu.org>
+
+ * configure.in: Close a minor potential security hole; if you're
+ reading makefiles from stdin (who does that?) you could run into a
+ race condition with the temp file using mktemp() or tmpnam(). Add
+ a check for mkstemp() and fdopen().
+ * main.c (open_tmpfile): New function to open a temporary file.
+ If we have mkstemp() (and fdopen()), use that. If not use
+ mktemp() or tmpnam(). If we have fdopen(), use open() to open the
+ file O_CREAT|O_EXCL. If not, fall back to normal fopen() (insecure).
+ (main): Call it.
+ * job.c (child_execute_job) [VMS]: Call it.
+
+ * variable.c (lookup_variable): If we find a variable which is
+ being expanded, then note it but keep looking through the rest of
+ the set list to see if we can find one that isn't. If we do,
+ return that. If we don't, return the original. Fix for PR/1610.
+
+ While implementing this I realized that it also solves PR/1380 in
+ a much more elegant way. I don't know what I was smoking before.
+ So, remove the hackage surrounding the original fix for that (see
+ below). Change this function back to lookup_variable and remove
+ the extra setlist argument.
+ * variable.h (recursively_expand_setlist): Remove the macro,
+ rename the prototype, and remove the extra setlist argument.
+ (lookup_variable): Ditto.
+ * expand.c (recursively_expand): Rename and remove the extra
+ setlist argument.
+ (reference_variable): Use lookup_variable() again.
+ (allocated_variable_append): Remove the extra setlist argument.
+
+2000-02-21 Paul D. Smith <psmith@gnu.org>
+
+ * README.template: A few updates.
+
+ * i18n/de.po: New version from the German translation team.
+
2000-02-09 Paul D. Smith <psmith@gnu.org>
* Version 3.78.91 released.
@@ -42,6 +106,7 @@
implementing expansion of these references separately from the
"normal" expansion, say, instead of using the same codepath.
Actually, it's already "worse enough" :-/.
+ Fix for PR/1380.
* variable.h (recursively_expand_setlist): Rename
recursively_expand to add a struct variable_set_list argument, and
diff --git a/README.template b/README.template
index 55001a4..f131fd6 100644
--- a/README.template
+++ b/README.template
@@ -19,6 +19,13 @@ Some systems' Make programs are broken and cannot process the Makefile for
GNU Make. If you get errors from your system's Make when building GNU
Make, try using `build.sh' instead.
+
+GNU Make is free software. See the file COPYING for copying conditions.
+
+
+Documentation
+-------------
+
GNU make is fully documented in the GNU Make manual, which is contained
in this distribution as the file make.texinfo. You can also find
on-line and preformatted (PostScript and DVI) versions at the FSF's web
@@ -30,6 +37,10 @@ site. There is information there about ordering hardcopy documentation.
You can also find the latest versions of GNU Make from there.
+
+Bug Reporting
+-------------
+
You can send GNU make bug reports to <bug-make@gnu.org>. Please see the
section of the GNU make manual entitled `Problems and Bugs' for
information on submitting useful and complete bug reports.
@@ -49,17 +60,36 @@ If you need help using GNU make, try these forums:
news:gnu.utils.help
news:gnu.utils.bug
-Also:
+
+CVS Access
+----------
+
+The GNU make source repository is available via anonymous CVS from the
+GNU Subversions CVS server; look here for details:
+
+ http://www.gnu.org/software/devel.html
+
+Please note: you won't be able to build GNU make from CVS without
+installing appropriate maintainer's tools, such as automake, autoconf,
+GNU make, and GCC. There are no instructions on this included with the
+tree, so you must be familiar with the installation and use of these
+tools. We make no guarantees about the contents or quality of the
+latest code in the CVS repository: it is not unheard of for code that is
+known to be broken to be checked in. Use at your own risk.
+
+
+Ports
+-----
- See README.customs for details on integrating GNU make with the
Customs distributed build environment from the Pmake distribution.
- See readme.vms for details about GNU Make on OpenVMS.
- - See README.W32 for details about GNU Make on Windows NT, 95, or 98.
-
- See README.Amiga for details about GNU Make on AmigaDOS.
+ - See README.W32 for details about GNU Make on Windows NT, 95, or 98.
+
- See README.DOS for compilation instructions on MS-DOS and MS-Windows
using DJGPP tools.
@@ -67,8 +97,10 @@ Also:
of DJGPP; see the WWW page http://www.delorie.com/djgpp/ for more
information.
-
-GNU Make is free software. See the file COPYING for copying conditions.
+Please note there are two _separate_ ports of GNU make for Microsoft
+systems: a native Windows tool built with (for example) MSVC or Cygwin,
+and a DOS-based tool built with DJGPP. Please be sure you are looking
+at the right README!
System-specific Notes
diff --git a/configure.in b/configure.in
index 83fbb52..ebe276a 100644
--- a/configure.in
+++ b/configure.in
@@ -60,7 +60,7 @@ AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
# clock_gettime is in -lposix4 in Solaris 2.6.
AC_CHECK_LIB(posix4, clock_gettime)
-AC_CHECK_FUNCS(memmove strchr memcpy strdup psignal mktemp pstat_getdynamic \
+AC_CHECK_FUNCS(memmove strchr memcpy strdup psignal mkstemp mktemp fdopen \
clock_gettime dup2 getcwd sigsetmask sigaction getgroups \
setlinebuf seteuid setegid setreuid setregid pipe \
strerror strsignal)
@@ -74,6 +74,7 @@ AC_FUNC_SETVBUF_REVERSED
AC_FUNC_SELECT
AC_CHECK_LIB(kstat, kstat_open) dnl _Must_ come before AC_FUNC_GETLOADAVG.
+AC_CHECK_FUNCS(pstat_getdynamic) dnl Supposedly in AC_FUNC_GETLOADAVG, but...?
AC_FUNC_GETLOADAVG
# Check out the wait reality.
diff --git a/expand.c b/expand.c
index 070b893..c7f7b58 100644
--- a/expand.c
+++ b/expand.c
@@ -91,13 +91,11 @@ initialize_variable_output ()
/* Recursively expand V. The returned string is malloc'd. */
-static char *allocated_variable_append PARAMS ((struct variable *v,
- struct variable_set_list *l));
+static char *allocated_variable_append PARAMS ((struct variable *v));
char *
-recursively_expand_setlist (v, list)
+recursively_expand (v)
register struct variable *v;
- struct variable_set_list *list;
{
char *value;
@@ -109,7 +107,7 @@ recursively_expand_setlist (v, list)
v->expanding = 1;
if (v->append)
- value = allocated_variable_append (v, list);
+ value = allocated_variable_append (v);
else
value = allocated_variable_expand (v->value);
v->expanding = 0;
@@ -144,10 +142,9 @@ reference_variable (o, name, length)
unsigned int length;
{
register struct variable *v;
- struct variable_set_list *setlist;
char *value;
- v = lookup_variable_setlist (name, length, &setlist);
+ v = lookup_variable (name, length);
if (v == 0)
warn_undefined (name, length);
@@ -155,7 +152,7 @@ reference_variable (o, name, length)
if (v == 0 || *v->value == '\0')
return o;
- value = (v->recursive ? recursively_expand_setlist (v, setlist) : v->value);
+ value = (v->recursive ? recursively_expand (v) : v->value);
o = variable_buffer_output (o, value, strlen (value));
@@ -472,9 +469,8 @@ variable_expand_for_file (line, file)
context of the next variable set, then we append the expanded value. */
static char *
-allocated_variable_append (v, list)
+allocated_variable_append (v)
struct variable *v;
- struct variable_set_list *list;
{
struct variable_set_list *save;
int len = strlen (v->name);
@@ -486,12 +482,9 @@ allocated_variable_append (v, list)
variable_buffer = 0;
- if (!list)
- list = current_variable_set_list;
-
- assert(list->next != 0);
+ assert(current_variable_set_list->next != 0);
save = current_variable_set_list;
- current_variable_set_list = list->next;
+ current_variable_set_list = current_variable_set_list->next;
var[0] = '$';
var[1] = '(';
diff --git a/function.c b/function.c
index c993c74..60a02ed 100644
--- a/function.c
+++ b/function.c
@@ -1536,7 +1536,10 @@ func_shell (char *o, char **argv, const char *funcname)
if (command_argv == 0)
return o;
-
+ /* Note the mktemp() is a security hole, but this only runs on Amiga.
+ Ideally we would use main.c:open_tmpfile(), but this uses a special
+ Open(), not fopen(), and I'm not familiar enough with the code to mess
+ with it. */
strcpy (tmp_output, "t:MakeshXXXXXXXX");
mktemp (tmp_output);
child_stdout = Open (tmp_output, MODE_NEWFILE);
@@ -1662,7 +1665,7 @@ static struct function_table_entry function_table[] =
{ STRING_SIZE_TUPLE("words"), 1, 1, 1, func_words},
{ STRING_SIZE_TUPLE("origin"), 1, 1, 1, func_origin},
{ STRING_SIZE_TUPLE("foreach"), 3, 3, 0, func_foreach},
- { STRING_SIZE_TUPLE("call"), 1, 0, 0, func_call},
+ { STRING_SIZE_TUPLE("call"), 1, 0, 1, func_call},
{ STRING_SIZE_TUPLE("error"), 1, 1, 1, func_error},
{ STRING_SIZE_TUPLE("warning"), 1, 1, 1, func_error},
{ STRING_SIZE_TUPLE("if"), 2, 3, 0, func_if},
@@ -1824,60 +1827,38 @@ func_call (o, argv, funcname)
int i;
const struct function_table_entry *entry_p;
- fname = expand_argument (argv[0], NULL);
-
/* There is no way to define a variable with a space in the name, so strip
leading and trailing whitespace as a favor to the user. */
- cp = fname;
- while (*cp != '\0' && isspace ((unsigned char)*cp))
- ++cp;
- argv[0] = cp;
+ fname = argv[0];
+ while (*fname != '\0' && isspace ((unsigned char)*fname))
+ ++fname;
- cp += strlen(cp) - 1;
- while (cp > argv[0] && isspace ((unsigned char)*cp))
+ cp = fname + strlen(fname) - 1;
+ while (cp > fname && isspace ((unsigned char)*cp))
--cp;
cp[1] = '\0';
/* Calling nothing is a no-op */
- if (*argv[0] == '\0')
- {
- free (fname);
- return o;
- }
+ if (*fname == '\0')
+ return o;
/* Are we invoking a builtin function? */
- entry_p = lookup_function (function_table, argv[0]);
+ entry_p = lookup_function (function_table, fname);
if (entry_p)
{
- char **av;
-
- free (fname);
-
/* How many arguments do we have? */
for (i=0; argv[i+1]; ++i)
;
- /* If we need to expand arguments, do it now. */
- if (entry_p->expand_args)
- for (av=argv+1; *av; ++av)
- *av = expand_argument (*av, NULL);
-
- o = expand_builtin_function (o, i, argv+1, entry_p);
-
- /* What we expanded we must free... */
- if (entry_p->expand_args)
- for (av=argv+1; *av; ++av)
- free (*av);
-
- return o;
+ return expand_builtin_function (o, i, argv+1, entry_p);
}
/* Not a builtin, so the first argument is the name of a variable to be
expanded and interpreted as a function. Create the variable
reference. */
- flen = strlen (argv[0]);
+ flen = strlen (fname);
body = alloca (flen + 4);
body[0] = '$';
@@ -1905,6 +1886,5 @@ func_call (o, argv, funcname)
pop_variable_scope ();
- free (fname);
return o + strlen(o);
}
diff --git a/i18n/de.po b/i18n/de.po
index eec2d95..ec7f822 100644
--- a/i18n/de.po
+++ b/i18n/de.po
@@ -1,1772 +1,1831 @@
-# This is the german message translation file for GNU-make 3.76.1
+# This is the german message translation file for GNU-make 3.78.90
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Jochen Hein <jochen.hein@informatik.tu-clausthal.de>, 1996.
# Alexander Mader <mader@wias-berlin.de>, 1997.
+# Alexander Mader <aumader@gmx.net>, 2000.
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.76.1\n"
-"POT-Creation-Date: 1997-09-27 11:44+0200\n"
-"PO-Revision-Date: 1997-09-27 17:33 MET DST\n"
-"Last-Translator: Alexander Mader <mader@wias-berlin.de>\n"
+"Project-Id-Version: make 3.78.90\n"
+"POT-Creation-Date: 2000-02-03 17:32+0100\n"
+"PO-Revision-Date: 2000-02-17 13:23+01:00\n"
+"Last-Translator: Alexander Mader <aumader@gmx.net>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: make-3.76.1/vpath.c:568
+#: ar.c:50
#, c-format
-msgid ""
-"\n"
-"# %u `vpath' search paths.\n"
-msgstr "\n# %u «vpath» Suchpfade.\n"
+msgid "attempt to use unsupported feature: `%s'"
+msgstr "Versuch, eine nicht unterstützte Funktionalität zu verwenden: »%s«."
-#: make-3.76.1/file.c:661
-#, c-format
-msgid ""
-"\n"
-"# %u files in %u hash buckets.\n"
-msgstr "\n# %u Dateien zu %u hash-Werten.\n"
+#: ar.c:141
+msgid "touch archive member is not available on VMS"
+msgstr ""
+"VMS stellt nicht die Möglichkeit einer Änderung \n"
+"der Zeitmarken von Archiveinträgen zur Verfügung."
-#: make-3.76.1/rule.c:574
+#: ar.c:173
#, c-format
-msgid ""
-"\n"
-"# %u implicit rules, %u"
-msgstr "\n# %u implizite Regeln, %u"
-
-#: make-3.76.1/dir.c:848
-msgid ""
-"\n"
-"# Directories\n"
-msgstr "\n# Verzeichnisse\n"
+msgid "touch: Archive `%s' does not exist"
+msgstr "touch: Archiv »%s« existiert nicht."
-#: make-3.76.1/file.c:635
-msgid ""
-"\n"
-"# Files"
-msgstr "\n# Dateien"
+#: ar.c:176
+#, c-format
+msgid "touch: `%s' is not a valid archive"
+msgstr "touch: »%s« ist kein gültiges Archiv."
-#: make-3.76.1/main.c:2359
+#: ar.c:183
#, c-format
-msgid ""
-"\n"
-"# Finished Make data base on %s\n"
-msgstr "\n# «Make» Datenbank beendet zur Zeit %s.\n"
+msgid "touch: Member `%s' does not exist in `%s'"
+msgstr "touch: Eintrag »%s« existiert nicht in »%s«."
-#: make-3.76.1/vpath.c:577
-msgid ""
-"\n"
-"# General (`VPATH' variable) search path:\n"
-"# "
+#: ar.c:190
+#, c-format
+msgid "touch: Bad return code from ar_member_touch on `%s'"
msgstr ""
-"\n"
-"# Allgemeiner (Variable «VPATH») Suchpfad:\n"
-"# "
-
-#: make-3.76.1/rule.c:556
-msgid ""
-"\n"
-"# Implicit Rules"
-msgstr "\n# Implizite Regeln"
+"touch: Ungünstiger Rückgabewert beim Zugriff \n"
+"von ar_member_touch auf »%s«."
-#: make-3.76.1/main.c:2350
+#: arscan.c:71
#, c-format
-msgid ""
-"\n"
-"# Make data base, printed on %s"
-msgstr "\n# «Make» Datenbank, ausgegeben zur Zeit %s."
+msgid "lbr$set_module failed to extract module info, status = %d"
+msgstr "»lbr$set_module« konnte keine Modulinformation auslesen; Status = %d."
-#: make-3.76.1/file.c:658
-msgid ""
-"\n"
-"# No files."
-msgstr "\n# Keine Dateien."
+#: arscan.c:155
+#, c-format
+msgid "lbr$ini_control failed with status = %d"
+msgstr "»lbr$ini_control« schlug mit Status = %d fehl."
-#: make-3.76.1/vpath.c:571
-msgid ""
-"\n"
-"# No general (`VPATH' variable) search path."
-msgstr "\n# Kein allgemeiner (Variable «VPATH») Suchpfad."
+#: arscan.c:166
+#, c-format
+msgid "unable to open library `%s' to lookup member `%s'"
+msgstr ""
+"Konnte die Bibliothek »%s« auf der Suche \n"
+"nach dem Eintrag »%s« nicht öffnen."
-#: make-3.76.1/rule.c:571
-msgid ""
-"\n"
-"# No implicit rules."
-msgstr "\n# Keine impliziten Regeln vorhanden."
+#: arscan.c:820
+#, c-format
+msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr ""
+"Eintrag »%s« %s: \n"
+"%ld bytes an Position %ld (%ld).\n"
-#: make-3.76.1/vpath.c:549
-msgid ""
-"\n"
-"# VPATH Search Paths\n"
-msgstr "\n# VPATH Suchpfade\n"
+#: arscan.c:821
+msgid " (name might be truncated)"
+msgstr " (der Name ist möglicherweise gekürzt)"
-#: make-3.76.1/variable.c:979
-msgid ""
-"\n"
-"# Variables\n"
-msgstr "\n# Variablen\n"
+#: arscan.c:823
+#, c-format
+msgid " Date %s"
+msgstr " Datum %s"
-#: make-3.76.1/job.c:1032 make-3.76.1/job.c:1629
+#: arscan.c:824
#, c-format
-msgid ""
-"\n"
-"Counted %d args in failed launch\n"
-msgstr "\n%d Argumente gehörten zum fehlgeschlagenen Prozessstart.\n"
+msgid " uid = %d, gid = %d, mode = 0%o.\n"
+msgstr " Nutzer-ID = %d, Gruppen-ID = %d, Modus = 0%o.\n"
-#: make-3.76.1/main.c:492
+#: commands.c:391
+msgid "*** Break.\n"
+msgstr "*** Abbruch.\n"
+
+#: commands.c:483
#, c-format
-msgid ""
-"\r\n"
-"Unhandled exception filter called from program %s\r\n"
-msgstr ""
-"\\r\n"
-"Das Programm %s rief einen Ausnahmefilter auf, \n"
-"der nicht bearbeitet wird.\\r\n"
+msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
+msgstr "*** [%s] Archiveintrag »%s« ist wohl falsch; nicht gelöscht."
-#: make-3.76.1/arscan.c:721
+#: commands.c:486
#, c-format
-msgid " Date %s"
-msgstr " Datum %s"
+msgid "*** Archive member `%s' may be bogus; not deleted"
+msgstr "*** Archiveintrag »%s« ist wohl falsch; nicht glöscht."
-#: make-3.76.1/remake.c:603
+#: commands.c:498
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " Ignoriere VPATH-Name «%s».\n"
+msgid "*** [%s] Deleting file `%s'"
+msgstr "*** [%s] Datei »%s« wird gelöscht."
-#: make-3.76.1/arscan.c:722
+#: commands.c:500
#, c-format
-msgid " uid = %d, gid = %d, mode = 0%o.\n"
-msgstr " Nutzer-ID = %d, Gruppen-ID = %d, Modus = 0%o.\n"
+msgid "*** Deleting file `%s'"
+msgstr "*** Datei »%s« wird gelöscht."
-#: make-3.76.1/commands.c:537
+#: commands.c:538
+msgid "# commands to execute"
+msgstr "# Auszuführende Kommandos"
+
+#: commands.c:541
msgid " (built-in):"
msgstr " (eingebaut):"
-#: make-3.76.1/job.c:239
-msgid " (core dumped)"
-msgstr " (Speicherauszug erstellt)"
+#: commands.c:543
+#, c-format
+msgid " (from `%s', line %lu):\n"
+msgstr " (aus »%s«, Zeile %lu):\n"
-#: make-3.76.1/read.c:318
-msgid " (don't care)"
-msgstr " (macht nichts)"
+#: dir.c:902
+msgid "\n# Directories\n"
+msgstr "\n# Verzeichnisse\n"
-#: make-3.76.1/commands.c:539
+#: dir.c:910
#, c-format
-msgid " (from `%s', line %u):\n"
-msgstr " (aus «%s», Zeile %u):\n"
+msgid "# %s: could not be stat'd.\n"
+msgstr "# %s: Konnte den Status nicht feststellen.\n"
-#: make-3.76.1/job.c:230
-msgid " (ignored)"
-msgstr " (ignoriert)"
+#: dir.c:913
+#, c-format
+msgid "# %s (key %s, mtime %d): could not be opened.\n"
+msgstr ""
+"# %s ( Schlüssel (key) %s, letzte Änderung (mtime) %d): \n"
+"Konnte nicht geöffnet werden.\n"
-#: make-3.76.1/arscan.c:719
-msgid " (name might be truncated)"
-msgstr " (der Name ist möglicherweise gekürzt)"
+#: dir.c:917
+#, c-format
+msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
+msgstr ""
+"# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): \n"
+"Konnte nicht geöffnet werden.\n"
-#: make-3.76.1/read.c:314
-msgid " (no default goal)"
-msgstr " (kein Standard-Ziel)"
+#: dir.c:922
+#, c-format
+msgid "# %s (device %ld, inode %ld): could not be opened.\n"
+msgstr ""
+"# %s (Gerät %ld, I-Knoten (inode) %ld): \n"
+"Konnte nicht geöffnet werden.\n"
-#: make-3.76.1/read.c:320
-msgid " (no ~ expansion)"
-msgstr " (keine ~-Erweiterung)"
+#: dir.c:939
+#, c-format
+msgid "# %s (key %s, mtime %d): "
+msgstr "# %s (Schlüssel (key) %s, letzte Änderung (mtime) %d): "
-#: make-3.76.1/job.c:332 make-3.76.1/job.c:504 make-3.76.1/job.c:591
-#: make-3.76.1/job.c:1093
-msgid " (remote)"
-msgstr " (entfernt)"
+#: dir.c:943
+#, c-format
+msgid "# %s (device %d, inode [%d,%d,%d]): "
+msgstr "# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): "
-#: make-3.76.1/read.c:316
-msgid " (search path)"
-msgstr " (Suchpfad)"
+#: dir.c:948
+#, c-format
+msgid "# %s (device %ld, inode %ld): "
+msgstr "# %s (Gerät %ld, I-Knoten (inode) %ld): "
+
+#: dir.c:954 dir.c:974
+msgid "No"
+msgstr "Keine"
-#: make-3.76.1/dir.c:902 make-3.76.1/dir.c:922
+#: dir.c:957 dir.c:977
msgid " files, "
msgstr " Dateien, "
-#: make-3.76.1/dir.c:907
+#: dir.c:959 dir.c:979
+msgid "no"
+msgstr "keine"
+
+#: dir.c:962
msgid " impossibilities"
msgstr " Unmöglichkeiten"
-#: make-3.76.1/dir.c:927
+#: dir.c:966
+msgid " so far."
+msgstr " bisher."
+
+#: dir.c:982
#, c-format
msgid " impossibilities in %u directories.\n"
msgstr " Unmöglichkeiten in %u Verzeichnissen.\n"
-#: make-3.76.1/file.c:563 make-3.76.1/file.c:583
-msgid " not"
-msgstr " nicht"
+#: expand.c:105
+#, c-format
+msgid "Recursive variable `%s' references itself (eventually)"
+msgstr "Rekursive Variable »%s« referenziert sich (schließlich) selbst."
-#: make-3.76.1/job.c:491
-msgid " remote"
-msgstr " entfernter"
+#: expand.c:130
+#, c-format
+msgid "warning: undefined variable `%.*s'"
+msgstr "Warnung: undefinierte Variable »%.*s«"
-#: make-3.76.1/dir.c:911
-msgid " so far."
-msgstr " bisher."
+#: expand.c:245
+msgid "unterminated variable reference"
+msgstr "Nicht abgeschlossene Variablenreferenz."
-#: make-3.76.1/rule.c:583
-msgid " terminal."
-msgstr " Terminal."
+#: file.c:308
+#, c-format
+msgid "Commands were specified for file `%s' at %s:%lu,"
+msgstr ""
+"Die Kommandos wurden für die Datei »%s« angegeben \n"
+"an der Stelle %s:%lu,"
-#: make-3.76.1/getopt1.c:134
+#: file.c:314
#, c-format
-msgid " with arg %s"
-msgstr "mit Argument %s"
+msgid "Commands for file `%s' were found by implicit rule search,"
+msgstr ""
+"Die Kommandos für die Datei »%s« wurden aufgrund \n"
+"der Suche nach impliziten Regeln gefunden,"
-#: make-3.76.1/file.c:561
-msgid "# A default or MAKEFILES makefile."
-msgstr "# Ein Standardwert oder MAKEFILES «make»-Steuerdatei."
+#: file.c:318
+#, c-format
+msgid "but `%s' is now considered the same file as `%s'."
+msgstr ""
+"aber »%s« wird jetzt als dieselbe Datei \n"
+"wie »%s« betrachtet."
-#: make-3.76.1/file.c:570
-msgid "# Also makes:"
-msgstr "# Erzeugt außerdem:"
+#: file.c:322
+#, c-format
+msgid "Commands for `%s' will be ignored in favor of those for `%s'."
+msgstr ""
+"Die Kommandos für »%s« werden ignoriert, \n"
+"die für »%s« werden bevorzugt."
+
+#: file.c:343
+#, c-format
+msgid "can't rename single-colon `%s' to double-colon `%s'"
+msgstr ""
+"»%s« mit einfachem Doppelpunkt kann nicht in \n"
+"»%s« mit doppeltem Doppelpunkt geändert werden."
+
+#: file.c:348
+#, c-format
+msgid "can't rename double-colon `%s' to single-colon `%s'"
+msgstr ""
+"»%s« mit doppeltem Doppelpunkt kann nicht in \n"
+"»%s« mit einfachem Doppelpunkt geändert werden."
+
+#: file.c:415
+#, c-format
+msgid "*** Deleting intermediate file `%s'"
+msgstr "*** Löschen der Zwischendatei »%s«."
+
+#: file.c:623
+msgid "# Not a target:"
+msgstr "# Dies ist kein Ziel:"
-#: make-3.76.1/file.c:559
+#: file.c:631
+msgid "# Precious file (prerequisite of .PRECIOUS)."
+msgstr "# Wertvolle Datei (Voraussetzung von .PRECIOUS)."
+
+#: file.c:633
+msgid "# Phony target (prerequisite of .PHONY)."
+msgstr "# Vorgetäuschtes Ziel (Voraussetzung von .PHONY)."
+
+#: file.c:635
msgid "# Command-line target."
msgstr "# Kommandozeilen-Ziel (target)."
-#: make-3.76.1/file.c:587
-msgid "# Commands currently running (THIS IS A BUG)."
-msgstr "# Z.Zt. ausgeführte Kommandos (DAS IST EIN BUG)."
+#: file.c:637
+msgid "# A default or MAKEFILES makefile."
+msgstr "# Ein Standardwert oder MAKEFILES »make«-Steuerdatei."
-#: make-3.76.1/file.c:590
-msgid "# Dependencies commands running (THIS IS A BUG)."
-msgstr "# Z.Zt. ausgeführte Kommandos für Abhängigkeiten (DAS IST EIN BUG)."
+#: file.c:639
+msgid "# Implicit rule search has been done."
+msgstr "# Suche nach impliziten Regeln wurde durchgeführt."
-#: make-3.76.1/file.c:606
-msgid "# Failed to be updated."
-msgstr "# Aktualisierung fehlgeschlagen."
-
-#: make-3.76.1/file.c:578
-msgid "# File does not exist."
-msgstr "# Die Datei existiert nicht."
+#: file.c:640
+msgid "# Implicit rule search has not been done."
+msgstr "# Suche nach impliziten Regeln wurde nicht durchgeführt."
-#: make-3.76.1/file.c:582
+#: file.c:642
#, c-format
-msgid "# File has%s been updated.\n"
-msgstr "# Datei wurde%s aktualisiert.\n"
+msgid "# Implicit/static pattern stem: `%s'\n"
+msgstr "# Ersetzung für implizites/statisches Muster: »%s«\n"
-#: make-3.76.1/file.c:567
-msgid "# File is an intermediate dependency."
+#: file.c:644
+msgid "# File is an intermediate prerequisite."
msgstr "# Datei ist ein Zwischenschritt in den Abhängigkeiten."
-#: make-3.76.1/file.c:562
-#, c-format
-msgid "# Implicit rule search has%s been done.\n"
-msgstr "# Implizite Regelsuche wurde%s durchgeführt.\n"
+#: file.c:647
+msgid "# Also makes:"
+msgstr "# Erzeugt außerdem:"
+
+#: file.c:653
+msgid "# Modification time never checked."
+msgstr "# Zeit der letzten Änderung wurde nicht überprüft."
-#: make-3.76.1/file.c:565
+#: file.c:655
+msgid "# File does not exist."
+msgstr "# Die Datei existiert nicht."
+
+#: file.c:660
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Ersetzung für implizites/statisches Muster: «%s»\n"
+msgid "# Last modified %s\n"
+msgstr "# Zuletzt geändert %s.\n"
-#: make-3.76.1/file.c:616
-msgid "# Invalid value in `command_state' member!"
-msgstr "# Ungültiger Wert im «command_state»-Eintrag!"
+#: file.c:663
+msgid "# File has been updated."
+msgstr "# Datei wurde aktualisiert."
-#: make-3.76.1/file.c:609
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Ungültiger Wert in «update_status»-Eintrag!"
+#: file.c:663
+msgid "# File has not been updated."
+msgstr "# Datei wurde nicht aktualisiert."
-#: make-3.76.1/file.c:580
-#, c-format
-msgid "# Last modified %.24s (%ld)\n"
-msgstr "# Zuletzt geändert %.24s (%ld).\n"
+#: file.c:667
+msgid "# Commands currently running (THIS IS A BUG)."
+msgstr "# Z.Zt. ausgeführte Kommandos (DAS IST EIN BUG)."
-#: make-3.76.1/file.c:576
-msgid "# Modification time never checked."
-msgstr "# Zeit der letzten Änderung wurde nicht überprüft."
+#: file.c:670
+msgid "# Dependencies commands running (THIS IS A BUG)."
+msgstr "# Z.Zt. ausgeführte Kommandos für Abhängigkeiten (DAS IST EIN BUG)."
-#: make-3.76.1/file.c:603
+#: file.c:679
+msgid "# Successfully updated."
+msgstr "# Erfolgreich aktualisiert."
+
+#: file.c:683
msgid "# Needs to be updated (-q is set)."
msgstr "# Eine Aktualisierung ist notwendig (-q ist angegeben)."
-#: make-3.76.1/file.c:557
-msgid "# Phony target (dependency of .PHONY)."
-msgstr "# «Phony»-Ziel (abhängig von .PHONY)."
+#: file.c:686
+msgid "# Failed to be updated."
+msgstr "# Aktualisierung fehlgeschlagen."
-#: make-3.76.1/file.c:555
-msgid "# Precious file (dependency of .PRECIOUS)."
-msgstr "# «Precious»-Datei (abhängig von .PRECIOUS)."
+#: file.c:689
+msgid "# Invalid value in `update_status' member!"
+msgstr "# Ungültiger Wert in »update_status«-Eintrag!"
-#: make-3.76.1/file.c:599
-msgid "# Successfully updated."
-msgstr "# Erfolgreich aktualisiert."
+#: file.c:696
+msgid "# Invalid value in `command_state' member!"
+msgstr "# Ungültiger Wert im »command_state«-Eintrag!"
-#: make-3.76.1/commands.c:534
-msgid "# commands to execute"
-msgstr "# Auszuführende Kommandos"
+#: file.c:715
+msgid "\n# Files"
+msgstr "\n# Dateien"
-#: make-3.76.1/dir.c:894
-#, c-format
-msgid "# %s (device %d, inode %d): "
-msgstr "# %s (Gerät %d, I-Knoten (inode) %d): "
+#: file.c:738
+msgid "\n# No files."
+msgstr "\n# Keine Dateien."
-#: make-3.76.1/dir.c:889
+#: file.c:741
#, c-format
-msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): "
+msgid "\n# %u files in %u hash buckets.\n"
+msgstr "\n# %u Dateien zu %u hash-Werten.\n"
-#: make-3.76.1/dir.c:863
+#: file.c:743
#, c-format
-msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
+msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
msgstr ""
-"# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): \n"
-"Konnte nicht geöffnet werden.\n"
+"# durchschnittlich %.3f Dateien je hash-Wert,\n"
+"max. %u Dateien zu einem hash-Wert.\n"
-#: make-3.76.1/dir.c:868
-#, c-format
-msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr ""
-"# %s (Gerät %ld, I-Knoten (inode) %ld): \n"
-"Konnte nicht geöffnet werden.\n"
+#: function.c:737
+msgid "non-numeric first argument to `word' function"
+msgstr "Nicht-numerisches erstes Argument zur »word«-Funktion."
-#: make-3.76.1/dir.c:885
-#, c-format
-msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (Schlüssel (key) %s, letzte Änderung (mtime) %d): "
+#: function.c:741
+msgid "the `word' function takes a positive index argument"
+msgstr "Die »word«-Funktion erwartet als Argument einen positiven Index."
-#: make-3.76.1/dir.c:859
-#, c-format
-msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr ""
-"# %s ( Schlüssel (key) %s, letzte Änderung (mtime) %d): \n"
-"Konnte nicht geöffnet werden.\n"
+#: function.c:766
+msgid "non-numeric first argument to `wordlist' function"
+msgstr "Nicht-numerisches erstes Argument für die »wordlist«-Funktion."
-#: make-3.76.1/dir.c:856
-#, c-format
-msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: Konnte den Status nicht feststellen.\n"
+#: function.c:769
+msgid "non-numeric second argument to `wordlist' function"
+msgstr "Nicht-numerisches zweites Argument zur »wordlist«-Funktion."
-#: make-3.76.1/variable.c:954
+#: function.c:1211
#, c-format
-msgid "# %u variables in %u hash buckets.\n"
-msgstr "# %u Variablen für %u hash-Werte.\n"
+msgid "create_child_process: DuplicateHandle(In) failed (e=%d)\n"
+msgstr "»create_child_process«: »DuplicateHandle(In)« schlug fehl (e=%d).\n"
-#: make-3.76.1/vpath.c:566
-msgid "# No `vpath' search paths."
-msgstr "# Keine «vpath» Suchpfade."
+#: function.c:1222
+#, c-format
+msgid "create_child_process: DuplicateHandle(Err) failed (e=%d)\n"
+msgstr "»create_child_process«: »DuplicateHandle(Err)« schlug fehl (e=%d).\n"
-#: make-3.76.1/variable.c:951
-msgid "# No variables."
-msgstr "# Keine Variablen vorhanden."
+#: function.c:1227
+#, c-format
+msgid "CreatePipe() failed (e=%d)\n"
+msgstr "»CreatePipe()« schlug fehl (e=%d).\n"
-#: make-3.76.1/file.c:547
-msgid "# Not a target:"
-msgstr "# Dies ist kein Ziel:"
+#: function.c:1232
+msgid "windows32_openpipe (): process_init_fd() failed\n"
+msgstr "windows32_openpipe (): process_init_fd() schlug fehl\n"
-#: make-3.76.1/file.c:663
+#: function.c:1471
#, c-format
-msgid "# average %.1f files per bucket, max %u files in one bucket.\n"
-msgstr ""
-"# durchschnittlich %.1f Dateien je hash-Wert,\n"
-"max. %u Dateien zu einem hash-Wert.\n"
+msgid "Cleaning up temporary batch file %s\n"
+msgstr "Lösche temporäre Stapelverarbeitungsdatei %s.\n"
-#: make-3.76.1/variable.c:957
+#: function.c:1688
#, c-format
-msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-msgstr "# Durchschnittlich %.1f Variablen pro Wert, max %u je Wert.\n"
+msgid "Insufficient number of arguments (%d) to function `%s'"
+msgstr "Zuwenig Argumente (%d) für die Funktion »%s«."
-#: make-3.76.1/variable.c:964
+#: function.c:1692
#, c-format
-msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-msgstr "# Durchschnittlich %d.%d Variablen pro Wert, max %u je Wert.\n"
+msgid "Unimplemented on this platform: function `%s'"
+msgstr "Auf dieser Rechneronfiguration nicht implementiert: Funktion »%s«."
-#: make-3.76.1/job.c:1877
+#: function.c:1745
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')"
-msgstr "$SHELL gewechselt (war «%s», ist «%s»)."
+msgid "unterminated call to function `%s': missing `%c'"
+msgstr "Nicht beendeter Aufruf der Funktion »%s«: »%c« fehlt."
-#. 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.
-#: make-3.76.1/misc.c:567
+#: getopt.c:675
#, c-format
-msgid "%s access: user %d (real %d), group %d (real %d)\n"
-msgstr "%s Zugriff: Nutzer %d (real %d), Gruppe %d (real %d)\n"
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig.\n"
-#: make-3.76.1/job.c:496
+#: getopt.c:699
#, c-format
-msgid "%s finished."
-msgstr "%s beendet."
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option »--%s« erlaubt kein Argument.\n"
-#: make-3.76.1/main.c:783
+#: getopt.c:704
#, c-format
-msgid "%s is suspending for 30 seconds..."
-msgstr "%s setzt für 30 Sekunden aus..."
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option »%c%s« erlaubt kein Argument.\n"
-#: make-3.76.1/job.c:1673
+#: getopt.c:721 getopt.c:894
#, c-format
-msgid "%s: Command not found"
-msgstr "%s: Kommando nicht gefunden."
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option »%s« erfordert ein Argument.\n"
-#: make-3.76.1/main.c:483
+#: getopt.c:750
#, c-format
-msgid "%s: Interrupt/Exception caught "
-msgstr "%s: hat Unterbrechung/Ausnahme bemerkt "
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unerkannte Option »--%s«.\n"
-#: make-3.76.1/job.c:1702
+#: getopt.c:754
#, c-format
-msgid "%s: Shell program not found"
-msgstr "%s: Shell-Programm wurde nicht gefunden."
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unerkannte Option »%c%s«\n"
-#. 1003.2 specifies the format of this message.
-#: make-3.76.1/getopt.c:786
+#: getopt.c:780
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: unerlaubte Option -- %c\n"
-#: make-3.76.1/getopt.c:789
+#: getopt.c:783
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ungültige Option -- %c.\n"
-#: make-3.76.1/getopt.c:710
+#: getopt.c:813 getopt.c:943
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: Option «%c%s» erlaubt kein Argument.\n"
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erfordert ein Argument -- %c.\n"
-#: make-3.76.1/getopt.c:681
+#: getopt.c:860
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: Option «%s» ist mehrdeutig.\n"
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig.\n"
-#: make-3.76.1/getopt.c:727 make-3.76.1/getopt.c:900
+#: getopt.c:878
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: Option «%s» erfordert ein Argument.\n"
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option »-W %s« erlaubt kein Argument.\n"
-#: make-3.76.1/getopt.c:705
+#: implicit.c:40
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: Option «--%s» erlaubt kein Argument.\n"
+msgid "Looking for an implicit rule for `%s'.\n"
+msgstr "Suche nach einer impliziten Regel für »%s«.\n"
-#: make-3.76.1/getopt.c:884
+#: implicit.c:56
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: Option «-W %s» erlaubt kein Argument.\n"
+msgid "Looking for archive-member implicit rule for `%s'.\n"
+msgstr "Suche nach einer impliziten Regel für Archiveinträge für »%s«.\n"
-#: make-3.76.1/getopt.c:866
-#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: Option «-W %s» ist mehrdeutig.\n"
+#: implicit.c:201
+msgid "Avoiding implicit rule recursion.\n"
+msgstr "Vermeide Rekursion in den impliziten Regeln.\n"
-#. 1003.2 specifies the format of this message.
-#: make-3.76.1/getopt.c:819 make-3.76.1/getopt.c:949
+#: implicit.c:339
#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: Option erfordert ein Argument -- %c.\n"
+msgid "Trying pattern rule with stem `%.*s'.\n"
+msgstr "Versuche Muster-Regel mit Ersetzung »%.*s«.\n"
-#: make-3.76.1/signame.c:291
+#: implicit.c:380
#, c-format
-msgid "%s: unknown signal"
-msgstr "%s: unbekanntes Signal"
+msgid "Rejecting impossible implicit prerequisite `%s'.\n"
+msgstr "Unmögliche implizite Voraussetzung »%s« abgelehnt.\n"
-#. +option or -option
-#: make-3.76.1/getopt.c:760
+#: implicit.c:381
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: unerkannte Option «%c%s»\n"
+msgid "Rejecting impossible rule prerequisite `%s'.\n"
+msgstr "Unmögliche Voraussetzung »%s« abgelehnt.\n"
-#. --option
-#: make-3.76.1/getopt.c:756
+#: implicit.c:391
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: unerkannte Option «--%s».\n"
+msgid "Trying implicit prerequisite `%s'.\n"
+msgstr "Versuche implizite Voraussetzung »%s«.\n"
-#: make-3.76.1/main.c:2322
+#: implicit.c:392
#, c-format
-msgid "%sGNU Make version %s"
-msgstr "%sGNU Make Version %s"
+msgid "Trying rule prerequisite `%s'.\n"
+msgstr "Versuche Voraussetzung »%s«.\n"
-#: make-3.76.1/remake.c:916
+#: implicit.c:413
#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sKeine Regel, um «%s» zu erstellen%s"
+msgid "Found prerequisite `%s' as VPATH `%s'\n"
+msgstr "Fand die Voraussetzung »%s« als VPATH »%s«.\n"
-#: make-3.76.1/remake.c:918
+#: implicit.c:430
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr ""
-"%sKeine Regel vorhanden, um das Target «%s», \n"
-" benötigt von «%s», zu erstellen%s"
+msgid "Looking for a rule with intermediate file `%s'.\n"
+msgstr "Suche nach einer Regel mit der Zwischen-Datei »%s«.\n"
-#: make-3.76.1/commands.c:482
+#: job.c:252
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Archiveintrag «%s» ist wohl falsch; nicht glöscht."
+msgid "*** [%s] Error 0x%x%s"
+msgstr "*** [%s] Fehler 0x%x%s"
-#: make-3.76.1/commands.c:387
-msgid "*** Break.\n"
-msgstr "*** Abbruch.\n"
+#: job.c:252
+msgid " (ignored)"
+msgstr " (ignoriert)"
-#: make-3.76.1/commands.c:496
+#: job.c:255
#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Datei «%s» wird gelöscht."
+msgid "[%s] Error %d (ignored)"
+msgstr "[%s] Fehler %d (ignoriert)"
-#: make-3.76.1/file.c:389
+#: job.c:256
#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Löschen der Zwischendatei «%s»."
+msgid "*** [%s] Error %d"
+msgstr "*** [%s] Fehler %d"
+
+#: job.c:261
+msgid " (core dumped)"
+msgstr " (Speicherauszug erstellt)"
-#: make-3.76.1/job.c:305
+#: job.c:401
+#, c-format
+msgid "Got a SIGCHLD; %u unreaped children.\n"
+msgstr "Erhielt Signal »SIGCHLD«; %u unbeendete Kindprozesse.\n"
+
+#: job.c:450
msgid "*** Waiting for unfinished jobs...."
msgstr "*** Warte auf noch nicht beendete Prozesse...."
-#: make-3.76.1/main.c:1565
-msgid "*** Warning: Clock skew detected. Your build may be incomplete."
-msgstr ""
-"*** Warnung: Mit der Uhr stimmt etwas nicht. \n"
-" Die Bearbeitung könnte unvollständig sein."
-
-#: make-3.76.1/remake.c:1102
+#: job.c:479
#, c-format
-msgid "*** Warning: File `%s' has modification time in the future"
-msgstr "*** Warnung: Datei «%s» hat Änderungszeit aus der Zukunft!"
+msgid "Live child 0x%08lx (%s) PID %ld %s\n"
+msgstr "Aktiver Kindprozess 0x%08lx (%s) PID %ld %s\n"
+
+#: job.c:481 job.c:641 job.c:739 job.c:1292
+msgid " (remote)"
+msgstr " (entfernt)"
-#: make-3.76.1/commands.c:479
+#: job.c:638
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Archiveintrag «%s» ist wohl falsch; nicht gelöscht."
+msgid "Reaping losing child 0x%08lx PID %ld %s\n"
+msgstr "Sammle erfolglosen Kindprozess 0x%08lx PID %ld %s\n"
-#: make-3.76.1/commands.c:494
+#: job.c:639
#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Datei «%s» wird gelöscht."
+msgid "Reaping winning child 0x%08lx PID %ld %s\n"
+msgstr "Sammle erfolgreichen Kindprozess 0x%08lx PID %ld %s\n"
-#: make-3.76.1/job.c:234
+#: job.c:644
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Fehler %d"
+msgid "Cleaning up temp batch file %s\n"
+msgstr "Lösche temporäre Stapelverarbeitungsdatei »%s«.\n"
-#: make-3.76.1/job.c:230
+#: job.c:737
#, c-format
-msgid "*** [%s] Error 0x%x%s"
-msgstr "*** [%s] Fehler 0x%x%s"
+msgid "Removing child 0x%08lx PID %ld %s from chain.\n"
+msgstr "Entferne Kindprozeß 0x%08lx PID %ld %s aus der Kette.\n"
-#: make-3.76.1/misc.c:212 make-3.76.1/misc.c:260
-msgid ". Stop.\n"
-msgstr ". Schluss.\n"
+#: job.c:794
+msgid "write jobserver"
+msgstr "Schreibe Job-Server"
-#: make-3.76.1/getloadavg.c:1056
+#: job.c:796
#, c-format
-msgid "1-minute: %f "
-msgstr "1-Minuten-Schnitt: %f "
+msgid "Released token for child 0x%08lx (%s).\n"
+msgstr "Marke des Kindprozesses 0x%08lx PID (%s) freigegeben.\n"
-#: make-3.76.1/getloadavg.c:1060
+#: job.c:1226 job.c:2222
#, c-format
-msgid "15-minute: %f "
-msgstr "15-Minuten-Schnitt: %f "
+msgid "process_easy() failed failed to launch process (e=%d)\n"
+msgstr "»process_easy()« konnte den Prozess nicht starten (e=%d).\n"
-#: make-3.76.1/getloadavg.c:1058
+#: job.c:1230 job.c:2226
#, c-format
-msgid "5-minute: %f "
-msgstr "5-Minuten-Schnitt: %f "
+msgid "\nCounted %d args in failed launch\n"
+msgstr "\n%d Argumente gehörten zum fehlgeschlagenen Prozessstart.\n"
-#: make-3.76.1/remake.c:574
+#: job.c:1290
#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; benutze VPATH-Name «%s»"
+msgid "Putting child 0x%08lx (%s) PID %ld%s on the chain.\n"
+msgstr "Nehme Kindprozess 0x%08lx (%s) PID %ld%s in die Kette auf.\n"
-#: make-3.76.1/getopt.c:1038 make-3.76.1/getopt1.c:174
+#: job.c:1487
#, c-format
-msgid "?? getopt returned character code 0%o ??\n"
-msgstr "?? «getopt» lieferte Zeichencode 0%o ??\n"
+msgid "Obtained token for child 0x%08lx (%s).\n"
+msgstr "Marke für den Kindprozeß 0x%08lx (%s) erhalten.\n"
-#: make-3.76.1/signame.c:126
-msgid "Aborted"
-msgstr "Abgebrochen (Aborted)"
+#: job.c:1493
+msgid "read jobs pipe"
+msgstr "Lese Pipe für die Jobs"
+
+#: job.c:1562
+msgid "cannot enforce load limits on this operating system"
+msgstr ""
+"Auf diesem Betriebssystem kann die Einhaltung\n"
+"der Lastbeschränkung nicht erzwungen werden."
-#: make-3.76.1/main.c:503
+#: job.c:1564
+msgid "cannot enforce load limit: "
+msgstr "Lasteinschränkung kann nicht erzwungen werden: "
+
+#: job.c:1667
#, c-format
-msgid "Access violation: %s operation at address %x\r\n"
-msgstr "Zugriffsverstoß: %soperation an Adresse %x\\r\n"
+msgid "internal error: `%s' command_state"
+msgstr "Interner Fehler: »%s« command_state"
-#: make-3.76.1/signame.c:153
-msgid "Alarm clock"
-msgstr "Wecksignal"
+#: job.c:1974
+#, c-format
+msgid "Redirected input from %s\n"
+msgstr "Datei %s auf Standarteingabe umgeleitet.\n"
-#: make-3.76.1/main.c:266
-msgid "Allow N jobs at once; infinite jobs with no arg"
-msgstr ""
-"Erlaube N Jobs gleichzeitig; unbegrenzte Anzahl \n"
-"von Jobs ohne Argument."
+#: job.c:1981
+#, c-format
+msgid "Redirected error to %s\n"
+msgstr "Fehlerausgabe nach %s umgeleitet.\n"
-#: make-3.76.1/implicit.c:201
+#: job.c:1988
#, c-format
-msgid "Avoiding implicit rule recursion.%s%s\n"
-msgstr "Vermeide Rekursion in den impliziten Regeln.%s%s\n"
+msgid "Redirected output to %s\n"
+msgstr "Ausgabe nach %s umgeleitet.\n"
-#: make-3.76.1/rule.c:587
+#: job.c:2051
#, c-format
-msgid "BUG: num_pattern_rules wrong! %u != %u"
-msgstr "BUG: «num_pattern_rules» falsch! %u != %u"
+msgid "Executing %s instead\n"
+msgstr "%s wird stattdessen ausgeführt.\n"
-#: make-3.76.1/signame.c:147
-msgid "Bad system call"
-msgstr "Falscher Systemaufruf"
+#: job.c:2251
+#, c-format
+msgid "make reaped child pid %d, still waiting for pid %d\n"
+msgstr ""
+"»make« registrierte die Beendigung des Kindprozesses mit ID %d,\n"
+"wartet jedoch noch auf den Prozess mit ID %d.\n"
-#: make-3.76.1/signame.c:150
-msgid "Broken pipe"
-msgstr "Zerstörte Pipe"
+#: job.c:2270
+#, c-format
+msgid "%s: Command not found"
+msgstr "%s: Kommando nicht gefunden."
-#: make-3.76.1/signame.c:141
-msgid "Bus error"
-msgstr "Bus-Fehler"
+#: job.c:2299
+#, c-format
+msgid "%s: Shell program not found"
+msgstr "%s: Shell-Programm wurde nicht gefunden."
-#: make-3.76.1/signame.c:188
-msgid "CPU time limit exceeded"
-msgstr "CPU-Zeitschranke überschritten"
+#: job.c:2480
+#, c-format
+msgid "$SHELL changed (was `%s', now `%s')"
+msgstr "$SHELL gewechselt (war »%s«, ist »%s«)."
-#: make-3.76.1/main.c:239
-msgid "Change to DIRECTORY before doing anything"
-msgstr "Wechsle in das VERZEICHNIS bevor etwas anderes ausgeführt wird."
+#: job.c:2886
+#, c-format
+msgid "Creating temporary batch file %s\n"
+msgstr "Erstelle temporäre Stapelverarbeitungsdatei %s\n"
-#: make-3.76.1/misc.c:748
-msgid "Child"
-msgstr "Kindprozess"
+#: job.c:2928
+#, c-format
+msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
+msgstr "%s (Zeile %d) Falscher Shell-Kontext (!unixy && !batch_mode_shell)\n"
-#: make-3.76.1/signame.c:167 make-3.76.1/signame.c:170
-msgid "Child exited"
-msgstr "Kindprozeß beendet"
+#: main.c:457
+msgid "empty string invalid as file name"
+msgstr "Eine leere Zeichenkette ist als Dateiname ungültig."
-#: make-3.76.1/remake.c:395 make-3.76.1/remake.c:796
+#: main.c:537
#, c-format
-msgid "Circular %s <- %s dependency dropped."
-msgstr "Zirkuläre Datei %s <- %s Abhängigkeit wird nicht verwendet."
+msgid "unknown debug level specification `%s'"
+msgstr "Unbekanntes Debug-Level angegeben »%s«"
-#: make-3.76.1/file.c:298
+#: main.c:577
#, c-format
-msgid "Commands for `%s' will be ignored in favor of those for `%s'."
-msgstr ""
-"Die Kommandos für «%s» werden ignoriert, \n"
-"die für «%s» werden bevorzugt."
+msgid "%s: Interrupt/Exception caught (code = 0x%x, addr = 0x%x)\n"
+msgstr "%s: bekam Unterbrechung/Ausnahme signalisiert (Kode = 0x%x, Adr = 0x%x)\n"
-#: make-3.76.1/file.c:290
+#: main.c:584
#, c-format
-msgid "Commands for file `%s' were found by implicit rule search,"
+msgid ""
+"\n"
+"Unhandled exception filter called from program %s\n"
+"ExceptionCode = %x\n"
+"ExceptionFlags = %x\n"
+"ExceptionAddress = %x\n"
msgstr ""
-"Die Kommandos für die Datei «%s» wurden aufgrund \n"
-"der Suche nach impliziten Regeln gefunden,"
+"\n"
+"Das Programm %s rief einen Ausnahmefilter auf, \n"
+"der nicht bearbeitet wurde.\n"
+"ExceptionCode = %x\n"
+"ExceptionFlags = %x\n"
+"ExceptionAddress = %x\n"
-#: make-3.76.1/remake.c:614
+#: main.c:592
#, c-format
-msgid "Commands of `%s' are being run.\n"
-msgstr "Die Kommandos von «%s» werden gerade ausgeführt.\n"
+msgid "Access violation: write operation at address %x\n"
+msgstr "Zugriffsverletzung: Schreiboperation an Adresse %x\n"
-#: make-3.76.1/file.c:284
+#: main.c:593
#, c-format
-msgid "Commands were specified for file `%s' at %s:%u,"
-msgstr ""
-"Die Kommandos wurden für die Datei «%s» angegeben \n"
-"an der Stelle %s:%u,"
+msgid "Access violation: read operation at address %x\n"
+msgstr "Zugriffsverletzung: Leseoperation an Adresse %x\n"
-#: make-3.76.1/main.c:321
-msgid "Consider FILE to be infinitely new"
-msgstr "Betrachte die DATEI stets als neu."
+#: main.c:658
+#, c-format
+msgid "find_and_set_shell setting default_shell = %s\n"
+msgstr "find_and_set_shell setzt default_shell = %s\n"
-#: make-3.76.1/main.c:290
-msgid "Consider FILE to be very old and don't remake it"
-msgstr "Betrachte DATEI als sehr alt und erzeuge sie nicht neu."
+#: main.c:701
+#, c-format
+msgid "find_and_set_shell path search set default_shell = %s\n"
+msgstr "find_and_set_shell Suchpfad gesetzt; default_shell = %s\n"
-#: make-3.76.1/remake.c:313
+#: main.c:1004
#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Betrachte Target-Datei «%s».\n"
+msgid "%s is suspending for 30 seconds..."
+msgstr "%s setzt für 30 Sekunden aus..."
-#: make-3.76.1/signame.c:206
-msgid "Continued"
-msgstr "Fortgesetzt"
+#: main.c:1006
+msgid "done sleep(30). Continuing.\n"
+msgstr "«sleep(30)» ist abgeschlossen. Es geht weiter.\n"
-#: make-3.76.1/main.c:1454
-msgid "Couldn't change back to original directory."
-msgstr "Konnte nicht in das ursprüngliche Verzeichnis wechseln."
+#: main.c:1227
+msgid "Makefile from standard input specified twice."
+msgstr "Das Makefile wurde zweimal über die Standardeingabe angegeben."
-#: make-3.76.1/function.c:434
-#, c-format
-msgid "CreatePipe() failed (e=%d)\n"
-msgstr "«CreatePipe()» schlug fehl (e=%d).\n"
+#: main.c:1231
+msgid "fopen (temporary file)"
+msgstr "fopen (temporäre Datei)"
-#: make-3.76.1/remote-cstms.c:94
-#, c-format
-msgid "Customs won't export: %s\n"
-msgstr "Customs wird nicht exportieren: %s\n"
+#: main.c:1237
+msgid "fwrite (temporary file)"
+msgstr "fwrite (temporäre Datei)"
-#: make-3.76.1/main.c:238 make-3.76.1/main.c:261
-msgid "DIRECTORY"
-msgstr "VERZEICHNIS"
+#: main.c:1346
+msgid "Do not specify -j or --jobs if sh.exe is not available."
+msgstr ""
+"Wenn »sh.exe« nicht vorhanden ist, \n"
+"sollten Sie nicht »-j« oder »--jobs« angeben."
-#: make-3.76.1/signame.c:231
-msgid "Danger signal"
-msgstr "Gefahrensignal"
+#: main.c:1347
+msgid "Resetting make for single job mode."
+msgstr "»make« wird so umgestellt, dass nur ein Job laufen kann."
-#: make-3.76.1/remake.c:545
-#, c-format
-msgid "Dependency `%s' does not exist.\n"
-msgstr "Abhängigkeit «%s» existiert nicht.\n"
+#: main.c:1384
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr ""
+"Parallele Abarbeitung (-j) \n"
+"wird auf dieser Plattform nicht unterstützt."
-#: make-3.76.1/remake.c:547
-#, c-format
-msgid "Dependency `%s' is %s than dependent `%s'.\n"
-msgstr "Die Abhängigkeit «%s» ist %s als die abhängige Datei «%s».\n"
+#: main.c:1385
+msgid "Resetting to single job (-j1) mode."
+msgstr "Umstellung auf Einzel-Job-Verarbeitung (-j1)."
-#: make-3.76.1/main.c:299
-msgid "Disable the built-in implicit rules"
-msgstr "Deaktivieren der eingebauten impliziten Regeln."
+#: main.c:1399
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "Interner Fehler: mehrfache --jobserver-fds Optionen"
-#: make-3.76.1/main.c:1151
-msgid "Do not specify -j or --jobs if sh.exe is not available."
+#: main.c:1407
+#, c-format
+msgid "internal error: invalid --jobserver-fds string `%s'"
+msgstr "Interner Fehler: Falsche --jobserver-fds Angabe »%s«"
+
+#: main.c:1417
+msgid "warning: -jN forced in submake: disabling jobserver mode."
msgstr ""
-"Wenn «sh.exe» nicht vorhanden ist, \n"
-"sollten Sie nicht «-j» oder «--jobs» angeben."
+"Warnung: -jN in »make«-Verarbeitungszweig erzwungen: \n"
+"Jobserver-Modus nicht verfügbar"
-#: make-3.76.1/main.c:287
-msgid "Don't actually run any commands; just print them"
-msgstr "Kommandos nur anzeigen, nicht ausführen."
+#: main.c:1427
+msgid "dup jobserver"
+msgstr "Jobserver verdoppelt"
-#: make-3.76.1/main.c:302
-msgid "Don't echo commands"
-msgstr "Gebe die Kommandos nicht aus."
+#: main.c:1430
+msgid "warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+msgstr "Warnung: Kein Jobserver verfügbar: setzen -j1. Fügen »+« zur Ursprungsregel hinzu."
-#: make-3.76.1/main.c:275 make-3.76.1/main.c:280
-msgid "Don't start multiple jobs unless load is below N"
-msgstr "Nur bei Belastung unterhalb N mehrere Prozesse starten."
+#: main.c:1453
+msgid "creating jobs pipe"
+msgstr "Öffnen der Pipe für die Jobs"
-#: make-3.76.1/signame.c:132
-msgid "EMT trap"
-msgstr "EMT abfangen (EMT trap)"
+#: main.c:1463
+msgid "init jobserver pipe"
+msgstr "Initialisierung der Pipe für den jobserver"
-#: make-3.76.1/main.c:2413
-msgid "Entering"
-msgstr "Wechsel in das Verzeichnis"
+#: main.c:1548
+msgid "Updating makefiles....\n"
+msgstr "Aktualisiere »make«-Steuerdateien....\n"
-#: make-3.76.1/main.c:250
-msgid "Environment variables override makefiles"
-msgstr "Umgebungsvariablen überschreiben «make»-Steuerdateien."
+#: main.c:1573
+#, c-format
+msgid "Makefile `%s' might loop; not remaking it.\n"
+msgstr ""
+"»make«-Steuerdatei »%s« könnte eine Schleife enthalten; \n"
+"es wird nicht neu erzeugt.\n"
-#. Fill message buffer with a default message in
-#. * case FormatMessage fails
-#.
-#: make-3.76.1/w32/subproc/w32err.c:20
+#: main.c:1647
#, c-format
-msgid "Error %ld"
-msgstr "Fehler %ld"
+msgid "Failed to remake makefile `%s'."
+msgstr "Konnte die »make«-Steuerdatei »%s« nicht neu erstellen."
-#: make-3.76.1/getloadavg.c:1052
-msgid "Error getting load average"
-msgstr "Fehler beim Bestimmen der durchschnittlichen Last."
+#: main.c:1663
+#, c-format
+msgid "Included makefile `%s' was not found."
+msgstr "Die eingebundene »make«-Steuerdatei »%s« wurde nicht gefunden."
-#: make-3.76.1/vmsfunctions.c:23
-msgid "Error mallocing for FAB\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für «FAB».\n"
+#: main.c:1668
+#, c-format
+msgid "Makefile `%s' was not found"
+msgstr "Die »make«-Steuerdatei »%s« wurde nicht gefunden"
-#: make-3.76.1/vmsfunctions.c:27
-msgid "Error mallocing for NAM\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für «NAM».\n"
+#: main.c:1736
+msgid "Couldn't change back to original directory."
+msgstr "Konnte nicht in das ursprüngliche Verzeichnis wechseln."
-#: make-3.76.1/vmsfunctions.c:69
-msgid "Error mallocing for direct\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für «direct».\n"
+#: main.c:1770
+msgid "Re-executing:"
+msgstr "Erneute Ausführung:"
-#: make-3.76.1/vmsfunctions.c:32
-msgid "Error mallocing for searchspec\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für «searchspec».\n"
+#: main.c:1801
+msgid "unlink (temporary file): "
+msgstr "unlink (temporäre Datei): "
-#: make-3.76.1/job.c:1556
-#, c-format
-msgid "Error spawning, %d\n"
-msgstr "Fehler beim Starten eines Kindprozesses, %d.\n"
+#: main.c:1823
+msgid "No targets specified and no makefile found"
+msgstr "Keine Targets angegeben und keine »make«-Steuerdatei gefunden."
+
+#: main.c:1825
+msgid "No targets"
+msgstr "Keine Targets."
-#: make-3.76.1/main.c:497
+#: main.c:1830
+msgid "Updating goal targets....\n"
+msgstr "Aktualisieren der Ziele....\n"
+
+#: main.c:1856
+msgid "warning: Clock skew detected. Your build may be incomplete."
+msgstr ""
+"Warnung: Mit der Uhr stimmt etwas nicht. \n"
+"Die Bearbeitung könnte unvollständig sein."
+
+#: main.c:2011
#, c-format
-msgid "ExceptionAddress = %x\r\n"
-msgstr "Ausnahmeadresse (ExceptionAddress) = %x\\r\n"
+msgid "Usage: %s [options] [target] ...\n"
+msgstr "Syntax: %s [Optionen] [Target] ...\n"
+
+#: main.c:2013
+msgid "Options:\n"
+msgstr "Optionen:\n"
+
+#: main.c:2094
+msgid "\nReport bugs to <bug-make@gnu.org>.\n"
+msgstr "\nFehlermeldungen an <bug-make@gnu.org>.\n"
-#: make-3.76.1/main.c:493
+#: main.c:2203
#, c-format
-msgid "ExceptionCode = %x\r\n"
-msgstr "Ausnahmekode (ExceptionCode) = %x\\r\n"
+msgid "the `-%c' option requires a positive integral argument"
+msgstr "Die Option »-%c« verlangt eine positive ganze Zahl als Argument."
-#: make-3.76.1/main.c:495
+#: main.c:2627
#, c-format
-msgid "ExceptionFlags = %x\r\n"
-msgstr "Ausnahmemerkmale (ExceptionFlags) = %x\\r\n"
+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"
+"%s\tFree Software Foundation, Inc.\n"
+"%sThis is free software; see the source for copying conditions.\n"
+"%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+"%sPARTICULAR PURPOSE.\n"
+"\n"
+"%sReport bugs to <bug-make@gnu.org>.\n"
+"\n"
+msgstr ""
+", von Richard Stallman und Roland McGrath.\n"
+"%sErstellt für %s\n"
+"%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99\n"
+"%s\tFree Software Foundation, Inc.\n"
+"%sDies ist Freie Software; siehe die Programmquellen für Vervielfältigungsbedingungen.\n"
+"%sEs gibt KEINE Gewährleistung; nicht einmal für VERMARKTUNG oder NUTZBARKEIT FÜR EINEN\n"
+"%sBESONDEREN ZWECK.\n"
+"\n"
+"%sFehlermeldungen an <bug-make@gnu.org>.\n"
+"\n"
-#: make-3.76.1/job.c:1525
+#: main.c:2653
#, c-format
-msgid "Executing %s instead\n"
-msgstr "%s wird stattdessen ausgeführt.\n"
+msgid "\n# Make data base, printed on %s"
+msgstr "\n# »Make« Datenbank, ausgegeben zur Zeit %s."
-#: make-3.76.1/read.c:1011 make-3.76.1/read.c:1167
+#: main.c:2662
#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Überflüssiger Text nach einer «%s»-Anweisung"
+msgid "\n# Finished Make data base on %s\n"
+msgstr "\n# »Make« Datenbank beendet zur Zeit %s.\n"
-#: make-3.76.1/read.c:926
-msgid "Extraneous text after `endef' directive"
-msgstr "Überflüssiger Text nach einer «endef»-Anweisung"
+#: main.c:2717
+msgid "Entering"
+msgstr "Wechsel in das Verzeichnis"
+
+#: main.c:2717
+msgid "Leaving"
+msgstr "Verlassen des Verzeichnisses"
-#: make-3.76.1/main.c:252 make-3.76.1/main.c:289 make-3.76.1/main.c:320
-msgid "FILE"
-msgstr "DATEI"
+#: main.c:2736
+msgid "an unknown directory"
+msgstr "ein unbekanntes Verzeichnis"
-#. The update failed and this makefile was not
-#. from the MAKEFILES variable, so we care.
-#: make-3.76.1/main.c:1359
+#: main.c:2738
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Konnte die «make»-Steuerdatei «%s» nicht neu erstellen."
+msgid "directory `%s'\n"
+msgstr "Verzeichnis »%s«\n"
-#: make-3.76.1/remake.c:621
-#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Fehler beim Aktualisieren der Target-Datei «%s».\n"
+#: misc.c:307
+msgid ". Stop.\n"
+msgstr ". Schluss.\n"
-#: make-3.76.1/remake.c:357
+#: misc.c:329
#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Die Datei «%s» existiert nicht.\n"
+msgid "Unknown error %d"
+msgstr "Unbekannter Fehler %d."
+
+#: misc.c:369 misc.c:384 misc.c:402 read.c:2695
+msgid "virtual memory exhausted"
+msgstr "Der virtuelle Speicher ist verbraucht."
-#: make-3.76.1/remake.c:323
+#: misc.c:653
#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Die Datei «%s» wurde bereits betrachtet.\n"
+msgid "%s access: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s Zugriff: Nutzer %lu (tatsächlich %lu), Gruppe %lu (tatsächlich %lu)\n"
-#: make-3.76.1/signame.c:191
-msgid "File size limit exceeded"
-msgstr "Dateigrößenschranke überschritten"
+#: misc.c:674
+msgid "Initialized"
+msgstr "Initialisiert"
-#: make-3.76.1/remake.c:477
-#, c-format
-msgid "Finished dependencies of target file `%s'.\n"
-msgstr "Fertig mit den Abhängigkeiten für die Target-Datei «%s».\n"
+#: read.c:153
+msgid "Reading makefiles...\n"
+msgstr "Lese »make«-Steuerdateien ...\n"
-#: make-3.76.1/remake.c:336
+#: read.c:334
#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Aktualisierung der Datei «%s» beendet.\n"
+msgid "Reading makefile `%s'"
+msgstr "Lese »make«-Steuerdatei »%s«"
-#: make-3.76.1/signame.c:237
-msgid "Floating point co-processor not available"
-msgstr "Es ist kein Koprozessor für Fließkommaoperationen vorhanden."
+#: read.c:336
+msgid " (no default goal)"
+msgstr " (kein Standard-Ziel)"
-#: make-3.76.1/signame.c:135
-msgid "Floating point exception"
-msgstr "Gleitkommafehler"
+#: read.c:338
+msgid " (search path)"
+msgstr " (Suchpfad)"
-#: make-3.76.1/remake.c:367 make-3.76.1/remake.c:764
-#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Eine implizite Regel für «%s» gefunden.\n"
+#: read.c:340
+msgid " (don't care)"
+msgstr " (macht nichts)"
-#: make-3.76.1/implicit.c:405
-#, c-format
-msgid "Found dependency `%s' as VPATH `%s'\n"
-msgstr "Fand die Abhängigkeit «%s» als VPATH «%s».\n"
+#: read.c:342
+msgid " (no ~ expansion)"
+msgstr " (keine ~-Erweiterung)"
-#: make-3.76.1/remake.c:496
-#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Die Arbeit an der Target-Datei «%s» wurde aufgegeben.\n"
+#: read.c:522
+msgid "invalid syntax in conditional"
+msgstr "Ungültige Syntax in der Bedingung."
-#: make-3.76.1/job.c:274
-#, c-format
-msgid "Got a SIGCHLD; %d unreaped children.\n"
-msgstr "Erhielt ein SIGCHLD; %d unbeendete Kindprozesse.\n"
+#: read.c:531
+msgid "extraneous `endef'"
+msgstr "Überflüssiges »endef«."
-#: make-3.76.1/signame.c:109
-msgid "Hangup"
-msgstr "Aufgelegt"
+#: read.c:543 read.c:570 variable.c:840
+msgid "empty variable name"
+msgstr "Leerer Variablenname"
-#: make-3.76.1/signame.c:216 make-3.76.1/signame.c:225
-msgid "I/O possible"
-msgstr "I/O möglich"
+#: read.c:561
+msgid "empty `override' directive"
+msgstr "Leere »override« Anweisung."
-#: make-3.76.1/signame.c:129
-msgid "IOT trap"
-msgstr "IOT abfangen (IOT trap)"
+#: read.c:584
+msgid "invalid `override' directive"
+msgstr "Ungültige »override«-Anweisung"
-#: make-3.76.1/main.c:259
-msgid "Ignore errors from commands"
-msgstr "Ignoriere Fehler in den Kommandos."
+#: read.c:668
+#, c-format
+msgid "no file name for `%sinclude'"
+msgstr "Kein Dateiname für »%sinclude«."
-#: make-3.76.1/main.c:236
-msgid "Ignored for compatibility"
-msgstr "Aus Kompatibilitätsgründen ignoriert."
+#: read.c:735
+msgid "commands commence before first target"
+msgstr "Kommandos beginnen vor dem ersten Target."
-#: make-3.76.1/signame.c:118
-msgid "Illegal Instruction"
-msgstr "Illegaler Befehl"
+#: read.c:783
+msgid "missing rule before commands"
+msgstr "Es fehlt eine Regel vor den Kommandos."
-#. An included makefile. We don't need
-#. to die, but we do want to complain.
-#: make-3.76.1/main.c:1374
+#: read.c:869
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Die eingebundene «make»-Steuerdatei «%s» wurde nicht gefunden."
+msgid "missing separator%s"
+msgstr "Fehlendes Trennzeichen%s."
-#: make-3.76.1/signame.c:234
-msgid "Information request"
-msgstr "Informationsanforderung"
+#: read.c:871
+msgid " (did you mean TAB instead of 8 spaces?)"
+msgstr " (Meinten Sie TAB anstelle von 8 Leerzeichen?)"
-#: make-3.76.1/misc.c:587
-msgid "Initialized"
-msgstr "Initialisiert"
+#: read.c:1007
+msgid "missing target pattern"
+msgstr "Es fehlt ein Target-Muster"
-#: make-3.76.1/signame.c:112
-msgid "Interrupt"
-msgstr "Abgebrochen (Interrupt)"
+#: read.c:1009
+msgid "multiple target patterns"
+msgstr "Mehrfache Target-Muster."
-#: make-3.76.1/remote-cstms.c:185
-#, c-format
-msgid "Job exported to %s ID %u\n"
-msgstr "Job nach %s ID %u exportiert\n"
+#: read.c:1013
+msgid "target pattern contains no `%%'"
+msgstr "Target-Muster enthält kein »%%«"
-#: make-3.76.1/main.c:270
-msgid "Keep going when some targets can't be made"
-msgstr "Weiterlaufen, auch wenn einige Targets nicht erzeugt werden konnten."
+#: read.c:1054
+msgid "missing `endif'"
+msgstr "Fehlendes »endif«"
-#: make-3.76.1/signame.c:138
-msgid "Killed"
-msgstr "Abgebrochen (Killed)"
+#: read.c:1113
+msgid "Extraneous text after `endef' directive"
+msgstr "Überflüssiger Text nach einer »endef«-Anweisung"
-#: make-3.76.1/main.c:2413
-msgid "Leaving"
-msgstr "Verlassen des Verzeichnisses"
+#: read.c:1142
+msgid "missing `endef', unterminated `define'"
+msgstr "Fehlendes »endef«, nicht abgeschlossenes »define«"
-#: make-3.76.1/job.c:330
+#: read.c:1196 read.c:1352
#, c-format
-msgid "Live child 0x%08lx PID %d%s\n"
-msgstr "Aktiver Kind-Prozeß 0x%08lx PID %d%s\n"
+msgid "Extraneous text after `%s' directive"
+msgstr "Überflüssiger Text nach einer »%s«-Anweisung"
-#: make-3.76.1/implicit.c:421
+#: read.c:1199
#, c-format
-msgid "Looking for a rule with %s file `%s'.\n"
-msgstr "Suche nach einer Regel, in der als %s die Datei «%s» vorkommt.\n"
+msgid "extraneous `%s'"
+msgstr "Überflüssiges »%s«"
-#: make-3.76.1/implicit.c:38
-#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Suche nach einer impliziten Regel für «%s».\n"
+#: read.c:1204
+msgid "only one `else' per conditional"
+msgstr "Es ist nur ein »else« je Verzweigung erlaubt."
-#: make-3.76.1/implicit.c:53
-#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Suche nach einer impliziten Regel für Archiveinträge für «%s».\n"
+#: read.c:1466
+msgid "Malformed per-target variable definition"
+msgstr "Falsche Ziel-bezogene Variablendefinition"
-#: make-3.76.1/main.c:1287
+#: read.c:1548
+msgid "mixed implicit and static pattern rules"
+msgstr "Implizite und statische Muster-Regel vermischt."
+
+#: read.c:1551
+msgid "mixed implicit and normal rules"
+msgstr "Implizite und normale Regel vermischt."
+
+#: read.c:1592
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr ""
-"«make»-Steuerdatei «%s» könnte eine Schleife enthalten; \n"
-"es wird nicht neu erzeugt.\n"
+msgid "target `%s' doesn't match the target pattern"
+msgstr "Target »%s« passt nicht zum Target-Muster"
-#. A normal makefile. We must die later.
-#: make-3.76.1/main.c:1379
+#: read.c:1624 read.c:1722
#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Die «make»-Steuerdatei «%s» wurde nicht gefunden"
+msgid "target file `%s' has both : and :: entries"
+msgstr "Target »%s« enthält sowohl »:« als auch »::« Einträge"
-#: make-3.76.1/arscan.c:718
+#: read.c:1629
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr ""
-"Eintrag «%s» %s: \n"
-"%ld bytes an Position %ld (%ld).\n"
+msgid "target `%s' given more than once in the same rule."
+msgstr "Target »%s« steht mehrfach in derselben Regel."
-#: make-3.76.1/remake.c:594
+#: read.c:1638
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Das Target «%s» muß neu erzeugt werden.\n"
+msgid "warning: overriding commands for target `%s'"
+msgstr "Warnung: Überschreibe die Kommandos für das Target »%s«."
-#: make-3.76.1/amiga.c:48
-msgid "MyExecute: Cannot allocate space for calling a command"
-msgstr "MyExecute: Kann keinen Speicher für Kommandoaufruf belegen."
+#: read.c:1640
+#, c-format
+msgid "warning: ignoring old commands for target `%s'"
+msgstr "Warnung: Ignoriere alte Kommandos für das Target »%s«."
-#: make-3.76.1/dir.c:899 make-3.76.1/dir.c:919
-msgid "No"
-msgstr "Keine"
+#: read.c:2140
+msgid "warning: NUL character seen; rest of line ignored"
+msgstr "Warnung: NUL-Zeichen gelesen; der Rest der Zeile wird ignoriert."
-#: make-3.76.1/remake.c:564
+#: remake.c:220
#, c-format
-msgid "No commands for `%s' and no dependencies actually changed.\n"
-msgstr "Keine Kommandos für «%s» und keine Abhängigkeit wurde verändert.\n"
+msgid "Nothing to be done for `%s'."
+msgstr "Für das Target »%s« gibt es nichts zu tun."
-#: make-3.76.1/remake.c:369 make-3.76.1/remake.c:766
+#: remake.c:221
#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Keine implizite Regel für «%s» gefunden.\n"
+msgid "`%s' is up to date."
+msgstr "»%s« ist bereits aktualisiert."
-#: make-3.76.1/remake.c:572
+#: remake.c:289
#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Es ist nicht notwendig, das Target «%s» neu zu erzeugen."
+msgid "Pruning file `%s'.\n"
+msgstr "Die Datei »%s« wird \"gestutzt\" (der Abhängigkeitsgraph).\n"
-#: make-3.76.1/main.c:1560
-msgid "No targets"
-msgstr "Keine Targets."
-
-#: make-3.76.1/main.c:1558
-msgid "No targets specified and no makefile found"
-msgstr "Keine Targets angegeben und keine «make»-Steuerdatei gefunden."
+#: remake.c:343
+#, c-format
+msgid "Considering target file `%s'.\n"
+msgstr "Betrachte Target-Datei »%s«.\n"
-#: make-3.76.1/remake.c:215
+#: remake.c:350
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Für das Target «%s» gibt es nichts zu tun."
+msgid "Recently tried and failed to update file `%s'.\n"
+msgstr ""
+"Versuchte gerade die Datei »%s« zu aktualisieren, \n"
+"dies schlug aber fehl.\n"
-#: make-3.76.1/main.c:1866
-msgid "Options:\n"
-msgstr "Optionen:\n"
+#: remake.c:354
+#, c-format
+msgid "File `%s' was considered already.\n"
+msgstr "Die Datei »%s« wurde bereits betrachtet.\n"
-#: make-3.76.1/signame.c:173
-msgid "Power failure"
-msgstr "Stromausfall"
+#: remake.c:364
+#, c-format
+msgid "Still updating file `%s'.\n"
+msgstr "Die Datei »%s« wird immer noch aktualisiert.\n"
-#: make-3.76.1/main.c:242
-msgid "Print lots of debugging information"
-msgstr "Gebe viele Informationen zur Fehlersuche aus."
+#: remake.c:367
+#, c-format
+msgid "Finished updating file `%s'.\n"
+msgstr "Aktualisierung der Datei »%s« beendet.\n"
-#: make-3.76.1/main.c:293
-msgid "Print make's internal database"
-msgstr "Gib die interne Datenbank von «make» aus."
+#: remake.c:388
+#, c-format
+msgid "File `%s' does not exist.\n"
+msgstr "Die Datei »%s« existiert nicht.\n"
-#: make-3.76.1/main.c:315
-msgid "Print the current directory"
-msgstr "Gib das aktuelle Verzeichnis aus."
+#: remake.c:398 remake.c:818
+#, c-format
+msgid "Found an implicit rule for `%s'.\n"
+msgstr "Eine implizite Regel für »%s« gefunden.\n"
-#: make-3.76.1/main.c:312
-msgid "Print the version number of make and exit"
-msgstr "Gib die Versionsnummer von «make» aus und beende."
+#: remake.c:400 remake.c:820
+#, c-format
+msgid "No implicit rule found for `%s'.\n"
+msgstr "Keine implizite Regel für »%s« gefunden.\n"
-#: make-3.76.1/main.c:256
-msgid "Print this message and exit"
-msgstr "Gib diese Nachricht aus und beende."
+#: remake.c:406 remake.c:826
+#, c-format
+msgid "Using default commands for `%s'.\n"
+msgstr "Verwende die Standard-Kommandos für »%s«.\n"
-#: make-3.76.1/signame.c:197
-msgid "Profiling timer expired"
-msgstr "Profiling Timer erloschen"
+#: remake.c:426 remake.c:850
+#, c-format
+msgid "Circular %s <- %s dependency dropped."
+msgstr "Zirkuläre Datei %s <- %s Abhängigkeit wird nicht verwendet."
-#: make-3.76.1/job.c:1091
+#: remake.c:504
#, c-format
-msgid "Putting child 0x%08lx PID %05d%s on the chain.\n"
-msgstr "Nehme Kindprozeß 0x%08lx PID %05d%s in die Kette auf.\n"
+msgid "Finished prerequisites of target file `%s'.\n"
+msgstr "Fertig mit den Voraussetzungen für die Ziel-Datei »%s«.\n"
-#: make-3.76.1/signame.c:115
-msgid "Quit"
-msgstr "Quit"
+#: remake.c:510
+#, c-format
+msgid "The prerequisites of `%s' are being made.\n"
+msgstr "Die Voraussetzungen von »%s« werden fertiggestellt.\n"
-#: make-3.76.1/main.c:1488
-msgid "Re-executing:"
-msgstr "Erneute Ausführung:"
+#: remake.c:523
+#, c-format
+msgid "Giving up on target file `%s'.\n"
+msgstr "Die Arbeit an der Target-Datei »%s« wurde aufgegeben.\n"
-#: make-3.76.1/main.c:253
-msgid "Read FILE as a makefile"
-msgstr "Lese die Datei DATEI als «make»-Steuerdatei."
+#: remake.c:528
+#, c-format
+msgid "Target `%s' not remade because of errors."
+msgstr "Das Target »%s« wurde wegen Fehlern nicht aktualisiert."
-#: make-3.76.1/read.c:312
+#: remake.c:576
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Lese «make»-Steuerdatei «%s»"
+msgid "Prerequisite `%s' of target `%s' does not exist.\n"
+msgstr ""
+"Die Datei »%s«, Voraussetzung für das Ziel »%s«, \n"
+"existiert nicht.\n"
-#: make-3.76.1/read.c:138
-msgid "Reading makefiles..."
-msgstr "Lese «make»-Steuerdateien ..."
+#: remake.c:581
+#, c-format
+msgid "Prerequisite `%s' is newer than target `%s'.\n"
+msgstr "Die Datei »%s« ist jünger als das davon abhängige Ziel »%s«.\n"
-#: make-3.76.1/job.c:501
+#: remake.c:584
#, c-format
-msgid "Reaping %s child 0x%08lx PID %d%s\n"
-msgstr "Sammle %s Kindprozeß 0x%08lx PID %d%s\n"
+msgid "Prerequisite `%s' is older than target `%s'.\n"
+msgstr "Die Datei »%s« ist älter als das davon abhängige Ziel »%s«.\n"
-#: make-3.76.1/remake.c:319
+#: remake.c:602
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
+msgid "Target `%s' is double-colon and has no prerequisites.\n"
msgstr ""
-"Versuchte gerade die Datei «%s» zu aktualisieren, \n"
-"dies schlug aber fehl.\n"
+"Das Ziel »%s« hat einen doppelten Doppelpunkt \n"
+"und keine Voraussetzungen.\n"
-#: make-3.76.1/expand.c:92 make-3.76.1/expand.c:97
+#: remake.c:608
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Rekursive Variable «%s» referenziert sich (schließlich) selbst."
+msgid "No commands for `%s' and no prerequisites actually changed.\n"
+msgstr ""
+"Kein Kommando für »%s« und keine Voraussetzung \n"
+"wurde tatsächlich verändert.\n"
-#. If this dependency has already been ruled
-#. "impossible", then the rule fails and don't
-#. bother trying it on the second pass either
-#. since we know that will fail too.
-#: make-3.76.1/implicit.c:376
+#: remake.c:616
#, c-format
-msgid "Rejecting impossible %s dependency `%s'.\n"
-msgstr "Unmögliche %s Abhängigkeit «%s» abgelehnt.\n"
+msgid "No need to remake target `%s'"
+msgstr "Es ist nicht notwendig, das Target »%s« neu zu erzeugen."
-#: make-3.76.1/job.c:589
+#: remake.c:618
#, c-format
-msgid "Removing child 0x%08lx PID %d%s from chain.\n"
-msgstr "Entferne Kindprozeß 0x%08lx PID %d%s aus der Kette.\n"
+msgid "; using VPATH name `%s'"
+msgstr "; benutze VPATH-Name »%s«"
-#: make-3.76.1/main.c:1152
-msgid "Resetting make for single job mode."
-msgstr "«make» wird so umgestellt, dass nur ein Job laufen kann."
+#: remake.c:638
+#, c-format
+msgid "Must remake target `%s'.\n"
+msgstr "Das Target »%s« muß neu erzeugt werden.\n"
-#: make-3.76.1/signame.c:228
-msgid "Resource lost"
-msgstr "Ressource verloren gegangen"
+#: remake.c:644
+#, c-format
+msgid " Ignoring VPATH name `%s'.\n"
+msgstr " Ignoriere VPATH-Name »%s«.\n"
-#: make-3.76.1/main.c:296
-msgid "Run no commands; exit status says if up to date"
-msgstr ""
-"Keine Kommandos ausführen; der Exit-Status gibt an, ob die Dateien\n"
-"aktuell sind."
+#: remake.c:653
+#, c-format
+msgid "Commands of `%s' are being run.\n"
+msgstr "Die Kommandos von »%s« werden gerade ausgeführt.\n"
-#: make-3.76.1/main.c:262
-msgid "Search DIRECTORY for included makefiles"
-msgstr "Durchsuche das VERZEICHNIS nach eingebundenen «make»-Steuerdateien."
+#: remake.c:660
+#, c-format
+msgid "Failed to remake target file `%s'.\n"
+msgstr "Fehler beim Aktualisieren der Target-Datei »%s«.\n"
-#: make-3.76.1/signame.c:144
-msgid "Segmentation fault"
-msgstr "Adressierungsdefekt"
+#: remake.c:663
+#, c-format
+msgid "Successfully remade target file `%s'.\n"
+msgstr "Die Target-Datei »%s« wurde erfolgreich aktualisiert.\n"
-#: make-3.76.1/remake.c:333
+#: remake.c:666
#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Die Datei «%s» wird immer noch aktualisiert.\n"
+msgid "Target file `%s' needs remade under -q.\n"
+msgstr "Target »%s« muss bei -q aktualisiert werden.\n"
-#: make-3.76.1/signame.c:176
-msgid "Stopped"
-msgstr "Angehalten"
+#: remake.c:967
+#, c-format
+msgid "%sNo rule to make target `%s'%s"
+msgstr "%sKeine Regel, um »%s« zu erstellen%s"
-#: make-3.76.1/signame.c:185
-msgid "Stopped (signal)"
-msgstr "Angehalten (signal)"
+#: remake.c:969
+#, c-format
+msgid "%sNo rule to make target `%s', needed by `%s'%s"
+msgstr ""
+"%sKeine Regel vorhanden, um das Target »%s«, \n"
+" benötigt von »%s«, zu erstellen%s"
-#: make-3.76.1/signame.c:179
-msgid "Stopped (tty input)"
-msgstr "Angehalten (tty input)"
+#: remake.c:1170
+#, c-format
+msgid "*** Warning: File `%s' has modification time in the future (%s > %s)"
+msgstr "*** Warnung: Datei »%s« hat Änderungszeit aus der Zukunft (%s > %s)!"
-#: make-3.76.1/signame.c:182
-msgid "Stopped (tty output)"
-msgstr "Angehalten (tty output)"
+#: remake.c:1284
+#, c-format
+msgid ".LIBPATTERNS element `%s' is not a pattern"
+msgstr ".LIBPATTERNS Element `%s' ist kein Muster"
-#: make-3.76.1/remake.c:624
+#: remote-cstms.c:127
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Die Target-Datei «%s» wurde erfolgreich aktualisiert.\n"
+msgid "Customs won't export: %s\n"
+msgstr "Customs wird nicht exportieren: %s\n"
-#: make-3.76.1/main.c:246
-msgid "Suspend process to allow a debugger to attach"
-msgstr "Setze Prozess aus, um das Einklinken eines Debuggers zu ermöglichen."
+#: rule.c:671
+msgid "\n# No implicit rules."
+msgstr "\n# Keine impliziten Regeln vorhanden."
-#: make-3.76.1/remake.c:559
+#: rule.c:674
#, c-format
-msgid "Target `%s' is double-colon and has no dependencies.\n"
-msgstr ""
-"Das Target «%s» hat einen doppelten Doppelpunkt \n"
-"und keine Abhängigkeiten.\n"
+msgid "\n# %u implicit rules, %u"
+msgstr "\n# %u implizite Regeln, %u"
-#: make-3.76.1/remake.c:500
-#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Das Target «%s» wurde wegen Fehlern nicht aktualisiert."
+#: rule.c:683
+msgid " terminal."
+msgstr " Terminal."
-#: make-3.76.1/remake.c:627
+#: rule.c:691
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Target «%s» muss bei -q aktualisiert werden.\n"
+msgid "BUG: num_pattern_rules wrong! %u != %u"
+msgstr "BUG: »num_pattern_rules« falsch! %u != %u"
-#: make-3.76.1/signame.c:156
-msgid "Terminated"
-msgstr "Abgebrochen (Terminated)"
+#: rule.c:695
+msgid "\n# Pattern-specific variable values"
+msgstr "\n# Musterspezifische Variablenwerte"
+
+#: rule.c:710
+msgid "\n# No pattern-specific variable values."
+msgstr "\n# Keine Musterspezifischen Variablenwerte"
-#: make-3.76.1/remake.c:483
+#: rule.c:713
#, c-format
-msgid "The dependencies of `%s' are being made.\n"
-msgstr "Die Abhängigkeiten von «%s» werden festgestellt.\n"
+msgid "\n# %u pattern-specific variable values"
+msgstr "\n# %u Musterspezifische Variablenwerte"
-#: make-3.76.1/main.c:309
-msgid "Touch targets instead of remaking them"
-msgstr ""
-"Die Targets werden nur als aktualisiert markiert,\n"
-"nicht tatsächlich erneuert."
+#: signame.c:97
+msgid "unknown signal"
+msgstr "Unbekanntes Signal"
-#: make-3.76.1/signame.c:121
+#: signame.c:108
+msgid "Hangup"
+msgstr "Aufgelegt"
+
+#: signame.c:111
+msgid "Interrupt"
+msgstr "Abgebrochen (Interrupt)"
+
+#: signame.c:114
+msgid "Quit"
+msgstr "Quit"
+
+#: signame.c:117
+msgid "Illegal Instruction"
+msgstr "Illegaler Befehl"
+
+#: signame.c:120
msgid "Trace/breakpoint trap"
msgstr "Verfolgen/anhalten abfangen (Trace/breakpoint trap)"
-#: make-3.76.1/implicit.c:384
-#, c-format
-msgid "Trying %s dependency `%s'.\n"
-msgstr "Versuche %s Abhängigkeit «%s».\n"
-
-#: make-3.76.1/implicit.c:337
-#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Versuche Muster-Regel mit Ersetzung «%.*s».\n"
+#: signame.c:125
+msgid "Aborted"
+msgstr "Abgebrochen (Aborted)"
-#: make-3.76.1/main.c:318
-msgid "Turn off -w, even if it was turned on implicitly"
-msgstr "Schalte -w aus, selbst wenn es implizit eingeschaltet wurde."
+#: signame.c:128
+msgid "IOT trap"
+msgstr "IOT abfangen (IOT trap)"
-#: make-3.76.1/main.c:306
-msgid "Turns off -k"
-msgstr "Schaltet -k ab."
+#: signame.c:131
+msgid "EMT trap"
+msgstr "EMT abfangen (EMT trap)"
-#: make-3.76.1/misc.c:282
-#, c-format
-msgid "Unknown error %d"
-msgstr "Unbekannter Fehler %d."
+#: signame.c:134
+msgid "Floating point exception"
+msgstr "Gleitkommafehler"
-#: make-3.76.1/misc.c:277
-msgid "Unknown error 12345678901234567890"
-msgstr "Unbekannter Fehler 12345678901234567890"
+#: signame.c:137
+msgid "Killed"
+msgstr "Abgebrochen (Killed)"
-#: make-3.76.1/job.c:491
-#, c-format
-msgid "Unknown%s job %d"
-msgstr "Unbekannter%s Job %d"
+#: signame.c:140
+msgid "Bus error"
+msgstr "Bus-Fehler"
-#: make-3.76.1/main.c:1532
-msgid "Updating goal targets...."
-msgstr "Aktualisieren der Targets...."
+#: signame.c:143
+msgid "Segmentation fault"
+msgstr "Adressierungsdefekt"
-#: make-3.76.1/main.c:1262
-msgid "Updating makefiles...."
-msgstr "Aktualisiere «make»-Steuerdateien...."
+#: signame.c:146
+msgid "Bad system call"
+msgstr "Falscher Systemaufruf"
-#: make-3.76.1/signame.c:209
-msgid "Urgent I/O condition"
-msgstr "Dringende I/O-Bedingung"
+#: signame.c:149
+msgid "Broken pipe"
+msgstr "Zerstörte Pipe"
-#: make-3.76.1/main.c:1864
-#, c-format
-msgid "Usage: %s [options] [target] ...\n"
-msgstr "Syntax: %s [Optionen] [Target] ...\n"
+#: signame.c:152
+msgid "Alarm clock"
+msgstr "Wecksignal"
-#: make-3.76.1/misc.c:666
-msgid "User"
-msgstr "Nutzer"
+#: signame.c:155
+msgid "Terminated"
+msgstr "Abgebrochen (Terminated)"
-#: make-3.76.1/signame.c:159
+#: signame.c:158
msgid "User defined signal 1"
msgstr "Nutzersignal 1"
-#: make-3.76.1/signame.c:162
+#: signame.c:161
msgid "User defined signal 2"
msgstr "Nutzersignal 2"
-#: make-3.76.1/remake.c:375 make-3.76.1/remake.c:772
-#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Verwende die Standard-Kommandos für «%s».\n"
+#: signame.c:166 signame.c:169
+msgid "Child exited"
+msgstr "Kindprozeß beendet"
+
+#: signame.c:172
+msgid "Power failure"
+msgstr "Stromausfall"
+
+#: signame.c:175
+msgid "Stopped"
+msgstr "Angehalten"
+
+#: signame.c:178
+msgid "Stopped (tty input)"
+msgstr "Angehalten (tty input)"
+
+#: signame.c:181
+msgid "Stopped (tty output)"
+msgstr "Angehalten (tty output)"
-#: make-3.76.1/signame.c:194
+#: signame.c:184
+msgid "Stopped (signal)"
+msgstr "Angehalten (signal)"
+
+#: signame.c:187
+msgid "CPU time limit exceeded"
+msgstr "CPU-Zeitschranke überschritten"
+
+#: signame.c:190
+msgid "File size limit exceeded"
+msgstr "Dateigrößenschranke überschritten"
+
+#: signame.c:193
msgid "Virtual timer expired"
msgstr "Virtueller Timer erloschen"
-#: make-3.76.1/main.c:324
-msgid "Warn when an undefined variable is referenced"
-msgstr ""
-"Gib eine Warnung aus, wenn eine undefinierte Variable referenziert wird."
+#: signame.c:196
+msgid "Profiling timer expired"
+msgstr "Profiling Timer erloschen"
-#: make-3.76.1/signame.c:203
+#: signame.c:202
msgid "Window changed"
msgstr "Fenster hat sich verändert"
-#: make-3.76.1/job.c:233
-#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Fehler %d (ignoriert)"
+#: signame.c:205
+msgid "Continued"
+msgstr "Fortgesetzt"
-#: make-3.76.1/remake.c:216
-#, c-format
-msgid "`%s' is up to date."
-msgstr "«%s» ist bereits aktualisiert."
+#: signame.c:208
+msgid "Urgent I/O condition"
+msgstr "Dringende I/O-Bedingung"
-#: make-3.76.1/variable.c:880
-msgid "`override' directive"
-msgstr "«override»-Anweisung"
+#: signame.c:215 signame.c:224
+msgid "I/O possible"
+msgstr "I/O möglich"
-#: make-3.76.1/main.c:2432
-msgid "an unknown directory"
-msgstr "ein unbekanntes Verzeichnis"
+#: signame.c:218
+msgid "SIGWIND"
+msgstr "SIGWIND"
-#: make-3.76.1/w32/subproc/sub_proc.c:971
-#, c-format
-msgid "arg with white space or doublequotes: %s\n"
-msgstr "Argument mit Leerzeichen oder Anführungszeichen: %s\n"
+#: signame.c:221
+msgid "SIGPHONE"
+msgstr "SIGPHONE"
-#: make-3.76.1/ar.c:49
-#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "Versuch, eine nicht unterstützte Funktionalität zu verwenden: «%s»."
+#: signame.c:227
+msgid "Resource lost"
+msgstr "Ressource verloren gegangen"
-#: make-3.76.1/function.c:756 make-3.76.1/variable.c:883
-msgid "automatic"
-msgstr "automatisch"
+#: signame.c:230
+msgid "Danger signal"
+msgstr "Gefahrensignal"
-#: make-3.76.1/file.c:294
-#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr ""
-"aber «%s» wird jetzt als dieselbe Datei \n"
-"wie «%s» betrachtet."
+#: signame.c:233
+msgid "Information request"
+msgstr "Informationsanforderung"
-#: make-3.76.1/file.c:324
+#: signame.c:236
+msgid "Floating point co-processor not available"
+msgstr "Es ist kein Koprozessor für Fließkommaoperationen vorhanden."
+
+#: variable.c:1128
+msgid "# No variables."
+msgstr "# Keine Variablen vorhanden."
+
+#: variable.c:1131
#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr ""
-"«%s» mit doppeltem Doppelpunkt kann nicht in \n"
-"«%s» mit einfachem Doppelpunkt geändert werden."
+msgid "# %u variables in %u hash buckets.\n"
+msgstr "# %u Variablen für %u hash-Werte.\n"
-#: make-3.76.1/file.c:319
+#: variable.c:1134
#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
-msgstr ""
-"«%s» mit einfachem Doppelpunkt kann nicht in \n"
-"«%s» mit doppeltem Doppelpunkt geändert werden."
+msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
+msgstr "# Durchschnittlich %.1f Variablen pro Wert, max %u je Wert.\n"
-#: make-3.76.1/job.c:1316
-msgid "cannot enforce load limit: "
-msgstr "Lasteinschränkung kann nicht erzwungen werden: "
+#: variable.c:1141
+#, c-format
+msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
+msgstr "# Durchschnittlich %d.%d Variablen pro Wert, max %u je Wert.\n"
-#. An errno value of zero means getloadavg is just unsupported.
-#: make-3.76.1/job.c:1314
-msgid "cannot enforce load limits on this operating system"
-msgstr ""
-"Auf diesem Betriebssystem kann die Einhaltung\n"
-"der Lastbeschränkung nicht erzwungen werden."
+#: variable.c:1156
+msgid "\n# Variables\n"
+msgstr "\n# Variablen\n"
-#: make-3.76.1/function.c:750 make-3.76.1/variable.c:877
-msgid "command line"
-msgstr "Kommandozeile"
+#: vpath.c:552
+msgid "\n# VPATH Search Paths\n"
+msgstr "\n# VPATH Suchpfade\n"
-#: make-3.76.1/read.c:700
-msgid "commands commence before first target"
-msgstr "Kommandos beginnen vor dem ersten Target."
+#: vpath.c:569
+msgid "# No `vpath' search paths."
+msgstr "# Keine »vpath« Suchpfade."
-#: make-3.76.1/function.c:429
+#: vpath.c:571
#, c-format
-msgid "create_child_process: DuplicateHandle(Err) failed (e=%d)\n"
-msgstr "«create_child_process»: «DuplicateHandle(Err)» schlug fehl (e=%d).\n"
+msgid "\n# %u `vpath' search paths.\n"
+msgstr "\n# %u »vpath« Suchpfade.\n"
-#: make-3.76.1/function.c:419
-#, c-format
-msgid "create_child_process: DuplicateHandle(In) failed (e=%d)\n"
-msgstr "«create_child_process»: «DuplicateHandle(In)» schlug fehl (e=%d).\n"
+#: vpath.c:574
+msgid "\n# No general (`VPATH' variable) search path."
+msgstr "\n# Kein allgemeiner (Variable »VPATH«) Suchpfad."
-#: make-3.76.1/getopt.c:1017 make-3.76.1/getopt1.c:149
-msgid "digits occur in two different argv-elements.\n"
+#: vpath.c:580
+msgid ""
+"\n"
+"# General (`VPATH' variable) search path:\n"
+"# "
msgstr ""
-"Zahlen erscheinen in zwei verschiedenen \n"
-"Einträgen des «argv»-Vektors.\n"
+"\n"
+"# Allgemeiner (Variable »VPATH«) Suchpfad:\n"
+"# "
-#: make-3.76.1/main.c:2434
-#, c-format
-msgid "directory `%s'\n"
-msgstr "Verzeichnis «%s»\n"
+#~ msgid "\n# Implicit Rules"
+#~ msgstr "\n# Implizite Regeln"
-#: make-3.76.1/main.c:785
-msgid "done sleep(30). Continuing.\n"
-msgstr "«sleep(30)» ist abgeschlossen. Es geht weiter.\n"
+#~ msgid " not"
+#~ msgstr " nicht"
-#: make-3.76.1/read.c:528 make-3.76.1/read.c:550
-msgid "empty `override' directive"
-msgstr "Leere «override» Anweisung."
+#~ msgid " remote"
+#~ msgstr " entfernter"
-#: make-3.76.1/w32/subproc/sub_proc.c:924
-#, c-format
-msgid "empty string arg: %s\n"
-msgstr "Argument ist leere Zeichenkette: %s.\n"
+#~ msgid " with arg %s"
+#~ msgstr "mit Argument %s"
-#: make-3.76.1/main.c:417
-msgid "empty string invalid as file name"
-msgstr "Eine leere Zeichenkette ist als Dateiname ungültig."
+#~ msgid "%s finished."
+#~ msgstr "%s beendet."
-#: make-3.76.1/variable.c:705 make-3.76.1/variable.c:707
-msgid "empty variable name"
-msgstr "Leerer Variablenname"
+#~ msgid "%s: unknown signal"
+#~ msgstr "%s: unbekanntes Signal"
-#: make-3.76.1/function.c:741 make-3.76.1/variable.c:868
-msgid "environment"
-msgstr "Umgebung"
+#~ msgid "%sGNU Make version %s"
+#~ msgstr "%sGNU Make Version %s"
-#: make-3.76.1/function.c:747
-msgid "environment override"
-msgstr "Umgebung überschrieben"
+#~ msgid "1-minute: %f "
+#~ msgstr "1-Minuten-Schnitt: %f "
-#: make-3.76.1/variable.c:874
-msgid "environment under -e"
-msgstr "Umgebung per -e"
+#~ msgid "15-minute: %f "
+#~ msgstr "15-Minuten-Schnitt: %f "
-#: make-3.76.1/job.c:1605
-msgid "execve: "
-msgstr "«execve»: "
+#~ msgid "5-minute: %f "
+#~ msgstr "5-Minuten-Schnitt: %f "
-#: make-3.76.1/job.c:1704 make-3.76.1/job.c:1709
-msgid "execvp: "
-msgstr "«execvp»: "
+#~ msgid "?? getopt returned character code 0%o ??\n"
+#~ msgstr "?? »getopt« lieferte Zeichencode 0%o ??\n"
-#: make-3.76.1/function.c:439
-msgid "expand_function: process_init_fd() failed\n"
-msgstr "«expand_function»: «process_init_fd()» schlug fehl.\n"
+#~ msgid "Allow N jobs at once; infinite jobs with no arg"
+#~ msgstr ""
+#~ "Erlaube N Jobs gleichzeitig; unbegrenzte Anzahl \n"
+#~ "von Jobs ohne Argument."
-#: make-3.76.1/function.c:449
-#, c-format
-msgid "expand_function: unable to launch process (e=%d)\n"
-msgstr "«expand_function»: Der Prozess kann nicht gestartet werden (e=%d).\n"
+#~ msgid "Change to DIRECTORY before doing anything"
+#~ msgstr "Wechsle in das VERZEICHNIS bevor etwas anderes ausgeführt wird."
-#: make-3.76.1/remote-cstms.c:138
-msgid "exporting: "
-msgstr "Export: "
+#~ msgid "Child"
+#~ msgstr "Kindprozess"
-#: make-3.76.1/remote-cstms.c:171
-#, c-format
-msgid "exporting: %s"
-msgstr "Export: %s"
+#~ msgid "Consider FILE to be infinitely new"
+#~ msgstr "Betrachte die DATEI stets als neu."
-#: make-3.76.1/remote-cstms.c:129
-msgid "exporting: Couldn't create return socket."
-msgstr "Export: Konnte Rückverbindung nicht herstellen."
+#~ msgid "Consider FILE to be very old and don't remake it"
+#~ msgstr "Betrachte DATEI als sehr alt und erzeuge sie nicht neu."
-#: make-3.76.1/read.c:1015
-#, c-format
-msgid "extraneous `%s'"
-msgstr "Überflüssiges «%s»"
+#~ msgid "DIRECTORY"
+#~ msgstr "VERZEICHNIS"
-#: make-3.76.1/read.c:502
-msgid "extraneous `endef'"
-msgstr "Überflüssiges «endef»."
+#~ msgid "Dependency `%s' does not exist.\n"
+#~ msgstr "Abhängigkeit »%s« existiert nicht.\n"
-#: make-3.76.1/main.c:1039
-msgid "fopen (temporary file)"
-msgstr "fopen (temporäre Datei)"
+#~ msgid "Disable the built-in implicit rules"
+#~ msgstr "Deaktivieren der eingebauten impliziten Regeln."
-#: make-3.76.1/main.c:1045
-msgid "fwrite (temporary file)"
-msgstr "fwrite (temporäre Datei)"
+#~ msgid "Don't actually run any commands; just print them"
+#~ msgstr "Kommandos nur anzeigen, nicht ausführen."
-#: make-3.76.1/main.c:689 make-3.76.1/main.c:1000
-msgid "getcwd: "
-msgstr "«getcwd»: "
+#~ msgid "Don't echo commands"
+#~ msgstr "Gebe die Kommandos nicht aus."
-#: make-3.76.1/main.c:691 make-3.76.1/main.c:1002
-#, c-format
-msgid "getwd: %s"
-msgstr "«getwd»: %s"
+#~ msgid "Don't start multiple jobs unless load is below N"
+#~ msgstr "Nur bei Belastung unterhalb N mehrere Prozesse starten."
-#: make-3.76.1/implicit.c:377 make-3.76.1/implicit.c:385
-msgid "implicit"
-msgstr "implizite"
+#~ msgid "Environment variables override makefiles"
+#~ msgstr "Umgebungsvariablen überschreiben »make«-Steuerdateien."
-#: make-3.76.1/implicit.c:422
-msgid "intermediate"
-msgstr "Zwischenstufe"
+#~ msgid "Error %ld"
+#~ msgstr "Fehler %ld"
-#: make-3.76.1/job.c:1419
-#, c-format
-msgid "internal error: `%s' command_state %d in child_handler"
-msgstr "Interner Fehler: «%s» command_state %d in child_handler."
+#~ msgid "Error getting load average"
+#~ msgstr "Fehler beim Bestimmen der durchschnittlichen Last."
-#: make-3.76.1/read.c:494
-msgid "invalid syntax in conditional"
-msgstr "Ungültige Syntax in der Bedingung."
+#~ msgid "Error mallocing for FAB\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für »FAB«.\n"
-#: make-3.76.1/arscan.c:154
-#, c-format
-msgid "lbr$ini_control failed with status = %d"
-msgstr "«lbr$ini_control» schlug mit Status = %d fehl."
+#~ msgid "Error mallocing for NAM\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für »NAM«.\n"
-#: make-3.76.1/arscan.c:72
-#, c-format
-msgid "lbr$set_module failed to extract module info, status = %d"
-msgstr "«lbr$set_module» konnte keine Modulinformation auslesen; Status = %d."
+#~ msgid "Error mallocing for direct\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für »direct«.\n"
-#: make-3.76.1/job.c:502
-msgid "losing"
-msgstr "erfolglosen"
+#~ msgid "Error mallocing for searchspec\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für »searchspec«.\n"
-#: make-3.76.1/job.c:1654
-#, c-format
-msgid "make reaped child pid %d, still waiting for pid %d\n"
-msgstr ""
-"«make» registrierte die Beendigung des Kindprozesses mit ID %d,\n"
-"wartet jedoch noch auf den Prozess mit ID %d.\n"
+#~ msgid "Error spawning, %d\n"
+#~ msgstr "Fehler beim Starten eines Kindprozesses, %d.\n"
-#. No `endef'!!
-#: make-3.76.1/read.c:955
-msgid "missing `endef', unterminated `define'"
-msgstr "Fehlendes «endef», nicht abgeschlossenes «define»"
+#~ msgid "ExceptionAddress = %x\\r\n"
+#~ msgstr "Ausnahmeadresse (ExceptionAddress) = %x\\r\n"
-#: make-3.76.1/read.c:864
-msgid "missing `endif'"
-msgstr "Fehlendes «endif»"
+#~ msgid "ExceptionCode = %x\\r\n"
+#~ msgstr "Ausnahmekode (ExceptionCode) = %x\\r\n"
-#: make-3.76.1/read.c:744
-msgid "missing rule before commands"
-msgstr "Es fehlt eine Regel vor den Kommandos."
+#~ msgid "ExceptionFlags = %x\\r\n"
+#~ msgstr "Ausnahmemerkmale (ExceptionFlags) = %x\\r\n"
-#: make-3.76.1/read.c:763
-msgid "missing separator"
-msgstr "Fehlendes Trennzeichen."
+#~ msgid "FILE"
+#~ msgstr "DATEI"
-#: make-3.76.1/read.c:817
-msgid "missing target pattern"
-msgstr "Es fehlt ein Target-Muster"
+#~ msgid "Ignore errors from commands"
+#~ msgstr "Ignoriere Fehler in den Kommandos."
-#: make-3.76.1/read.c:1280
-msgid "mixed implicit and normal rules"
-msgstr "Implizite und normale Regel vermischt."
+#~ msgid "Ignored for compatibility"
+#~ msgstr "Aus Kompatibilitätsgründen ignoriert."
-#: make-3.76.1/read.c:1277
-msgid "mixed implicit and static pattern rules"
-msgstr "Implizite und statische Muster-Regel vermischt."
+#~ msgid "Job exported to %s ID %u\n"
+#~ msgstr "Job nach %s ID %u exportiert\n"
-#: make-3.76.1/read.c:819
-msgid "multiple target patterns"
-msgstr "Mehrfache Target-Muster."
+#~ msgid "Keep going when some targets can't be made"
+#~ msgstr "Weiterlaufen, auch wenn einige Targets nicht erzeugt werden konnten."
-#: make-3.76.1/vmsfunctions.c:227
-msgid "never"
-msgstr "niemals"
+#~ msgid "MyExecute: Cannot allocate space for calling a command"
+#~ msgstr "MyExecute: Kann keinen Speicher für Kommandoaufruf belegen."
-#: make-3.76.1/remake.c:548
-msgid "newer"
-msgstr "jünger"
+#~ msgid "Print lots of debugging information"
+#~ msgstr "Gebe viele Informationen zur Fehlersuche aus."
-#: make-3.76.1/dir.c:904 make-3.76.1/dir.c:924
-msgid "no"
-msgstr "keine"
+#~ msgid "Print make's internal database"
+#~ msgstr "Gib die interne Datenbank von »make« aus."
-#: make-3.76.1/read.c:634
-#, c-format
-msgid "no file name for `%sinclude'"
-msgstr "Kein Dateiname für «%sinclude»."
+#~ msgid "Print the current directory"
+#~ msgstr "Gib das aktuelle Verzeichnis aus."
-#: make-3.76.1/function.c:1175 make-3.76.1/function.c:1177
-msgid "non-numeric first argument to `word' function"
-msgstr "Nicht-numerisches erstes Argument zur «word»-Funktion."
+#~ msgid "Print the version number of make and exit"
+#~ msgstr "Gib die Versionsnummer von »make« aus und beende."
-#: make-3.76.1/function.c:1242 make-3.76.1/function.c:1244
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "Nicht-numerisches erstes Argument für die «wordlist»-Funktion."
+#~ msgid "Print this message and exit"
+#~ msgstr "Gib diese Nachricht aus und beende."
-#: make-3.76.1/function.c:1271 make-3.76.1/function.c:1273
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "Nicht-numerisches zweites Argument zur «wordlist»-Funktion."
+#~ msgid "Read FILE as a makefile"
+#~ msgstr "Lese die Datei DATEI als »make«-Steuerdatei."
-#: make-3.76.1/getopt.c:1044 make-3.76.1/getopt1.c:180
-msgid "non-option ARGV-elements: "
-msgstr "Einträge im «argv»-Vektor, die nicht Option sind: "
+#~ msgid "Run no commands; exit status says if up to date"
+#~ msgstr ""
+#~ "Keine Kommandos ausführen; der Exit-Status gibt an, ob die Dateien\n"
+#~ "aktuell sind."
-#: make-3.76.1/remake.c:548
-msgid "older"
-msgstr "älter"
+#~ msgid "Search DIRECTORY for included makefiles"
+#~ msgstr "Durchsuche das VERZEICHNIS nach eingebundenen »make«-Steuerdateien."
-#: make-3.76.1/read.c:1020
-msgid "only one `else' per conditional"
-msgstr "Es ist nur ein «else» je Verzweigung erlaubt."
+#~ msgid "Suspend process to allow a debugger to attach"
+#~ msgstr "Setze Prozess aus, um das Einklinken eines Debuggers zu ermöglichen."
-#: make-3.76.1/getopt.c:1019 make-3.76.1/getopt1.c:151
-#, c-format
-msgid "option %c\n"
-msgstr "Option %c\n"
+#~ msgid "Touch targets instead of remaking them"
+#~ msgstr ""
+#~ "Die Targets werden nur als aktualisiert markiert,\n"
+#~ "nicht tatsächlich erneuert."
-#: make-3.76.1/getopt1.c:132
-#, c-format
-msgid "option %s"
-msgstr "Option %s"
+#~ msgid "Trying %s dependency `%s'.\n"
+#~ msgstr "Versuche %s Abhängigkeit »%s«.\n"
-#: make-3.76.1/getopt.c:1023 make-3.76.1/getopt1.c:155
-msgid "option a\n"
-msgstr "Option a\n"
+#~ msgid "Turn off -w, even if it was turned on implicitly"
+#~ msgstr "Schalte -w aus, selbst wenn es implizit eingeschaltet wurde."
-#: make-3.76.1/getopt.c:1027 make-3.76.1/getopt1.c:159
-msgid "option b\n"
-msgstr "Option b\n"
+#~ msgid "Turns off -k"
+#~ msgstr "Schaltet -k ab."
-#: make-3.76.1/getopt.c:1031 make-3.76.1/getopt1.c:163
-#, c-format
-msgid "option c with value `%s'\n"
-msgstr "Option c mit Wert `%s'\n"
+#~ msgid "Unknown error 12345678901234567890"
+#~ msgstr "Unbekannter Fehler 12345678901234567890"
-#: make-3.76.1/getopt1.c:167
-#, c-format
-msgid "option d with value `%s'\n"
-msgstr "Option d mit Wert «%s»\n"
+#~ msgid "Unknown%s job %d"
+#~ msgstr "Unbekannter%s Job %d"
-#: make-3.76.1/w32/subproc/sub_proc.c:918
-#, c-format
-msgid "original arg: %s\n"
-msgstr "Ursprüngliches Argument: %s\n"
+#~ msgid "User"
+#~ msgstr "Nutzer"
-#: make-3.76.1/function.c:753 make-3.76.1/read.c:524
-msgid "override"
-msgstr "überschreiben"
+#~ msgid "Warn when an undefined variable is referenced"
+#~ msgstr "Gib eine Warnung aus, wenn eine undefinierte Variable referenziert wird."
-#: make-3.76.1/w32/subproc/sub_proc.c:976
-#, c-format
-msgid "plain arg: %s\n"
-msgstr "Pures Argument: %s\n"
+#~ msgid "arg with white space or doublequotes: %s\n"
+#~ msgstr "Argument mit Leerzeichen oder Anführungszeichen: %s\n"
-#: make-3.76.1/w32/subproc/sub_proc.c:520
-#, c-format
-msgid "process_begin: CreateProcess(%s, %s, ...) failed.\n"
-msgstr "«process_begin»: «CreateProcess(%s, %s, ...)» schlug fehl.\n"
+#~ msgid "automatic"
+#~ msgstr "automatisch"
-#: make-3.76.1/job.c:1028 make-3.76.1/job.c:1625
-#, c-format
-msgid "process_easy() failed failed to launch process (e=%d)\n"
-msgstr "«process_easy()» konnte den Prozess nicht starten (e=%d).\n"
+#~ msgid "command line"
+#~ msgstr "Kommandozeile"
-#: make-3.76.1/w32/subproc/sub_proc.c:1111
-#, c-format
-msgid "process_easy: DuplicateHandle(Err) failed (e=%d)\n"
-msgstr "«process_easy»: «DuplicateHandle(Err)» schlug fehl (e=%d).\n"
+#~ msgid "digits occur in two different argv-elements.\n"
+#~ msgstr ""
+#~ "Zahlen erscheinen in zwei verschiedenen \n"
+#~ "Einträgen des »argv«-Vektors.\n"
-#: make-3.76.1/w32/subproc/sub_proc.c:1087
-#, c-format
-msgid "process_easy: DuplicateHandle(In) failed (e=%d)\n"
-msgstr "«process_easy»: «DuplicateHandle(In)» schlug fehl (e=%d).\n"
+#~ msgid "empty string arg: %s\n"
+#~ msgstr "Argument ist leere Zeichenkette: %s.\n"
-#: make-3.76.1/w32/subproc/sub_proc.c:1099
-#, c-format
-msgid "process_easy: DuplicateHandle(Out) failed (e=%d)\n"
-msgstr "«process_easy»: «DuplicateHandle(Out)» schlug fehl (e=%d).\n"
+#~ msgid "environment"
+#~ msgstr "Umgebung"
-#: make-3.76.1/main.c:504
-msgid "read"
-msgstr "Lese"
+#~ msgid "environment override"
+#~ msgstr "Umgebung überschrieben"
-#: make-3.76.1/implicit.c:377 make-3.76.1/implicit.c:385
-msgid "rule"
-msgstr "explizite"
+#~ msgid "environment under -e"
+#~ msgstr "Umgebung per -e"
-#: make-3.76.1/vmsfunctions.c:81
-#, c-format
-msgid "sys$search failed with %d\n"
-msgstr "«sys$search» schlug mit %d fehl.\n"
+#~ msgid "execve: "
+#~ msgstr "»execve«: "
-#: make-3.76.1/read.c:1320
-#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "Target «%s» passt nicht zum Target-Muster"
+#~ msgid "execvp: "
+#~ msgstr "»execvp«: "
-#: make-3.76.1/read.c:1360
-#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "Target «%s» steht mehrfach in derselben Regel."
+#~ msgid "expand_function: unable to launch process (e=%d)\n"
+#~ msgstr "»expand_function«: Der Prozess kann nicht gestartet werden (e=%d).\n"
-#: make-3.76.1/read.c:1352 make-3.76.1/read.c:1454
-#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "Target «%s» enthält sowohl «:» als auch «::» Einträge"
+#~ msgid "exporting: "
+#~ msgstr "Export: "
-#: make-3.76.1/read.c:824
-msgid "target pattern contains no `%%'"
-msgstr "Target-Muster enthält kein «%%»"
+#~ msgid "exporting: %s"
+#~ msgstr "Export: %s"
-#: make-3.76.1/main.c:1813
-#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "Die Option «-%c» verlangt eine positive ganze Zahl als Argument."
+#~ msgid "exporting: Couldn't create return socket."
+#~ msgstr "Export: Konnte Rückverbindung nicht herstellen."
-#: make-3.76.1/function.c:1185 make-3.76.1/function.c:1188
-msgid "the `word' function takes a one-origin index argument"
-msgstr "Die «word»-Funktion erwartet ein eindeutiges Index-Argument."
+#~ msgid "getcwd: "
+#~ msgstr "»getcwd«: "
-#: make-3.76.1/remake.c:845
-#, c-format
-msgid "touch %s"
-msgstr "%s wird als aktualisiert markiert."
+#~ msgid "getwd: %s"
+#~ msgstr "»getwd«: %s"
-#: make-3.76.1/ar.c:140
-msgid "touch archive member is not available on VMS"
-msgstr ""
-"VMS stellt nicht die Möglichkeit einer Änderung \n"
-"der Zeitmarken von Archiveinträgen zur Verfügung."
+#~ msgid "implicit"
+#~ msgstr "implizite"
-#: make-3.76.1/ar.c:172
-#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: Archiv «%s» existiert nicht."
+#~ msgid "intermediate"
+#~ msgstr "Zwischenstufe"
-#: make-3.76.1/ar.c:187
-#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr ""
-"touch: Ungünstiger Rückgabewert beim Zugriff \n"
-"von ar_member_touch auf «%s»."
+#~ msgid "losing"
+#~ msgstr "erfolglosen"
-#: make-3.76.1/ar.c:181
-#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: Eintrag «%s» existiert nicht in «%s»."
+#~ msgid "never"
+#~ msgstr "niemals"
-#: make-3.76.1/ar.c:175
-#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch: «%s» ist kein gültiges Archiv."
+#~ msgid "newer"
+#~ msgstr "jünger"
-#: make-3.76.1/arscan.c:165
-#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr ""
-"Konnte die Bibliothek «%s» auf der Suche \n"
-"nach dem Eintrag «%s» nicht öffnen."
+#~ msgid "non-option ARGV-elements: "
+#~ msgstr "Einträge im »argv«-Vektor, die nicht Option sind: "
-#: make-3.76.1/function.c:729
-msgid "undefined"
-msgstr "nicht definiert"
+#~ msgid "older"
+#~ msgstr "älter"
-#. There is too much variation in Sys V signal numbers and names, so
-#. we must initialize them at runtime.
-#: make-3.76.1/signame.c:59
-msgid "unknown signal"
-msgstr "Unbekanntes Signal"
+#~ msgid "option %c\n"
+#~ msgstr "Option %c\n"
-#. It disappeared; so what.
-#: make-3.76.1/commands.c:499 make-3.76.1/file.c:403
-msgid "unlink: "
-msgstr "Verbindung verloren (unlink): "
+#~ msgid "option %s"
+#~ msgstr "Option %s"
-#: make-3.76.1/function.c:1541
-#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "Nicht beendeter Aufruf der Funktion «%s»: «%c» fehlt."
+#~ msgid "option a\n"
+#~ msgstr "Option a\n"
-#: make-3.76.1/expand.c:223 make-3.76.1/expand.c:225
-msgid "unterminated variable reference"
-msgstr "Nicht abgeschlossene Variablenreferenz."
+#~ msgid "option b\n"
+#~ msgstr "Option b\n"
-#: make-3.76.1/misc.c:318 make-3.76.1/misc.c:330 make-3.76.1/read.c:2238
-msgid "virtual memory exhausted"
-msgstr "Der virtuelle Speicher ist verbraucht."
+#~ msgid "option c with value `%s'\n"
+#~ msgstr "Option c mit Wert `%s'\n"
-#: make-3.76.1/read.c:1882
-msgid "warning: NUL character seen; rest of line ignored"
-msgstr "Warnung: NUL-Zeichen gelesen; der Rest der Zeile wird ignoriert."
+#~ msgid "option d with value `%s'\n"
+#~ msgstr "Option d mit Wert »%s«\n"
-#: make-3.76.1/read.c:1372
-#, c-format
-msgid "warning: ignoring old commands for target `%s'"
-msgstr "Warnung: Ignoriere alte Kommandos für das Target «%s»."
+#~ msgid "original arg: %s\n"
+#~ msgstr "Ursprüngliches Argument: %s\n"
-#: make-3.76.1/read.c:1369
-#, c-format
-msgid "warning: overriding commands for target `%s'"
-msgstr "Warnung: Überschreibe die Kommandos für das Target «%s»."
+#~ msgid "override"
+#~ msgstr "überschreiben"
-#: make-3.76.1/expand.c:120
-#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "Warnung: undefinierte Variable «%.*s»"
+#~ msgid "plain arg: %s\n"
+#~ msgstr "Pures Argument: %s\n"
+
+#~ msgid "process_begin: CreateProcess(%s, %s, ...) failed.\n"
+#~ msgstr "»process_begin«: »CreateProcess(%s, %s, ...)« schlug fehl.\n"
+
+#~ msgid "process_easy: DuplicateHandle(Err) failed (e=%d)\n"
+#~ msgstr "»process_easy«: »DuplicateHandle(Err)« schlug fehl (e=%d).\n"
+
+#~ msgid "process_easy: DuplicateHandle(In) failed (e=%d)\n"
+#~ msgstr "»process_easy«: »DuplicateHandle(In)« schlug fehl (e=%d).\n"
+
+#~ msgid "process_easy: DuplicateHandle(Out) failed (e=%d)\n"
+#~ msgstr "»process_easy«: »DuplicateHandle(Out)« schlug fehl (e=%d).\n"
+
+#~ msgid "read"
+#~ msgstr "Lese"
+
+#~ msgid "rule"
+#~ msgstr "explizite"
+
+#~ msgid "sys$search failed with %d\n"
+#~ msgstr "»sys$search« schlug mit %d fehl.\n"
+
+#~ msgid "touch %s"
+#~ msgstr "%s wird als aktualisiert markiert."
+
+#~ msgid "undefined"
+#~ msgstr "nicht definiert"
+
+#~ msgid "unlink: "
+#~ msgstr "Verbindung verloren (unlink): "
-#: make-3.76.1/job.c:502
-msgid "winning"
-msgstr "erfolgreichen"
+#~ msgid "winning"
+#~ msgstr "erfolgreichen"
-#: make-3.76.1/main.c:504
-msgid "write"
-msgstr "Schreib"
+#~ msgid "write"
+#~ msgstr "Schreib"
diff --git a/job.c b/job.c
index e82865e..ffa5e7b 100644
--- a/job.c
+++ b/job.c
@@ -1795,7 +1795,7 @@ child_execute_job (argv, child)
int status;
char *cmd = alloca (strlen (argv) + 512), *p, *q;
char ifile[256], ofile[256], efile[256];
- char comname[50];
+ char *comname = 0;
char procname[100];
/* Parse IO redirection. */
@@ -1944,8 +1944,6 @@ child_execute_job (argv, child)
is desired. Forcing commands with newlines into DCLs allows to
store search lists on user mode logicals. */
- comname[0] = '\0';
-
if (strlen (cmd) > MAXCMDLEN
|| (have_redirection != 0)
|| (have_newline != 0))
@@ -1962,12 +1960,9 @@ child_execute_job (argv, child)
return 0;
}
- strcpy (comname, "sys$scratch:CMDXXXXXX.COM");
- (void) mktemp (comname);
-
- outfile = fopen (comname, "w");
+ outfile = open_tmpfile (&comname, "sys$scratch:CMDXXXXXX.COM");
if (outfile == 0)
- pfatal_with_name (comname);
+ pfatal_with_name (_("fopen (temporary file)"));
if (ifile[0])
{
@@ -2150,7 +2145,7 @@ child_execute_job (argv, child)
fflush (stdout);
}
- if (comname[0] && !ISDB (DB_JOBS))
+ if (comname && !ISDB (DB_JOBS))
unlink (comname);
return (status & 1);
@@ -2465,10 +2460,10 @@ construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr)
slow_flag = strcmp((s1 ? s1 : ""), (s2 ? s2 : ""));
- if (s1);
- free(s1);
- if (s2);
- free(s2);
+ if (s1)
+ free (s1);
+ if (s2)
+ free (s2);
}
if (slow_flag)
goto slow;
diff --git a/main.c b/main.c
index 0cc72ec..e9cdae5 100644
--- a/main.c
+++ b/main.c
@@ -68,7 +68,6 @@ extern void exit PARAMS ((int)) __attribute__ ((noreturn));
# endif
extern double atof ();
#endif
-extern char *mktemp ();
static void print_data_base PARAMS ((void));
static void print_version PARAMS ((void));
@@ -728,6 +727,51 @@ msdos_return_to_initial_directory ()
}
#endif
+extern char *mktemp ();
+extern int mkstemp ();
+
+FILE *
+open_tmpfile(name, template)
+ char **name;
+ const char *template;
+{
+ int fd;
+
+#if defined HAVE_MKSTEMP || defined HAVE_MKTEMP
+# define TEMPLATE_LEN strlen (template)
+#else
+# define TEMPLATE_LEN L_tmpnam
+#endif
+ *name = xmalloc (TEMPLATE_LEN + 1);
+ strcpy (*name, template);
+
+#if defined HAVE_MKSTEMP && defined HAVE_FDOPEN
+ /* It's safest to use mkstemp(), if we can. */
+ fd = mkstemp (*name);
+ if (fd == -1)
+ return 0;
+ return fdopen (fd, "w");
+#else
+# ifdef HAVE_MKTEMP
+ (void) mktemp (*name);
+# else
+ (void) tmpnam (*name);
+# endif
+
+# ifdef HAVE_FDOPEN
+ /* Can't use mkstemp(), but guard against a race condition. */
+ fd = open (*name, O_CREAT|O_EXCL|O_WRONLY, 0600);
+ if (fd == -1)
+ return 0;
+ return fdopen (fd, "w");
+# else
+ /* Not secure, but what can we do? */
+ return fopen (*name, "w");
+# endif
+#endif
+}
+
+
#ifndef _AMIGA
int
main (argc, argv, envp)
@@ -1212,24 +1256,16 @@ int main (int argc, char ** argv)
into a temporary file and read from that. */
FILE *outfile;
- /* Make a unique filename. */
-#ifdef HAVE_MKTEMP
+ if (stdin_nm)
+ fatal (NILF, _("Makefile from standard input specified twice."));
#ifdef VMS
- static char name[] = "sys$scratch:GmXXXXXX";
+# define TMP_TEMPLATE "sys$scratch:GmXXXXXX"
#else
- static char name[] = "/tmp/GmXXXXXX";
+# define TMP_TEMPLATE "/tmp/GmXXXXXX"
#endif
- (void) mktemp (name);
-#else
- static char name[L_tmpnam];
- (void) tmpnam (name);
-#endif
-
- if (stdin_nm)
- fatal (NILF, _("Makefile from standard input specified twice."));
- outfile = fopen (name, "w");
+ outfile = open_tmpfile (&stdin_nm, TMP_TEMPLATE);
if (outfile == 0)
pfatal_with_name (_("fopen (temporary file)"));
while (!feof (stdin))
@@ -1243,16 +1279,9 @@ int main (int argc, char ** argv)
/* Replace the name that read_all_makefiles will
see with the name of the temporary file. */
- {
- char *temp;
- /* SGI compiler requires alloca's result be assigned simply. */
- temp = (char *) alloca (sizeof (name));
- bcopy (name, temp, sizeof (name));
- makefiles->list[i] = temp;
- }
+ makefiles->list[i] = xstrdup (stdin_nm);
/* Make sure the temporary file will not be remade. */
- stdin_nm = savestring (name, sizeof (name) -1);
f = enter_file (stdin_nm);
f->updated = 1;
f->update_status = 0;
@@ -2683,7 +2712,7 @@ die (status)
print_version ();
/* Wait for children to die. */
- for (err = status != 0; job_slots_used > 0; err = 0)
+ for (err = (status != 0); job_slots_used > 0; err = 0)
reap_children (1, err);
/* Let the remote job module clean up its state. */
diff --git a/make.h b/make.h
index 62aa8ed..7a3e536 100644
--- a/make.h
+++ b/make.h
@@ -407,6 +407,7 @@ extern int alpha_compare PARAMS ((const void *, const void *));
extern void print_spaces PARAMS ((unsigned int));
extern char *find_char_unquote PARAMS ((char *, char *, int));
extern char *find_percent PARAMS ((char *));
+extern FILE *open_tmpfile PARAMS ((char **, const char *));
#ifndef NO_ARCHIVES
extern int ar_name PARAMS ((char *));
diff --git a/remake.c b/remake.c
index 914e7d4..a2b2127 100644
--- a/remake.c
+++ b/remake.c
@@ -43,6 +43,18 @@ Boston, MA 02111-1307, USA. */
extern int try_implicit_rule PARAMS ((struct file *file, unsigned int depth));
+/* The test for circular dependencies is based on the 'updating' bit in
+ `struct file'. However, double colon targets have seperate `struct
+ file's; make sure we always use the base of the double colon chain. */
+
+#define start_updating(_f) (((_f)->double_colon ? (_f)->double_colon : (_f))\
+ ->updating = 1)
+#define finish_updating(_f) (((_f)->double_colon ? (_f)->double_colon : (_f))\
+ ->updating = 0)
+#define is_updating(_f) (((_f)->double_colon ? (_f)->double_colon : (_f))\
+ ->updating)
+
+
/* Incremented when a command is started (under -n, when one would be). */
unsigned int commands_started = 0;
@@ -282,7 +294,7 @@ update_file (file, depth)
if (f->considered == considered)
{
DBF (DB_VERBOSE, _("Pruning file `%s'.\n"));
- return 0;
+ return f->command_state == cs_finished ? f->update_status : 0;
}
/* This loop runs until we start commands for a double colon rule, or until
@@ -368,7 +380,7 @@ update_file_1 (file, depth)
++depth;
/* Notice recursive update of the same file. */
- file->updating = 1;
+ start_updating (file);
/* Looking at the file's modtime beforehand allows the possibility
that its name may be changed by a VPATH search, and thus it may
@@ -416,7 +428,7 @@ update_file_1 (file, depth)
mtime = file_mtime (d->file);
check_renamed (d->file);
- if (d->file->updating)
+ if (is_updating (d->file))
{
error (NILF, _("Circular %s <- %s dependency dropped."),
file->name, d->file->name);
@@ -494,7 +506,7 @@ update_file_1 (file, depth)
}
}
- file->updating = 0;
+ finish_updating (file);
DBF (DB_VERBOSE, _("Finished prerequisites of target file `%s'.\n"));
@@ -788,7 +800,7 @@ check_dep (file, depth, this_mtime, must_make_ptr)
int dep_status = 0;
++depth;
- file->updating = 1;
+ start_updating (file);
if (!file->intermediate)
/* If this is a non-intermediate file, update it and record
@@ -840,7 +852,7 @@ check_dep (file, depth, this_mtime, must_make_ptr)
d = file->deps;
while (d != 0)
{
- if (d->file->updating)
+ if (is_updating (d->file))
{
error (NILF, _("Circular %s <- %s dependency dropped."),
file->name, d->file->name);
@@ -879,7 +891,7 @@ check_dep (file, depth, this_mtime, must_make_ptr)
}
}
- file->updating = 0;
+ finish_updating (file);
return dep_status;
}
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 4d859ad..55e56f8 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,8 +1,28 @@
+2000-03-27 Paul D. Smith <psmith@gnu.org>
+
+ * scripts/features/reinvoke: Make more robust by touching "b"
+ first, to ensure it's not newer than "a".
+ Reported by Marco Franzen <Marco.Franzen@Thyron.com>.
+
+ * scripts/functions/call: Whoops. The fix to PR/1527 caused
+ recursive invocations of $(call ...) to break. I can't come up
+ with any way to get both working at the same time, so I backed out
+ the fix to 1527 and added a test case for recursive calls.
+
+ * scripts/features/double_colon: Test that circular dependencies
+ in double-colon rule sets are detected correctly (PR/1671).
+
2000-03-26 Paul D. Smith <psmith@gnu.org>
* scripts/targets/INTERMEDIATE: Test that make doesn't remove
.INTERMEDIATE files when given on the command line (PR/1669).
+2000-03-08 Paul D. Smith <psmith@gnu.org>
+
+ * scripts/options/dash-k: Add a test for error detection by
+ multiple targets depending on the same prerequisite with -k.
+ For PR/1634.
+
2000-02-07 Paul D. Smith <psmith@gnu.org>
* scripts/features/escape: Add a test for backslash-escaped spaces
diff --git a/tests/scripts/features/double_colon b/tests/scripts/features/double_colon
index 75060c5..e0e53f0 100644
--- a/tests/scripts/features/double_colon
+++ b/tests/scripts/features/double_colon
@@ -36,6 +36,9 @@ two: ; @echo two
f1.h f2.h: ; @echo $@
+d :: ; @echo ok
+d :: d ; @echo oops
+
EOF
close(MAKEFILE);
@@ -95,6 +98,12 @@ $answer = "f2.h\nfoo SECOND\n";
$answer = "f2.h\nfoo SECOND\n";
&compare_output($answer, &get_logfile(1));
+# TEST 8: Test circular dependency check; PR/1671
+
+&run_make_with_options($makefile, "d", &get_logfile, 0);
+$answer = "ok\n$make_name: Circular d <- d dependency dropped.\noops\n";
+&compare_output($answer, &get_logfile(1));
+
# TEST 8: I don't grok why this is different than the above, but it is...
#
# Hmm... further testing indicates this might be timing-dependent?
diff --git a/tests/scripts/features/reinvoke b/tests/scripts/features/reinvoke
index 713580c..dacfd33 100644
--- a/tests/scripts/features/reinvoke
+++ b/tests/scripts/features/reinvoke
@@ -65,7 +65,8 @@ EOM
close(MAKEFILE);
-&touch('a','b');
+&touch('b');
+&touch('a');
sleep(2);
&touch('c');
diff --git a/tests/scripts/functions/call b/tests/scripts/functions/call
index 8b6aa36..bdb8e89 100644
--- a/tests/scripts/functions/call
+++ b/tests/scripts/functions/call
@@ -26,23 +26,35 @@ my-notdir = $(call notdir,$(1))
my-foreach = $(foreach $(1),$(2),$(3))
my-if = $(if $(1),$(2),$(3))
+# Test recursive invocations of call with different arguments
+#
+one = $(1) $(2) $(3)
+two = $(call one,$(1),foo,$(2))
+
+
all: ; @echo '$(call reverse,bar,foo)'; \
echo '$(call map,origin,MAKE reverse map)'; \
echo '$(call my-notdir,a/b c/d e/f)'; \
echo '$(call my-foreach)'; \
echo '$(call my-foreach,a,,,)'; \
- echo '$(call my-foreach,a,x y z,$(a)$(a))'; \
echo '$(call my-if,a,b,c)'; \
- echo '$(call my-if,,$(warning don't print this),ok)'
+ echo '$(call two,bar,baz)'
EOMAKE
+# These won't work until/unless PR/1527 is resolved.
+# echo '$(call my-foreach,a,x y z,$(a)$(a))'; \
+# echo '$(call my-if,,$(warning don't print this),ok)'
+#
+# $answer = "xx yy zz\nok\n";
+
# END of Contents of MAKEFILE
close(MAKEFILE);
&run_make_with_options($makefile, "", &get_logfile);
-$answer = "foo bar\ndefault file file\nb d f\n\n\nxx yy zz\nb\nok\n";
+$answer = "foo bar\ndefault file file\nb d f\n\n\nb\nbar foo baz\n";
+
&compare_output($answer, &get_logfile(1));
1;
diff --git a/tests/scripts/options/dash-k b/tests/scripts/options/dash-k
index a5baaf7..fe5689e 100644
--- a/tests/scripts/options/dash-k
+++ b/tests/scripts/options/dash-k
@@ -1,36 +1,37 @@
-$description = "The following test creates a makefile to test the -k option.\n"
- ."Normally, make gives up immediately if an error happens \n"
- ."that make has not been told to ignore. However, if the -k\n"
- ."option is specified, make continues to consider the other\n"
- ."dependencies of the pending targets.";
-
-$details = "The makefile created in this test is a simulation of building \n"
- ."a small product. However, the trick to this one is that one \n"
- ."of the dependencies of the main target does not exist. \n"
- ."Without the -k option, make would fail immediately and not \n"
- ."build any part of the target. What we are looking for here, \n"
- ."is that make builds the rest of the dependencies even though \n"
- ."it knows that at the end it will fail to rebuild the main target.";
+# -*-perl-*-
+
+$description = "Test the make -k (don't stop on error) option.\n";
+
+$details = "\
+The makefile created in this test is a simulation of building
+a small product. However, the trick to this one is that one
+of the dependencies of the main target does not exist.
+Without the -k option, make would fail immediately and not
+build any part of the target. What we are looking for here,
+is that make builds the rest of the dependencies even though
+it knows that at the end it will fail to rebuild the main target.";
open(MAKEFILE,"> $makefile");
# The Contents of the MAKEFILE ...
-print MAKEFILE "VPATH = $workdir\n";
-print MAKEFILE "edit: main.o kbd.o commands.o display.o \n";
-print MAKEFILE "\t\@echo cc -o edit main.o kbd.o commands.o display.o \n";
+print MAKEFILE <<EOF;
+VPATH = $workdir
+edit: main.o kbd.o commands.o display.o
+\t\@echo cc -o edit main.o kbd.o commands.o display.o
-print MAKEFILE "main.o : main.c defs.h\n";
-print MAKEFILE "\t\@echo cc -c main.c\n";
+main.o : main.c defs.h
+\t\@echo cc -c main.c
-print MAKEFILE "kbd.o : kbd.c defs.h command.h\n";
-print MAKEFILE "\t\@echo cc -c kbd.c\n";
+kbd.o : kbd.c defs.h command.h
+\t\@echo cc -c kbd.c
-print MAKEFILE "commands.o : command.c defs.h command.h\n";
-print MAKEFILE "\t\@echo cc -c commands.c\n";
+commands.o : command.c defs.h command.h
+\t\@echo cc -c commands.c
-print MAKEFILE "display.o : display.c defs.h buffer.h\n";
-print MAKEFILE "\t\@echo cc -c display.c\n";
+display.o : display.c defs.h buffer.h
+\t\@echo cc -c display.c
+EOF
# END of Contents of MAKEFILE
@@ -45,29 +46,55 @@ close(MAKEFILE);
&touch(@files_to_touch);
-if ($vos)
-{
- $error_code = 3307;
+if ($vos) {
+ $error_code = 3307;
}
-else
-{
- $error_code = 512;
+else {
+ $error_code = 512;
}
-&run_make_with_options($makefile,"-k",&get_logfile,$error_code);
+&run_make_with_options($makefile, "-k", &get_logfile, $error_code);
# Create the answer to what should be produced by this Makefile
-$answer = "cc -c main.c\n"
- ."$make_name: *** No rule to make target `kbd.c', needed by `kbd.o'.\n"
- ."cc -c commands.c\n"
- ."cc -c display.c\n"
- ."$make_name: Target `edit' not remade because of errors.\n";
+$answer = "cc -c main.c
+$make_name: *** No rule to make target `kbd.c', needed by `kbd.o'.
+cc -c commands.c
+cc -c display.c
+$make_name: Target `edit' not remade because of errors.\n";
# COMPARE RESULTS
-if (&compare_output($answer,&get_logfile(1)))
-{
- unlink @files_to_touch;
-}
+&compare_output($answer, &get_logfile(1));
+
+unlink(@files_to_touch) unless $keep;
+
+
+# TEST 1: Make sure that top-level targets that depend on targets that
+# previously failed to build, aren't attempted. Regression for PR/1634.
+
+$makefile2 = &get_tmpfile;
+
+open(MAKEFILE, "> $makefile2");
+print MAKEFILE <<'EOF';
+.SUFFIXES:
+
+all: exe1 exe2; @echo making $@
+
+exe1 exe2: lib; @echo cp $^ $@
+
+lib: foo.o; @echo cp $^ $@
+
+foo.o: ; exit 1
+EOF
+
+close(MAKEFILE);
+
+&run_make_with_options($makefile2, "-k", &get_logfile, $error_code);
+
+$answer = "exit 1
+$make_name: *** [foo.o] Error 1
+$make_name: Target `all' not remade because of errors.\n";
+
+&compare_output($answer, &get_logfile(1));
1;
diff --git a/variable.c b/variable.c
index 5089657..0302f59 100644
--- a/variable.c
+++ b/variable.c
@@ -136,17 +136,18 @@ define_variable_in_set (name, length, value, origin, recursive, set, flocp)
Returns address of the `struct variable' containing all info
on the variable, or nil if no such variable is defined.
- If LISTP is not nil, return a pointer to the setlist where
- the variable was found. If the variable wasn't found, the
- value of LISTP is unchanged. */
+ If we find a variable which is in the process of being expanded,
+ try to find one further up the set_list chain. If we don't find
+ one that isn't being expanded, return a pointer to whatever we
+ _did_ find. */
struct variable *
-lookup_variable_setlist (name, length, listp)
+lookup_variable (name, length)
char *name;
unsigned int length;
- struct variable_set_list **listp;
{
register struct variable_set_list *setlist;
+ struct variable *firstv = 0;
register unsigned int i;
register unsigned int rawhash = 0;
@@ -161,21 +162,31 @@ lookup_variable_setlist (name, length, listp)
register unsigned int hashval = rawhash % set->buckets;
register struct variable *v;
+ /* Look through this set list. */
for (v = set->table[hashval]; v != 0; v = v->next)
if (*v->name == *name
&& strneq (v->name + 1, name + 1, length - 1)
- && v->name[length] == 0)
- {
- if (listp)
- *listp = setlist;
- return v;
- }
+ && v->name[length] == '\0')
+ break;
+
+ /* If we didn't find anything, go to the next set list. */
+ if (!v)
+ continue;
+
+ /* If it's not being expanded already, we're done. */
+ if (!v->expanding)
+ return v;
+
+ /* It is, so try to find another one. If this is the first one we've
+ seen, keep a pointer in case we don't find anything else. */
+ if (!firstv)
+ firstv = v;
}
#ifdef VMS
/* since we don't read envp[] on startup, try to get the
variable via getenv() here. */
-
+ if (!firstv)
{
char *vname = alloca (length + 1);
char *value;
@@ -229,10 +240,9 @@ lookup_variable_setlist (name, length, listp)
return define_variable (vname, length, value, o_env, 1);
}
}
-
#endif /* VMS */
- return 0;
+ return firstv;
}
/* Lookup a variable whose name is a string starting at NAME
diff --git a/variable.h b/variable.h
index 4c707dc..d449ef8 100644
--- a/variable.h
+++ b/variable.h
@@ -95,10 +95,7 @@ extern char *patsubst_expand PARAMS ((char *o, char *text, char *pattern, char *
char *pattern_percent, char *replace_percent));
/* expand.c */
-extern char *recursively_expand_setlist PARAMS ((struct variable *v,
- struct variable_set_list *l));
-
-#define recursively_expand(v) recursively_expand_setlist((v),(struct variable_set_list *)0)
+extern char *recursively_expand PARAMS ((struct variable *v));
/* variable.c */
extern struct variable_set_list *create_new_variable_set PARAMS ((void));
@@ -111,12 +108,7 @@ extern void print_variable_set PARAMS ((struct variable_set *set, char *prefix))
extern void merge_variable_set_lists PARAMS ((struct variable_set_list **setlist0, struct variable_set_list *setlist1));
extern struct variable *try_variable_definition PARAMS ((const struct floc *flocp, char *line, enum variable_origin origin, int target_var));
-extern struct variable *lookup_variable_setlist
- PARAMS ((char *name, unsigned int length,
- struct variable_set_list **lisp));
-
-#define lookup_variable(n,l) lookup_variable_setlist((n),(l),\
- (struct variable_set_list **)0)
+extern struct variable *lookup_variable PARAMS ((char *name, unsigned int length));
extern struct variable *define_variable_in_set
PARAMS ((char *name, unsigned int length, char *value,