* A large number of fixes/enhancements. See the ChangeLog.
authorPaul Smith <psmith@gnu.org>
Mon, 27 Mar 2000 06:54:37 +0000 (06:54 +0000)
committerPaul Smith <psmith@gnu.org>
Mon, 27 Mar 2000 06:54:37 +0000 (06:54 +0000)
* Added a new version of the German translation file.

17 files changed:
ChangeLog
README.template
configure.in
expand.c
function.c
i18n/de.po
job.c
main.c
make.h
remake.c
tests/ChangeLog
tests/scripts/features/double_colon
tests/scripts/features/reinvoke
tests/scripts/functions/call
tests/scripts/options/dash-k
variable.c
variable.h

index 1a9afd9..f4e1592 100644 (file)
--- 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
        * 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.
        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
index 55001a4..f131fd6 100644 (file)
@@ -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
index 83fbb52..ebe276a 100644 (file)
@@ -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.
index 070b893..c7f7b58 100644 (file)
--- a/expand.c
+++ b/expand.c
@@ -91,13 +91,11 @@ initialize_variable_output ()
 \f
 /* 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] = '(';
index c993c74..60a02ed 100644 (file)
@@ -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);
 }
index eec2d95..ec7f822 100644 (file)
-# 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."
+
+#: commands.c:538
+msgid "#  commands to execute"
+msgstr "#  Auszuführende Kommandos"
 
-#: make-3.76.1/commands.c:537
+#: 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,"
+
+#: file.c:314
+#, c-format
+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,"
+
+#: 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/getopt1.c:134
+#: file.c:322
 #, c-format
-msgid " with arg %s"
-msgstr "mit Argument %s"
+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."
 
-#: make-3.76.1/file.c:561
+#: 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:"
+
+#: 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)."
+
+#: file.c:637
 msgid "#  A default or MAKEFILES makefile."
-msgstr "#  Ein Standardwert oder MAKEFILES Â«make»-Steuerdatei."
+msgstr "#  Ein Standardwert oder MAKEFILES Â»make«-Steuerdatei."
+
+#: file.c:639
+msgid "#  Implicit rule search has been done."
+msgstr "#  Suche nach impliziten Regeln wurde durchgeführt."
+
+#: file.c:640
+msgid "#  Implicit rule search has not been done."
+msgstr "#  Suche nach impliziten Regeln wurde nicht durchgeführt."
+
+#: file.c:642
+#, c-format
+msgid "#  Implicit/static pattern stem: `%s'\n"
+msgstr "#  Ersetzung für implizites/statisches Muster: Â»%s«\n"
+
+#: file.c:644
+msgid "#  File is an intermediate prerequisite."
+msgstr "#  Datei ist ein Zwischenschritt in den Abhängigkeiten."
 
-#: make-3.76.1/file.c:570
+#: file.c:647
 msgid "#  Also makes:"
 msgstr "#  Erzeugt außerdem:"
 
-#: make-3.76.1/file.c:559
-msgid "#  Command-line target."
-msgstr "#  Kommandozeilen-Ziel (target)."
+#: file.c:653
+msgid "#  Modification time never checked."
+msgstr "#  Zeit der letzten Ã„nderung wurde nicht Ã¼berprüft."
+
+#: file.c:655
+msgid "#  File does not exist."
+msgstr "#  Die Datei existiert nicht."
+
+#: file.c:660
+#, c-format
+msgid "#  Last modified %s\n"
+msgstr "#  Zuletzt geändert %s.\n"
+
+#: file.c:663
+msgid "#  File has been updated."
+msgstr "#  Datei wurde aktualisiert."
 
-#: make-3.76.1/file.c:587
+#: file.c:663
+msgid "#  File has not been updated."
+msgstr "#  Datei wurde nicht aktualisiert."
+
+#: 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:590
+#: 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:606
+#: 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)."
+
+#: file.c:686
 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:689
+msgid "#  Invalid value in `update_status' member!"
+msgstr "#  Ungültiger Wert in Â»update_status«-Eintrag!"
 
-#: make-3.76.1/file.c:582
-#, c-format
-msgid "#  File has%s been updated.\n"
-msgstr "#  Datei wurde%s aktualisiert.\n"
+#: file.c:696
+msgid "#  Invalid value in `command_state' member!"
+msgstr "#  Ungültiger Wert im Â»command_state«-Eintrag!"
 
-#: make-3.76.1/file.c:567
-msgid "#  File is an intermediate dependency."
-msgstr "#  Datei ist ein Zwischenschritt in den Abhängigkeiten."
+#: file.c:715
+msgid "\n# Files"
+msgstr "\n# Dateien"
 
-#: make-3.76.1/file.c:562
+#: file.c:738
+msgid "\n# No files."
+msgstr "\n# Keine Dateien."
+
+#: file.c:741
 #, c-format
-msgid "#  Implicit rule search has%s been done.\n"
-msgstr "#  Implizite Regelsuche wurde%s durchgeführt.\n"
+msgid "\n# %u files in %u hash buckets.\n"
+msgstr "\n# %u Dateien zu %u hash-Werten.\n"
 
-#: make-3.76.1/file.c:565
+#: file.c:743
 #, c-format
-msgid "#  Implicit/static pattern stem: `%s'\n"
-msgstr "#  Ersetzung für implizites/statisches Muster: Â«%s»\n"
+msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
+msgstr ""
+"# durchschnittlich %.3f Dateien je hash-Wert,\n"
+"max. %u Dateien zu einem hash-Wert.\n"
 
-#: make-3.76.1/file.c:616
-msgid "#  Invalid value in `command_state' member!"
-msgstr "#  Ungültiger Wert im Â«command_state»-Eintrag!"
+#: function.c:737
+msgid "non-numeric first argument to `word' function"
+msgstr "Nicht-numerisches erstes Argument zur  Â»word«-Funktion."
 
-#: make-3.76.1/file.c:609
-msgid "#  Invalid value in `update_status' member!"
-msgstr "#  Ungültiger Wert in Â«update_status»-Eintrag!"
+#: 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/file.c:580
-#, c-format
-msgid "#  Last modified %.24s (%ld)\n"
-msgstr "#  Zuletzt geändert %.24s (%ld).\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/file.c:576
-msgid "#  Modification time never checked."
-msgstr "#  Zeit der letzten Ã„nderung wurde nicht Ã¼berprüft."
+#: function.c:769
+msgid "non-numeric second argument to `wordlist' function"
+msgstr "Nicht-numerisches zweites Argument zur Â»wordlist«-Funktion."
 
-#: make-3.76.1/file.c:603
-msgid "#  Needs to be updated (-q is set)."
-msgstr "#  Eine Aktualisierung ist notwendig (-q ist angegeben)."
+#: function.c:1211
+#, c-format
+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/file.c:557
-msgid "#  Phony target (dependency of .PHONY)."
-msgstr "#  Â«Phony»-Ziel (abhängig von .PHONY)."
+#: 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/file.c:555
-msgid "#  Precious file (dependency of .PRECIOUS)."
-msgstr "#  Â«Precious»-Datei (abhängig von .PRECIOUS)."
+#: function.c:1227
+#, c-format
+msgid "CreatePipe() failed (e=%d)\n"
+msgstr "»CreatePipe()« schlug fehl (e=%d).\n"
 
-#: make-3.76.1/file.c:599
-msgid "#  Successfully updated."
-msgstr "#  Erfolgreich aktualisiert."
+#: function.c:1232
+msgid "windows32_openpipe (): process_init_fd() failed\n"
+msgstr "windows32_openpipe (): process_init_fd() schlug fehl\n"
 
-#: make-3.76.1/commands.c:534
-msgid "#  commands to execute"
-msgstr "#  Auszuführende Kommandos"
+#: function.c:1471
+#, c-format
+msgid "Cleaning up temporary batch file %s\n"
+msgstr "Lösche temporäre Stapelverarbeitungsdatei %s.\n"
 
-#: make-3.76.1/dir.c:894
+#: function.c:1688
 #, c-format
-msgid "# %s (device %d, inode %d): "
-msgstr "# %s (Gerät %d, I-Knoten (inode) %d): "
+msgid "Insufficient number of arguments (%d) to function `%s'"
+msgstr "Zuwenig Argumente (%d) für die Funktion Â»%s«."
 
-#: make-3.76.1/dir.c:889
+#: function.c:1692
 #, c-format
-msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): "
+msgid "Unimplemented on this platform: function `%s'"
+msgstr "Auf dieser Rechneronfiguration nicht implementiert: Funktion Â»%s«."
 
-#: make-3.76.1/dir.c:863
+#: function.c:1745
 #, 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"
+msgid "unterminated call to function `%s': missing `%c'"
+msgstr "Nicht beendeter Aufruf der Funktion Â»%s«: Â»%c« fehlt."
 
-#: make-3.76.1/dir.c:868
+#: getopt.c:675
 #, 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"
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option Â»%s« ist mehrdeutig.\n"
 
-#: make-3.76.1/dir.c:885
+#: getopt.c:699
 #, c-format
-msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (Schlüssel (key) %s,  letzte Ã„nderung (mtime) %d): "
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option Â»--%s« erlaubt kein Argument.\n"
 
-#: make-3.76.1/dir.c:859
+#: getopt.c:704
 #, 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"
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option Â»%c%s« erlaubt kein Argument.\n"
 
-#: make-3.76.1/dir.c:856
+#: getopt.c:721 getopt.c:894
 #, c-format
-msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: Konnte den Status nicht feststellen.\n"
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option Â»%s« erfordert ein Argument.\n"
 
-#: make-3.76.1/variable.c:954
+#: getopt.c:750
 #, c-format
-msgid "# %u variables in %u hash buckets.\n"
-msgstr "# %u Variablen für %u hash-Werte.\n"
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unerkannte Option Â»--%s«.\n"
 
-#: make-3.76.1/vpath.c:566
-msgid "# No `vpath' search paths."
-msgstr "# Keine Â«vpath» Suchpfade."
+#: getopt.c:754
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unerkannte Option Â»%c%s«\n"
 
-#: make-3.76.1/variable.c:951
-msgid "# No variables."
-msgstr "# Keine Variablen vorhanden."
+#: getopt.c:780
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: unerlaubte Option -- %c\n"
 
-#: make-3.76.1/file.c:547
-msgid "# Not a target:"
-msgstr "# Dies ist kein Ziel:"
+#: getopt.c:783
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c.\n"
 
-#: make-3.76.1/file.c:663
+#: getopt.c:813 getopt.c:943
 #, 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 "%s: option requires an argument -- %c\n"
+msgstr "%s: Option erfordert ein Argument -- %c.\n"
 
-#: make-3.76.1/variable.c:957
+#: getopt.c:860
 #, 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 "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option Â»-W %s« ist mehrdeutig.\n"
 
-#: make-3.76.1/variable.c:964
+#: getopt.c:878
 #, 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 "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option Â»-W %s« erlaubt kein Argument.\n"
 
-#: make-3.76.1/job.c:1877
+#: implicit.c:40
 #, c-format
-msgid "$SHELL changed (was `%s', now `%s')"
-msgstr "$SHELL gewechselt (war Â«%s», ist Â«%s»)."
+msgid "Looking for an implicit rule for `%s'.\n"
+msgstr "Suche nach einer impliziten Regel für Â»%s«.\n"
 
-#. All the other debugging messages go to stdout,
-#. but we write this one to stderr because it might be
-#. run in a child fork whose stdout is piped.
-#: make-3.76.1/misc.c:567
+#: implicit.c:56
 #, 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 "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/job.c:496
+#: implicit.c:201
+msgid "Avoiding implicit rule recursion.\n"
+msgstr "Vermeide Rekursion in den impliziten Regeln.\n"
+
+#: implicit.c:339
 #, c-format
-msgid "%s finished."
-msgstr "%s beendet."
+msgid "Trying pattern rule with stem `%.*s'.\n"
+msgstr "Versuche Muster-Regel mit Ersetzung Â»%.*s«.\n"
 
-#: make-3.76.1/main.c:783
+#: implicit.c:380
 #, c-format
-msgid "%s is suspending for 30 seconds..."
-msgstr "%s setzt für 30 Sekunden aus..."
+msgid "Rejecting impossible implicit prerequisite `%s'.\n"
+msgstr "Unmögliche implizite Voraussetzung Â»%s« abgelehnt.\n"
 
-#: make-3.76.1/job.c:1673
+#: implicit.c:381
 #, c-format
-msgid "%s: Command not found"
-msgstr "%s: Kommando nicht gefunden."
+msgid "Rejecting impossible rule prerequisite `%s'.\n"
+msgstr "Unmögliche Voraussetzung Â»%s« abgelehnt.\n"
 
-#: make-3.76.1/main.c:483
+#: implicit.c:391
 #, c-format
-msgid "%s: Interrupt/Exception caught "
-msgstr "%s: hat Unterbrechung/Ausnahme bemerkt "
+msgid "Trying implicit prerequisite `%s'.\n"
+msgstr "Versuche implizite Voraussetzung Â»%s«.\n"
 
-#: make-3.76.1/job.c:1702
+#: implicit.c:392
 #, c-format
-msgid "%s: Shell program not found"
-msgstr "%s: Shell-Programm wurde nicht gefunden."
+msgid "Trying rule prerequisite `%s'.\n"
+msgstr "Versuche Voraussetzung Â»%s«.\n"
 
-#. 1003.2 specifies the format of this message.
-#: make-3.76.1/getopt.c:786
+#: implicit.c:413
 #, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: unerlaubte Option -- %c\n"
+msgid "Found prerequisite `%s' as VPATH `%s'\n"
+msgstr "Fand die Voraussetzung Â»%s« als VPATH Â»%s«.\n"
 
-#: make-3.76.1/getopt.c:789
+#: implicit.c:430
 #, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: ungültige Option -- %c.\n"
+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/getopt.c:710
+#: job.c:252
 #, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: Option Â«%c%s» erlaubt kein Argument.\n"
+msgid "*** [%s] Error 0x%x%s"
+msgstr "*** [%s] Fehler 0x%x%s"
 
-#: make-3.76.1/getopt.c:681
+#: job.c:252
+msgid " (ignored)"
+msgstr " (ignoriert)"
+
+#: job.c:255
 #, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: Option Â«%s» ist mehrdeutig.\n"
+msgid "[%s] Error %d (ignored)"
+msgstr "[%s] Fehler %d (ignoriert)"
 
-#: make-3.76.1/getopt.c:727 make-3.76.1/getopt.c:900
+#: job.c:256
 #, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: Option Â«%s» erfordert ein Argument.\n"
+msgid "*** [%s] Error %d"
+msgstr "*** [%s] Fehler %d"
 
-#: make-3.76.1/getopt.c:705
+#: job.c:261
+msgid " (core dumped)"
+msgstr " (Speicherauszug erstellt)"
+
+#: job.c:401
 #, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: Option Â«--%s» erlaubt kein Argument.\n"
+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/getopt.c:884
+#: job.c:479
 #, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: Option Â«-W %s» erlaubt kein Argument.\n"
+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/getopt.c:866
+#: job.c:638
 #, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: Option Â«-W %s» ist mehrdeutig.\n"
+msgid "Reaping losing child 0x%08lx PID %ld %s\n"
+msgstr "Sammle erfolglosen Kindprozess 0x%08lx PID %ld %s\n"
 
-#. 1003.2 specifies the format of this message.
-#: make-3.76.1/getopt.c:819 make-3.76.1/getopt.c:949
+#: job.c:639
 #, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: Option erfordert ein Argument -- %c.\n"
+msgid "Reaping winning child 0x%08lx PID %ld %s\n"
+msgstr "Sammle erfolgreichen Kindprozess 0x%08lx PID %ld %s\n"
 
-#: make-3.76.1/signame.c:291
+#: job.c:644
 #, c-format
-msgid "%s: unknown signal"
-msgstr "%s: unbekanntes Signal"
+msgid "Cleaning up temp batch file %s\n"
+msgstr "Lösche temporäre Stapelverarbeitungsdatei Â»%s«.\n"
 
-#. +option or -option
-#: make-3.76.1/getopt.c:760
+#: job.c:737
 #, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: unerkannte Option Â«%c%s»\n"
+msgid "Removing child 0x%08lx PID %ld %s from chain.\n"
+msgstr "Entferne Kindprozeß 0x%08lx PID %ld %s aus der Kette.\n"
+
+#: job.c:794
+msgid "write jobserver"
+msgstr "Schreibe Job-Server"
 
-#. --option
-#: make-3.76.1/getopt.c:756
+#: job.c:796
 #, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: unerkannte Option Â«--%s».\n"
+msgid "Released token for child 0x%08lx (%s).\n"
+msgstr "Marke des Kindprozesses 0x%08lx PID (%s) freigegeben.\n"
 
-#: make-3.76.1/main.c:2322
+#: job.c:1226 job.c:2222
 #, c-format
-msgid "%sGNU Make version %s"
-msgstr "%sGNU Make Version %s"
+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/remake.c:916
+#: job.c:1230 job.c:2226
 #, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sKeine Regel, um Â«%s» zu erstellen%s"
+msgid "\nCounted %d args in failed launch\n"
+msgstr "\n%d Argumente gehörten zum fehlgeschlagenen Prozessstart.\n"
 
-#: make-3.76.1/remake.c:918
+#: job.c:1290
 #, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%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"
+
+#: job.c:1487
+#, c-format
+msgid "Obtained token for child 0x%08lx (%s).\n"
+msgstr "Marke für den Kindprozeß 0x%08lx (%s) erhalten.\n"
+
+#: 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 ""
-"%sKeine Regel vorhanden, um das Target Â«%s», \n"
-"  benötigt von Â«%s», zu erstellen%s"
+"Auf diesem Betriebssystem kann die Einhaltung\n"
+"der Lastbeschränkung nicht erzwungen werden."
 
-#: make-3.76.1/commands.c:482
+#: job.c:1564
+msgid "cannot enforce load limit: "
+msgstr "Lasteinschränkung kann nicht erzwungen werden: "
+
+#: job.c:1667
 #, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Archiveintrag Â«%s» ist wohl falsch; nicht glöscht."
+msgid "internal error: `%s' command_state"
+msgstr "Interner Fehler: Â»%s« command_state"
 
-#: make-3.76.1/commands.c:387
-msgid "*** Break.\n"
-msgstr "*** Abbruch.\n"
+#: job.c:1974
+#, c-format
+msgid "Redirected input from %s\n"
+msgstr "Datei %s auf Standarteingabe umgeleitet.\n"
 
-#: make-3.76.1/commands.c:496
+#: job.c:1981
 #, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Datei Â«%s» wird gelöscht."
+msgid "Redirected error to %s\n"
+msgstr "Fehlerausgabe nach %s umgeleitet.\n"
 
-#: make-3.76.1/file.c:389
+#: job.c:1988
 #, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Löschen der Zwischendatei Â«%s»."
+msgid "Redirected output to %s\n"
+msgstr "Ausgabe nach %s umgeleitet.\n"
 
-#: make-3.76.1/job.c:305
-msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Warte auf noch nicht beendete Prozesse...."
+#: job.c:2051
+#, c-format
+msgid "Executing %s instead\n"
+msgstr "%s wird stattdessen ausgeführt.\n"
 
-#: make-3.76.1/main.c:1565
-msgid "*** Warning:  Clock skew detected.  Your build may be incomplete."
+#: job.c:2251
+#, c-format
+msgid "make reaped child pid %d, still waiting for pid %d\n"
 msgstr ""
-"*** Warnung: Mit der Uhr stimmt etwas nicht. \n"
-"             Die Bearbeitung könnte unvollständig sein."
+"»make« registrierte die Beendigung des Kindprozesses mit ID %d,\n"
+"wartet jedoch noch auf den Prozess mit ID %d.\n"
 
-#: make-3.76.1/remake.c:1102
+#: job.c:2270
 #, c-format
-msgid "*** Warning: File `%s' has modification time in the future"
-msgstr "*** Warnung: Datei Â«%s» hat Ã„nderungszeit aus der Zukunft!"
+msgid "%s: Command not found"
+msgstr "%s: Kommando nicht gefunden."
 
-#: make-3.76.1/commands.c:479
+#: job.c:2299
 #, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Archiveintrag Â«%s» ist wohl falsch; nicht gelöscht."
+msgid "%s: Shell program not found"
+msgstr "%s: Shell-Programm wurde nicht gefunden."
 
-#: make-3.76.1/commands.c:494
+#: job.c:2480
 #, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Datei Â«%s» wird gelöscht."
+msgid "$SHELL changed (was `%s', now `%s')"
+msgstr "$SHELL gewechselt (war Â»%s«, ist Â»%s«)."
 
-#: make-3.76.1/job.c:234
+#: job.c:2886
 #, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Fehler %d"
+msgid "Creating temporary batch file %s\n"
+msgstr "Erstelle temporäre Stapelverarbeitungsdatei %s\n"
 
-#: make-3.76.1/job.c:230
+#: job.c:2928
 #, c-format
-msgid "*** [%s] Error 0x%x%s"
-msgstr "*** [%s] Fehler 0x%x%s"
+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/misc.c:212 make-3.76.1/misc.c:260
-msgid ".  Stop.\n"
-msgstr ".  Schluss.\n"
+#: main.c:457
+msgid "empty string invalid as file name"
+msgstr "Eine leere Zeichenkette ist als Dateiname ungültig."
 
-#: make-3.76.1/getloadavg.c:1056
+#: main.c:537
 #, c-format
-msgid "1-minute: %f  "
-msgstr "1-Minuten-Schnitt: %f  "
+msgid "unknown debug level specification `%s'"
+msgstr "Unbekanntes Debug-Level angegeben Â»%s«"
 
-#: make-3.76.1/getloadavg.c:1060
+#: main.c:577
 #, c-format
-msgid "15-minute: %f  "
-msgstr "15-Minuten-Schnitt: %f  "
+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"
+
+#: main.c:584
+#, c-format
+msgid ""
+"\n"
+"Unhandled exception filter called from program %s\n"
+"ExceptionCode = %x\n"
+"ExceptionFlags = %x\n"
+"ExceptionAddress = %x\n"
+msgstr ""
+"\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/getloadavg.c:1058
+#: main.c:592
 #, c-format
-msgid "5-minute: %f  "
-msgstr "5-Minuten-Schnitt: %f  "
+msgid "Access violation: write operation at address %x\n"
+msgstr "Zugriffsverletzung: Schreiboperation an Adresse %x\n"
 
-#: make-3.76.1/remake.c:574
+#: main.c:593
 #, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; benutze VPATH-Name Â«%s»"
+msgid "Access violation: read operation at address %x\n"
+msgstr "Zugriffsverletzung: Leseoperation an Adresse %x\n"
 
-#: make-3.76.1/getopt.c:1038 make-3.76.1/getopt1.c:174
+#: main.c:658
 #, c-format
-msgid "?? getopt returned character code 0%o ??\n"
-msgstr "?? Â«getopt» lieferte Zeichencode 0%o ??\n"
+msgid "find_and_set_shell setting default_shell = %s\n"
+msgstr "find_and_set_shell setzt default_shell = %s\n"
 
-#: make-3.76.1/signame.c:126
-msgid "Aborted"
-msgstr "Abgebrochen (Aborted)"
+#: 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/main.c:503
+#: main.c:1004
 #, c-format
-msgid "Access violation: %s operation at address %x\r\n"
-msgstr "Zugriffsverstoß: %soperation an Adresse %x\\r\n"
+msgid "%s is suspending for 30 seconds..."
+msgstr "%s setzt für 30 Sekunden aus..."
 
-#: make-3.76.1/signame.c:153
-msgid "Alarm clock"
-msgstr "Wecksignal"
+#: main.c:1006
+msgid "done sleep(30). Continuing.\n"
+msgstr "«sleep(30)» ist abgeschlossen. Es geht weiter.\n"
+
+#: main.c:1227
+msgid "Makefile from standard input specified twice."
+msgstr "Das Makefile wurde zweimal Ã¼ber die Standardeingabe angegeben."
 
-#: make-3.76.1/main.c:266
-msgid "Allow N jobs at once; infinite jobs with no arg"
+#: main.c:1231
+msgid "fopen (temporary file)"
+msgstr "fopen (temporäre Datei)"
+
+#: main.c:1237
+msgid "fwrite (temporary file)"
+msgstr "fwrite (temporäre Datei)"
+
+#: main.c:1346
+msgid "Do not specify -j or --jobs if sh.exe is not available."
 msgstr ""
-"Erlaube N Jobs gleichzeitig; unbegrenzte Anzahl \n"
-"von Jobs ohne Argument."
+"Wenn Â»sh.exe« nicht vorhanden ist, \n"
+"sollten Sie nicht Â»-j« oder Â»--jobs« angeben."
 
-#: make-3.76.1/implicit.c:201
+#: main.c:1347
+msgid "Resetting make for single job mode."
+msgstr "»make« wird so umgestellt, dass nur ein Job laufen kann."
+
+#: 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."
+
+#: main.c:1385
+msgid "Resetting to single job (-j1) mode."
+msgstr "Umstellung auf Einzel-Job-Verarbeitung (-j1)."
+
+#: main.c:1399
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "Interner Fehler: mehrfache --jobserver-fds Optionen"
+
+#: main.c:1407
 #, c-format
-msgid "Avoiding implicit rule recursion.%s%s\n"
-msgstr "Vermeide Rekursion in den impliziten Regeln.%s%s\n"
+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 ""
+"Warnung: -jN in Â»make«-Verarbeitungszweig erzwungen: \n"
+"Jobserver-Modus nicht verfügbar"
+
+#: main.c:1427
+msgid "dup jobserver"
+msgstr "Jobserver verdoppelt"
+
+#: 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."
+
+#: main.c:1453
+msgid "creating jobs pipe"
+msgstr "Öffnen der Pipe für die Jobs"
 
-#: make-3.76.1/rule.c:587
+#: main.c:1463
+msgid "init jobserver pipe"
+msgstr "Initialisierung der Pipe für den jobserver"
+
+#: main.c:1548
+msgid "Updating makefiles....\n"
+msgstr "Aktualisiere Â»make«-Steuerdateien....\n"
+
+#: main.c:1573
 #, c-format
-msgid "BUG: num_pattern_rules wrong!  %u != %u"
-msgstr "BUG: Â«num_pattern_rules» falsch!  %u != %u"
+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"
 
-#: make-3.76.1/signame.c:147
-msgid "Bad system call"
-msgstr "Falscher Systemaufruf"
+#: main.c:1647
+#, c-format
+msgid "Failed to remake makefile `%s'."
+msgstr "Konnte die Â»make«-Steuerdatei Â»%s« nicht neu erstellen."
 
-#: make-3.76.1/signame.c:150
-msgid "Broken pipe"
-msgstr "Zerstörte Pipe"
+#: 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/signame.c:141
-msgid "Bus error"
-msgstr "Bus-Fehler"
+#: main.c:1668
+#, c-format
+msgid "Makefile `%s' was not found"
+msgstr "Die Â»make«-Steuerdatei Â»%s« wurde nicht gefunden"
 
-#: make-3.76.1/signame.c:188
-msgid "CPU time limit exceeded"
-msgstr "CPU-Zeitschranke Ã¼berschritten"
+#: main.c:1736
+msgid "Couldn't change back to original directory."
+msgstr "Konnte nicht in das ursprüngliche Verzeichnis wechseln."
+
+#: main.c:1770
+msgid "Re-executing:"
+msgstr "Erneute Ausführung:"
+
+#: main.c:1801
+msgid "unlink (temporary file): "
+msgstr "unlink (temporäre Datei): "
+
+#: 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:239
-msgid "Change to DIRECTORY before doing anything"
-msgstr "Wechsle in das VERZEICHNIS bevor etwas anderes ausgeführt wird."
+#: main.c:1830
+msgid "Updating goal targets....\n"
+msgstr "Aktualisieren der Ziele....\n"
 
-#: make-3.76.1/misc.c:748
-msgid "Child"
-msgstr "Kindprozess"
+#: 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 "Usage: %s [options] [target] ...\n"
+msgstr "Syntax: %s [Optionen] [Target] ...\n"
+
+#: main.c:2013
+msgid "Options:\n"
+msgstr "Optionen:\n"
 
-#: make-3.76.1/signame.c:167 make-3.76.1/signame.c:170
-msgid "Child exited"
-msgstr "Kindprozeß beendet"
+#: main.c:2094
+msgid "\nReport bugs to <bug-make@gnu.org>.\n"
+msgstr "\nFehlermeldungen an <bug-make@gnu.org>.\n"
 
-#: make-3.76.1/remake.c:395 make-3.76.1/remake.c:796
+#: main.c:2203
 #, c-format
-msgid "Circular %s <- %s dependency dropped."
-msgstr "Zirkuläre Datei %s <- %s Abhängigkeit wird nicht verwendet."
+msgid "the `-%c' option requires a positive integral argument"
+msgstr "Die Option Â»-%c« verlangt eine positive ganze Zahl als Argument."
 
-#: make-3.76.1/file.c:298
+#: main.c:2627
 #, c-format
-msgid "Commands for `%s' will be ignored in favor of those for `%s'."
+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 ""
-"Die Kommandos für Â«%s» werden ignoriert, \n"
-"die für Â«%s» werden bevorzugt."
+", 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/file.c:290
+#: main.c:2653
 #, c-format
-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,"
+msgid "\n# Make data base, printed on %s"
+msgstr "\n# Â»Make« Datenbank, ausgegeben zur Zeit %s."
 
-#: make-3.76.1/remake.c:614
+#: main.c:2662
 #, c-format
-msgid "Commands of `%s' are being run.\n"
-msgstr "Die Kommandos von Â«%s» werden gerade ausgeführt.\n"
+msgid "\n# Finished Make data base on %s\n"
+msgstr "\n# Â»Make« Datenbank beendet zur Zeit %s.\n"
 
-#: make-3.76.1/file.c:284
-#, 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,"
+#: main.c:2717
+msgid "Entering"
+msgstr "Wechsel in das Verzeichnis"
 
-#: make-3.76.1/main.c:321
-msgid "Consider FILE to be infinitely new"
-msgstr "Betrachte die DATEI stets als neu."
+#: main.c:2717
+msgid "Leaving"
+msgstr "Verlassen des Verzeichnisses"
 
-#: 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:2736
+msgid "an unknown directory"
+msgstr "ein unbekanntes Verzeichnis"
 
-#: make-3.76.1/remake.c:313
+#: main.c:2738
 #, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Betrachte Target-Datei Â«%s».\n"
-
-#: make-3.76.1/signame.c:206
-msgid "Continued"
-msgstr "Fortgesetzt"
+msgid "directory `%s'\n"
+msgstr "Verzeichnis Â»%s«\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."
+#: misc.c:307
+msgid ".  Stop.\n"
+msgstr ".  Schluss.\n"
 
-#: make-3.76.1/function.c:434
+#: misc.c:329
 #, c-format
-msgid "CreatePipe() failed (e=%d)\n"
-msgstr "«CreatePipe()» schlug fehl (e=%d).\n"
+msgid "Unknown error %d"
+msgstr "Unbekannter Fehler %d."
 
-#: make-3.76.1/remote-cstms.c:94
+#: misc.c:369 misc.c:384 misc.c:402 read.c:2695
+msgid "virtual memory exhausted"
+msgstr "Der virtuelle Speicher ist verbraucht."
+
+#: misc.c:653
 #, c-format
-msgid "Customs won't export: %s\n"
-msgstr "Customs wird nicht exportieren: %s\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/main.c:238 make-3.76.1/main.c:261
-msgid "DIRECTORY"
-msgstr "VERZEICHNIS"
+#: misc.c:674
+msgid "Initialized"
+msgstr "Initialisiert"
 
-#: make-3.76.1/signame.c:231
-msgid "Danger signal"
-msgstr "Gefahrensignal"
+#: read.c:153
+msgid "Reading makefiles...\n"
+msgstr "Lese Â»make«-Steuerdateien ...\n"
 
-#: make-3.76.1/remake.c:545
+#: read.c:334
 #, c-format
-msgid "Dependency `%s' does not exist.\n"
-msgstr "Abhängigkeit Â«%s» existiert nicht.\n"
+msgid "Reading makefile `%s'"
+msgstr "Lese Â»make«-Steuerdatei Â»%s«"
 
-#: 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"
+#: read.c:336
+msgid " (no default goal)"
+msgstr " (kein Standard-Ziel)"
 
-#: make-3.76.1/main.c:299
-msgid "Disable the built-in implicit rules"
-msgstr "Deaktivieren der eingebauten impliziten Regeln."
+#: read.c:338
+msgid " (search path)"
+msgstr " (Suchpfad)"
 
-#: make-3.76.1/main.c:1151
-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."
+#: read.c:340
+msgid " (don't care)"
+msgstr " (macht nichts)"
 
-#: make-3.76.1/main.c:287
-msgid "Don't actually run any commands; just print them"
-msgstr "Kommandos nur anzeigen, nicht ausführen."
+#: read.c:342
+msgid " (no ~ expansion)"
+msgstr " (keine ~-Erweiterung)"
 
-#: make-3.76.1/main.c:302
-msgid "Don't echo commands"
-msgstr "Gebe die Kommandos nicht aus."
+#: read.c:522
+msgid "invalid syntax in conditional"
+msgstr "Ungültige Syntax in der Bedingung."
 
-#: 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."
+#: read.c:531
+msgid "extraneous `endef'"
+msgstr "Ãœberflüssiges Â»endef«."
 
-#: make-3.76.1/signame.c:132
-msgid "EMT trap"
-msgstr "EMT abfangen (EMT trap)"
+#: read.c:543 read.c:570 variable.c:840
+msgid "empty variable name"
+msgstr "Leerer Variablenname"
 
-#: make-3.76.1/main.c:2413
-msgid "Entering"
-msgstr "Wechsel in das Verzeichnis"
+#: read.c:561
+msgid "empty `override' directive"
+msgstr "Leere Â»override« Anweisung."
 
-#: make-3.76.1/main.c:250
-msgid "Environment variables override makefiles"
-msgstr "Umgebungsvariablen Ã¼berschreiben Â«make»-Steuerdateien."
+#: read.c:584
+msgid "invalid `override' directive"
+msgstr "Ungültige Â»override«-Anweisung"
 
-#. Fill message buffer with a default message in \r
-#. * case FormatMessage fails \r
-#.
-#: make-3.76.1/w32/subproc/w32err.c:20
+#: read.c:668
 #, c-format
-msgid "Error %ld"
-msgstr "Fehler %ld"
-
-#: make-3.76.1/getloadavg.c:1052
-msgid "Error getting load average"
-msgstr "Fehler beim Bestimmen der durchschnittlichen Last."
-
-#: make-3.76.1/vmsfunctions.c:23
-msgid "Error mallocing for FAB\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â«FAB».\n"
-
-#: make-3.76.1/vmsfunctions.c:27
-msgid "Error mallocing for NAM\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â«NAM».\n"
+msgid "no file name for `%sinclude'"
+msgstr "Kein Dateiname für Â»%sinclude«."
 
-#: make-3.76.1/vmsfunctions.c:69
-msgid "Error mallocing for direct\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â«direct».\n"
+#: read.c:735
+msgid "commands commence before first target"
+msgstr "Kommandos beginnen vor dem ersten Target."
 
-#: make-3.76.1/vmsfunctions.c:32
-msgid "Error mallocing for searchspec\n"
-msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â«searchspec».\n"
+#: read.c:783
+msgid "missing rule before commands"
+msgstr "Es fehlt eine Regel vor den Kommandos."
 
-#: make-3.76.1/job.c:1556
+#: read.c:869
 #, c-format
-msgid "Error spawning, %d\n"
-msgstr "Fehler beim Starten eines Kindprozesses, %d.\n"
+msgid "missing separator%s"
+msgstr "Fehlendes Trennzeichen%s."
 
-#: make-3.76.1/main.c:497
-#, c-format
-msgid "ExceptionAddress = %x\r\n"
-msgstr "Ausnahmeadresse (ExceptionAddress) = %x\\r\n"
+#: read.c:871
+msgid " (did you mean TAB instead of 8 spaces?)"
+msgstr " (Meinten Sie TAB anstelle von 8 Leerzeichen?)"
 
-#: make-3.76.1/main.c:493
-#, c-format
-msgid "ExceptionCode = %x\r\n"
-msgstr "Ausnahmekode (ExceptionCode) = %x\\r\n"
+#: read.c:1007
+msgid "missing target pattern"
+msgstr "Es fehlt ein Target-Muster"
 
-#: make-3.76.1/main.c:495
-#, c-format
-msgid "ExceptionFlags = %x\r\n"
-msgstr "Ausnahmemerkmale (ExceptionFlags) = %x\\r\n"
+#: read.c:1009
+msgid "multiple target patterns"
+msgstr "Mehrfache Target-Muster."
 
-#: make-3.76.1/job.c:1525
-#, c-format
-msgid "Executing %s instead\n"
-msgstr "%s wird stattdessen ausgeführt.\n"
+#: read.c:1013
+msgid "target pattern contains no `%%'"
+msgstr "Target-Muster enthält kein Â»%%«"
 
-#: make-3.76.1/read.c:1011 make-3.76.1/read.c:1167
-#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Ãœberflüssiger Text nach einer Â«%s»-Anweisung"
+#: read.c:1054
+msgid "missing `endif'"
+msgstr "Fehlendes Â»endif«"
 
-#: make-3.76.1/read.c:926
+#: read.c:1113
 msgid "Extraneous text after `endef' directive"
-msgstr "Ãœberflüssiger Text nach einer Â«endef»-Anweisung"
+msgstr "Ãœberflüssiger Text nach einer Â»endef«-Anweisung"
 
-#: 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"
+#: read.c:1142
+msgid "missing `endef', unterminated `define'"
+msgstr "Fehlendes Â»endef«, nicht abgeschlossenes Â»define«"
 
-#. The update failed and this makefile was not
-#. from the MAKEFILES variable, so we care.
-#: make-3.76.1/main.c:1359
+#: read.c:1196 read.c:1352
 #, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Konnte die Â«make»-Steuerdatei Â«%s» nicht neu erstellen."
+msgid "Extraneous text after `%s' directive"
+msgstr "Ãœberflüssiger Text nach einer Â»%s«-Anweisung"
 
-#: make-3.76.1/remake.c:621
+#: read.c:1199
 #, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Fehler beim Aktualisieren der Target-Datei Â«%s».\n"
+msgid "extraneous `%s'"
+msgstr "Ãœberflüssiges Â»%s«"
 
-#: make-3.76.1/remake.c:357
-#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Die Datei Â«%s» existiert nicht.\n"
+#: read.c:1204
+msgid "only one `else' per conditional"
+msgstr "Es ist nur ein Â»else« je Verzweigung erlaubt."
 
-#: make-3.76.1/remake.c:323
-#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Die Datei Â«%s» wurde bereits betrachtet.\n"
+#: read.c:1466
+msgid "Malformed per-target variable definition"
+msgstr "Falsche Ziel-bezogene Variablendefinition"
 
-#: make-3.76.1/signame.c:191
-msgid "File size limit exceeded"
-msgstr "Dateigrößenschranke Ã¼berschritten"
+#: read.c:1548
+msgid "mixed implicit and static pattern rules"
+msgstr "Implizite und statische Muster-Regel vermischt."
 
-#: 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:1551
+msgid "mixed implicit and normal rules"
+msgstr "Implizite und normale Regel vermischt."
 
-#: make-3.76.1/remake.c:336
+#: read.c:1592
 #, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Aktualisierung der Datei Â«%s» beendet.\n"
-
-#: make-3.76.1/signame.c:237
-msgid "Floating point co-processor not available"
-msgstr "Es ist kein Koprozessor für Fließkommaoperationen vorhanden."
-
-#: make-3.76.1/signame.c:135
-msgid "Floating point exception"
-msgstr "Gleitkommafehler"
+msgid "target `%s' doesn't match the target pattern"
+msgstr "Target Â»%s« passt nicht zum Target-Muster"
 
-#: make-3.76.1/remake.c:367 make-3.76.1/remake.c:764
+#: read.c:1624 read.c:1722
 #, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Eine implizite Regel für Â«%s» gefunden.\n"
+msgid "target file `%s' has both : and :: entries"
+msgstr "Target Â»%s« enthält sowohl Â»:« als auch Â»::« Einträge"
 
-#: make-3.76.1/implicit.c:405
+#: read.c:1629
 #, c-format
-msgid "Found dependency `%s' as VPATH `%s'\n"
-msgstr "Fand die Abhängigkeit Â«%s» als VPATH Â«%s».\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:496
+#: read.c:1638
 #, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Die Arbeit an der Target-Datei Â«%s» wurde aufgegeben.\n"
+msgid "warning: overriding commands for target `%s'"
+msgstr "Warnung: Ãœberschreibe die Kommandos für das Target Â»%s«."
 
-#: make-3.76.1/job.c:274
+#: read.c:1640
 #, c-format
-msgid "Got a SIGCHLD; %d unreaped children.\n"
-msgstr "Erhielt ein SIGCHLD; %d unbeendete Kindprozesse.\n"
-
-#: make-3.76.1/signame.c:109
-msgid "Hangup"
-msgstr "Aufgelegt"
-
-#: make-3.76.1/signame.c:216 make-3.76.1/signame.c:225
-msgid "I/O possible"
-msgstr "I/O möglich"
+msgid "warning: ignoring old commands for target `%s'"
+msgstr "Warnung: Ignoriere alte Kommandos für das Target Â»%s«."
 
-#: make-3.76.1/signame.c:129
-msgid "IOT trap"
-msgstr "IOT abfangen (IOT trap)"
+#: 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/main.c:259
-msgid "Ignore errors from commands"
-msgstr "Ignoriere Fehler in den Kommandos."
+#: remake.c:220
+#, c-format
+msgid "Nothing to be done for `%s'."
+msgstr "Für das Target Â»%s« gibt es nichts zu tun."
 
-#: make-3.76.1/main.c:236
-msgid "Ignored for compatibility"
-msgstr "Aus Kompatibilitätsgründen ignoriert."
+#: remake.c:221
+#, c-format
+msgid "`%s' is up to date."
+msgstr "»%s« ist bereits aktualisiert."
 
-#: make-3.76.1/signame.c:118
-msgid "Illegal Instruction"
-msgstr "Illegaler Befehl"
+#: remake.c:289
+#, c-format
+msgid "Pruning file `%s'.\n"
+msgstr "Die Datei Â»%s« wird \"gestutzt\" (der Abhängigkeitsgraph).\n"
 
-#. An included makefile.  We don't need
-#. to die, but we do want to complain.
-#: make-3.76.1/main.c:1374
+#: remake.c:343
 #, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Die eingebundene Â«make»-Steuerdatei Â«%s» wurde nicht gefunden."
+msgid "Considering target file `%s'.\n"
+msgstr "Betrachte Target-Datei Â»%s«.\n"
 
-#: make-3.76.1/signame.c:234
-msgid "Information request"
-msgstr "Informationsanforderung"
+#: remake.c:350
+#, c-format
+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/misc.c:587
-msgid "Initialized"
-msgstr "Initialisiert"
+#: 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:112
-msgid "Interrupt"
-msgstr "Abgebrochen (Interrupt)"
+#: remake.c:364
+#, c-format
+msgid "Still updating file `%s'.\n"
+msgstr "Die Datei Â»%s« wird immer noch aktualisiert.\n"
 
-#: make-3.76.1/remote-cstms.c:185
+#: remake.c:367
 #, c-format
-msgid "Job exported to %s ID %u\n"
-msgstr "Job nach %s ID %u exportiert\n"
+msgid "Finished updating file `%s'.\n"
+msgstr "Aktualisierung der Datei Â»%s« beendet.\n"
 
-#: 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."
+#: remake.c:388
+#, c-format
+msgid "File `%s' does not exist.\n"
+msgstr "Die Datei Â»%s« existiert nicht.\n"
 
-#: make-3.76.1/signame.c:138
-msgid "Killed"
-msgstr "Abgebrochen (Killed)"
+#: 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:2413
-msgid "Leaving"
-msgstr "Verlassen des Verzeichnisses"
+#: 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/job.c:330
+#: remake.c:406 remake.c:826
 #, c-format
-msgid "Live child 0x%08lx PID %d%s\n"
-msgstr "Aktiver Kind-Prozeß 0x%08lx PID %d%s\n"
+msgid "Using default commands for `%s'.\n"
+msgstr "Verwende die Standard-Kommandos für Â»%s«.\n"
 
-#: make-3.76.1/implicit.c:421
+#: remake.c:426 remake.c:850
 #, 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 "Circular %s <- %s dependency dropped."
+msgstr "Zirkuläre Datei %s <- %s Abhängigkeit wird nicht verwendet."
 
-#: make-3.76.1/implicit.c:38
+#: remake.c:504
 #, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Suche nach einer impliziten Regel für Â«%s».\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/implicit.c:53
+#: remake.c:510
 #, 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"
+msgid "The prerequisites of `%s' are being made.\n"
+msgstr "Die Voraussetzungen von Â»%s« werden fertiggestellt.\n"
 
-#: make-3.76.1/main.c:1287
+#: remake.c:523
 #, 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 "Giving up on target file `%s'.\n"
+msgstr "Die Arbeit an der Target-Datei Â»%s« wurde aufgegeben.\n"
 
-#. A normal makefile.  We must die later.
-#: make-3.76.1/main.c:1379
+#: remake.c:528
 #, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Die Â«make»-Steuerdatei Â«%s» wurde nicht gefunden"
+msgid "Target `%s' not remade because of errors."
+msgstr "Das Target Â»%s« wurde wegen Fehlern nicht aktualisiert."
 
-#: make-3.76.1/arscan.c:718
+#: remake.c:576
 #, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
+msgid "Prerequisite `%s' of target `%s' does not exist.\n"
 msgstr ""
-"Eintrag Â«%s» %s: \n"
-"%ld bytes an Position %ld (%ld).\n"
+"Die Datei Â»%s«, Voraussetzung für das Ziel Â»%s«, \n"
+"existiert nicht.\n"
 
-#: make-3.76.1/remake.c:594
+#: remake.c:581
 #, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Das Target Â«%s» muß neu erzeugt werden.\n"
+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/amiga.c:48
-msgid "MyExecute: Cannot allocate space for calling a command"
-msgstr "MyExecute: Kann keinen Speicher für Kommandoaufruf belegen."
-
-#: make-3.76.1/dir.c:899 make-3.76.1/dir.c:919
-msgid "No"
-msgstr "Keine"
+#: remake.c:584
+#, c-format
+msgid "Prerequisite `%s' is older than target `%s'.\n"
+msgstr "Die Datei Â»%s« ist Ã¤lter als das davon abhängige Ziel Â»%s«.\n"
 
-#: make-3.76.1/remake.c:564
+#: remake.c:602
 #, 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 "Target `%s' is double-colon and has no prerequisites.\n"
+msgstr ""
+"Das Ziel Â»%s« hat einen doppelten Doppelpunkt \n"
+"und keine Voraussetzungen.\n"
 
-#: make-3.76.1/remake.c:369 make-3.76.1/remake.c:766
+#: remake.c:608
 #, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Keine implizite Regel für Â«%s» gefunden.\n"
+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"
 
-#: make-3.76.1/remake.c:572
+#: remake.c:616
 #, c-format
 msgid "No need to remake target `%s'"
-msgstr "Es ist nicht notwendig, das Target Â«%s» neu zu erzeugen."
-
-#: make-3.76.1/main.c:1560
-msgid "No targets"
-msgstr "Keine Targets."
+msgstr "Es ist nicht notwendig, das Target Â»%s« neu zu erzeugen."
 
-#: make-3.76.1/main.c:1558
-msgid "No targets specified and no makefile found"
-msgstr "Keine Targets angegeben und keine Â«make»-Steuerdatei gefunden."
-
-#: make-3.76.1/remake.c:215
+#: remake.c:618
 #, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Für das Target Â«%s» gibt es nichts zu tun."
+msgid "; using VPATH name `%s'"
+msgstr "; benutze VPATH-Name Â»%s«"
 
-#: make-3.76.1/main.c:1866
-msgid "Options:\n"
-msgstr "Optionen:\n"
+#: 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:173
-msgid "Power failure"
-msgstr "Stromausfall"
+#: remake.c:644
+#, c-format
+msgid "  Ignoring VPATH name `%s'.\n"
+msgstr "  Ignoriere VPATH-Name Â»%s«.\n"
 
-#: make-3.76.1/main.c:242
-msgid "Print lots of debugging information"
-msgstr "Gebe viele Informationen zur Fehlersuche aus."
+#: 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:293
-msgid "Print make's internal database"
-msgstr "Gib die interne Datenbank von Â«make» aus."
+#: 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/main.c:315
-msgid "Print the current directory"
-msgstr "Gib das aktuelle Verzeichnis aus."
+#: 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/main.c:312
-msgid "Print the version number of make and exit"
-msgstr "Gib die Versionsnummer von Â«make» aus und beende."
+#: remake.c:666
+#, c-format
+msgid "Target file `%s' needs remade under -q.\n"
+msgstr "Target Â»%s« muss bei -q aktualisiert werden.\n"
 
-#: make-3.76.1/main.c:256
-msgid "Print this message and exit"
-msgstr "Gib diese Nachricht aus und beende."
+#: 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:197
-msgid "Profiling timer expired"
-msgstr "Profiling Timer erloschen"
+#: 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/job.c:1091
+#: remake.c:1170
 #, 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 "*** 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:115
-msgid "Quit"
-msgstr "Quit"
+#: remake.c:1284
+#, c-format
+msgid ".LIBPATTERNS element `%s' is not a pattern"
+msgstr ".LIBPATTERNS Element `%s' ist kein Muster"
 
-#: make-3.76.1/main.c:1488
-msgid "Re-executing:"
-msgstr "Erneute Ausführung:"
+#: remote-cstms.c:127
+#, c-format
+msgid "Customs won't export: %s\n"
+msgstr "Customs wird nicht exportieren: %s\n"
 
-#: make-3.76.1/main.c:253
-msgid "Read FILE as a makefile"
-msgstr "Lese die Datei DATEI als Â«make»-Steuerdatei."
+#: rule.c:671
+msgid "\n# No implicit rules."
+msgstr "\n# Keine impliziten Regeln vorhanden."
 
-#: make-3.76.1/read.c:312
+#: rule.c:674
 #, c-format
-msgid "Reading makefile `%s'"
-msgstr "Lese Â«make»-Steuerdatei Â«%s»"
+msgid "\n# %u implicit rules, %u"
+msgstr "\n# %u implizite Regeln, %u"
 
-#: make-3.76.1/read.c:138
-msgid "Reading makefiles..."
-msgstr "Lese Â«make»-Steuerdateien ..."
+#: rule.c:683
+msgid " terminal."
+msgstr " Terminal."
 
-#: make-3.76.1/job.c:501
+#: rule.c:691
 #, c-format
-msgid "Reaping %s child 0x%08lx PID %d%s\n"
-msgstr "Sammle %s Kindprozeß 0x%08lx PID %d%s\n"
+msgid "BUG: num_pattern_rules wrong!  %u != %u"
+msgstr "BUG: Â»num_pattern_rules« falsch!  %u != %u"
 
-#: make-3.76.1/remake.c:319
-#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr ""
-"Versuchte gerade die Datei Â«%s» zu aktualisieren, \n"
-"dies schlug aber fehl.\n"
+#: rule.c:695
+msgid "\n# Pattern-specific variable values"
+msgstr "\n# Musterspezifische Variablenwerte"
 
-#: make-3.76.1/expand.c:92 make-3.76.1/expand.c:97
-#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Rekursive Variable Â«%s» referenziert sich (schließlich) selbst."
+#: rule.c:710
+msgid "\n# No pattern-specific variable values."
+msgstr "\n# Keine Musterspezifischen Variablenwerte"
 
-#. 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
+#: rule.c:713
 #, c-format
-msgid "Rejecting impossible %s dependency `%s'.\n"
-msgstr "Unmögliche %s Abhängigkeit Â«%s» abgelehnt.\n"
+msgid "\n# %u pattern-specific variable values"
+msgstr "\n# %u Musterspezifische Variablenwerte"
 
-#: make-3.76.1/job.c:589
-#, 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"
+#: signame.c:97
+msgid "unknown signal"
+msgstr "Unbekanntes Signal"
 
-#: 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."
+#: signame.c:108
+msgid "Hangup"
+msgstr "Aufgelegt"
 
-#: make-3.76.1/signame.c:228
-msgid "Resource lost"
-msgstr "Ressource verloren gegangen"
+#: signame.c:111
+msgid "Interrupt"
+msgstr "Abgebrochen (Interrupt)"
 
-#: 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."
+#: signame.c:114
+msgid "Quit"
+msgstr "Quit"
 
-#: make-3.76.1/main.c:262
-msgid "Search DIRECTORY for included makefiles"
-msgstr "Durchsuche das VERZEICHNIS nach eingebundenen Â«make»-Steuerdateien."
+#: signame.c:117
+msgid "Illegal Instruction"
+msgstr "Illegaler Befehl"
 
-#: make-3.76.1/signame.c:144
-msgid "Segmentation fault"
-msgstr "Adressierungsdefekt"
+#: signame.c:120
+msgid "Trace/breakpoint trap"
+msgstr "Verfolgen/anhalten abfangen (Trace/breakpoint trap)"
 
-#: make-3.76.1/remake.c:333
-#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Die Datei Â«%s» wird immer noch aktualisiert.\n"
+#: signame.c:125
+msgid "Aborted"
+msgstr "Abgebrochen (Aborted)"
 
-#: make-3.76.1/signame.c:176
-msgid "Stopped"
-msgstr "Angehalten"
+#: signame.c:128
+msgid "IOT trap"
+msgstr "IOT abfangen (IOT trap)"
 
-#: make-3.76.1/signame.c:185
-msgid "Stopped (signal)"
-msgstr "Angehalten (signal)"
+#: signame.c:131
+msgid "EMT trap"
+msgstr "EMT abfangen (EMT trap)"
 
-#: make-3.76.1/signame.c:179
-msgid "Stopped (tty input)"
-msgstr "Angehalten (tty input)"
+#: signame.c:134
+msgid "Floating point exception"
+msgstr "Gleitkommafehler"
 
-#: make-3.76.1/signame.c:182
-msgid "Stopped (tty output)"
-msgstr "Angehalten (tty output)"
+#: signame.c:137
+msgid "Killed"
+msgstr "Abgebrochen (Killed)"
 
-#: make-3.76.1/remake.c:624
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Die Target-Datei Â«%s» wurde erfolgreich aktualisiert.\n"
+#: signame.c:140
+msgid "Bus error"
+msgstr "Bus-Fehler"
 
-#: 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."
+#: signame.c:143
+msgid "Segmentation fault"
+msgstr "Adressierungsdefekt"
 
-#: make-3.76.1/remake.c:559
-#, 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"
+#: signame.c:146
+msgid "Bad system call"
+msgstr "Falscher Systemaufruf"
 
-#: 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."
+#: signame.c:149
+msgid "Broken pipe"
+msgstr "Zerstörte Pipe"
 
-#: make-3.76.1/remake.c:627
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Target Â«%s» muss bei -q aktualisiert werden.\n"
+#: signame.c:152
+msgid "Alarm clock"
+msgstr "Wecksignal"
 
-#: make-3.76.1/signame.c:156
+#: signame.c:155
 msgid "Terminated"
 msgstr "Abgebrochen (Terminated)"
 
-#: make-3.76.1/remake.c:483
-#, c-format
-msgid "The dependencies of `%s' are being made.\n"
-msgstr "Die Abhängigkeiten von Â«%s» werden festgestellt.\n"
+#: signame.c:158
+msgid "User defined signal 1"
+msgstr "Nutzersignal 1"
 
-#: 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:161
+msgid "User defined signal 2"
+msgstr "Nutzersignal 2"
 
-#: make-3.76.1/signame.c:121
-msgid "Trace/breakpoint trap"
-msgstr "Verfolgen/anhalten abfangen (Trace/breakpoint trap)"
+#: signame.c:166 signame.c:169
+msgid "Child exited"
+msgstr "Kindprozeß beendet"
 
-#: make-3.76.1/implicit.c:384
-#, c-format
-msgid "Trying %s dependency `%s'.\n"
-msgstr "Versuche %s Abhängigkeit Â«%s».\n"
+#: signame.c:172
+msgid "Power failure"
+msgstr "Stromausfall"
 
-#: 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:175
+msgid "Stopped"
+msgstr "Angehalten"
+
+#: signame.c:178
+msgid "Stopped (tty input)"
+msgstr "Angehalten (tty input)"
 
-#: 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:181
+msgid "Stopped (tty output)"
+msgstr "Angehalten (tty output)"
 
-#: make-3.76.1/main.c:306
-msgid "Turns off -k"
-msgstr "Schaltet -k ab."
+#: signame.c:184
+msgid "Stopped (signal)"
+msgstr "Angehalten (signal)"
 
-#: make-3.76.1/misc.c:282
-#, c-format
-msgid "Unknown error %d"
-msgstr "Unbekannter Fehler %d."
+#: signame.c:187
+msgid "CPU time limit exceeded"
+msgstr "CPU-Zeitschranke Ã¼berschritten"
 
-#: make-3.76.1/misc.c:277
-msgid "Unknown error 12345678901234567890"
-msgstr "Unbekannter Fehler 12345678901234567890"
+#: signame.c:190
+msgid "File size limit exceeded"
+msgstr "Dateigrößenschranke Ã¼berschritten"
 
-#: make-3.76.1/job.c:491
-#, c-format
-msgid "Unknown%s job %d"
-msgstr "Unbekannter%s Job %d"
+#: signame.c:193
+msgid "Virtual timer expired"
+msgstr "Virtueller Timer erloschen"
+
+#: signame.c:196
+msgid "Profiling timer expired"
+msgstr "Profiling Timer erloschen"
 
-#: make-3.76.1/main.c:1532
-msgid "Updating goal targets...."
-msgstr "Aktualisieren der Targets...."
+#: signame.c:202
+msgid "Window changed"
+msgstr "Fenster hat sich verändert"
 
-#: make-3.76.1/main.c:1262
-msgid "Updating makefiles...."
-msgstr "Aktualisiere Â«make»-Steuerdateien...."
+#: signame.c:205
+msgid "Continued"
+msgstr "Fortgesetzt"
 
-#: make-3.76.1/signame.c:209
+#: signame.c:208
 msgid "Urgent I/O condition"
 msgstr "Dringende I/O-Bedingung"
 
-#: make-3.76.1/main.c:1864
-#, c-format
-msgid "Usage: %s [options] [target] ...\n"
-msgstr "Syntax: %s [Optionen] [Target] ...\n"
+#: signame.c:215 signame.c:224
+msgid "I/O possible"
+msgstr "I/O möglich"
 
-#: make-3.76.1/misc.c:666
-msgid "User"
-msgstr "Nutzer"
+#: signame.c:218
+msgid "SIGWIND"
+msgstr "SIGWIND"
 
-#: make-3.76.1/signame.c:159
-msgid "User defined signal 1"
-msgstr "Nutzersignal 1"
+#: signame.c:221
+msgid "SIGPHONE"
+msgstr "SIGPHONE"
 
-#: make-3.76.1/signame.c:162
-msgid "User defined signal 2"
-msgstr "Nutzersignal 2"
+#: signame.c:227
+msgid "Resource lost"
+msgstr "Ressource verloren gegangen"
 
-#: 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:230
+msgid "Danger signal"
+msgstr "Gefahrensignal"
 
-#: make-3.76.1/signame.c:194
-msgid "Virtual timer expired"
-msgstr "Virtueller Timer erloschen"
+#: signame.c:233
+msgid "Information request"
+msgstr "Informationsanforderung"
 
-#: 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:236
+msgid "Floating point co-processor not available"
+msgstr "Es ist kein Koprozessor für Fließkommaoperationen vorhanden."
 
-#: make-3.76.1/signame.c:203
-msgid "Window changed"
-msgstr "Fenster hat sich verändert"
+#: variable.c:1128
+msgid "# No variables."
+msgstr "# Keine Variablen vorhanden."
 
-#: make-3.76.1/job.c:233
+#: variable.c:1131
 #, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Fehler %d (ignoriert)"
+msgid "# %u variables in %u hash buckets.\n"
+msgstr "# %u Variablen für %u hash-Werte.\n"
 
-#: make-3.76.1/remake.c:216
+#: variable.c:1134
 #, c-format
-msgid "`%s' is up to date."
-msgstr "«%s» ist bereits aktualisiert."
+msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
+msgstr "# Durchschnittlich %.1f Variablen pro Wert, max %u je Wert.\n"
+
+#: 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"
 
-#: make-3.76.1/variable.c:880
-msgid "`override' directive"
-msgstr "«override»-Anweisung"
+#: variable.c:1156
+msgid "\n# Variables\n"
+msgstr "\n# Variablen\n"
 
-#: make-3.76.1/main.c:2432
-msgid "an unknown directory"
-msgstr "ein unbekanntes Verzeichnis"
+#: vpath.c:552
+msgid "\n# VPATH Search Paths\n"
+msgstr "\n# VPATH Suchpfade\n"
 
-#: 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"
+#: vpath.c:569
+msgid "# No `vpath' search paths."
+msgstr "# Keine Â»vpath« Suchpfade."
 
-#: make-3.76.1/ar.c:49
+#: vpath.c:571
 #, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "Versuch, eine nicht unterstützte Funktionalität zu verwenden: Â«%s»."
+msgid "\n# %u `vpath' search paths.\n"
+msgstr "\n# %u Â»vpath« Suchpfade.\n"
 
-#: make-3.76.1/function.c:756 make-3.76.1/variable.c:883
-msgid "automatic"
-msgstr "automatisch"
+#: vpath.c:574
+msgid "\n# No general (`VPATH' variable) search path."
+msgstr "\n# Kein allgemeiner (Variable Â»VPATH«) Suchpfad."
 
-#: make-3.76.1/file.c:294
-#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
+#: vpath.c:580
+msgid ""
+"\n"
+"# General (`VPATH' variable) search path:\n"
+"# "
 msgstr ""
-"aber Â«%s» wird jetzt als dieselbe Datei \n"
-"wie Â«%s» betrachtet."
+"\n"
+"# Allgemeiner (Variable Â»VPATH«) Suchpfad:\n"
+"# "
 
-#: make-3.76.1/file.c:324
-#, 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 "\n# Implicit Rules"
+#~ msgstr "\n# Implizite Regeln"
 
-#: make-3.76.1/file.c:319
-#, 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 " not"
+#~ msgstr " nicht"
 
-#: make-3.76.1/job.c:1316
-msgid "cannot enforce load limit: "
-msgstr "Lasteinschränkung kann nicht erzwungen werden: "
+#~ msgid " remote"
+#~ msgstr " entfernter"
 
-#. 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."
+#~ msgid " with arg %s"
+#~ msgstr "mit Argument %s"
 
-#: make-3.76.1/function.c:750 make-3.76.1/variable.c:877
-msgid "command line"
-msgstr "Kommandozeile"
+#~ msgid "%s finished."
+#~ msgstr "%s beendet."
 
-#: make-3.76.1/read.c:700
-msgid "commands commence before first target"
-msgstr "Kommandos beginnen vor dem ersten Target."
+#~ msgid "%s: unknown signal"
+#~ msgstr "%s: unbekanntes Signal"
 
-#: make-3.76.1/function.c:429
-#, c-format
-msgid "create_child_process: DuplicateHandle(Err) failed (e=%d)\n"
-msgstr "«create_child_process»: Â«DuplicateHandle(Err)» schlug fehl (e=%d).\n"
+#~ msgid "%sGNU Make version %s"
+#~ msgstr "%sGNU Make Version %s"
 
-#: 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"
+#~ msgid "1-minute: %f  "
+#~ msgstr "1-Minuten-Schnitt: %f  "
 
-#: make-3.76.1/getopt.c:1017 make-3.76.1/getopt1.c:149
-msgid "digits occur in two different argv-elements.\n"
-msgstr ""
-"Zahlen erscheinen in zwei verschiedenen \n"
-"Einträgen des Â«argv»-Vektors.\n"
+#~ msgid "15-minute: %f  "
+#~ msgstr "15-Minuten-Schnitt: %f  "
 
-#: make-3.76.1/main.c:2434
-#, c-format
-msgid "directory `%s'\n"
-msgstr "Verzeichnis Â«%s»\n"
+#~ msgid "5-minute: %f  "
+#~ msgstr "5-Minuten-Schnitt: %f  "
 
-#: make-3.76.1/main.c:785
-msgid "done sleep(30). Continuing.\n"
-msgstr "«sleep(30)» ist abgeschlossen. Es geht weiter.\n"
+#~ msgid "?? getopt returned character code 0%o ??\n"
+#~ msgstr "?? Â»getopt« lieferte Zeichencode 0%o ??\n"
 
-#: make-3.76.1/read.c:528 make-3.76.1/read.c:550
-msgid "empty `override' directive"
-msgstr "Leere Â«override» Anweisung."
+#~ 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/w32/subproc/sub_proc.c:924
-#, c-format
-msgid "empty string arg: %s\n"
-msgstr "Argument ist leere Zeichenkette: %s.\n"
+#~ msgid "Change to DIRECTORY before doing anything"
+#~ msgstr "Wechsle in das VERZEICHNIS bevor etwas anderes ausgeführt wird."
 
-#: make-3.76.1/main.c:417
-msgid "empty string invalid as file name"
-msgstr "Eine leere Zeichenkette ist als Dateiname ungültig."
+#~ msgid "Child"
+#~ msgstr "Kindprozess"
 
-#: make-3.76.1/variable.c:705 make-3.76.1/variable.c:707
-msgid "empty variable name"
-msgstr "Leerer Variablenname"
+#~ msgid "Consider FILE to be infinitely new"
+#~ msgstr "Betrachte die DATEI stets als neu."
 
-#: make-3.76.1/function.c:741 make-3.76.1/variable.c:868
-msgid "environment"
-msgstr "Umgebung"
+#~ 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/function.c:747
-msgid "environment override"
-msgstr "Umgebung Ã¼berschrieben"
+#~ msgid "DIRECTORY"
+#~ msgstr "VERZEICHNIS"
 
-#: make-3.76.1/variable.c:874
-msgid "environment under -e"
-msgstr "Umgebung per -e"
+#~ msgid "Dependency `%s' does not exist.\n"
+#~ msgstr "Abhängigkeit Â»%s« existiert nicht.\n"
 
-#: make-3.76.1/job.c:1605
-msgid "execve: "
-msgstr "«execve»: "
+#~ msgid "Disable the built-in implicit rules"
+#~ msgstr "Deaktivieren der eingebauten impliziten Regeln."
 
-#: make-3.76.1/job.c:1704 make-3.76.1/job.c:1709
-msgid "execvp: "
-msgstr "«execvp»: "
+#~ msgid "Don't actually run any commands; just print them"
+#~ msgstr "Kommandos nur anzeigen, nicht ausführen."
 
-#: 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 "Don't echo commands"
+#~ msgstr "Gebe die Kommandos nicht aus."
 
-#: 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 "Don't start multiple jobs unless load is below N"
+#~ msgstr "Nur bei Belastung unterhalb N mehrere Prozesse starten."
 
-#: make-3.76.1/remote-cstms.c:138
-msgid "exporting: "
-msgstr "Export: "
+#~ msgid "Environment variables override makefiles"
+#~ msgstr "Umgebungsvariablen Ã¼berschreiben Â»make«-Steuerdateien."
 
-#: make-3.76.1/remote-cstms.c:171
-#, c-format
-msgid "exporting: %s"
-msgstr "Export: %s"
+#~ msgid "Error %ld"
+#~ msgstr "Fehler %ld"
 
-#: make-3.76.1/remote-cstms.c:129
-msgid "exporting: Couldn't create return socket."
-msgstr "Export: Konnte Rückverbindung nicht herstellen."
+#~ msgid "Error getting load average"
+#~ msgstr "Fehler beim Bestimmen der durchschnittlichen Last."
 
-#: make-3.76.1/read.c:1015
-#, c-format
-msgid "extraneous `%s'"
-msgstr "Ãœberflüssiges Â«%s»"
+#~ msgid "Error mallocing for FAB\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â»FAB«.\n"
 
-#: make-3.76.1/read.c:502
-msgid "extraneous `endef'"
-msgstr "Ãœberflüssiges Â«endef»."
+#~ msgid "Error mallocing for NAM\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â»NAM«.\n"
 
-#: make-3.76.1/main.c:1039
-msgid "fopen (temporary file)"
-msgstr "fopen (temporäre Datei)"
+#~ msgid "Error mallocing for direct\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â»direct«.\n"
 
-#: make-3.76.1/main.c:1045
-msgid "fwrite (temporary file)"
-msgstr "fwrite (temporäre Datei)"
+#~ msgid "Error mallocing for searchspec\n"
+#~ msgstr "Fehler bei Speicherzuteilung (xmalloc) für Â»searchspec«.\n"
 
-#: make-3.76.1/main.c:689 make-3.76.1/main.c:1000
-msgid "getcwd: "
-msgstr "«getcwd»: "
+#~ msgid "Error spawning, %d\n"
+#~ msgstr "Fehler beim Starten eines Kindprozesses, %d.\n"
 
-#: make-3.76.1/main.c:691 make-3.76.1/main.c:1002
-#, c-format
-msgid "getwd: %s"
-msgstr "«getwd»: %s"
+#~ msgid "ExceptionAddress = %x\\r\n"
+#~ msgstr "Ausnahmeadresse (ExceptionAddress) = %x\\r\n"
 
-#: make-3.76.1/implicit.c:377 make-3.76.1/implicit.c:385
-msgid "implicit"
-msgstr "implizite"
+#~ msgid "ExceptionCode = %x\\r\n"
+#~ msgstr "Ausnahmekode (ExceptionCode) = %x\\r\n"
 
-#: make-3.76.1/implicit.c:422
-msgid "intermediate"
-msgstr "Zwischenstufe"
+#~ msgid "ExceptionFlags = %x\\r\n"
+#~ msgstr "Ausnahmemerkmale (ExceptionFlags) = %x\\r\n"
 
-#: 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 "FILE"
+#~ msgstr "DATEI"
 
-#: make-3.76.1/read.c:494
-msgid "invalid syntax in conditional"
-msgstr "Ungültige Syntax in der Bedingung."
+#~ msgid "Ignore errors from commands"
+#~ msgstr "Ignoriere Fehler in den Kommandos."
 
-#: 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 "Ignored for compatibility"
+#~ msgstr "Aus Kompatibilitätsgründen ignoriert."
 
-#: 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 "Job exported to %s ID %u\n"
+#~ msgstr "Job nach %s ID %u exportiert\n"
 
-#: make-3.76.1/job.c:502
-msgid "losing"
-msgstr "erfolglosen"
+#~ msgid "Keep going when some targets can't be made"
+#~ msgstr "Weiterlaufen, auch wenn einige Targets nicht erzeugt werden konnten."
 
-#: 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 "MyExecute: Cannot allocate space for calling a command"
+#~ msgstr "MyExecute: Kann keinen Speicher für Kommandoaufruf belegen."
 
-#. No `endef'!!
-#: make-3.76.1/read.c:955
-msgid "missing `endef', unterminated `define'"
-msgstr "Fehlendes Â«endef», nicht abgeschlossenes Â«define»"
+#~ msgid "Print lots of debugging information"
+#~ msgstr "Gebe viele Informationen zur Fehlersuche aus."
 
-#: make-3.76.1/read.c:864
-msgid "missing `endif'"
-msgstr "Fehlendes Â«endif»"
+#~ msgid "Print make's internal database"
+#~ msgstr "Gib die interne Datenbank von Â»make« aus."
 
-#: make-3.76.1/read.c:744
-msgid "missing rule before commands"
-msgstr "Es fehlt eine Regel vor den Kommandos."
+#~ msgid "Print the current directory"
+#~ msgstr "Gib das aktuelle Verzeichnis aus."
 
-#: make-3.76.1/read.c:763
-msgid "missing separator"
-msgstr "Fehlendes Trennzeichen."
+#~ msgid "Print the version number of make and exit"
+#~ msgstr "Gib die Versionsnummer von Â»make« aus und beende."
 
-#: make-3.76.1/read.c:817
-msgid "missing target pattern"
-msgstr "Es fehlt ein Target-Muster"
+#~ msgid "Print this message and exit"
+#~ msgstr "Gib diese Nachricht aus und beende."
 
-#: make-3.76.1/read.c:1280
-msgid "mixed implicit and normal rules"
-msgstr "Implizite und normale Regel vermischt."
+#~ msgid "Read FILE as a makefile"
+#~ msgstr "Lese die Datei DATEI als Â»make«-Steuerdatei."
 
-#: make-3.76.1/read.c:1277
-msgid "mixed implicit and static pattern rules"
-msgstr "Implizite und statische Muster-Regel vermischt."
+#~ 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/read.c:819
-msgid "multiple target patterns"
-msgstr "Mehrfache Target-Muster."
+#~ msgid "Search DIRECTORY for included makefiles"
+#~ msgstr "Durchsuche das VERZEICHNIS nach eingebundenen Â»make«-Steuerdateien."
 
-#: make-3.76.1/vmsfunctions.c:227
-msgid "never"
-msgstr "niemals"
+#~ 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/remake.c:548
-msgid "newer"
-msgstr "jünger"
+#~ msgid "Touch targets instead of remaking them"
+#~ msgstr ""
+#~ "Die Targets werden nur als aktualisiert markiert,\n"
+#~ "nicht tatsächlich erneuert."
 
-#: make-3.76.1/dir.c:904 make-3.76.1/dir.c:924
-msgid "no"
-msgstr "keine"
+#~ msgid "Trying %s dependency `%s'.\n"
+#~ msgstr "Versuche %s Abhängigkeit Â»%s«.\n"
 
-#: make-3.76.1/read.c:634
-#, c-format
-msgid "no file name for `%sinclude'"
-msgstr "Kein Dateiname für Â«%sinclude»."
+#~ 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/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 "Turns off -k"
+#~ msgstr "Schaltet -k ab."
 
-#: 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 "Unknown error 12345678901234567890"
+#~ msgstr "Unbekannter Fehler 12345678901234567890"
 
-#: 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 "Unknown%s job %d"
+#~ msgstr "Unbekannter%s Job %d"
 
-#: 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 "User"
+#~ msgstr "Nutzer"
 
-#: make-3.76.1/remake.c:548
-msgid "older"
-msgstr "älter"
+#~ msgid "Warn when an undefined variable is referenced"
+#~ msgstr "Gib eine Warnung aus, wenn eine undefinierte Variable referenziert wird."
 
-#: make-3.76.1/read.c:1020
-msgid "only one `else' per conditional"
-msgstr "Es ist nur ein Â«else» je Verzweigung erlaubt."
+#~ msgid "arg with white space or doublequotes: %s\n"
+#~ msgstr "Argument mit Leerzeichen oder Anführungszeichen: %s\n"
 
-#: 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 "automatic"
+#~ msgstr "automatisch"
 
-#: make-3.76.1/getopt1.c:132
-#, c-format
-msgid "option %s"
-msgstr "Option %s"
+#~ msgid "command line"
+#~ msgstr "Kommandozeile"
 
-#: make-3.76.1/getopt.c:1023 make-3.76.1/getopt1.c:155
-msgid "option a\n"
-msgstr "Option a\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/getopt.c:1027 make-3.76.1/getopt1.c:159
-msgid "option b\n"
-msgstr "Option b\n"
+#~ msgid "empty string arg: %s\n"
+#~ msgstr "Argument ist leere Zeichenkette: %s.\n"
 
-#: 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 "environment"
+#~ msgstr "Umgebung"
 
-#: make-3.76.1/getopt1.c:167
-#, c-format
-msgid "option d with value `%s'\n"
-msgstr "Option d mit Wert Â«%s»\n"
+#~ msgid "environment override"
+#~ msgstr "Umgebung Ã¼berschrieben"
 
-#: make-3.76.1/w32/subproc/sub_proc.c:918
-#, c-format
-msgid "original arg: %s\n"
-msgstr "Ursprüngliches Argument: %s\n"
+#~ msgid "environment under -e"
+#~ msgstr "Umgebung per -e"
 
-#: make-3.76.1/function.c:753 make-3.76.1/read.c:524
-msgid "override"
-msgstr "überschreiben"
+#~ msgid "execve: "
+#~ msgstr "»execve«: "
 
-#: make-3.76.1/w32/subproc/sub_proc.c:976
-#, c-format
-msgid "plain arg: %s\n"
-msgstr "Pures Argument: %s\n"
+#~ msgid "execvp: "
+#~ msgstr "»execvp«: "
 
-#: 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 "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/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 "exporting: "
+#~ msgstr "Export: "
 
-#: 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 "exporting: %s"
+#~ msgstr "Export: %s"
 
-#: 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 "exporting: Couldn't create return socket."
+#~ msgstr "Export: Konnte Rückverbindung nicht herstellen."
 
-#: 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 "getcwd: "
+#~ msgstr "»getcwd«: "
 
-#: make-3.76.1/main.c:504
-msgid "read"
-msgstr "Lese"
+#~ msgid "getwd: %s"
+#~ msgstr "»getwd«: %s"
 
-#: make-3.76.1/implicit.c:377 make-3.76.1/implicit.c:385
-msgid "rule"
-msgstr "explizite"
+#~ msgid "implicit"
+#~ msgstr "implizite"
 
-#: 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 "intermediate"
+#~ msgstr "Zwischenstufe"
 
-#: 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 "losing"
+#~ msgstr "erfolglosen"
 
-#: 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 "never"
+#~ msgstr "niemals"
 
-#: 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 "newer"
+#~ msgstr "jünger"
 
-#: make-3.76.1/read.c:824
-msgid "target pattern contains no `%%'"
-msgstr "Target-Muster enthält kein Â«%%»"
+#~ msgid "non-option ARGV-elements: "
+#~ msgstr "Einträge im Â»argv«-Vektor, die nicht Option sind: "
 
-#: 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 "older"
+#~ msgstr "älter"
 
-#: 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 "option %c\n"
+#~ msgstr "Option %c\n"
 
-#: make-3.76.1/remake.c:845
-#, c-format
-msgid "touch %s"
-msgstr "%s wird als aktualisiert markiert."
+#~ msgid "option %s"
+#~ msgstr "Option %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 "option a\n"
+#~ msgstr "Option a\n"
 
-#: make-3.76.1/ar.c:172
-#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: Archiv Â«%s» existiert nicht."
+#~ msgid "option b\n"
+#~ msgstr "Option b\n"
 
-#: 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 "option c with value `%s'\n"
+#~ msgstr "Option c mit Wert `%s'\n"
 
-#: 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 "option d with value `%s'\n"
+#~ msgstr "Option d mit Wert Â»%s«\n"
 
-#: 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 "original arg: %s\n"
+#~ msgstr "Ursprüngliches Argument: %s\n"
 
-#: 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 "override"
+#~ msgstr "überschreiben"
 
-#: make-3.76.1/function.c:729
-msgid "undefined"
-msgstr "nicht definiert"
+#~ msgid "plain arg: %s\n"
+#~ msgstr "Pures Argument: %s\n"
 
-#. 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 "process_begin: CreateProcess(%s, %s, ...) failed.\n"
+#~ msgstr "»process_begin«: Â»CreateProcess(%s, %s, ...)« schlug fehl.\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 "process_easy: DuplicateHandle(Err) failed (e=%d)\n"
+#~ msgstr "»process_easy«: Â»DuplicateHandle(Err)« schlug fehl (e=%d).\n"
 
-#: 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 "process_easy: DuplicateHandle(In) failed (e=%d)\n"
+#~ msgstr "»process_easy«: Â»DuplicateHandle(In)« schlug fehl (e=%d).\n"
 
-#: make-3.76.1/expand.c:223 make-3.76.1/expand.c:225
-msgid "unterminated variable reference"
-msgstr "Nicht abgeschlossene Variablenreferenz."
+#~ msgid "process_easy: DuplicateHandle(Out) failed (e=%d)\n"
+#~ msgstr "»process_easy«: Â»DuplicateHandle(Out)« schlug fehl (e=%d).\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 "read"
+#~ msgstr "Lese"
 
-#: 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 "rule"
+#~ msgstr "explizite"
 
-#: 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 "sys$search failed with %d\n"
+#~ msgstr "»sys$search« schlug mit %d fehl.\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 "touch %s"
+#~ msgstr "%s wird als aktualisiert markiert."
 
-#: make-3.76.1/expand.c:120
-#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "Warnung: undefinierte Variable Â«%.*s»"
+#~ 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 (file)
--- 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 (file)
--- 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 (file)
--- 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 *));
index 914e7d4..a2b2127 100644 (file)
--- 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;
 }
 \f
index 4d859ad..55e56f8 100644 (file)
@@ -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
index 75060c5..e0e53f0 100644 (file)
@@ -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?
index 713580c..dacfd33 100644 (file)
@@ -65,7 +65,8 @@ EOM
 
 close(MAKEFILE);
 
-&touch('a','b');
+&touch('b');
+&touch('a');
 sleep(2);
 &touch('c');
 
index 8b6aa36..bdb8e89 100644 (file)
@@ -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;
index a5baaf7..fe5689e 100644 (file)
@@ -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;
index 5089657..0302f59 100644 (file)
@@ -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;
 }
 \f
 /* Lookup a variable whose name is a string starting at NAME
index 4c707dc..d449ef8 100644 (file)
@@ -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,