Imported Upstream version 4.0
[platform/upstream/make.git] / po / fi.po
index b85fbc4..efd8db2 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,116 +7,122 @@ msgid ""
 msgstr ""
 "Project-Id-Version: make 3.81-b3\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
 "PO-Revision-Date: 2005-07-06 21:36+0300\n"
 "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
+"Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ar.c:48
-#, c-format
-msgid "attempt to use unsupported feature: `%s'"
+#: ar.c:46
+#, fuzzy, c-format
+msgid "attempt to use unsupported feature: '%s'"
 msgstr "yritettiin käyttää ominaisuutta, jolle ei ole tukea: \"%s\""
 
-#: ar.c:125
+#: ar.c:123
 msgid "touch archive member is not available on VMS"
 msgstr "arkistojäsenten kosketus ei ole mahdollista VMS:ssä"
 
-#: ar.c:149
-#, c-format
-msgid "touch: Archive `%s' does not exist"
+#: ar.c:147
+#, fuzzy, c-format
+msgid "touch: Archive '%s' does not exist"
 msgstr "touch: Arkistoa \"%s\" ei ole olemassa"
 
-#: ar.c:152
-#, c-format
-msgid "touch: `%s' is not a valid archive"
+#: ar.c:150
+#, fuzzy, c-format
+msgid "touch: '%s' is not a valid archive"
 msgstr "touch: \"%s\" ei ole kelvollinen arkisto"
 
-#: ar.c:159
-#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
+#: ar.c:157
+#, fuzzy, c-format
+msgid "touch: Member '%s' does not exist in '%s'"
 msgstr "touch: Arkistossa \"%1$s\" ei ole jäsentä \"%2$s\""
 
-#: ar.c:166
-#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
+#: ar.c:164
+#, fuzzy, c-format
+msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr "touch: ar_member_touch antoi virheellisen paluuarvon kohteesta \"%s\""
 
-#: arscan.c:69
+#: arscan.c:67
 #, fuzzy, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module epäonnistui moduulitietojen noutamisessa, tila = %d"
 
-#: arscan.c:175
+#: arscan.c:173
 #, fuzzy, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$ini_control epäonnistui, tila = %d"
 
-#: arscan.c:187
-#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
+#: arscan.c:185
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member '%s'"
 msgstr "kirjastoa \"%s\" ei voi avata jäsenen \"%s\" etsimiseksi"
 
-#: arscan.c:850
-#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
+#: arscan.c:847
+#, fuzzy, c-format
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Jäsen \"%s\"%s: %ld tavua kohdassa %ld (%ld).\n"
 
-#: arscan.c:851
+#: arscan.c:848
 msgid " (name might be truncated)"
 msgstr " (nimi voi olla typistynyt)"
 
-#: arscan.c:853
+#: arscan.c:850
 #, c-format
 msgid "  Date %s"
 msgstr "  Päiväys %s"
 
-#: arscan.c:854
+#: arscan.c:851
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr ""
+
+#: commands.c:507
 msgid "*** Break.\n"
 msgstr "*** Katkaisu.\n"
 
-#: commands.c:622
-#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
+#: commands.c:630
+#, fuzzy, c-format
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Arkistojäsen \"%s\" voi olla viallinen - ei poisteta"
 
-#: commands.c:625
-#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
+#: commands.c:633
+#, fuzzy, c-format
+msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Arkistojäsen \"%s\" voi olla viallinen - ei poisteta"
 
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Poistetaan tiedosto \"%s\""
 
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
 msgstr "*** Poistetaan tiedosto \"%s\""
 
-#: commands.c:676
+#: commands.c:684
 #, fuzzy
 msgid "#  recipe to execute"
 msgstr "#  käynnisetttävät komennot"
 
-#: commands.c:679
+#: commands.c:687
 msgid " (built-in):"
 msgstr " (sisäänrakennettu):"
 
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
 msgstr " (tiedostosta \"%s\", rivi %lu):\n"
 
-#: dir.c:996
+#: dir.c:989
 msgid ""
 "\n"
 "# Directories\n"
@@ -124,224 +130,228 @@ msgstr ""
 "\n"
 "# Hakemistot\n"
 
-#: dir.c:1008
+#: dir.c:1001
 #, c-format
 msgid "# %s: could not be stat'd.\n"
 msgstr "# %s: tilaa ei voitu lukea.\n"
 
-#: dir.c:1012
+#: dir.c:1005
 #, c-format
 msgid "# %s (key %s, mtime %d): could not be opened.\n"
 msgstr "# %s (avain %s, maika %d): ei voitu avata.\n"
 
-#: dir.c:1016
+#: dir.c:1009
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
 msgstr "# %s (laite %d, i-solmu [%d,%d,%d]): ei voitu avata.\n"
 
-#: dir.c:1021
+#: dir.c:1014
 #, c-format
 msgid "# %s (device %ld, inode %ld): could not be opened.\n"
 msgstr "# %s (laite %ld, i-solmu %ld): ei voitu avata.\n"
 
-#: dir.c:1048
+#: dir.c:1041
 #, c-format
 msgid "# %s (key %s, mtime %d): "
 msgstr "# %s (avain %s, maika %d: "
 
-#: dir.c:1052
+#: dir.c:1045
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): "
 msgstr "# %s (laite %d, i-solmu [%d,%d,%d]): "
 
-#: dir.c:1057
+#: dir.c:1050
 #, c-format
 msgid "# %s (device %ld, inode %ld): "
 msgstr "# %s (laite %ld, i-solmu %ld): "
 
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
 msgid "No"
 msgstr "Ei"
 
 # Juuri näin, muodostetaan käännöslause yksittäisistä sanoista...
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
 msgid " files, "
 msgstr " tiedostoa, "
 
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
 msgid "no"
 msgstr "ei"
 
-#: dir.c:1071
+#: dir.c:1064
 msgid " impossibilities"
 msgstr " mahdottomuutta"
 
-#: dir.c:1075
+#: dir.c:1068
 msgid " so far."
 msgstr " tähän mennessä."
 
-#: dir.c:1092
+#: dir.c:1085
 #, c-format
 msgid " impossibilities in %lu directories.\n"
 msgstr " mahdottomuutta %lu hakemistossa.\n"
 
-#: expand.c:127
-#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
+#: expand.c:125
+#, fuzzy, c-format
+msgid "Recursive variable '%s' references itself (eventually)"
 msgstr "Rekursiivinen muuttuja \"%s\" viittaa (lopulta) itseensä"
 
-#: expand.c:276
+#: expand.c:269
 msgid "unterminated variable reference"
 msgstr "päättämätön muuttujaviittaus"
 
-#: file.c:267
+#: file.c:269
 #, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Tiedostolle \"%s\" määriteltiin komentoja paikassa %s:%lu,"
 
-#: file.c:272
+#: file.c:274
 #, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
+msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Tiedostolle \"%s\" löytyi komentoja oletussääntöhaussa,"
 
-#: file.c:275
-#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
+#: file.c:277
+#, fuzzy, c-format
+msgid "but '%s' is now considered the same file as '%s'."
 msgstr "mutta \"%s\":n katsotaan nyt olevan sama tiedosto kuin \"%s\"."
 
-#: file.c:278
+#: file.c:280
 #, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Tiedoston \"%s\" komentoja ei huomioida, vaan käytetään komentoja "
 "tiedostosta \"%s\"."
 
-#: file.c:298
+#: file.c:300
 #, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 
-#: file.c:303
+#: file.c:305
 #, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Poistetaan aputiedosto \"%s\""
 
-#: file.c:396
+#: file.c:400
 msgid "Removing intermediate files...\n"
 msgstr "Poistetaan aputiedostot...\n"
 
-#: file.c:803
+#: file.c:808
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Aikaleima ei ole sallitulla välillä, korvataan %s"
 
-#: file.c:804
+#: file.c:809
 msgid "Current time"
 msgstr "Tämänhetkinen aika"
 
-#: file.c:924
+#: file.c:949
 msgid "# Not a target:"
 msgstr "# Ei kohde:"
 
-#: file.c:929
+#: file.c:954
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Arvokas tiedosto (ennakkoehto .PRECIOUS:ille)."
 
-#: file.c:931
+#: file.c:956
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Valekohde (ennakkoehto .PHONY:lle)."
 
-#: file.c:933
+#: file.c:958
 #, fuzzy
 msgid "#  Command line target."
 msgstr "#  Komentorivikohde."
 
-#: file.c:935
+#: file.c:960
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  Oletus-, MAKEFILES- tai -include/sinclude -makefile-tiedosto."
 
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "#  Builtin rule"
+msgstr ""
+"\n"
+"# Ei oletussääntöjä."
+
+#: file.c:964
 msgid "#  Implicit rule search has been done."
 msgstr "#  Oletussääntöhaku on suoritettu."
 
-#: file.c:938
+#: file.c:965
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Oletussääntöhakua ei ole suoritettu."
 
-#: file.c:940
+#: file.c:967
 #, c-format
-msgid "#  Implicit/static pattern stem: `%s'\n"
+msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr ""
 
-#: file.c:942
+#: file.c:969
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Tiedosto on välitason ennakkoehto."
 
-#: file.c:946
+#: file.c:973
 msgid "#  Also makes:"
 msgstr "#  Tuotetaan myös:"
 
-#: file.c:952
+#: file.c:979
 msgid "#  Modification time never checked."
 msgstr "#  Muutosaikaa ei koskaan tarkastettu."
 
-#: file.c:954
+#: file.c:981
 msgid "#  File does not exist."
 msgstr "#  Tiedosto ei ole olemassa."
 
-#: file.c:956
+#: file.c:983
 msgid "#  File is very old."
 msgstr "#  Tiedosto on hyvin vanha."
 
-#: file.c:961
+#: file.c:988
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Viimeksi muutettu %s\n"
 
-#: file.c:964
+#: file.c:991
 msgid "#  File has been updated."
 msgstr "#  Tiedosto on päivitetty."
 
-#: file.c:964
+#: file.c:991
 msgid "#  File has not been updated."
 msgstr "#  Tiedostoa ei ole päivitetty."
 
-#: file.c:968
+#: file.c:995
 #, fuzzy
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  Ajossa olevat komennot (TÄMÄ ON OHJELMISTOVIKA)."
 
-#: file.c:971
+#: file.c:998
 #, fuzzy
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr "#  Ajossa olevat riippuvuuskomennot (TÄMÄ ON OHJELMISTOVIKA)."
 
-#: file.c:980
+#: file.c:1007
 msgid "#  Successfully updated."
 msgstr "#  Päivitetty onnistuneesti."
 
-#: file.c:984
+#: file.c:1011
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Vaatii päivitystä (-q on asetettu)."
 
-#: file.c:987
+#: file.c:1014
 msgid "#  Failed to be updated."
 msgstr "#  Päivitys epäonnistui."
 
-#: file.c:990
-msgid "#  Invalid value in `update_status' member!"
-msgstr "#  Virheellinen arvo \"update_status\"-jäsenessä!"
-
-#: file.c:997
-msgid "#  Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Virheellinen arvo \"command_state\"-jäsenessä!"
 
-#: file.c:1016
+#: file.c:1038
 msgid ""
 "\n"
 "# Files"
@@ -349,7 +359,7 @@ msgstr ""
 "\n"
 "# Tiedostot"
 
-#: file.c:1020
+#: file.c:1042
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -359,117 +369,175 @@ msgstr ""
 "# tilasto tiedostojen hajautustaulusta:\n"
 "# "
 
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr ""
+
+#: function.c:742
+#, fuzzy
+msgid "non-numeric first argument to 'word' function"
 msgstr "ei-numeerinen ensimmäinen argumentti \"word\"-funktiolle"
 
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
+#: function.c:747
+#, fuzzy
+msgid "first argument to 'word' function must be greater than 0"
 msgstr "\"word\"-funktion ensimmäisen argumentin on oltava suurempi kuin 0"
 
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
 msgstr "ei-numeerinen ensimmäinen argumentti \"wordlist\"-funktiolle"
 
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
 msgstr "ei-numeerinen toinen argumentti \"wordlist\"-funktiolle"
 
-#: function.c:1458
+#: function.c:1460
 #, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(In) epäonnistui (v=%d)\n"
 
-#: function.c:1469
+#: function.c:1483
 #, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
 msgstr "create_child_process: DuplicateHandle(Err) epäonnistui (v=%d)\n"
 
-#: function.c:1474
+#: function.c:1490
 #, fuzzy, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
 msgstr "CreatePipe() epäonnistui (v=%d)\n"
 
-#: function.c:1479
+#: function.c:1498
 #, fuzzy
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe (): process_init_fd() epäonnistui\n"
 
-#: function.c:1728
+#: function.c:1792
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Siivotaan väliaikainen komentotiedosto %s\n"
 
-#: function.c:2150
+#: function.c:2151
 #, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "kirjoitusvirhe: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
 msgstr "Liian vähän (%d) argumenttejeja funktiolle \"%s\""
 
-#: function.c:2162
+#: function.c:2291
 #, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
+msgid "unimplemented on this platform: function '%s'"
 msgstr "Ei toteutettu tällä alustalla: funktio \"%s\""
 
-#: function.c:2212
-#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
+#: function.c:2354
+#, fuzzy, c-format
+msgid "unterminated call to function '%s': missing '%c'"
 msgstr "päättämätön kutsu funktioon \"%s\": puuttuva \"%c\""
 
-#: getopt.c:661
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
 #, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: valitsin \"%s\" on moniselitteinen\n"
+msgid "Invalid function name: %s\n"
+msgstr ""
 
-#: getopt.c:685
+#: function.c:2550
 #, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
+msgid "Function name too long: %s\n"
+msgstr ""
+
+#: function.c:2552
+#, fuzzy, c-format
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "Liian vähän (%d) argumenttejeja funktiolle \"%s\""
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Liian vähän (%d) argumenttejeja funktiolle \"%s\""
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: valitsin \"%s\" on moniselitteinen\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: valitsin \"--%s\" ei salli argumenttia\n"
 
-#: getopt.c:690
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
+#: getopt.c:688
+#, fuzzy, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: valitsin \"%c%s\" ei salli argumenttia\n"
 
-#: getopt.c:707 getopt.c:880
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
+#: getopt.c:705 getopt.c:878
+#, fuzzy, c-format
+msgid "%s: option '%s' requires an argument\n"
 msgstr "%s: valitsin \"%s\" vaatii argumentin\n"
 
-#: getopt.c:736
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
+#: getopt.c:734
+#, fuzzy, c-format
+msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: tunnistamaton valitsin \"--%s\"\n"
 
-#: getopt.c:740
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
+#: getopt.c:738
+#, fuzzy, c-format
+msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: tunnistamaton valitsin \"%c%s\"\n"
 
-#: getopt.c:766
+#: getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: virheellinen valitsin -- %c\n"
 
-#: getopt.c:769
+#: getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s: virheellinen valitsin -- %c\n"
 
-#: getopt.c:799 getopt.c:929
+#: getopt.c:797 getopt.c:927
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: valitsin vaatii argumentin -- %c\n"
 
-#: getopt.c:846
-#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
+#: getopt.c:844
+#, fuzzy, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: valitsin \"-W %s\" on moniselitteinen\n"
 
-#: getopt.c:864
-#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
+#: getopt.c:862
+#, fuzzy, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: valitsin \"-W %s\" ei salli argumenttia\n"
 
+#: guile.c:55
+#, c-format
+msgid "guile: Expanding '%s'\n"
+msgstr ""
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr ""
+
 #: hash.c:49
 #, fuzzy, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
@@ -490,131 +558,156 @@ msgstr "Uudelleenhajautus=%d, "
 msgid "Collisions=%ld/%ld=%.0f%%"
 msgstr "Törmäykset=%ld/%ld=%.0f%%"
 
-#: implicit.c:40
-#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
+#: implicit.c:38
+#, fuzzy, c-format
+msgid "Looking for an implicit rule for '%s'.\n"
 msgstr "Etsitään oletussääntöä kohteelle \"%s\".\n"
 
-#: implicit.c:56
-#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
+#: implicit.c:54
+#, fuzzy, c-format
+msgid "Looking for archive-member implicit rule for '%s'.\n"
 msgstr "Etsitään arkistojäsenen oletussääntöä kohteelle \"%s\".\n"
 
-#: implicit.c:317
+#: implicit.c:310
 msgid "Avoiding implicit rule recursion.\n"
 msgstr "Vältetään oletussääntörekursio.\n"
 
-#: implicit.c:491
+#: implicit.c:486
 #, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
+
+#: implicit.c:491
+#, fuzzy, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
 msgstr "Kokeillaan hahmosääntöä rungolla \"%.*s\".\n"
 
-#: implicit.c:674
-#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
+#: implicit.c:697
+#, fuzzy, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
 msgstr "Hylätään mahdoton säännön ennakkoehto \"%s\".\n"
 
-#: implicit.c:675
-#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
+#: implicit.c:698
+#, fuzzy, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
 msgstr "Hylätään mahdoton oletusennakkoehto \"%s\".\n"
 
-#: implicit.c:688
-#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
+#: implicit.c:711
+#, fuzzy, c-format
+msgid "Trying rule prerequisite '%s'.\n"
 msgstr "Yritetään käyttää säännön ennakkoehtoa \"%s\".\n"
 
-#: implicit.c:689
-#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
+#: implicit.c:712
+#, fuzzy, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
 msgstr "Yritetään käyttää oletusennakkoehtoa \"%s\".\n"
 
-#: implicit.c:728
-#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
+#: implicit.c:751
+#, fuzzy, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
 msgstr "Löydettiin ennakkoehto \"%s\", joka on VPATH \"%s\"\n"
 
-#: implicit.c:742
-#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
+#: implicit.c:765
+#, fuzzy, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
 msgstr "Etsitään sääntöä aputiedostolla \"%s\".\n"
 
-#: job.c:335
+#: job.c:361
 msgid "Cannot create a temporary file\n"
 msgstr "Väliaikaistiedoston luominen ei onnistu\n"
 
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Virhe 0x%x (ei huomioida)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Virhe 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (muisti vedostettu)"
 
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
 msgstr "[%s] Virhe %d (ei huomioida)"
 
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (sisäänrakennettu):"
+
+#: job.c:501
 #, c-format
-msgid "*** [%s] Error %d"
+msgid "%s: recipe for target '%s' failed"
+msgstr ""
+
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Virhe 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
 msgstr "*** [%s] Virhe %d"
 
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (muisti vedostettu)"
+#: job.c:517
+#, fuzzy, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s%s: %s"
 
-#: job.c:549
+#: job.c:609
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Odotetaan keskeneräisiä töitä...."
 
-#: job.c:579
+#: job.c:639
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr ""
 
-#: job.c:581 job.c:760 job.c:862 job.c:1527
+#: job.c:641 job.c:831 job.c:950 job.c:1687
 msgid " (remote)"
 msgstr " (etä)"
 
-#: job.c:758
+#: job.c:829
 #, c-format
 msgid "Reaping losing child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:759
+#: job.c:830
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr ""
 
-#: job.c:763
+#: job.c:837
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Siivotaan väliaikainen komentotiedosto %s\n"
 
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Siivotaan väliaikainen komentotiedosto %s\n"
+
+#: job.c:949
 #, fuzzy, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Poistetaan ketjusta lapsiprosessi 0x%08lx PID %ld%s.\n"
 
-#: job.c:920
-msgid "write jobserver"
-msgstr "työpalvelimen kirjoitus"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
 
-#: job.c:922
+#: job.c:1011 job.c:1025
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "työpalvelimen kirjoitus"
+
+#: job.c:1612 job.c:2332
 #, fuzzy, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() epäonnistui prosessin käynnistämisessä (v=%d)\n"
 
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
 #, c-format
 msgid ""
 "\n"
@@ -623,111 +716,169 @@ msgstr ""
 "\n"
 "Laskettiin %d argumenttia epäonnistuneessa käynnistyksessä\n"
 
-#: job.c:1525
+#: job.c:1685
 #, fuzzy, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Lisätään ketjuun lapsiprosessi 0x%08lx (%s) PID %ld%s.\n"
 
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr ""
 
-#: job.c:1787
+#: job.c:1977
 msgid "read jobs pipe"
 msgstr "työputken luku"
 
-#: job.c:1798
-#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr ""
+#: job.c:2003
+#, fuzzy, c-format
+msgid "%s: target '%s' does not exist"
+msgstr "touch: Arkistoa \"%s\" ei ole olemassa"
 
-#: job.c:1802
+#: job.c:2005
 #, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Ei tarvetta uudelleentuottaa kohdetta \"%s\""
+msgid "%s: update target '%s' due to: %s"
+msgstr ""
+"%1$s\"%3$s\"-kohteen tarvitseman kohteen \"%2$s\" tuottamiseen ei ole sääntöä"
+"%4$s"
 
-#: job.c:1910
+#: job.c:2118
 msgid "cannot enforce load limits on this operating system"
 msgstr "kuormarajoja ei voi ottaa käyttöön tässä käyttöjärjestelmässä"
 
-#: job.c:1912
+#: job.c:2120
 msgid "cannot enforce load limit: "
 msgstr "kuormarajaa ei voi ottaa käyttöön: "
 
-#: job.c:1985
+#: job.c:2199
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
 "tiedostokahvoja ei ole enempää: vakiosyötteen kahdentaminen ei onnistunut\n"
 
-#: job.c:1987
+#: job.c:2210
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
 "tiedostokahvoja ei ole enempää: vakiotulosteen kahdentaminen epäonnistui\n"
 
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+"tiedostokahvoja ei ole enempää: vakiosyötteen kahdentaminen ei onnistunut\n"
+
+#: job.c:2238
 msgid "Could not restore stdin\n"
 msgstr "Vakiosyötettä ei voitu palauttaa\n"
 
-#: job.c:2023
+#: job.c:2246
 msgid "Could not restore stdout\n"
 msgstr "Vakiotulostetta ei voitu palauttaa\n"
 
-#: job.c:2127
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Vakiosyötettä ei voitu palauttaa\n"
+
+#: job.c:2365
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr ""
 
-#: job.c:2168
+#: job.c:2403
 #, c-format
 msgid "%s: Command not found"
 msgstr "%s: Komentoa ei löytynyt"
 
-#: job.c:2228
+#: job.c:2463
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Kuoriohjelmaa ei löytynyt"
 
-#: job.c:2237
+#: job.c:2472
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: ympäristötila saattaa olla lopussa"
 
-#: job.c:2461
-#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
+#: job.c:2709
+#, fuzzy, c-format
+msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "$SHELL muuttunut (oli \"%s\", nyt \"%s\")\n"
 
-#: job.c:2951
+#: job.c:3140 job.c:3325
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Luodaan väliaikainen komentotiedosto %s\n"
 
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+
+#: job.c:3337
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
 
-#: job.c:3065
+#: job.c:3444
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr "%s (rivi %d) Väärä kuoriympäristö (!unixy && !batch_mode_shell)\n"
 
-#: main.c:303
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr ""
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr ""
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr ""
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr ""
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr ""
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr ""
+
+#: load.c:229
+#, fuzzy
+msgid "The 'load' operation is not supported on this platform."
+msgstr "Rinnakkaiset työt (-j) eivät ole tuettuja tällä alustalla."
+
+#: main.c:312
 msgid "Options:\n"
 msgstr "Valitsimet:\n"
 
-#: main.c:304
+#: main.c:313
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr ""
 "  -b, -m                      Yhteensopivuuden vuoksi jätetään huomiotta.\n"
 
-#: main.c:306
+#: main.c:315
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Tuota kaikki kohteet ehdoitta.\n"
 
-#: main.c:308
+#: main.c:317
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -735,16 +886,16 @@ msgstr ""
 "  -C HAKEMISTO, --directory=HAKEMISTO\n"
 "                              Siirry HAKEMISTOon ennen jatkamista.\n"
 
-#: main.c:311
+#: main.c:320
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Näytä runsaasti vianetsintätietoja.\n"
 
-#: main.c:313
+#: main.c:322
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr "  --debug[=LIPUT]             Näytä monenlaisia vianetsintätietoja.\n"
 
-#: main.c:315
+#: main.c:324
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -753,12 +904,12 @@ msgstr ""
 "                              Ympäristömuuttujat kumoavat makefile-"
 "tiedostot.\n"
 
-#: main.c:318
+#: main.c:327
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
 
-#: main.c:320
+#: main.c:329
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -766,18 +917,18 @@ msgstr ""
 "  -f TIEDOSTO, --file=TIEDOSTO, --makefile=TIEDOSTO\n"
 "                              Käytä TIEDOSTOa makefile-tiedostona.\n"
 
-#: main.c:323
+#: main.c:332
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Näytä tämä viesti ja poistu.\n"
 
-#: main.c:325
+#: main.c:334
 #, fuzzy
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr ""
 "  -i, --ignore-errors         Älä huomioi suoritettujen komentojen "
 "virheitä.\n"
 
-#: main.c:327
+#: main.c:336
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -786,7 +937,7 @@ msgstr ""
 "                              Etsi sisällytettäviä makefile:ja "
 "HAKEMISTOsta.\n"
 
-#: main.c:330
+#: main.c:339
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -794,14 +945,14 @@ msgstr ""
 "  -j [N], --jobs[=N]          Salli N yhtäaikaista työtä; ilman N:ää "
 "ääretön.\n"
 
-#: main.c:332
+#: main.c:341
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Jatka vaikka joidenkin kohteiden tuottaminen\n"
 "                                epäonnistuisi.\n"
 
-#: main.c:334
+#: main.c:343
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -811,7 +962,7 @@ msgstr ""
 "                              Älä aloita useita töitä ellei kuormitus alle "
 "N.\n"
 
-#: main.c:337
+#: main.c:346
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -819,7 +970,7 @@ msgstr ""
 "  -L, --check-symlink-times   Käytä uusinta mtime-aikaa symlinkkien ja\n"
 "                                kohteen välillä.\n"
 
-#: main.c:339
+#: main.c:348
 #, fuzzy
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
@@ -830,7 +981,7 @@ msgstr ""
 "                              Näytä ajettavat komennot, älä käynnistä "
 "niitä.\n"
 
-#: main.c:342
+#: main.c:351
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -839,11 +990,17 @@ msgstr ""
 "  -o TIEDOSTO, --old-file=TIEDOSTO, --assume-old=TIEDOSTO\n"
 "                              Käsittele TIEDOSTO vanhana, älä tuota sitä.\n"
 
-#: main.c:345
+#: main.c:354
+msgid ""
+"  -O[TYPE], --output-sync[=TYPE]\n"
+"                              Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+
+#: main.c:357
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr "  -p, --print-data-base       Näytä make:in sisäinen tietokanta.\n"
 
-#: main.c:347
+#: main.c:359
 #, fuzzy
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
@@ -852,22 +1009,22 @@ msgstr ""
 "  -q, --question              Älä aja komentoja; paluuarvo kertoo ajan-\n"
 "                                tasaisuuden.\n"
 
-#: main.c:349
+#: main.c:361
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Poista käytöstä sisäiset oletussäännöt.\n"
 
-#: main.c:351
+#: main.c:363
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables  Poista käytöstä sisäiset muuttuja-asetukset.\n"
 
-#: main.c:353
+#: main.c:365
 #, fuzzy
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet       Älä kaiuta komentoja.\n"
 
-#: main.c:355
+#: main.c:367
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -875,20 +1032,25 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Kumoaa valitsimen -k.\n"
 
-#: main.c:358
+#: main.c:370
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr "  -t, --touch                 Kosketa kohteita tuottamisen sijaan.\n"
 
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid "  --trace                     Print tracing information.\n"
+msgstr "  -d                          Näytä runsaasti vianetsintätietoja.\n"
+
+#: main.c:374
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Näytä make:in versionumero ja poistu.\n"
 
-#: main.c:362
+#: main.c:376
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Näytä nykyinen hakemisto.\n"
 
-#: main.c:364
+#: main.c:378
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -896,7 +1058,7 @@ msgstr ""
 "  --no-print-directory        Kumoa -w, vaikka se olisi käytössä "
 "oletuksena.\n"
 
-#: main.c:366
+#: main.c:380
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -905,7 +1067,7 @@ msgstr ""
 "new=TIEDOSTO\n"
 "                              Käsittele TIEDOSTO aina uutena.\n"
 
-#: main.c:369
+#: main.c:383
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -913,21 +1075,31 @@ msgstr ""
 "  --warn-undefined-variables  Varoita viittauksista määrittelemättömiin\n"
 "                                muuttujiin.\n"
 
-#: main.c:564
+#: main.c:647
 msgid "empty string invalid as file name"
 msgstr "tyhjä merkkijono ei kelpaa tiedostonimeksi"
 
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
 msgstr "tuntematon vianetsintätason määritys \"%s\""
 
-#: main.c:690
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr ""
+
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "sisäinen virhe: useitan --jobserver-fds -valitsimia"
+
+#: main.c:848
 #, fuzzy, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: Keskeytys/poikkeus siepattu (koodi = 0x%x, osoite = 0x%x)\n"
 
-#: main.c:697
+#: main.c:855
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -942,164 +1114,186 @@ msgstr ""
 "Poikkeusliput = %x\n"
 "Poikkeusosoite = %x\n"
 
-#: main.c:705
+#: main.c:863
 #, fuzzy, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Suojausvirhe: kirjoitusoperaatio osoitteeseen %x\n"
 
-#: main.c:706
+#: main.c:864
 #, fuzzy, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Suojausvirhe: lukuoperaatio osoitteeseen %x\n"
 
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
 #, fuzzy, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell asettaa default_shell = %s\n"
 
-#: main.c:834
+#: main.c:1008
 #, fuzzy, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell: polkuhaku asetti default_shell = %s\n"
 
-#: main.c:1273
+#: main.c:1447
 #, c-format
 msgid "%s is suspending for 30 seconds..."
 msgstr "%s keskeytyy 30 sekunniksi..."
 
-#: main.c:1275
+#: main.c:1449
 #, c-format
 msgid "done sleep(30). Continuing.\n"
 msgstr "sleep(30) valmis. Jatketaan.\n"
 
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefile-tiedosto vakiosyötteestä määritelty kahdesti."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (väliaikaistiedosto)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (väliaikaistiedosto)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Rinnakkaiset työt (-j) eivät ole tuettuja tällä alustalla."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Palataan yhden työn (-j1) tilaan."
-
-#: main.c:1719
+#: main.c:1534
 msgid "internal error: multiple --jobserver-fds options"
 msgstr "sisäinen virhe: useitan --jobserver-fds -valitsimia"
 
-#: main.c:1727
+#: main.c:1544
 #, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr ""
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
 msgstr "sisäinen virhe: virheellinen --jobserver-fds -merkkijono \"%s\""
 
-#: main.c:1730
+#: main.c:1554
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
 msgstr ""
 
-#: main.c:1740
+#: main.c:1567
 msgid "warning: -jN forced in submake: disabling jobserver mode."
 msgstr "varoitus: -jN pakotettu ali-make:ssa: poistetaan työpalvelin käytöstä."
 
-#: main.c:1750
+#: main.c:1583
 msgid "dup jobserver"
 msgstr "kaksinkertainen työpalvelin"
 
-#: main.c:1753
+#: main.c:1586
+#, fuzzy
 msgid ""
-"warning: jobserver unavailable: using -j1.  Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "varoitus: työpalvelin ei käytettävissä: käytetään -j1. Lisää \"+\" ylemmän "
 "tason make-sääntöön."
 
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile-tiedosto vakiosyötteestä määritelty kahdesti."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (väliaikaistiedosto)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (väliaikaistiedosto)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Rinnakkaiset työt (-j) eivät ole tuettuja tällä alustalla."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Palataan yhden työn (-j1) tilaan."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr ""
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr ""
+
+#: main.c:2019
 msgid "creating jobs pipe"
 msgstr "luodaan työputki"
 
-#: main.c:1792
+#: main.c:2039
 msgid "init jobserver pipe"
 msgstr "alustetaan työpalvelimen putki"
 
-#: main.c:1812
+#: main.c:2064
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Ei tukea symbolisille linkeille: poistetaan -L käytöstä."
 
-#: main.c:1892
+#: main.c:2149
 msgid "Updating makefiles....\n"
 msgstr "Päivitetään makefile-tiedostoja....\n"
 
-#: main.c:1917
-#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
+#: main.c:2174
+#, fuzzy, c-format
+msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr ""
 "Ei uudelleentuoteta makefile-tiedostoa \"%s\" - vältetään mahdollinen "
 "ikuinen silmukka.\n"
 
-#: main.c:1996
-#, c-format
-msgid "Failed to remake makefile `%s'."
+#: main.c:2253
+#, fuzzy, c-format
+msgid "Failed to remake makefile '%s'."
 msgstr "Makefile-tiedoston \"%s\" uudelleentuottaminen epäonnistui."
 
-#: main.c:2013
-#, c-format
-msgid "Included makefile `%s' was not found."
+#: main.c:2270
+#, fuzzy, c-format
+msgid "Included makefile '%s' was not found."
 msgstr "Sisällytettyä makefile-tiedostoa \"%s\" ei löytynyt."
 
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
 msgstr "Makefile-tiedostoa \"%s\" ei löytynyt"
 
-#: main.c:2086
+#: main.c:2341
 msgid "Couldn't change back to original directory."
 msgstr "Ei voitu siirtyä takaisin alkuperäiseen hakemistoon."
 
-#: main.c:2102
+#: main.c:2354
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Uudelleenkäynnistetään[%u]:"
 
-#: main.c:2215
+#: main.c:2463
 msgid "unlink (temporary file): "
 msgstr "unlink (väliaikaistiedosto): "
 
-#: main.c:2247
+#: main.c:2495
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL sisältää yli yhden kohteen"
 
-#: main.c:2270
+#: main.c:2518
 msgid "No targets specified and no makefile found"
 msgstr "Kohteita ei ole annettu, eikä makefileä löytynyt"
 
-#: main.c:2272
+#: main.c:2520
 msgid "No targets"
 msgstr "Ei kohteita"
 
-#: main.c:2277
+#: main.c:2525
 msgid "Updating goal targets....\n"
 msgstr ""
 
-#: main.c:2306
+#: main.c:2550
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
 "varoitus: Havaittu väärä kellonaika. Käännösversio saattaa olla "
 "epätäydellinen."
 
-#: main.c:2470
+#: main.c:2718
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
 msgstr "Käyttö: %s [valitsimet] [kohde] ...\n"
 
-#: main.c:2476
+#: main.c:2724
 #, c-format
 msgid ""
 "\n"
@@ -1108,7 +1302,7 @@ msgstr ""
 "\n"
 "Tämä ohjelma on käännetty järjestelmälle %s.\n"
 
-#: main.c:2478
+#: main.c:2726
 #, c-format
 msgid ""
 "\n"
@@ -1117,37 +1311,37 @@ msgstr ""
 "\n"
 "Tämä ohjelma on käännetty järjestelmälle %s (%s).\n"
 
-#: main.c:2481
+#: main.c:2729
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
 msgstr ""
 "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen <bug-make@gnu.org>.\n"
 
-#: main.c:2562
+#: main.c:2810
 #, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
+msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "valitsin \"-%c\" vaatii ei-tyhjän merkkijonoargumentin"
 
-#: main.c:2617
-#, c-format
-msgid "the `-%c' option requires a positive integral argument"
+#: main.c:2864
+#, fuzzy, c-format
+msgid "the '-%c' option requires a positive integer argument"
 msgstr "valitsin \"-%c\" vaatii positiivisen kokonaislukuargumentin"
 
-#: main.c:3054
+#: main.c:3253
 #, fuzzy, c-format
 msgid "%sBuilt for %s\n"
 msgstr ""
 "\n"
 "%sTämä ohjelma on käännetty järjestelmälle %s.\n"
 
-#: main.c:3056
+#: main.c:3255
 #, fuzzy, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr ""
 "\n"
 "%sTämä ohjelma on käännetty järjestelmälle %s (%s).\n"
 
-#: main.c:3066
+#: main.c:3266
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1156,7 +1350,7 @@ msgid ""
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
 
-#: main.c:3086
+#: main.c:3287
 #, c-format
 msgid ""
 "\n"
@@ -1165,7 +1359,7 @@ msgstr ""
 "\n"
 "# Make-tietokanta, tulostettu %s"
 
-#: main.c:3096
+#: main.c:3297
 #, c-format
 msgid ""
 "\n"
@@ -1174,106 +1368,106 @@ msgstr ""
 "\n"
 "# Make-tietokanta saatu valmiiksi %s\n"
 
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Tuntematon virhe %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "virtuaalimuisti lopussa"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: käyttäjä %lu (todellinen %lu), ryhmä %lu (todellinen %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Alkuperäiset käyttöoikeudet"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Käyttäjän käyttöoikeudet"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Make-prosessin käyttöoikeudet"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Lapsiprosessin käyttöoikeudet"
+
+#: output.c:128
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Siirrytään tuntemattomaan hakemistoon\n"
 
-#: main.c:3239
+#: output.c:130
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Poistutaan tuntemattomasta hakemistosta\n"
 
-#: main.c:3242
-#, c-format
-msgid "%s: Entering directory `%s'\n"
+#: output.c:133
+#, fuzzy, c-format
+msgid "%s: Entering directory '%s'\n"
 msgstr "%s: Siirrytään hakemistoon \"%s\"\n"
 
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
+#: output.c:135
+#, fuzzy, c-format
+msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: Poistutaan hakemistosta \"%s\"\n"
 
-#: main.c:3250
+#: output.c:139
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: Siirrytään tuntemattomaan hakemistoon\n"
 
-#: main.c:3253
+#: output.c:141
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: Poistutaan tuntemattomasta hakemistosta\n"
 
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
+#: output.c:144
+#, fuzzy, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: Siirrytään hakemistoon \"%s\"\n"
 
-#: main.c:3260
-#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
+#: output.c:146
+#, fuzzy, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: Poistutaan hakemistosta \"%s\"\n"
 
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "kirjoitusvirhe: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "kirjoitusvirhe"
+
+#: output.c:740
 msgid ".  Stop.\n"
 msgstr ". Seis.\n"
 
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Tuntematon virhe %d"
-
-#: misc.c:347
+#: output.c:751
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: misc.c:355
+#: output.c:759
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
-msgstr "virtuaalimuisti lopussa"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: käyttäjä %lu (todellinen %lu), ryhmä %lu (todellinen %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Alkuperäiset käyttöoikeudet"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Käyttäjän käyttöoikeudet"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Make-prosessin käyttöoikeudet"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Lapsiprosessin käyttöoikeudet"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "kirjoitusvirhe: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "kirjoitusvirhe"
-
-#: read.c:179
+#: read.c:180
 msgid "Reading makefiles...\n"
 msgstr "Luetaan makefile-tiedostoja...\n"
 
 #: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
 msgstr "Luetaan makefile-tiedosto \"%s\""
 
 #: read.c:335
@@ -1296,331 +1490,349 @@ msgstr " (ei välitetä)"
 msgid " (no ~ expansion)"
 msgstr " (ei ~-laajennusta)"
 
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr ""
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr ""
+
+#: read.c:786
 msgid "invalid syntax in conditional"
 msgstr "virheellinen syntaksi ehtolauseessa"
 
-#: read.c:891
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
 #, fuzzy
 msgid "recipe commences before first target"
 msgstr "komennot alkavat ennen ensimmäistä kohdetta"
 
-#: read.c:940
+#: read.c:1036
 #, fuzzy
 msgid "missing rule before recipe"
 msgstr "puuttuva sääntö ennen komentoja"
 
-#: read.c:1027
+#: read.c:1123
 #, c-format
 msgid "missing separator%s"
 msgstr "puuttuva erotin%s"
 
-#: read.c:1029
+#: read.c:1125
 msgid " (did you mean TAB instead of 8 spaces?)"
 msgstr " (ehkä tarkoitit sarkainta eikä kahdeksaa välilyöntiä?)"
 
-#: read.c:1163
+#: read.c:1263
 msgid "missing target pattern"
 msgstr "puuttuva kohdehahmo"
 
-#: read.c:1165
+#: read.c:1265
 msgid "multiple target patterns"
 msgstr "useita kohdehahmoja"
 
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
 msgstr "kohdehahmo ei sisällä %%-merkkiä"
 
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
 msgstr "puuttuva \"endif\""
 
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
 msgid "empty variable name"
 msgstr "tyhjä muuttujan nimi"
 
-#: read.c:1367
+#: read.c:1465
 #, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
 msgstr "Ylimääräistä tekstiä \"endef\"-toimintaohjeen jälkeen"
 
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
 msgstr "puuttuva \"endef\", päättämätön \"define\""
 
-#: read.c:1420
+#: read.c:1518
 #, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
 msgstr "Ylimääräistä tekstiä \"endef\"-toimintaohjeen jälkeen"
 
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
 msgstr "Ylimääräistä tekstiä \"%s\"-toimintaohjeen jälkeen"
 
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
 msgstr "ylimääräinen \"%s\""
 
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
 msgstr "vain yksi \"else\" ehtolausetta kohden"
 
-#: read.c:1797
+#: read.c:1892
 msgid "Malformed target-specific variable definition"
 msgstr "Väärin muotoiltu kohdekohtainen muuttujamäärittely"
 
 # skripti?
-#: read.c:1855
+#: read.c:1951
 #, fuzzy
 msgid "prerequisites cannot be defined in recipes"
 msgstr "ennakkoehtoja ei voi määritellä komentoskripteissä"
 
-#: read.c:1908
+#: read.c:2009
 msgid "mixed implicit and static pattern rules"
 msgstr ""
 
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
 msgid "mixed implicit and normal rules"
 msgstr ""
 
-#: read.c:1976
-#, c-format
-msgid "target `%s' doesn't match the target pattern"
+#: read.c:2084
+#, fuzzy, c-format
+msgid "target '%s' doesn't match the target pattern"
 msgstr "kohde \"%s\" ei täsmää kohdehahmon kanssa"
 
-#: read.c:1991 read.c:2036
-#, c-format
-msgid "target file `%s' has both : and :: entries"
+#: read.c:2099 read.c:2144
+#, fuzzy, c-format
+msgid "target file '%s' has both : and :: entries"
 msgstr "kohdetiedostolla \"%s\" on sekä :- että ::-merkinnät"
 
-#: read.c:1997
-#, c-format
-msgid "target `%s' given more than once in the same rule."
+#: read.c:2105
+#, fuzzy, c-format
+msgid "target '%s' given more than once in the same rule"
 msgstr "kohde \"%s\" annettu yli yhden kerran samassa säännössä."
 
-#: read.c:2006
+#: read.c:2114
 #, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
 msgstr "varoitus: syrjäytetään kohteen \"%s\" komennot"
 
-#: read.c:2009
+#: read.c:2117
 #, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
+msgid "warning: ignoring old recipe for target '%s'"
 msgstr "varoitus: ei huomioida vanhoja komentoja kohteelle \"%s\""
 
-#: read.c:2392
+#: read.c:2530
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "varoitus: havaittu NUL-merkki, rivin loppuosaa ei huomioida"
 
-#: remake.c:234
-#, c-format
-msgid "Nothing to be done for `%s'."
+#: remake.c:232
+#, fuzzy, c-format
+msgid "Nothing to be done for '%s'."
 msgstr "Kohteelle \"%s\" ei tarvitse tehdä mitään."
 
-#: remake.c:235
-#, c-format
-msgid "`%s' is up to date."
+#: remake.c:233
+#, fuzzy, c-format
+msgid "'%s' is up to date."
 msgstr "\"%s\" on ajan tasalla."
 
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
 msgstr "Karsitaan tiedosto \"%s\".\n"
 
-#: remake.c:359
-#, c-format
-msgid "%sNo rule to make target `%s'%s"
+#: remake.c:377
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
 msgstr "%sKohteen \"%s\" tuottamiseen ei ole sääntöä%s"
 
-#: remake.c:361
-#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
+#: remake.c:379
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr ""
 "%1$s\"%3$s\"-kohteen tarvitseman kohteen \"%2$s\" tuottamiseen ei ole sääntöä"
 "%4$s"
 
 #: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
 msgstr "Tarkastellaan tiedostoa \"%s\".\n"
 
 #: remake.c:420
-#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
+#, fuzzy, c-format
+msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Tiedoston \"%s\" päivitysyritys epäonnistui äskettäin.\n"
 
 #: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
 msgstr "Tiedostoa \"%s\" on jo tarkasteltu.\n"
 
 #: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
 msgstr "Päivitetään edelleen tiedostoa \"%s\".\n"
 
 #: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
 msgstr "Tiedosto \"%s\" päivitetty.\n"
 
 #: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
 msgstr "Tiedosto \"%s\" ei ole olemassa.\n"
 
 #: remake.c:481
-#, c-format
+#, fuzzy, c-format
 msgid ""
-"*** Warning: .LOW_RESOLUTION_TIME file `%s' has a high resolution time stamp"
+"*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
 "*** Varoitus: .LOW_RESOLUTION_TIME-tiedostolla \"%s\" on "
 "korkearesoluutioinen aikaleima"
 
-#: remake.c:494 remake.c:1016
-#, c-format
-msgid "Found an implicit rule for `%s'.\n"
+#: remake.c:494 remake.c:1019
+#, fuzzy, c-format
+msgid "Found an implicit rule for '%s'.\n"
 msgstr "Kohteelle \"%s\" löytyi oletussääntö.\n"
 
-#: remake.c:496 remake.c:1018
-#, c-format
-msgid "No implicit rule found for `%s'.\n"
+#: remake.c:496 remake.c:1021
+#, fuzzy, c-format
+msgid "No implicit rule found for '%s'.\n"
 msgstr "Kohteelle \"%s\" ei löytynyt oletussääntöä.\n"
 
 #: remake.c:502
 #, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
 msgstr "Käytetään oletuskomentoja kohteelle \"%s\".\n"
 
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Kehäriippuvuus %s <- %s hylätty."
 
-#: remake.c:651
-#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Kohdetiedoston \"%s\" ennakkoehdot täytetty.\n"
 
-#: remake.c:657
-#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
+#: remake.c:661
+#, fuzzy, c-format
+msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Kohteen \"%s\" ennakkoehtoja täytetään.\n"
 
-#: remake.c:670
-#, c-format
-msgid "Giving up on target file `%s'.\n"
+#: remake.c:674
+#, fuzzy, c-format
+msgid "Giving up on target file '%s'.\n"
 msgstr "Luovutaan kohdetiedostosta \"%s\".\n"
 
-#: remake.c:675
-#, c-format
-msgid "Target `%s' not remade because of errors."
+#: remake.c:679
+#, fuzzy, c-format
+msgid "Target '%s' not remade because of errors."
 msgstr "Kohdetta \"%s\" ei tuotettu uudelleen virheiden vuoksi."
 
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr ""
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Ennakkoehto \"%s\" on vanhempi kuin kohde \"%s\".\n"
 
-#: remake.c:732
-#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
+#: remake.c:736
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Kohteen \"%2$s\" ennakkoehto \"%1$s\" ei ole olemassa.\n"
 
-#: remake.c:737
-#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
+#: remake.c:741
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Ennakkoehto \"%s\" on uudempi kuin kohde \"%s\".\n"
 
-#: remake.c:740
-#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
+#: remake.c:744
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Ennakkoehto \"%s\" on vanhempi kuin kohde \"%s\".\n"
 
-#: remake.c:758
+#: remake.c:762
 #, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr ""
 
-#: remake.c:765
+#: remake.c:769
 #, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
 
-#: remake.c:770
-#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+#: remake.c:774
+#, fuzzy, c-format
+msgid "Making '%s' due to always-make flag.\n"
 msgstr "Tuotetaan \"%s\", koska --always-make -valitsin on käytössä.\n"
 
-#: remake.c:778
-#, c-format
-msgid "No need to remake target `%s'"
+#: remake.c:782
+#, fuzzy, c-format
+msgid "No need to remake target '%s'"
 msgstr "Ei tarvetta uudelleentuottaa kohdetta \"%s\""
 
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
 msgstr "; käytetään VPATH-nimeä \"%s\""
 
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
 msgstr "Kohde \"%s\" on tuotettava uudelleen.\n"
 
-#: remake.c:806
-#, c-format
-msgid "  Ignoring VPATH name `%s'.\n"
+#: remake.c:810
+#, fuzzy, c-format
+msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Ei huomioida VPATH-nimeä \"%s\".\n"
 
-#: remake.c:815
+#: remake.c:819
 #, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
 msgstr ""
 
-#: remake.c:822
-#, c-format
-msgid "Failed to remake target file `%s'.\n"
+#: remake.c:826
+#, fuzzy, c-format
+msgid "Failed to remake target file '%s'.\n"
 msgstr "Kohdetiedoston \"%s\" uudelleentuottaminen epäonnistui.\n"
 
-#: remake.c:825
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
+#: remake.c:829
+#, fuzzy, c-format
+msgid "Successfully remade target file '%s'.\n"
 msgstr "Kohdetiedosto \"%s\" uudelleentuotettiin onnistuneesti.\n"
 
-#: remake.c:828
+#: remake.c:832
 #, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr ""
 
-#: remake.c:1024
-#, c-format
-msgid "Using default commands for `%s'.\n"
+#: remake.c:1027
+#, fuzzy, c-format
+msgid "Using default commands for '%s'.\n"
 msgstr "Käytetään oletuskomentoja kohteelle \"%s\".\n"
 
-#: remake.c:1357
-#, c-format
-msgid "Warning: File `%s' has modification time in the future"
+#: remake.c:1372
+#, fuzzy, c-format
+msgid "Warning: File '%s' has modification time in the future"
 msgstr "Varoitus: Tiedoston \"%s\" muutosaika on tulevaisuudessa"
 
-#: remake.c:1370
+#: remake.c:1385
 #, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
+msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Varoitus: Tiedoston \"%s\" muutosaika on %.2g sekuntia tulevaisuudessa"
 
-#: remake.c:1569
-#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
+#: remake.c:1583
+#, fuzzy, c-format
+msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr ".LIBPATTERNS-elementti \"%s\" ei ole hahmo"
 
-#: remote-cstms.c:125
+#: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
 msgstr ""
 
-#: rule.c:499
+#: rule.c:496
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1628,7 +1840,7 @@ msgstr ""
 "\n"
 "# Oletussäännöt"
 
-#: rule.c:514
+#: rule.c:511
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1636,7 +1848,7 @@ msgstr ""
 "\n"
 "# Ei oletussääntöjä."
 
-#: rule.c:517
+#: rule.c:514
 #, c-format
 msgid ""
 "\n"
@@ -1645,242 +1857,259 @@ msgstr ""
 "\n"
 "# %u oletussääntöä, %u"
 
-#: rule.c:526
+#: rule.c:523
 msgid " terminal."
 msgstr ""
 
-#: rule.c:534
+#: rule.c:531
 #, fuzzy, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "VIKA: num_pattern_rules väärä! %u != %u"
 
-#: signame.c:86
+#: signame.c:84
 msgid "unknown signal"
 msgstr "tuntematon signaali"
 
-#: signame.c:94
+#: signame.c:92
 msgid "Hangup"
 msgstr "Linjankatkaisu"
 
-#: signame.c:97
+#: signame.c:95
 msgid "Interrupt"
 msgstr "Keskeytys"
 
-#: signame.c:100
+#: signame.c:98
 msgid "Quit"
 msgstr "Lopetettu"
 
-#: signame.c:103
+#: signame.c:101
 msgid "Illegal Instruction"
 msgstr "Virheellinen käsky"
 
-#: signame.c:106
+#: signame.c:104
 msgid "Trace/breakpoint trap"
 msgstr "Jäljitys/katkaisupisteansa"
 
-#: signame.c:111
+#: signame.c:109
 msgid "Aborted"
 msgstr "Keskeytetty"
 
-#: signame.c:114
+#: signame.c:112
 msgid "IOT trap"
 msgstr "IOT-ansa"
 
-#: signame.c:117
+#: signame.c:115
 msgid "EMT trap"
 msgstr "EMT-ansa"
 
-#: signame.c:120
+#: signame.c:118
 msgid "Floating point exception"
 msgstr "Liukulukupoikkeus"
 
-#: signame.c:123
+#: signame.c:121
 msgid "Killed"
 msgstr "Tapettu"
 
-#: signame.c:126
+#: signame.c:124
 msgid "Bus error"
 msgstr "Väylävirhe"
 
-#: signame.c:129
+#: signame.c:127
 msgid "Segmentation fault"
 msgstr "Muistialueen ylitys"
 
-#: signame.c:132
+#: signame.c:130
 msgid "Bad system call"
 msgstr "Virheellinen järjestelmäkutsu"
 
-#: signame.c:135
+#: signame.c:133
 msgid "Broken pipe"
 msgstr "Katkennut putki"
 
-#: signame.c:138
+#: signame.c:136
 msgid "Alarm clock"
 msgstr "Herätyskello"
 
-#: signame.c:141
+#: signame.c:139
 msgid "Terminated"
 msgstr "Päätetty"
 
-#: signame.c:144
+#: signame.c:142
 msgid "User defined signal 1"
 msgstr "Käyttäjän määrittelemä signaali 1"
 
-#: signame.c:147
+#: signame.c:145
 msgid "User defined signal 2"
 msgstr "Käyttäjän määrittelemä signaali 2"
 
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
 msgid "Child exited"
 msgstr "Lapsi lopetti"
 
-#: signame.c:158
+#: signame.c:156
 msgid "Power failure"
 msgstr "Sähkökatko"
 
-#: signame.c:161
+#: signame.c:159
 msgid "Stopped"
 msgstr "Pysäytetty"
 
-#: signame.c:164
+#: signame.c:162
 msgid "Stopped (tty input)"
 msgstr "Pysäytetty (päätteen syöte)"
 
-#: signame.c:167
+#: signame.c:165
 msgid "Stopped (tty output)"
 msgstr "Pysäytetty (päätteen tuloste)"
 
-#: signame.c:170
+#: signame.c:168
 msgid "Stopped (signal)"
 msgstr "Pysäytetty (signaali)"
 
-#: signame.c:173
+#: signame.c:171
 msgid "CPU time limit exceeded"
 msgstr "Suoritinaikaraja ylittynyt"
 
-#: signame.c:176
+#: signame.c:174
 msgid "File size limit exceeded"
 msgstr "Tiedoston kokoraja ylitetty"
 
-#: signame.c:179
+#: signame.c:177
 msgid "Virtual timer expired"
 msgstr "Virtuaaliajastin vanhentunut"
 
-#: signame.c:182
+#: signame.c:180
 msgid "Profiling timer expired"
 msgstr "Profilointiajastin vanhentunut"
 
-#: signame.c:188
+#: signame.c:186
 msgid "Window changed"
 msgstr "Ikkuna vaihtunut"
 
-#: signame.c:191
+#: signame.c:189
 msgid "Continued"
 msgstr "Jatkettu"
 
-#: signame.c:194
+#: signame.c:192
 msgid "Urgent I/O condition"
 msgstr "Kiireellinen I/O-tilanne"
 
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
 msgid "I/O possible"
 msgstr "I/O mahdollista"
 
-#: signame.c:204
+#: signame.c:202
 msgid "SIGWIND"
 msgstr "SIGWIND"
 
-#: signame.c:207
+#: signame.c:205
 msgid "SIGPHONE"
 msgstr "SIGPHONE"
 
-#: signame.c:213
+#: signame.c:211
 msgid "Resource lost"
 msgstr "Resurssi menetetty"
 
-#: signame.c:216
+#: signame.c:214
 msgid "Danger signal"
 msgstr "Vaarasignaali"
 
-#: signame.c:219
+#: signame.c:217
 msgid "Information request"
 msgstr "Tietopyyntö"
 
-#: signame.c:222
+#: signame.c:220
 msgid "Floating point co-processor not available"
 msgstr "Käytettävissä ei ole liukulukusuoritinta"
 
-#: strcache.c:235
+#: strcache.c:236
 #, c-format
 msgid ""
 "\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s No strcache buffers\n"
 msgstr ""
 
-#: strcache.c:237
+#: strcache.c:266
 #, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
 msgstr ""
 
-#: strcache.c:239
+#: strcache.c:270
 #, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
 
-#: strcache.c:241
+#: strcache.c:280
 #, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
 msgstr ""
 
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:283
+#, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr ""
+
+#: strcache.c:287
+#, c-format
 msgid ""
 "\n"
-"# strcache hash-table stats:\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
+
+#: strcache.c:289
+#, fuzzy
+msgid ""
+"# hash-table stats:\n"
 "# "
 msgstr ""
 "\n"
 "# tilasto tiedostojen hajautustaulusta:\n"
 "# "
 
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automaattinen"
+
+#: variable.c:1610
 msgid "default"
 msgstr "oletus"
 
-#: variable.c:1544
+#: variable.c:1613
 msgid "environment"
 msgstr "ympäristö"
 
-#: variable.c:1547
+#: variable.c:1616
 msgid "makefile"
 msgstr "makefile"
 
-#: variable.c:1550
+#: variable.c:1619
 msgid "environment under -e"
 msgstr "-e:n alainen ympäristö"
 
-#: variable.c:1553
+#: variable.c:1622
 msgid "command line"
 msgstr "komentorivi"
 
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
 msgstr "\"override\"-toimintaohje"
 
-#: variable.c:1559
-msgid "automatic"
-msgstr "automaattinen"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
 msgstr " (tiedostosta \"%s\", rivi %lu)"
 
-#: variable.c:1612
+#: variable.c:1699
 msgid "# variable set hash-table stats:\n"
 msgstr "# muuttujajoukon hajautustaulutilastot:\n"
 
-#: variable.c:1623
+#: variable.c:1710
 msgid ""
 "\n"
 "# Variables\n"
@@ -1888,7 +2117,7 @@ msgstr ""
 "\n"
 "# Muuttujat\n"
 
-#: variable.c:1627
+#: variable.c:1714
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -1896,7 +2125,7 @@ msgstr ""
 "\n"
 "# Hahmokohtaisia muuttujien arvoja"
 
-#: variable.c:1641
+#: variable.c:1728
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -1904,7 +2133,7 @@ msgstr ""
 "\n"
 "# Ei hahmokohtaisia muuttuja-arvoja."
 
-#: variable.c:1643
+#: variable.c:1730
 #, c-format
 msgid ""
 "\n"
@@ -1913,93 +2142,93 @@ msgstr ""
 "\n"
 "# %u hahmokohtaista muuttuja-arvoa"
 
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
 msgstr "varoitus: määrittelemätön muuttuja \"%.*s\""
 
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
 #, fuzzy, c-format
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search epäonnistui, arvo %d\n"
 
-#: vmsjobs.c:71
+#: vmsjobs.c:70
 #, c-format
 msgid "Warning: Empty redirection\n"
 msgstr "Varoitus: Tyhjä uudelleenohjaus\n"
 
-#: vmsjobs.c:184
-#, c-format
-msgid "internal error: `%s' command_state"
+#: vmsjobs.c:178
+#, fuzzy, c-format
+msgid "internal error: '%s' command_state"
 msgstr "sisäinen virhe: \"%s\" command_state"
 
-#: vmsjobs.c:289
+#: vmsjobs.c:286
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-varoitus, Ctrl-Y-käsittely on ehkä otettava uudelleen käyttöön DCL:stä.\n"
 
-#: vmsjobs.c:421
+#: vmsjobs.c:417
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "SISÄÄNRAKENNETTU [%s][%s]\n"
 
-#: vmsjobs.c:432
+#: vmsjobs.c:428
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "SISÄÄNRAKENNETTU CD %s\n"
 
-#: vmsjobs.c:450
+#: vmsjobs.c:446
 #, c-format
 msgid "BUILTIN RM %s\n"
 msgstr "SISÄÄNRAKENNETTU RM %s\n"
 
-#: vmsjobs.c:471
+#: vmsjobs.c:467
 #, c-format
 msgid "Unknown builtin command '%s'\n"
 msgstr "Tuntematon sisäänrakennettu komento \"%s\"\n"
 
-#: vmsjobs.c:493
+#: vmsjobs.c:489
 #, c-format
 msgid "Error, empty command\n"
 msgstr "Virhe, tyhjä komento\n"
 
-#: vmsjobs.c:506
+#: vmsjobs.c:502
 #, c-format
 msgid "Redirected input from %s\n"
 msgstr "Syöte uudelleenohjattu kohteesta %s\n"
 
-#: vmsjobs.c:513
+#: vmsjobs.c:509
 #, c-format
 msgid "Redirected error to %s\n"
 msgstr "Virhetuloste uudelleenohjattu kohteeseen %s\n"
 
-#: vmsjobs.c:523
+#: vmsjobs.c:518
 #, fuzzy, c-format
 msgid "Append output to %s\n"
 msgstr "Tuloste uudelleenohjattu kohteeseen %s\n"
 
-#: vmsjobs.c:529
+#: vmsjobs.c:524
 #, c-format
 msgid "Redirected output to %s\n"
 msgstr "Tuloste uudelleenohjattu kohteeseen %s\n"
 
-#: vmsjobs.c:599
+#: vmsjobs.c:593
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr ""
 
-#: vmsjobs.c:606
+#: vmsjobs.c:600
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Käynnistetään sen sijaan %s\n"
 
-#: vmsjobs.c:712
+#: vmsjobs.c:706
 #, c-format
 msgid "Error spawning, %d\n"
 msgstr "Virhe käynnistyksessä, %d\n"
 
-#: vpath.c:586
+#: vpath.c:583
 msgid ""
 "\n"
 "# VPATH Search Paths\n"
@@ -2007,37 +2236,46 @@ msgstr ""
 "\n"
 "# VPATH-hakupolut\n"
 
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
 msgstr "# Ei \"vpath\"-hakupolkuja."
 
-#: vpath.c:605
-#, c-format
+#: vpath.c:602
+#, fuzzy, c-format
 msgid ""
 "\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
 msgstr ""
 "\n"
 "# %u \"vpath\"-hakupolkua.\n"
 
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
 msgid ""
 "\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
 msgstr ""
 "\n"
 "# Ei yleistä (\"VPATH\"-muuttuja) hakupolkua."
 
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
 msgid ""
 "\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
 "# "
 msgstr ""
 "\n"
 "# Yleinen (\"VPATH\"-muuttuja) hakupolku:\n"
 "# "
 
+#~ msgid "#  Invalid value in `update_status' member!"
+#~ msgstr "#  Virheellinen arvo \"update_status\"-jäsenessä!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Virhe 0x%x (ei huomioida)"
+
 #~ msgid "Do not specify -j or --jobs if sh.exe is not available."
 #~ msgstr "Älä anna -j tai --jobs -valitsinta jos sh.exe ei ole käytettävissä."